๋ณธ ํฌ์คํ ์์๋ visual localization์ ํ์์ ์ธ 2D ์์์ผ๋ก 3D ์ ๋ณด๋ฅผ ์ถ์ถํ๋ SFM (Structure From Motion) ์ ๋ํด ์ต๋ํ ์์์์ด ๊ฐ ๋จ๊ณ์ ๋ชฉ์ ๊ณผ ์๋ฏธ์ ์ง์คํ์ฌ ์๊ฐํ๋ ค ํ๋ค
SFM์ GUI๊ฐ ์๋ ๋ฒ์ฉ SFM (Structure From Motion), MVS (Multi View Stereo) ํ์ดํ๋ผ์ธ์ธ COLMAP ๋ฑ์ visual localization task ์์ ์ฌ์ฉ๋๋ค. COLMAP์ ๊ฒฝ์ฐ ์ ๋ ฌ๋ ๋๋ ์ ๋ ฌ๋์ง ์์ ์ด๋ฏธ์ง์ reconstruction ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.(Multi-view ์ด๋ฏธ์ง๋ค๋ง ๋ฃ์ผ๋ฉด camera pose + 3D shape์ ๋ณต์ํด์ค๋๋ค.)
* SFM๊ณผ ์ ์ฌํ ์๊ณ ๋ฆฌ์ฆ?
SFM๊ณผ ์ ์ฌํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ง์ด ์๋ ค์ ธ ์๋ SLAM, Visual Odometry ๋ฑ์ด ์๋ค. ์ฐจ์ด์ ์ผ๋ก๋ Visual Odometry์ loop closure์ด ์ถ๊ฐ๋๋ฉด SLAM์ด๊ณ , SLAM์์ real-time์ผ๋ก ๋์ํ์ง ์์๋ ๋๋ ๊ฒฝ์ฐ์ SFM ์๊ณ ๋ฆฌ์ฆ์ด๋ค. SLAM์ loop closure ๊ธฐ๋ฅ์ด ์์ผ๋ฉฐ real-time์ผ๋ก ๋์ํด์ผํ๊ธฐ ๋๋ฌธ์ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ๋ฒผ์ด ํน์ง์ด ์๊ณ , SFM์ real-time์ผ๋ก ๋์ํ์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ๋ ์ค์ฐจ๊ฐ ์ ๊ณ ์ฐ์ฐ๋์ด ๋ง์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ฆ ๋ ์๊ณ ๋ฆฌ์ฆ์ output์ ๋์ผํ์ง๋ง ๋ก๋ด, ์์จ์ฃผํ์ฐจ, AR/VR ๊ธฐ๊ธฐ ๋ฑ์์ ์ฌ์ฉ์์ ์์น๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ ํ ๋๋ SLAM์ด ์ ์ ํ๊ณ , 3D ๊ณต๊ฐ์ ๋ณต์ํ ๋๋ SFM์ด ์ ์ ํ๋ค๊ณ ๋ณผ ์ ์๋ค.
* COLMAP์ SFM ์ 2016๋ CVPR์ "Structure-from-Motion Revisited" ๋ ผ๋ฌธ์ ์ค๋ช ๋์ด ์์
SFM (Structure From Motion)
SFM (Structure From Motion)์ ๋์ผํ ๊ฐ์ฒด๋ฅผ ๋ค๋ฅธ ์์ ์์ ์ค์ฒฉ๋๋๋ก ์ฐ์ multi-view ์ด๋ฏธ์ง๋ค๋ก๋ถํฐ 3D structure์ camera pose๋ฅผ ๋ณต์ํ๋ ํ๋ก์ธ์ค๋ก ํํ ์๋ ์ธ๊ฐ์ง ๋จ๊ณ๋ฅผ ๊ฐ์ง๋ค.
- Feature detection and extraction
- Feature matching and geometric verification
- Structure and motion reconstruction
๊ทธ๋ฆฌ๊ณ COLMAP์์๋ ์๋์ ๊ฐ์ ์ฃผ์์ฌํญ์ด ์์ด์ ๋ค๊ฐ์ง ์กฐ๊ฑด์ด ์ ์ถฉ์กฑ๋์ง ์์ผ๋ฉด 3D reconstruction ๊ฒฐ๊ณผ๊ฐ ์ข์ง ์๋ค. ํนํ texture ์ ๋ณด๊ฐ ๋ง์ด ์๋(ํจํด์ด ๊ฑฐ์ ์๋) ๊ฐ์ฒด๋ ํ์์ด ๋ง์ด ๋ง๊ฐ์ง์ฑ๋ก ๋ณต์๋๋ค.
- Texture ๊ฐ ์ข์ ์ด๋ฏธ์ง ์ฌ์ฉ
- ์ ์ฌํ ์กฐ๋ช ์กฐ๊ฑด์ ์ด๋ฏธ์ง ์ฌ์ฉ
- ์๊ฐ์ ์ผ๋ก ๋ง์ด ์ค์ฒฉ๋ ์ด๋ฏธ์ง ์ฌ์ฉ
- ๋ค์ํ viewpoints์์ ๊ด์ธกํ ์ด๋ฏธ์ง ์ฌ์ฉ
Incremental Structure-from-Motion pipline
COLMAP์์๋ Incremental Structure-from-Motion ๋ฐฉ์์ ์ ์ํ๊ณ , ์ด๋ itreativeํ reconstruction ๊ตฌ์ฑ ์์๊ฐ ์๋ sequential ํ๋ก์ธ์ค ํ์ดํ๋ผ์ธ์ด๋ค.
์์ฝํ๋ฉด input images์์ ๊ณ ์ ํ feature๋ฅผ ๋ฝ๊ณ (Feature Extraction) ์ด๋ฏธ์ง ๊ฐ์ ์ ์ฌํ feature ์์น๋ฅผ matching ์ํค๊ณ Epipolar geometry ๊ด์ ์์ ์ด๋ฏธ์ง ๊ฐ์ feature์ ๋์ ๊ด๊ณ๋ฅผ ๋ณธ๋ค. ์ดํ Incremental Reconstruction ๋จ๊ณ์์ ์ผ๊ฐ ์ธก๋๋ฒ์ ํตํด 3D ์ขํ๋ฅผ ์ถ์ ํ๊ณ (Triangulation), Bundle Adjustment์ Outlier Filtering์ผ๋ก ์๋ฌ๋ฅผ ์ต์ํํ๋ค. ๋ง์ง๋ง์ผ๋ก ์ด๋ฌํ ๊ณผ์ ์ ์๋ก์ด ์ด๋ฏธ์ง๊ฐ ๋ค์ด์ฌ ๋๋ง๋ค ๋ฐ๋ณตํด์ camera pose์ 3D ์ขํ๋ฅผ ์ต์ข ์ ์ผ๋ก ์ถ์ ํ๋ค.
1. Correspondence Search
์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ Scene overlap ์ฆ, ์ด๋ฏธ์ง ๊ฐ์ ๋์ผํ ์์น๋ฅผ ์ฐพ๋ correspondence search์ด๋ค. ์ด ๋จ๊ณ์ output์ ๊ธฐํํ์ ์ผ๋ก ๊ฒ์ฆ๋ image pair ๋ค์ ์งํฉ๊ณผ ๊ฐ point ์ ๋ํ image projection graph์ด๋ค.
1.1. Feature Extraction
Feature๋ SFM์ด ์ฌ๋ฌ ์ด๋ฏธ์ง์์ ๊ณ ์ ํ ๋ชจ์์ ์ธ์ํ ์ ์๋๋ก radiometric๊ณผ geometric ๋ณํ์ ๋ถ๋ณํด์ผ ํ๋ค. ๋๋ฌธ์ SIFT ๊ฐ์ feature descriptor ๋ฅผ ์ฌ์ฉํ์ฌ feature ๋ฅผ ์ถ์ถํ๋ค.
1.2. Matching
๊ฐ ์ด๋ฏธ์ง์์ ์ถ์ถํ feature๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฏธ์ง ์ฌ์ด์์ ๋์ผํ point๋ฅผ ๋ณด๋ ๋ถ๋ถ์ ์ฐพ์์ ์๋ก matching. ์ด ๋จ๊ณ๊น์ง๋ ๊ธฐํํ์ ์ธ ์๋ฏธ๊ฐ ํฌํจ๋์ด ์์ง๋ ์๋ค.
1.3. Geometric Verification
Feature matching์ ํตํด ๋งค์นญํ ํฌ์ธํธ๋ค์ ๋ชจ์๋ง ๋ณด๊ณ ๋งค์นญํ ๊ฒฐ๊ณผ์ด๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ๋์ผํ ํฌ์ธํธ ๋ผ๋ฆฌ ๋งค์นญ๋์๋ค๋ ๋ณด์ฅ์ ์์๋ค. ๊ต์ฅํ ์ ์ฌํ๊ฒ ๋ณด์ด๋ ๋ถ๋ถ์ด๋ฉด ์ค์ ๋ก ๋ค๋ฅธ ์์น์ด์ง๋ง ๋งค์นญ์ด ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ SFM์ Epipolar geometry ๊ด์ ์์ ์ด๋ฏธ์ง ๊ฐ์ feature points ๋ฅผ mappingํ๋ transformation์ ์ถ์ ํ์ฌ ๊ธฐํํ์ ์ธ ์ผ์น ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. Epipolar geometry์์ essential matrix E (calibrated) ๋๋ fumdamental matrix F (uncalibrated) ๋ฅผ ํตํด ์์ง์ด๋ ์นด๋ฉ๋ผ์ ๋ํ ๊ด๊ณ๋ฅผ ํํํ ์ ์๋ค. ์ ํจํ transformation์ด ์ด๋ฏธ์ง ์ฌ์ด์ ์ถฉ๋ถํ ์์ feature๋ฅผ mappingํ๋ฉด ๊ธฐํํ์ ์ผ๋ก ๊ฒ์ฆ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ค. ์ฆ, ์ด๋ฏธ์ง ๊ฐ์ matching ๋ point ๋ค๋ก ๋ถํฐ ์ ์ ํ Essential/Fundamental matrix ๋ฅผ ์ฐพ๋๋ค๋ ๋ง์ด๋ค. ๊ทธ๋ฆฌ๊ณ Essential matrix๋ฅผ SVD(Single Value Decomposition)์ ์ฌ์ฉํ์ฌ linear least squares๋ฅผ ํ๋ฉด camera pose(Rotation, Translation) ๋ฅผ ๊ตฌํ ์ ์๋ค.
Matching ์ผ๋ก๋ถํฐ์ correspondence๋ ์ข ์ข outlier๋ก ์ค์ผ๋๊ธฐ ๋๋ฌธ์ RANSAC ๋ฑ์ robust estimation ๊ธฐ์ ์ด ํ์ํ๋ค. RANSAC ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ์ค์์ ์ต๋ inlier๋ฅผ ๊ฐ๋ Essential(๋๋ Fundamental) matrix๋ฅผ ์ ํํ๋ค. ์ด ๋จ๊ณ์์ output์ ๊ธฐํํ์ ๊ฒ์ฆ์ด ์๋ฃ๋ image pair set๊ณผ ์ด๋ค ์ฌ์ด์ inlier correspondence์ ์ด๋ค์ geometric relation ์ด๋ค.
2. Incremental Reconstruction
Reconstruction ๋จ๊ณ์์ ์ ๋ ฅ์ scene graph ์ด๊ณ , ์ถ๋ ฅ์ register๋ ์ด๋ฏธ์ง์ ๋ํ pose estimates ์ reconstruct๋ scene structure ์ด๋ค.
2.1. Initialization
SFM์ ์ ์คํ๊ฒ ์ ํ๋ 2-view reconstruction์ผ๋ก ๋ชจ๋ธ์ ์ด๊ธฐํํ๋ค. Reconstruction์ ์ฑ๋ฅ์ incremental ํ๋ก์ธ์ค์ seed ์์น์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ด๊ธฐํ ์์ ์ด ๋งค์ฐ ์ค์ํ๋ค. ์นด๋ฉ๋ผ ์ค์ฒฉ์ด ๋ง์ ๊ณณ์์ image graph ์ denseํ ์์น์์ ์ด๊ธฐํํ๋ฉด ์ค๋ณต์ฑ ์ฆ๊ฐ๋ก ์ฑ๋ฅ์ด ์ข์์ง๋ค.
2.2. Image Registration
Register ๋ ์ด๋ฏธ์ง(2D-3D correspondences)์์ triangulate๋ points์ ๋ํ feature correspondences๋ฅผ ์ฌ์ฉํ์ฌ Perspective-n-Point(PnP) ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ฌ ์ ์ด๋ฏธ์ง๋ฅผ ํ์ฌ ๋ชจ๋ธ์ registerํ ์ ์๋ค. PnP ๋ฌธ์ ์๋ pose์ calibrate ๋์ง ์์ ์นด๋ฉ๋ผ์ intrinsic ํ๋ผ๋ฏธํฐ ์ถ์ ์ด ํฌํจ๋๋ค.
*Perspective-n-Point (PnP) : Camera intrinsic parameter, 3D points์ ์ด์ ๋์ํ๋ ์ด๋ฏธ์ง์์ 2D projection points๊ฐ ์ฃผ์ด์ง ๋ camera pose๋ฅผ ๊ตฌํ๋ ๋ฌธ์
2.3. Triangulation
์ค์ฐจ๋ก ์ธํด ๊ฐ ์ด๋ฏธ์ง ์์ ๋งค์นญ๋ ๋ point์์ ray๋ฅผ ์๋ฉด 3์ฐจ์ ์์ ์ ํํ๊ฒ ์ผ์นํ์ง ์๋๋ค. ์ด ๋ ์ผ๊ฐ ์ธก๋์ ํตํด 3์ฐจ์ ์์์ x1๊ณผ x2์ ์ค์ ์ธ x๋ฅผ ๊ตฌํ๋ค.
์ผ๊ฐ ์ธก๋์ ์ค๋ณต์ฑ์ ํตํด ๊ธฐ์กด ๋ชจ๋ธ์ ์์ ์ฑ์ ๋์ด๊ณ ์ถ๊ฐ 2D-3D correspondece๋ฅผ ์ ๊ณตํ์ฌ ์ ์ด๋ฏธ์ง๋ฅผ ๋ฑ๋กํ ์ ์๊ธฐ ๋๋ฌธ์ SFM์์ ์ค์ํ ๋จ๊ณ์ด๋ค.
2.4. Bundle Adjustment
์ด์ ๋จ๊ณ์์ ๊ณ์ฐํ camera pose ์ 3D points๋ฅผ refine ํ์ฌ reprojection error ๋ฅผ ์ต์ํํ๋ ์์ ์ด๋ค. 3D point(landmark)์์ ์นด๋ฉ๋ผ ์ขํ๊ณ์ ์์ ๊น์ง์ ์ง์ ์ ray๋ก ํํํ ์ ์๊ณ , ์ด๋ฌํ ray๊ฐ ์ฌ๋ฌ๊ฐ ์์ ๋ 'bundles of ray' ๋ผ๊ณ ํํํ๋ค. Reprojectionํ ์์น์ ์ด๋ฏธ์ง ์์ ์์น์ ์ฐจ์ด์ธ reprojection error ๋ฅผ cost function์ผ๋ก ์ฌ์ฉํ์ฌ ์ต์ ํ๋ฅผ ์งํํ๋๋ฐ, image projection ๊ณผ์ ์ non-linear ํ๊ธฐ ๋๋ฌธ์ Gauss-Newton ๋ฑ์ non-linear optimization ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค.
'๐ Theory > 3D vision & Graphics' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CV] 3D Geometry ์ค๋ช (0) | 2022.04.04 |
---|---|
[Graphics] 3D model์ material ์์ฑ / obj, mtl ํ์ผ (0) | 2022.04.04 |