今天跟着视觉SLAM十四讲 重新推导了一下2D-2D的对极几何公式,对坐标变化公式Pc2=R×Pc1+tP_{c2}=R×P_{c1}+t又有了新的认识
先放上参考链接:https://www.cnblogs.com/houkai/p/6661607.html

2D-2D对极几何
这里面到的这么一个关系:Pc2=R(Pc1T)P_{c2}=R(P_{c1}-T)(TT是两个相机光心之间的平移,注意此时是在Pc1P_{c1}的坐标系下的),感觉很难理解,细想之后,搞明白了相机在做变换时候旋转和平移的先后顺序。
我们平时用的公式Pc2=Pc1R+tP_{c2}=P_{c1}*R+t,实际上是先做了旋转,然后再在旋转后的坐标系下平移tt,这时的小tt其实对我们而言并不直观,因为我们更倾向于它在Pc1P_{c1}坐标系下的表示(我们一般会直接把Pc1P_{c1}坐标系看作世界坐标系),而TT则直观很多,它直接表示了Pc1P_{c1}Pc2P_{c2}在世界坐标系(Pc1P_{c1}坐标系)下的位移。再由公式来看:

Pc2=RPc1T=R×Pc1R×T=R×Pc1+tP_{c2}=R(P_{c1}-T)=R×P_{c1}-R×T=R×P_{c1}+t
得到:t=R×Tt=-R×T

这就更直观的看到,其实他们之间的关系就是一个旋转的关系,至于负号,R代表的是光心之间的平移,反映到点的坐标变换时,应该加个负号(例如坐标系整体右移5个单位,坐标系中的点的横坐标都会减5)

总之,我们平时用的tt,它表示的平移并不是我们直观看到的平移,而是相对与旋转之后的坐标系的平移。

搞清楚了这个,接下来就是对极几何的公式推导了,我直接手写吧:
2D-2D对极几何2D-2D对极几何2D-2D对极几何对极几何的约束:

p2TKTtp_2^TK^{-T}t^RK1p1=0RK^{-1}p_1=0

本质矩阵: E=tE=t^RR
基础矩阵: F=KTEK1F=K^{-T}EK_{-1}
则对极几何约束为: p2TFp1=0p_2^TFp_1=0
根据匹配点的像素,求出E或F,然后求出R和t。

相关文章: