2017. 1. 18. 13:53 OpenCV를 활용하기/Video Stabilization 자료
비디오 안정화 관련 기술
비디오 안정화(Video Stabilization)
라즈베리파이 카메라(Raspberry Pi camera)를 만들어서 사용해 보니 흔들림이 많이 문제가 됩니다. 셔터를 누를때 생기는 롤링현상이나 특히 동영상 촬영시 흔들림 현상은 휴대용 짐벌(Gimbal)을 사용하지 않는한 해결이 어렵습니다.
하지만 놀랍게도 이런 기구적인 도움없이 순수하게 S/W처리만으로 각종 왜곡이나 흔들임을 없앨 수 있는 기술이 있습니다. (와 정말 대단합니다.)
동영상을 보시면 아시겠지만 이런 기술을 만들어 낸다는 것이 그저 놀라울 뿐입니다. 2011년에 논문으로 발표되었고, Matthias Grundmann이라는 분이 제일 저자로 되어있으며, 지금은 구글에 인턴으로 제직중인 것으로 나와 있습니다.
이 논문에서 발표된 기술은 구글의 YouTube 서비스에 적용되어 있군요. ( https://www.youtube.com/editor ) 최근 확인 결과 서비스 중단되었습니다.(17.9월)
제가 오래전에 올려놓은 동영상을 위의 서비스로 돌려봤는데, 정말 흔들임이 사라지더군요. 효과가 없는 동영상도 있기는 하지만, 기술의 위대함을 다시한번 느꼈습니다.
비 전문가라 기술적인 설명은 잘 못하겠으나 L1(Lasso Regression) 최적화를 통해 걸어며 촬영할 때 발생하는 흔들림이나 노이즈를 최소화 할 수 있는 기술인듯 합니다. 즉 아래 그래프 처럼 붉은색이 실제 움직임을 반영한 흔들림이 있는 카메라 경로 라면 L1 최적화를 통해 파란색의 흔들림이 적은 카메라 경로를 찾아 내는 것이 핵심인듯 합니다.
흔들임없는 영상을 만들기 위해 기울어진 사진을 특징점을 기준으로 크롭윈도우에 맞게 수평을 맞추고, 사진의 가장 자리는 잘라내서 새롭게 안정화된 프레임을 만듭니다.
그래서 그런지 실제로 서비스를 통해서 돌려보면 동영상의 가장자리(전체 화면의 30% 정도?)가 나오지 않고 인물이 커져 보입니다. 이것은 일반적으로 나타나는 Binning이 불가능하여 발생하는 화각 감소 효과와 비슷해 보입니다.
그밖에 Wobble Suppression(블러링제거?) 및 비디오 리타겟팅(Video Retargeting) 기술이 적용되어 있다고 합니다. (아래 사진은 Retargeting 50% 적용 )
사진 사이즈를 줄일 때 특별한 기술을 적용해서 원하는 부분만 손실없이 줄일 수 있다는 것을 처음 알았습니다.
Open CV 3.0에 구현되어 있다고 하니, 조만간 코딩으로 동작시켜 봐야 할것 같습니다.