重新看了一遍华盛顿大学的SFM重建的过程,对该过程果然又有新的理解。
文章提出的方法如下:
(1)提取SIFT特征点;
(2)每两幅图像之间进行SIFT特征点进行匹配; 匹配过程中首先采用了KD-TREE的方法对最近邻的特征点进行匹配,然后采用了多视角几何进行限制。值得注意的是多视角的几何限制,在多视角的图像匹配中经常出现(Geometry constriant)。
在两视角的几何中,对应点应该满足方程 pFp'=0,其中F是本征矩阵。本征矩阵有7个独立参数。这7个独立参数是什么?估计F的方法常用的有5点法和8点法。8点法的原理还没有弄明就是利用线性变换法的原理进行求解。
本文中采用了RANSAC的方法进行对F进行估计,每一步迭代的过程中,利用8点法进行求解。
估计出本征矩阵的目的是为了对之前求得的匹配进行约束,得到的匹配成为几何一致匹配,不同图像上的几何一致匹配形成了一个TRACK(其实就是一个空间点在不同的图像上的投影点之间的匹配)
(3)选取两张图像进行重建。选取图像的标准是,匹配的特征点要足够多,但同时BASELINE要足够大。为此,先采用RANSAC求得两两图像之间的HOMEGRAPHY,得到内点,选取内点数最少,但又不少于100个的图像对作为原始输入。个人觉得这样做主要是为了防止两幅图像的视角过于接近,防止出现退化情况。
得到了原始图像后,采用5点法求出两幅图像相对的外参数以及相机的内参数,然后采用BUNDLER AJUSTMENT进行优化,值得注意的是BUNDLER AJUSTMENT优化的思想贯穿于整个重建过程中。
根据得到的参数以及两幅图像的匹配关系求出空间点坐标。注意,图像上的点和空间点是一对多的关系,因此至少需要两幅图像才能求出空间点的坐标。
(4)添加其他的图片,要求是图像含有与重建出三维点的匹配最多。这样就成了已知三维点机器二维图像上的对应点,标定相近内外参数的问题。
首先采用KLT方法,对相机的内外参数进行初始之估计,然后采用BUNDLER AJUSTMENT进行优化。注意BUNDLER AJUSTMENT不是全局最优解,因此需要KLT提供可靠的参数初始值以避免局部最优化。
(5)将该图像上其他的,而且是已经重建过的图像上也有的特征点添加到重建过程中进行重建。重建结束后进行一个全局的BUNDLER AJUSTMENT。