클라우드의 데일리 리포트

SfM(Structure from Motion) 본문

카테고리 없음

SfM(Structure from Motion)

클라우드의 데일리 리포트 2023. 9. 6. 10:40
728x90
반응형

1. SfM(Structure from Motion)

연속된 2차원 이미지로부터 3차원정보를 추출하여 삼각측량 기법을 사용하여 3차원 정보를 재구성하는 것을 SFM이라 부릅니다.

 

1) Camera Calibration

카메라 영상은 3차원 공간상의 점들을 2차원 이미지 평면에 투사(persperctive projection)함으로써 얻어집니다. 핀홀(pinhole) 카메라 모델에서 좌표계 변환은 다음과 같이 모델링됩니다.

카메라 내부 파라미터는 다음과 같습니다.

초점거리(focal length) fx, fy: 렌즈 중심과 이미지 센서와의 거리, 픽셀 단위로 표현

주점(principal point) cx, cy: 카메라 렌즈의 중심

비대칭 계수 skew_c: 이미지 센서의 y축이 기울어진 정도

 

2) Correspondence Search

첫 번째 단계는 Scene overlap 즉, 이미지 간의 동일한 위치를 찾는 correspondence search이다. 이 단계의 output은 기하학적으로 검증된 image pair 들의 집합과 각 point 에 대한 image projection graph이다.

① Feature Extraction

Feature는 SFM이 여러 이미지에서 고유한 모양을 인식할 수 있도록 radiometric과 geometric 변화에 불변해야 한다. 때문에 SIFT 같은 feature descriptor 를 사용하여 feature 를 추출한다.

② Matching

각 이미지에서 추출한 feature를 기반으로 이미지 사이에서 동일한 point를 보는 부분을 찾아서 서로 matching. 이 단계까지는 기하학적인 의미가 포함되어 있지는 않다.

③ Geimetric Verification

SFM은 Epipolar geometry 관점에서 이미지 간의 feature points 를 mapping하는 transformation을 추정하여 기하학적인 일치 여부를 확인한다. 즉, 이미지 간의 matching 된 point 들로 부터 적절한 Essential/Fundamental matrix 를 찾는다는 말이다. 그리고 Essential matrix를 SVD(Single Value Decomposition)을 사용하여 linear least squares를 풀면 camera pose(Rotation, Translation) 를 구할 수 있다.

 

 

3) Incremental Reconstruction

Reconstruction 단계에서 입력은 scene graph 이고, 출력은 register된 이미지에 대한 pose estimates 와 reconstruct된 scene structure 이다.

① Initialization

SFM은 신중하게 선택된 2-view reconstruction으로 모델을 초기화한다. Reconstruction의 성능은 incremental 프로세스의 seed 위치에 따라 달라지기 때문에 초기화 작업이 매우 중요하다. 카메라 중첩이 많은 곳에서 image graph 의 dense한 위치에서 초기화하면 중복성 증가로 성능이 좋아진다. 

② Image Registration

두 이미지간 Feature의 correspondence를 추정해주었지만 3D points location은 알지 못합니다. Register 된 이미지(2D-3D correspondences)에서 triangulate된 points에 대한 feature correspondences를 사용하여 Perspective-n-Point(PnP) 문제를 해결하여 새 이미지를 현재 모델에 register할 수 있다. 다음 그림에서 x1과 x2는 두 2D 이미지 상에서 관찰하는 위치가 됩니다. 만약 오차가 없다면 x1과 x2를 연결하여 중점인 x를 구하여 3D point를 결정합니다.

 

③ Bundle Adjustment

Bundle Adjustment는 다수의 프레임에 존재하는 Visual keypoint 들의 위치를 기반으로 추정할 수 있는 3D Position과 카메라 프레임간의 3D relative motion 을 동시에 최적화하는 과정이다. 이전 단계에서 계산한 camera pose 와 3D points를 refine 하여 reprojection error 를 최소화하는 작업이다. 3D point에서 카메라 좌표계의 원점까지의 직선을 ray로 표현할 수 있고, 이러한 ray가 여러개 있을 때 'bundles of ray' 라고 표현한다. Reprojection한 위치와 이미지 상의 위치의 차이인 reprojection error 를 cost function으로 사용하여 최적화를 진행하는데, image projection 과정은 non-linear 하기 때문에 Gauss-Newton 등의 non-linear optimization 방법을 사용해야 한다.

 

 

반응형