BundleFusion


BundleFusion논문을 소개하기 앞서, 이 논문은 Computer Vision에 관련되어있지만 지금까지와는 다른 3D vision에 관한 것입니다. 이 분야는 2D에서 주로하던 Recognition문제 보다는 Geometry문제들이 많이 포진되어있어요. 

그래서 같은 비전이지만 Machine Learning을 이용한 지능 시스템 보다는 카메라 모델을 이용한 3D reconstruction이나 Camera location tracking같은 문제들이 더 중점있게 다뤄지는게 다른점입니다.

특히 로봇분야에서 Simultaneous localization and mapping(SLAM)이란 단어로 연구되고 있는 분야이기도합니다. 요즘엔 VR, AR관련되어 더욱 중요해진 기술입니다. 


다시 말하지면, 오늘 소개할 논문은 BundleFusion이에요. 위의 동영상에도 보듯이, 3D view를 만드는데 상당히 빠르고 볼륨이 계속해서 수정되는 것을 볼 수 있죠. 그 만큼 시간이 지나도 Robust하고요. 또한 방 전체를 스캔할 수 있어서 향후 VR, AR사용에도 큰 활용도가 있을 것 같습니다.


전체적인 흐름도입니다. 우선 키넥트같은 쉽게 구할 수 있는 RGB-D센서를 사용해서 Frame당 Depth정보와 RGB정보를 얻고요. 동영상에서 보면 아이패드에 StructureIO를 붙여 사용하는 것을 볼 수 있습니다.

첫번째 단계로 센서로 받은 프레임 사이의 Correspondences를 구하고 Check하는 단계가 있습니다. 그 다음 그 Correspondences를 활용해서 카메라 Pose를 구합니다. 이 프레임웍에서 특이하게 포즈를 찾기위한 Optimization이 두번일어나는데 Local Optimization과 Global Optimization 두 단계로 나눠놓은 Hierarchical 단계로 이루어져 있습니다. 이렇게 하는 이유는 모든 프레임이 들어올 때 마다 Global Optimization으로 모든 프레임간의 회전 및 이동 관계를 계산하는 것보다 파라미터가 줄어들기 때문에 길고 큰 Scenes에서도 빠르게 작동합니다. 그리고 이 때 나온 포즈로 이전에 Correspondence를 다시 Check하는데 사용하고 목표인 볼륨을 만드는 데 사용됩니다. 볼륨을 만들 때 계산된 카메라 Pose에 따라서 물체의 볼륨을 줄이거나 늘리는 계산이 수행됩니다.

논문에서는 단계를 크게 두가지, Pose Alignment와 3D Reconstruction으로 나눠서 설명하고 또 세부적으로 Pose 예측단계에서는 Feature Correspondence Search, Hierarchical Optimization, Defining Energy Optimization, Optimization Strategy로 나눠서 설명하고,
3D Reconstruction부분은 Representation(TSDF), Volume Integration/De-integration, Reconstruction Update로 나눠서 설명합니다.

세세한 방법들은 https://arxiv.org/abs/1604.01093 여기서 확인하실 수 있습니다.

추가 - 얼마전 코드까지 공개해주셨네요.
https://github.com/niessner/BundleFusion

Reference - BundleFusion: Real-time Globally Consistent 3D Reconstruction using On-the-fly Surface Re-integration, Angela DaiMatthias NießnerMichael ZollhöferShahram IzadiChristian Theobalt