비디오 안정화(Video Stabilization)

라즈베리파이 카메라(Raspberry Pi camera)를 만들어서 사용해 보니 흔들림이 많이 문제가 됩니다. 셔터를 누를때 생기는 롤링현상이나 특히 동영상 촬영시 흔들림 현상은 휴대용 짐벌(Gimbal)을 사용하지 않는한 해결이 어렵습니다.

 

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에 구현되어 있다고 하니, 조만간 코딩으로 동작시켜 봐야 할것 같습니다.

 

Posted by 이미지쿡

Raspberry Pi 모델별 비교 및

 BCM2835 정보

 

라즈베리파이를 활용하는 사람들을 둘로 나눠 보라고 하면, 사서 쓰는 사람과 오픈된   Schematic을 응용하여 새롭게 제작하려는 사람으로 나눌수 있을 것입니다.

 

여기서 정리하고 싶은 부분은 후자를 위한 것으로 신규로 보드를 만들고 싶다면

라즈베리파이에 들어가는 SoC(Broadcom BCM2835, 2836, 2837)에 대해서 이해하는 것은 필수 입니다. (아래 테이블 참조)

 

 

 

Raspberry Pi 2 (BCM2836), Pi3(BCM2837)을 제외한 모든 제품(5개)에 들어 가는 SoC(CPU,GPU,DRAM)는 BCM2835입니다.

 

BCM2835은 BCM2836,2837에 비해 속도나 성능이 떨어지지만 DRAM이 함께 들어가 있어서 작게 만드는데 매우 유리합니다.  (PoP stack)

 

무료로 제공하는 OS를 활용하므로 특별하게 수정할 부분도 없으며, H/W만 잘 만든면 어떠한 활용도 가능합니다.

 

결국, BCM2835 Pinout만 안다면 여러가지 형태로 변형이 가능합니다. 문제는 package에 대한 spec이 있어야 하는데 이부분이 빠져있다는 것입니다.(datasheet참조) (Ball/pin pitch 정보 - PCB 제작시 반드시 필요)

 

다행히도 DXF 파일 오픈해 놓았습니다. 이것을 측정해 보면 Ball size와 각종 규격을 확인할 수 있습니다.

 

 

 

 

 

 

Posted by 이미지쿡

Multi Camera Adapter Module for Raspberry Pi

라즈베리파이는 카메라를 하나밖에 사용할 수 없지만(CSI : Camera Serial Interface -1개) 이것을 극복할 수 있는 방법이 있습니다.

 

 

Arducam에서 만든 Multi Camera Adapter Module이 있어서 최대 16개까지 장착이 가능합니다. 물론 동시 동작은 아니고 순차 동작입니다.

 

 

기본적으로 1개 구입하면(국내 6만 천원 - 가치창조기술, 샘플전자 판매) 4개까지 콘트롤이 가능하고 4개 구입하면 16개까지 사용할 수 있습니다.

 

 

 

 

멀티카메라 어뎁터 모듈의 전면에 카메라 A.C, 후면에 B,C를 연결하게끔 되어 있습니다. 아래 사진 참조 바랍니다.

 

 

 

사용하는 BUS SW chip은 표기가 되어 있지 않아서 어떤 것인지는 알수가 없군요.

일부러 복제하지 못하도록 공개하지 않은듯 합니다만, 성능은 좋습니다.

 

 

 

아래의 보드 전면에 보면, 우측 하단에 있는 DIP SW에 셋팅된 위치에 따라 라즈베리파이의 GPIO 연결이 결정되고 이는 보드의 동작 순서를 결정하게 됩니다.

 

아래 좌측하단의 10pin 연결은 보드를 적층으로 쌓아 올릴때 반드시 연결되어야 합니다. 각 보드는 CSI(Camera Sirial interface)와 연결됩니다. 보드 1개만 사용시는 불필요 합니다. 

 

 

 

 

라즈베리파이 카메라 1개 사용시 3개의 GPIO를 사용하고(GPIO 7, 11, 12) 16개 사용시 9개의 GPIO를 사용합니다. 아래 좌측에 있는 DIP sw 테이블의 GPIO 번호와 우측에 있는 source code에 있는 gp.setup의 괄호속 번호는 라즈베리 파이의 GPIO번호가 아니고 라즈베리파이 J8 Header 번호입니다. 즉 GPIO 7->Header 7번

GPIO 11 --> Header 11(실제 GPIO 0번), GPIO12 -> Header 12 (GPIO 1)을 의미하므로 혼동하면 동작하지 않습니다.

 

 

 

Posted by 이미지쿡

블로그 이미지
Raspberry pi 카메라로 영화 매트릭스 처럼 촬영하기
이미지쿡

공지사항

Yesterday
Today
Total