docs/sphinx/rst/software/SfM/GlobalSfM.rst
openMVG_main_SfM --sfm_engine "GLOBAL"
[GlobalACSfM]_ is based on the paper "Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion." published at ICCV 2013.
Multi-view structure from motion (SfM) estimates the position and orientation of pictures in a common 3D coordinate frame. When views are treated incrementally, this external calibration can be subject to drift, contrary to global methods that distribute residual errors evenly. Here the method propose a new global calibration approach based on the fusion of relative motions between image pairs.
Algorithm of the Global Structure from Motion
.. code-block:: c++
Require: internal camera calibration (possibly from EXIF data) Require: pairwise geometry consistent point correspondences Ensure: 3D point cloud Ensure: camera poses
compute relative pairwise rotations detect and remove false relative pairwise rotations - using composition error of triplet of relative rotations compute the global rotation - using a dense least square and approximated rotations compute relative translations - using triplet of views for stability and colinear motion support compute the global translation - integration of the relative translation directions using a l-∞ method. final structure and motion - link tracks validated per triplets and compute global structure by triangulation, - refine estimated parameter in a 2 step Bundle Adjustment - refine structure and translations - refine structure and camera parameters (rotations, translations).
The chain is designed to run on a sfm_data.json file and some pre-computed matches. The chain will only consider images with known approximate focal length. Image with invalid intrinsic id will be ignored.
.. code-block:: c++
$ openMVG_main_SfM --engine GLOBAL -i Dataset/matches/sfm_data.json -m Dataset/matches/ -o Dataset/out_Global_Reconstruction/
Arguments description:
Required parameters:
[-i|--input_file]
[-m|--matchdir]
[-o|--outdir]
Optional parameters:
[-r|--rotationAveraging]
[-t|--translationAveraging]
[-f|--refineIntrinsics] User can control exactly which parameter will be considered as constant/variable and combine them by using the '|' operator.
ADJUST_ALL -> refine all existing parameters (default)
NONE -> intrinsic parameters are held as constant
ADJUST_FOCAL_LENGTH -> refine only the focal length
ADJUST_PRINCIPAL_POINT -> refine only the principal point position
ADJUST_DISTORTION -> refine only the distortion coefficient(s) (if any)
NOTE Options can be combined thanks to '|':
ADJUST_FOCAL_LENGTH|ADJUST_PRINCIPAL_POINT -> refine the focal length & the principal point position
ADJUST_FOCAL_LENGTH|ADJUST_DISTORTION -> refine the focal length & the distortion coefficient(s) (if any)
ADJUST_PRINCIPAL_POINT|ADJUST_DISTORTION -> refine the principal point position & the distortion coefficient(s) (if any)
_[GlobalACSfM] default settings are "-r 2 -t 3".
Tips
As a dense image network is required to perform global SfM it is required to detect more Regions points per image to ensure a high probability of matching.
Please use: