三维视觉之基础矩阵
设空间一点X在左相机坐标系中的坐标为x1=(x1,y1,z1)T,在右相机坐标系中的坐标为x2=(x2,y2,z2)T。该点在左相机成像平面的图像齐次坐标为m1=(u1,v1,1)T,在右相机成像平面的图像齐次坐标为m2=(u2,v2,1)T。
左相机的内参数矩阵为K1,右相机的内参数矩阵为K2。设左相机坐标系到右相机坐标的旋转和平移分别为R,t。那么:
x2=Rx1+t
。
根据相机的成像模型:
s1m1s2m2==K1x1K2x2
注意到:
O2X−→−−⋅(O2O1−→−−×O1X−→−−)
将这些统一到右相机坐标系下:
O2X−→−−O2O1−→−−O1X−→−−===x2tx2−t=Rx1+t−t=Rx1
代入上式可得:
x2⋅([t]×Rx1)=0
进一步可写为:
mT2K−T2[t]×RK−11m1=0
mT2Fm1=0
F=K−T2[t]×RK−11为相机的基本矩阵。
这里实际上涉及到了对极几何(Epipolar Geometry),其中O1O2X表示极平面,其中x1e1表示极线l1,x2e2表示极线l2。根据齐次坐标的原理,l1的方程为:l1=e1×m1,l2=e2×m2。l1满足:mT1l1=0,l2满足:mT2l2=0。结合基本矩阵,可得到:
l1l2==FTm2Fm1