3D视觉的核心问题是恢复场景结构、相机位姿、和相机参数,而解决方式有两种,一种是off-line的sfm(structure from motion),一种on-line的slam(simultaneous localization and mapping)。Slam 与sfm的区别在于,大多数slam系统是需要提前标定相机,而sfm 则不需要提前标定(通常所说的三维重建和slam的区别,严格意义上应该是sfm 和slam的区别)。
Sfm 可以分为以下几类:Global SfM、Incremental SfM、Hybrid SfM、Distributed SfM,这里主要讲解Global SfM和ncremental SfM(主要集中在global sfm)。
Global SfM workflow:
Global sfm 的内容包括rotation averaging 和anslation averaging。
Rotation averaging
观测值:一组相机pose的相对rotation
目标:计算相机的绝对旋转
优化:L2范数,采用L2范数的原因有两个:1)估计一个好的旋转初始值 2)收敛快
理论基础:
translation averaging
观测值:同rotation averaging 一样,观测值是两一组pose之间的相对translation
目标:计算相机的绝对旋转
优化:L1范数,原因是L1 范数对噪声鲁邦
理论基础:
Translation averaging 在global sfm 中计算困难,原因如下:
Incremental SfM workflow:
增量sfm这里不准备太多的叙述,需要注意的是初始化选择像对的基准:
1) enough matching
2) big baseline
应用场景: 1) 当考虑速度不考虑精度的时候,并且当图像overlap 比较大的时候,用global sfm 可以达到理想效果,因为有更多的数据去average(Feature track based translation averaging) 2) 如果考虑精度,选择Incremental sfm ,但是在大场景下,incremental sfm会随着图像的增多,速度越来越慢,同时由于误差的累计,会出现drfit ,这种情况下可以采用Distributed SfM。 参考文献 : 1、 Rotation Averaging and Strong Duality[J].Anders Eriksson 2、 Global Structure-from-Motion and Its Application[R] 3、Linear Global Translation Estimation with Feature Tracks[J].Zhaopeng Cui