SfM technique is trying to extract 3D information of both the camera and the scene from a sequence of images shot by cameras with known intrinsic parameters. It is also the upstream of 3D reconstruction for a dense 3D points cloud.
SfM technique is a pipeline that consists many methods we have discussed in class.
A general workflow is:
Feature point Extraction of each image
Feature matching between any two images
Reconstruction booting from the initial image pair
Register the rest of images one by one
Global bundle adjustment
A reference graph from github.com/OpenMVG
The above mentioned Reconstruction booting and Register new image can also be divided into the followed sub-pipeline:
derive fundamental matrix and essential matrix with matched features
derive camera position(T) and posture(R) from essential matrix
triangulation to generate 3D coordinate from matched feature pairs
local bundle adjustment to reduce projection shift