基础矩阵
在计算机视觉中,基础矩阵(Fundamental matrix)F是一个3×3的矩阵,表达了立体像对的像点之间的对应关系,即描述空间中的点在两个像平面中的坐标对应关系。在对极几何中,对于立体像对中的一对同名点,它们的齐次化图像坐标分别为p与 p’, 表示一条必定经过p’的直线(极线)。这意味着立体像对的所有同名点对都满足:
F矩阵中蕴含了立体像对的两幅图像在拍摄时相互之间的空间几何关系(外参数)以及相机检校参数(内参数),包括旋转、位移、像主点坐标和焦距。因为F矩阵的秩为2,并且可以自由缩放(尺度化),所以只需7对同名点即可估算出F的值。
基础矩阵这一概念由Q. T. Luong在他那篇很有影响力的博士毕业论文中提出。Faugeras则是在1992年发表的著作中以上面的关系式给出了F矩阵的定义。尽管Longuet-Higgins提出的本质矩阵也满足类似的关系式,但本质矩阵中并不蕴含相机检校参数。本质矩阵与基础矩阵之间的关系可由下式表达:
其中K和K’分别为两个相机的内参数矩阵。
下面会给出计算基础矩阵及空间中的三维点的方法步骤。
1.1 sift特征提取及匹配
对于sift算法的原理,早在之前就已经解释过了。(链接:SIFT特征匹配算法及代码(python))
所以就不多赘述其原理了。
在这里,利用sift算法提取两张图像的角点特征,并进行匹配。即在多张图像之间建立特征关联。
1.2 RANSAC算法
RANSAC算法在此之前也说过了,指路→基于RANSAC算法的图像拼接。
在这里,ransac用于消除前一步sift特征匹配时可能会出现的错误匹配点,增强鲁棒性。
1.3 八点算法 + RANSAC
八点算法是计算基本矩阵的最简单的方法。
基本矩阵是由下述方程定义:
其中x↔x′是两幅图像的任意一对匹配点。由于每一组点的匹配提供了计算F系数的一个线性方程,当给定至少7个点(3×3的齐次矩阵减去一个尺度,以及一个秩为2的约束ÿ