在上篇文章中,介绍了三位场景中的同一个三维点在不同视角下的像点存在着一种约束关系:对极约束,基础矩阵是这种约束关系的代数表示,并且这种约束关系独立与场景的结构,只依赖与相机的内参和外参(相对位姿)。这样可以通过通过匹配的像点对计算出两幅图像的基础矩阵,然后分解基础矩阵得到相机的相对位姿。
通过匹配点对估算基础矩阵
基础矩阵表示的是图像中的像点p1到另一幅图像对极线l2的映射,有如下公式:
l2=Fp1
而和像点 P1 匹配的另一个像点 p2 必定在对极线 l2 上,所以就有:
pT2l2=pT2Fp1=0
这样仅通过匹配的点对,就可以计算出两视图的基础矩阵 F 。
基础矩阵
假设一对匹配的像点p1=[u1,v1,1]T,p2=[u2,v2,1]T,带入式子中,得到:
[u1,v1,1]⎡⎣⎢f1f4f7f2f5f8f3f6f9⎤⎦⎥⎡⎣⎢u2v21⎤⎦⎥=0
把基础矩阵 F 的各个元素当作一个向量处理
那么上面式子可以写为
[u1u2,u1v2,u1,v1u2,v1v2,v1,u2,v2,1]⋅f=0
对于其他的点对也使用同样的表示方法。这样将得到的所有方程放到一起,得到一个线性方程组( (ui,vi) 表示第 i 个特征点)