Review of Structure-from-Motion
Correspondence Search:
Find scene overlap in the input images, identify projection of the matched points between overlapping images.
Feature extraction --> Matching --> Geometric verification (e.g. RANSAC)
Incremental Reconstruction:
Initialization (choose the densest (has most overlapping cameras) pair of views to initialize the model)
--> Image registration (solve the Perspective-n-Point problem (2D-3D features correspondences, to estimate pose P and intrinsic parameters of cameras) to add new images to the current model) / Triangulation (introduce new scene points into the set of points, increase stability of existing model through redundancy) [Image registration and triangulation are two separate procedures, but their results are highly correlated]
--> Bundle adjustment
Scene Graph Augmentation
Multi-model geometric verification : select only non-panoramic and preferably calibrated image pairs, improve robustness of triangulation and subsequent image registrations.
Next Best View Selection
Track the number of visible points (see most triangulated points) and their distribution (uniform distribution, large covariance) in each candidate image, to minimize the reconstruction error and maximize reconstruction robustness.
Robust and Efficient Triangulation
Formulate multi-view triangulation using RANSAC to get rid of outliers.
Bundle Adjustment
Parameterization (choose robust loss function, BA) --> Filtering (after BA, we filter observations with large reprojection errors) --> Re-Triangulation (continue tracks with low observation errors and merge them, to improve the completeness of the reconstruction) --> Iterative Refinement (BA->RT->Filtering)
Redundant View Mining
After BA, we partition the unaffected scene parts into groups of highly overlapping images and parameterize each group as a single camera, to achieve a computational benefit.