增量式(Incremental)sfm则是一边三角化(triangulation)和pnp(perspective-n-points),一边进行局部BA。这类方法在每次添加图像后都要进行一次BA,效率较低,而且由于误差累积,容易出现漂移问题;但是增量式sfm的鲁棒性较高。
增量式sfm初始化
初始化主要是指选取两张匹配的图像,设定其中一张图像的位姿为单位阵,然后通过它们之间的匹配点对估计出E矩阵,将E矩阵分解获得另一张图像的位姿。在估计出两张图像的位姿后,就可以通过三角化(triangulation)来生成三维点。
初始化后是一个循环,每次新加入一张图像。每次循环包括如下四步:
- 获取下一最佳匹配图像(匹配点对数量最多),这里记为Inext
- 对Inext进行pnp估计位姿(pose)
- 对Inext进行三角化生成三维空间点
- 对所有已生成的三维点和已估计出的位姿进行ba优化 [ceres]
对所有数据进行ba优化 [ceres]
全局优化,包括所有生成的