본문 바로가기

TECH-DIY

[MAKE] 3D 영상 합성 툴, 부주(Boujou)를 이용한 증강현실 컨셉 동영상 만들기

  
요즘 TV CF 에서까지 증강현실(AR : Augmented Reality)이 언급되고 있습니다. 참 재미있는 것이 예전에는 한창 ‘터치’ 였다가, 그 다음은 ‘햅틱’. 그리고 이제는 ‘증강현실’이네요. 그 다음은 뭘까 한번 씩 생각해 보게 됩니다. 연구실에서 있던 이슈거리들이 하나 둘씩 시장에 나오는 것을 보니 너무 신기하고 재미있습니다.

AR 쪽을 하다 보면 개발 전 컨셉을 보여줘야 할 때가 있습니다. 이게 말이나 한 장의 그림으로는 설명이 어려워 애니메이션이 필요할 때가 있는데요. 이럴 때 이 툴을 쓰면 좋겠단 생각이 들었습니다.

3D 영상 합성 툴인 부주(Boujou)를 이용해서 CG 작업을 해보았습니다.
유명하다 소리는 들어봤고, 증강현실에 쓰이는 기술과 진행 단계가 매우 유사하여 참고해보라고 귀뜸 만 듣고는 관심 밖에 있었는데 최근에 다뤄보게되었습니다. 아주 쉽고 편리하고 간단합니다. 필요한 프로그램으로는

  1. boujou  : 특징점 추출(Feature Extraction) 및 트래킹(Feature Tracking)
                         카메라 경로 추출(Camera Path)
  2. 3DS MAX 2010 : 3D 모델링, 3D 영상 합성 (Matte shadow)

이렇게 두 가지 입니다. 플랫폼 성능도 비교 할 겸 Windows 7 과 Mac OS X 에서도 돌려 보았는데 맥이 확실히 안정적이었습니다. 윈도에서는 몇 번이 다운되었었습니다. 물론 테스트 한답시고 특징점 개수를 조절하느라 이리저리 값을 조절한 탓도 있겠지만요.

좀더 안정적인 방법으로는 동영상 편집 툴을 이용, 동영상 파일(*.AVI)를 무손실 파일(*.TGA)로 프레임별 추출 한 후 작업하는 것입니다. 맥에서는 Final Cut Pro를 사용해보았고, 윈7에서는 Adobe Premiere를 사용해 보았습니다. 동영상을 그냥 불러들여 쓸 때보다 안정적이고 속도도 빠르네요. 당연히 결과 영상에는 차이 없습니다. 결과 영상을 보면,

Windows 7
Vaio Z36LD 노트북(Core2 Duo 2.66GHz / 4GB RAM / 300GB HDD)
Boujou 4 + 3DS Max



노트북에서 작업하고 난 뒤 필요하다고 느낀 것.
- 대용량 하드 : 무손실 영상 넣고 뽑아내고 하다 보니 필수
- 고성등 쿼드코어 CPU + 고성능 GPU + 많은 램 : 작업 속도는 곧 비용

좌측에 메뉴를 보시고서 다음과 같은 순서로 하시면 됩니다.

1. Import Sequence로 영상을 불러 들임
동영상 파일들(*.avi, *.mov 등)도 가능하지만 무손실 이미지 파일(*.tag) 시퀸스을 추천합니다.


2. Track Features 버튼을 누르고 Start
기본 설정 값으로도 충분히 잘 나옵니다. 시간이 부족하여 빠르고 러프하게 보시려면 [Advanced]를 누르고 Sensitivity를 줄이거나, Feature Scale을 Large로, Channel Select를 Green만(혹은 해당 영상에 맞게), Fast Tracking에 체크 이중에서 몇 가지를 조절하는 조합으로 조절하시면 됩니다. 영상에 대비가 강인한 특징점이 많이 보인다면 더 정확하게 그리고 빠르게 하실 수 있습니다. 그래서 종종 영화 Making Filme을 보면  검은색 흰색의 마커나 십자가 모양의 스티커를 붙이고 촬영하는 모습을 보셨던 겁니다.

창을 보니 마치 특징점 추출 및 트래킹(Feature Extraction & Tracking) 알고리즘에서 쓰이는 변수들을 GUI 환경을 만들어 놓은 듯 합니다. OpenCV로 엔진 하나 개발해 볼까요? :)



트래킹 시작, 약간의 시간이 걸립니다. 트래킹 되는 모습이 참 아름답습니다. 값 조절만 잘하면 실시간에 가깝게 처리됩니다.


3. 카메라 Walking Path 구하기 : Camera Solve
방금 트래킹한 점들을 가지고 카메라의 움직임 경로를 구해야 합니다.
Camera Solve를 누르고 Start를 누릅니다. 오랜 시간이 걸립니다.
 

4. Plane 만들기
영상의 프레임을 처음, 중간, 끝으로 돌려가며 잘 추출 되었는 지와 안정적인 점이 어느 포인트인지 봐둡니다. 트래킹 된 점들 중 노란색이 안정적인 점입니다.

노란색 점들 중에서 평면을 이루는 점 3개 이상을 추출합니다. Ctrl 키를 누르고 점을 선택해 가는 모습.

[Scene Geometry] 를 누르고 [Add Plane Constraint]를 누른 후 [Adjust Solve]를 누릅니다.


5. 테스트 및 카메라
[Add Test Objects]를 누르고 Type에서 적절한 것을 고른 뒤 Alignment 는 Orient and Move, Align To 는 <Plane through selected predictions>를 선택하고 [OK]버튼을 누릅니다.


잘 돌아가는 것을 확인하였으면 [Export Camera]를 눌러 원하는 프로그램으로 추출해 냅니다. 저는 3DS Max용 Max Script로 뽑아냈습니다. 여기까지 부주 설명 <끝>.
 
그 결과~!


6. 영상 합성
3DS Max에서 Max Script 파일을 불러들여 카메라 움직임을 제어하고 3D 모델링한 데이터를 올린 뒤 바닥에 Matte/Shadow를 깔고 조명을 장면에 맞게 적절하게 위치시켜 준 뒤 랜더링 하면 최종 릴 완성. by T9T9.com

3DS Max에서 영상을 합성해보고 나니 느낀 것.
- 역시 조명에 대해서 공부해야겠다.
- Mental Ray나 V-Ray 같은 좀 더 고급 렌더링도..


Max OS X
Mac Book Pro (Core2 Duo 2.8GHz / 4GB RAM / 500GB HDD)
Boujou 5 + Final Cut Pro


p.s. boujou 5 풀버전 가격이 $10,000 달러다. 약 1300만원.
비전 기술 엔진 제대로 만들어서 이렇게 CG 산업에 기여도 하고, 그만큼 금전적인 보상도 얻고, 너무 멋지고 부럽다.

급 드는 생각, OpenCV와 SIFTGPU 같은 open source들을 잘 활용해서 이런 툴을 국산화 개발하면 어떨까. 요즘 다들 정부과제들도 3D 쪽으로 몰려 있던데 정부 과제지원으로 벤처기업이라도 차릴 수 있으려나. :)


Reference
[1] 2d3, http://www.2d3.com
[2] 3ds Max, http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&id=13567410