
SFM的一般过程如下:
第一步,对一个物体拍摄出很多图像,这些图像组成一个图像序列。每幅图像之间有一定的重合。比如下面的几幅图像是对一个建筑进行多角度拍摄,得到多张图片。




第二步,对所拍摄的图像提取出边缘、角点等关键信息。

第三步,在图像之间寻找对应的特征点进行匹配。

第四步,计算相机位置和3D点的位置。

通过上面的步骤,能得到对应的3D结构

对这个3D点云进行表面恢复并进行纹理贴图,就得到了重建的模型




注:上面的规范形式P1,P2所代表的矩阵实际理解为[R|t]。





理想情况下,在左右两幅图像中找到同名点后,连接同名点和光心会产生两条直线,这两条直线会相交于一点,这个点就是物体世界中该点的位置。但实际中,由于各种误差和噪声影响,这两条直线可能不会相交于同一点,需要进行一些特殊处理。

上面的公式中,m1表示M点在左成像平面上观测到的点位置,P1M是通过相机投影矩阵计算出来的M在左成像平面上的对应点位置(m2,P2M也是相同理解,只是所有位置是在右平面)。通过找到多组同名点,就有多个重投影误差项,我们的目的是找到这些所有重投影误差之和,使这个值最小化,在这个过程中,可以找到最优的P1和P2。找到最优的P1,P2之后,再进行位置计算。
以下是一个具体的例子。

