들어가며
제게 작년 2021년은 3D Vision 분야에 입문하고 적응해나가는 한 해였습니다. 그동안 익힌 개념들, 사용해본 것들, 시행착오와 팁들을 다음과 같은 순서로 정리해보고자 합니다.
- 3D Reconstruction 개요 ←
- Camera parameter 기본 개념
- Intrinsic parameters calibration 따라해보기
- Extrinsic parameters calibration 따라해보기
- 사용해본 라이브러리 및 솔루션들
- 2D-3D간 좌표 변환 - 기본
- 2D-3D간 좌표 변환 - 활용
3D Reconstruction이란?
촬영 결과로부터 목표물의 3D 형상정보를 만들어내는 일

이미지 출처: https://triayaam.com/index.php/neitra-3d-pro/features/
(참고) 비슷한 용어들
문제 도메인과 초기 연구방향에 따라 서로 다른 이름들을 가지게 되었는데, 현재에 와서는 솔루션이 상당 부분 겹치는 것으로 보인다.
- Structure from Motion (SfM) - 카메라의 움직임 정보를 활용/예측하여 일련의 사진들로부터 3차원 물체의 형태를 추정하는 일
- Simultaneous Localization and Mapping (SLAM) - 공간에서 이동하면서 현재 위치와 주변 지도를 동시에 추정하는 일
- Photogrammetry - 사진들로부터 3차원 정보(높이, 거리, 부피, 형태 등)를 추출하는 일
- Registration - 서로 다른 좌표계의 데이터(image, pointcloud)를 하나의 좌표계에 맞추는 일
3D Reconstruction을 하는 이유?
- 물체간의 비교가 용이해짐
- 예) 1년 전의 나 vs 오늘의 나
- 단순 사진끼리의 비교는 촬영 부위와 각도가 충분히 일치하지 않으면 어려움