[3D CV] COLMAP SfM
COLMAP์ Structure from Motion (SfM)
SfM is the process of reconstructing 3D structure from its projections into a series of images taken from different viewpoints.
COLMAP์์๋ ์๋์ ๊ฐ์ ์ฃผ์์ฌํญ์ด ์์ด์ ๋ค๊ฐ์ง ์กฐ๊ฑด์ด ์ ์ถฉ์กฑ๋์ง ์์ผ๋ฉด 3D reconstruction ๊ฒฐ๊ณผ๊ฐ ์ข์ง ์์ต๋๋ค.
ํนํ texture ์ ๋ณด๊ฐ ๋ง์ด ์๋(ํจํด์ด ๊ฑฐ์ ์๋) ๊ฐ์ฒด๋ ํ์์ด ๋ง์ด ๋ง๊ฐ์ง์ฑ๋ก ๋ณต์๋ฉ๋๋ค.
- Texture ๊ฐ ์ข์ ์ด๋ฏธ์ง ์ฌ์ฉ
- ์ ์ฌํ ์กฐ๋ช ์กฐ๊ฑด์ ์ด๋ฏธ์ง ์ฌ์ฉ
- ์๊ฐ์ ์ผ๋ก ๋ง์ด ์ค์ฒฉ๋ ์ด๋ฏธ์ง ์ฌ์ฉ
- ๋ค์ํ viewpoints์์ ๊ด์ธกํ ์ด๋ฏธ์ง ์ฌ์ฉ
SfM์ ๋จผ์ ๋ค์ 3๊ฐ์ง๋ฅผ ์์๋๋ก ์ํํ๊ณ , scene graph๋ฅผ Incremental Reconstruction์ ๋๊ฒจ์ค๋๋ค.
Correspondence Search
- feature extraction
- matching
- geometric verification
Incremental Reconstruction
reconstruction stage์์
- input: scene graph
- outputs:
- pose estimates: $\mathcal{P}=$ { $\mathbf{P}_c \in \mathbf{SE}(3) \mid c=1โฆN_P$ } for registered images.
- the reconstructed scene structure as a set of points $\mathcal{X}=$ { $\mathbf{X}_k \in \mathbb{R}^3 \mid k=1โฆN_X$ }.
Incremental Reconstruction์ workflow๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Correspondence Search์ ๊ฒฐ๊ณผ๋ฌผ์ธ Scene Graph๋ ์ฌ๊ตฌ์ฑ ๋จ๊ณ์ ๊ธฐ์ด๊ฐ ๋๋ฉฐ, ๋ชจ๋ธ์ ์ ์คํ๊ฒ ์ ํ๋ ๋ ๊ฐ์ ๋ทฐ ์ฌ๊ตฌ์ฑ์ผ๋ก ์ด๊ธฐํํ ํ, ์ ์ง์ ์ผ๋ก ์๋ก์ด ์ด๋ฏธ์ง๋ฅผ ๋ฑ๋กํ๊ณ , ์ฌ ํฌ์ธํธ๋ฅผ ์ผ๊ฐ์ธก๋ํ๊ณ , ์์๋ผ์ด์ด๋ฅผ ํํฐ๋งํ๋ฉฐ, Bundle Adjustment (BA)์ ์ฌ์ฉํ์ฌ ์ฌ๊ตฌ์ฑ์ refineํฉ๋๋ค.
Incremental Reconstruction์ ๋จ๊ณ๋ฅผ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
Initialization, Image Registration, Triangulation, Bundle Adjustment
1. Initialization: ๋ชจ๋ธ์ ์ ์คํ๊ฒ ์ ํ๋ ๋ ๊ฐ์ ๋ทฐ(์ด๋ฏธ์ง)๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ธฐํํฉ๋๋ค. ์ฌ๊ธฐ์ โ์ด๊ธฐํโ๋, ๋ชจ๋ธ์ ์์์ ์ ์ค์ ํ๋ ๊ณผ์ ์ผ๋ก, ์ ํ๋ ๋ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๊ธฐ 3D ๊ตฌ์กฐ๋ฅผ ๋ง๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- SfM initializes the model with a carefully selected two-view reconstruction.
- Choosing a suitable initial pair is critical, since the reconstruction may never recover from a bad initialization.
- reconstruction performance์ robustness, accuracy, performance๋ incremental process์ seed location์ ์ํด ์ข์ฐ๋ฉ๋๋ค.
- image graph์์ ๋ง์ overlapping cameras๋ฅผ ๊ฐ์ง๋ dense location์์ initailize๋ฅผ ํ๋ฉด, increased redundancy์ ์ํด ๋ robustํ๊ณ accurateํ reconstruction์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ฆ, ์นด๋ฉ๋ผ ์ค์ฒฉ์ด ๋ง์ ๊ณณ์์ image graph ์ denseํ ์์น์์ ์ด๊ธฐํํ๋ฉด ์ค๋ณต์ฑ ์ฆ๊ฐ๋ก ์ฑ๋ฅ์ด ์ข์์ง๋๋ค.
- ๋ฐ๋ฉด์ ์นด๋ฉ๋ผ๊ฐ ๋ง์ด ๊ฒน์น์ง ์๋ sparser location์์ initialize๋ฅผ ํ๋ฉด, BAs์์ ๋ค๋ค์ผํ points๊ฐ ์ ์ด์ ธ์ sparser problems์ด ๋๋ฏ๋ก reconstruction process์ runtime์ด ์งง์์ง๋๋ค.
2. Image Registration: ๊ธฐํํ์ ์ฌ๊ตฌ์ฑ์ผ๋ก ์์ํ์ฌ, ์๋ก์ด ์ด๋ฏธ์ง๋ ์ด๋ฏธ ๋ฑ๋ก๋ ์ด๋ฏธ์ง์ ์ผ๊ฐ ์ธก๋๋ ์ ์ ๋ํ ํน์ง ๋์์ ์ฌ์ฉํ์ฌ Perspective-n-Point (PnP) ๋ฌธ์ ๋ฅผ ํด๊ฒฐํจ์ผ๋ก์จ ํ์ฌ ๋ชจ๋ธ์ ๋ฑ๋ก๋ ์ ์์ต๋๋ค (2D-3D ๋์).
- PnP ๋ฌธ์ ๋ ํฌ์ฆ $\mathbf{P}_c $์, uncalibrated ์นด๋ฉ๋ผ์ ๊ฒฝ์ฐ, ๊ทธ ๋ด๋ถ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ์ ํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
- ๋ฐ๋ผ์ ์งํฉ $\mathcal{P} $๋ ์๋ก ๋ฑ๋ก๋ ์ด๋ฏธ์ง์ ํฌ์ฆ $\mathbf{P}_c $์ ์ํด ํ์ฅ๋ฉ๋๋ค.
- 2D-3D ๋์์ด ์ข ์ข outlier๋ก ์ค์ผ๋์ด ์๊ธฐ ๋๋ฌธ์, calibrated ์นด๋ฉ๋ผ์ ํฌ์ฆ๋ ์ผ๋ฐ์ ์ผ๋ก RANSAC๊ณผ a minimal pose solver๋ฅผ ์ฌ์ฉํ์ฌ ์ถ์ ๋ฉ๋๋ค.
- uncalibrated ์นด๋ฉ๋ผ์ ๊ฒฝ์ฐ, ๋ค์ํ minimal solvers ๋๋ sampling-based approaches๊ฐ ์กด์ฌํฉ๋๋ค.
- ์ฐ๋ฆฌ๋ ์ ํํ ํฌ์ฆ ์ถ์ ๊ณผ ์ ๋ขฐํ ์ ์๋ ์ผ๊ฐ ์ธก๋์ ์ํด ์๋ก์ด ๊ฒฌ๊ณ ํ ๋ค์ ์ต์ ์ด๋ฏธ์ง ์ ํ ๋ฐฉ๋ฒ์ Sec. 4.2์์ ์ ์ํฉ๋๋ค.
3. Triangulation: ์๋ก์ด ์ด๋ฏธ์ง๋ค์ด ๋ฑ๋ก๋ ๋, 3D ์ฌ ํฌ์ธํธ๋ค์ด ์ผ๊ฐ์ธก๋์ ํตํด ๊ณ์ฐ๋ฉ๋๋ค. ์ผ๊ฐ์ธก๋์ ๋ ๊ฐ ์ด์์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ฌ 3D ๊ณต๊ฐ์ ์ ์ ๊ณ์ฐํ๋ ๊ธฐ๋ฒ์ ๋๋ค.
- ์๋ก ๋ฑ๋ก๋ ์ด๋ฏธ์ง๋ ๊ธฐ์กด์ ์ฅ๋ฉด ์ ๋ค์ ๊ด์ฐฐํด์ผ ํฉ๋๋ค.
- ๋ํ, ์ผ๊ฐ ์ธก๋์ ํตํด ์ ์งํฉ $\mathcal{X}$์ ํ์ฅํจ์ผ๋ก์จ scene coverage๋ฅผ ์ฆ๊ฐ์ํฌ ์๋ ์์ต๋๋ค.
- ์๋ก์ด ์ฅ๋ฉด ์ $\mathbf{X}_k$๋ ๋ค๋ฅธ ์์ ์์ ์๋ก์ด ์ฅ๋ฉด ๋ถ๋ถ์ ์ปค๋ฒํ๋ ์ถ๊ฐ ์ด๋ฏธ์ง๊ฐ ์ต์ ํ๋ ์ด์ ๋ฑ๋ก๋๋ฉด ์ผ๊ฐ ์ธก๋๋์ด $\mathcal{X}$์ ์ถ๊ฐ๋ ์ ์์ต๋๋ค.
- ์ผ๊ฐ ์ธก๋์ ์ค๋ณต์ฑ์ ํตํด ๊ธฐ์กด ๋ชจ๋ธ์ ์์ ์ฑ์ ์ฆ๊ฐ์ํค๊ณ ์ถ๊ฐ์ ์ธ 2D-3D ๋์์ ์ ๊ณตํจ์ผ๋ก์จ ์๋ก์ด ์ด๋ฏธ์ง ๋ฑ๋ก์ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ๋๋ฌธ์ SfM์์ ์ค์ํ ๋จ๊ณ์ ๋๋ค.
- ๋ค์ค ๋ทฐ ์ผ๊ฐ ์ธก๋์ ์ํ ๋ค์ํ ๋ฐฉ๋ฒ๋ค์ด ์กด์ฌํฉ๋๋ค.
- ์ด๋ฌํ ๋ฐฉ๋ฒ๋ค์ SfM์์ ์ฌ์ฉํ๊ธฐ์๋ ์ ํ๋ robustness ๋๋ high computational cost์ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ผ๋ฉฐ, ์ฐ๋ฆฌ๋ Sec. 4.3์์ ๊ฐ์ธํ๊ณ ํจ์จ์ ์ธ ์ผ๊ฐ ์ธก๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค.
Image registration๊ณผ triangulation์ ๋ณ๊ฐ์ ์ ์ฐจ์ด์ง๋ง, ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ ๋งค์ฐ ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋์ด ์์ต๋๋ค.
- ์นด๋ฉ๋ผ ํฌ์ฆ์ ๋ถํ์ค์ฑ์ triangulated ์ ๋ค์ ์ ํ๋๊ณ ,
- ๋ฐ๋๋ก triangulated ์ ๋ค์ ๋ถํ์ค์ฑ๋ ์นด๋ฉ๋ผ ํฌ์ฆ์ ์ํฅ์ ๋ฏธ์น๋ฉฐ,
- ์ถ๊ฐ์ ์ธ triangulations์ ์ค๋ณต์ฑ์ ์ฆ๊ฐ์์ผ ์ด๊ธฐ ์นด๋ฉ๋ผ ํฌ์ฆ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- further refinement๊ฐ ์์ผ๋ฉด, SfM์ ๋ณดํต ๋น ๋ฅด๊ฒ ๋ณต๊ตฌ ๋ถ๊ฐ๋ฅํ ์ํ๋ก driftํฉ๋๋ค.
- BA๋ futher refinement๋ฅผ ํด์ค๋๋ค.
4. Bundle Adjustment, BA: ์ ์ฒด ์ฌ๊ตฌ์ฑ ๊ฒฐ๊ณผ๋ฅผ ์ต์ ํํ์ฌ ์ ํ๋๋ฅผ ๋์ด๋ ๊ณผ์ ์ ๋๋ค. BA๋ ์ฌ๋ฌ ๋ทฐ๋ก๋ถํฐ ์ป์ด์ง ํฌ์ธํธ๋ค์ ์์น์ ์นด๋ฉ๋ผ ๋งค๊ฐ๋ณ์๋ฅผ ๋์์ ์กฐ์ ํ์ฌ ์ค๋ฅ๋ฅผ ์ต์ํํฉ๋๋ค.
- BA๋ ์นด๋ฉ๋ผ ํ๋ผ๋ฏธํฐ(ํฌ์ฆ) $\mathbf{P}_c$์ ์ ํ๋ผ๋ฏธํฐ $\mathbf{X}_k$๋ฅผ ๋์์ non-linear refinement๋ฅผ ํ์ฌ reprojection error(์ฌํฌ์ ์ค์ฐจ)๋ฅผ ์ต์ํํ๋ ๊ธฐ๋ฒ์ ๋๋ค.
- $\pi$: scene points๋ฅผ image space๋ก projectํ๋ function.
- $\rho_k$: outliers๋ฅผ ์ ์ฌ์ ์ผ๋ก down-weight ํ๊ธฐ ์ํ loss function.
BA๋ ์ด์ ๋จ๊ณ์์ ๊ณ์ฐํ 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 ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Challenge
ํ์ฌ ์ต์ฒจ๋จ SfM ์๊ณ ๋ฆฌ์ฆ์ ๋๊ท๋ชจ Internet photo collections์์ ๋ค์ํ ๋ณต์กํ ์ด๋ฏธ์ง ๋ถํฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ง๋ง, completeness์ robustness ์ธก๋ฉด์์ ์์ ํ ๋ง์กฑ์ค๋ฌ์ด ๊ฒฐ๊ณผ๋ฅผ ์์ฃผ ๋ด์ง ๋ชปํฉ๋๋ค. ์ข ์ข ์์คํ ์ ๊ฒฝํ์ ์ผ๋ก ๋ฑ๋ก ๊ฐ๋ฅํด์ผ ํ๋ ๋ง์ ์ด๋ฏธ์ง๋ฅผ ๋ฑ๋กํ์ง ๋ชปํ๊ฑฐ๋, mis-registrations ๋๋ drift๋ก ์ธํด broken models์ ์์ฑํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์์ธ์ correspondence search๊ฐ ๋ถ์์ ํ scene graph๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, matching approximations๋ก ์ธํด ์์ ํ ๋ชจ๋ธ์ ํ์ํ ์ฐ๊ฒฐ์ฑ์ ์ ๊ณตํ์ง ๋ชปํ๊ฑฐ๋ ์ ๋ขฐํ ์ ์๋ ์ถ์ ์ ์ํ ์ถฉ๋ถํ redundancy๋ฅผ ์ ๊ณตํ์ง ๋ชปํฉ๋๋ค.
๋ ๋ฒ์งธ ์์ธ์ reconstruction ๋จ๊ณ์์ scene structure๊ฐ ๋๋ฝ๋๊ฑฐ๋ ๋ถ์ ํํด์ images๋ฅผ registerํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ์ผ ์ ์์ต๋๋ค.
Image registration๊ณผ triangulation์ ์ํธ๋ณด์์ ๊ด๊ณ์ ์์ด,
- images๋ ๊ธฐ์กด scene structure์๋ง register๋ ์ ์๊ณ ,
- scene structure๋ registered images์์๋ง triangulate๋ ์ ์์ต๋๋ค.
Incremental reconstruction ๊ณผ์ ์์ ๊ฐ ๋จ๊ณ์์ accuracy์ completeness๋ฅผ ๊ทน๋ํํ๋ ๊ฒ์ด SfM์ ์ฃผ์ ๊ณผ์ ์ ๋๋ค.
๋ณธ ๋ ผ๋ฌธ์์๋ ์ด ๊ณผ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํ์ฌ ์ต์ฒจ๋จ ๊ธฐ์ ์ ๋นํด completeness, robustness, accuracy ์ธก๋ฉด์์ ๊ฒฐ๊ณผ๋ฅผ ํฌ๊ฒ ๊ฐ์ ํ๋ฉด์ ํจ์จ์ฑ์ ๋์์ต๋๋ค (Sec. 5).
Contribution
๋ณธ ํ์ดํผ์์ ์ฃผ์ฅํ๊ณ ์ ํ๋ ๋ฐ๋, SfM์ main challenges๋ฅผ ํธ๋ ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ์ ์ ์ํ๋ ๊ฒ์ ๋๋ค.
ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋ ๋ณผ ์ ์์ต๋๋ค.
- Corresspondence search๋ฅผ ์ํ๊ฒ ํ์ฌ Scene Graph๋ฅผ ๋ณด๊ฐํ์ฌ, Corresspondence search์ ๋ค์ ์คํ ์ธ Incremental Reconstruction์ ์ข์ Scene Graph๋ฅผ ๋๊ฒจ์ค ์ ์๋๋ก ํ๊ฑฐ๋
- Scene Graph์ ์ถ๊ฐ๋๋ ์๋ก์ด ์ด๋ฏธ์ง์ Image Registration๊ณผ Traingulation์ ์ํ๊ฒ ํ๊ฑฐ๋
๋ณธ ํ์ดํผ์์๋ ์ด์ ๋ํ ๋ค์ 5๊ฐ์ง Contribution์ ์ ์ํฉ๋๋ค.
Scene Graph Augmentation, Next Best View Selection, Robust and Efficient Triangulation, Bundle Adjustment, Redundant View Mining
-
Scene Graph Augmentation: ์ด๊ธฐํ ๋ฐ triangulation ๊ตฌ์ฑ ์์์ robustness๋ฅผ ํฅ์์ํค๋ ์ ๋ณด๋ฅผ ์ถ๊ฐํ์ฌ scene graph๋ฅผ ๋ณด๊ฐํ๋ geometric verification ์ ๋ต์ ์๊ฐํฉ๋๋ค.
-
Next Best View Selection: incremental reconstruction ๊ณผ์ ์ robustness์ accuracy๋ฅผ ์ต๋ํํ๋ next best view selection ๋ฐฉ๋ฒ์ ๋๋ค.
-
Robust and Efficient Triangulation: ๊ธฐ์กด ์ต์ฒจ๋จ ๊ธฐ๋ฒ๋ณด๋ค ๋ฎ์ ๊ณ์ฐ ๋น์ฉ์ผ๋ก ํจ์ฌ ๋ completeํ scene structure๋ฅผ ์์ฑํ๋ robust triangulation ๋ฐฉ๋ฒ์ ๋๋ค.
-
Bundle Adjustment: drift ํจ๊ณผ๋ฅผ ์ํํ์ฌ completeness์ accuracy๋ฅผ ํฌ๊ฒ ํฅ์์ํค๋ iterative BA, retriangulation, ๋ฐ outlier filtering ์ ๋ต์ ๋๋ค.
-
Redundant View Mining: redundant view mining์ ํตํ dense photo collections์ ๋ํ ๋ ํจ์จ์ ์ธ BA parameterization์ ๋๋ค.
- redundant view mining์ 3D ์ฌ๊ตฌ์ฑ ์์ ์์ ์ค๋ณต๋ ๋ทฐ(์ด๋ฏธ์ง)๋ฅผ ์ฐพ์๋ด๊ณ ํ์ฉํ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค.
- ์ด๋ robustness์ completeness ์ธก๋ฉด์์ ํ์ฌ ์ต์ฒจ๋จ ๊ธฐ๋ฒ์ ๋ช ํํ ๋ฅ๊ฐํ๋ฉด์๋ ํจ์จ์ฑ์ ์ ์งํ๋ ์์คํ ์ ๊ฒฐ๊ณผ๋ก ๋์ถํฉ๋๋ค.
Reference
-
Structure-from-Motion Revisited
- COLMAP์ SfM์ ์ค๋ช ํ๋ CVPR paper
-
- ์ข์ ๋ธ๋ก๊ทธ ํฌ์คํธ ์์ฑํด ์ฃผ์ ์ ๊ฐ์ฌ์ ์ธ์ฌ๋ฅผ ๋๋ฆฝ๋๋ค.
-
- ๊น๋ํ ์ ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
Leave a comment