对极几何
描述两个视图之间的射影几何关系,计算相机不同位置的变换关系。
对极约束

以上图为例,I1和I2是两帧图像,它们之间的相机运动关系是R,t。O1和O2分别是这两个位姿处的光心,设通过特征匹配等手段确定p1和p2是同一个特征点在两幅图像上的投影,设它为[X,Y,Z]T。定义以下术语:
对极平面:O1,O2,P所在的平面,显然,p1和p2应该也在这个面上;
基线:O1,O2的连线;
极点:基线与像平面I1和I2的交点e1和e2;
极线:对极平面与两个像平面的交线l1和l2。
由小孔成像模型知
s1p1=KP,s2p2=K(RP+t)
其中s1和s2是缩放系数,如果将p1和p2写成齐次坐标,可以写成up to scale(在某个尺度下成立)的等式
p1=KP,p2=K(RP+t)
像素点的相机归一化的坐标
x1=K−1p1,x1=K−1p2(1)
带入得
x2=Rx1+t
t×x2=t×Rx1+t×t
两端同时左乘t,做外积
t×x2=t×Rx1+t×t
其中t×t=0,两边同时左乘x2T
x2T⋅t×x2=x2T⋅t×Rx1
左侧为0,得出
x2T⋅t×Rx1=0
如果将p1,p2代入得
p2TK−T⋅t×RK−1p1=0
以上两式都叫做对极约束。令
E=t×R, F=K−TEK−1, p2TFp1=x2TEx1=0
其中E称为本质矩阵,F称为基础矩阵。
本质矩阵及求解
本征矩阵具有以下性质
- 由于对极约束是一侧为0,本征矩阵乘以任何常数对极约束都成立,E在不同尺度下是等价的;
- 根据E=t×R,E的奇异值是[σ1,σ2,0]的形式;
- 平移和旋转各有三个自由度,但由于尺度等价,所以本质矩阵有5个自由度;
因此要求解本质矩阵至少需要5对点,但E内部的非线性性质会使得线性方程组很复杂,所以通常用八点法来求解,设有一对匹配点x1=[u1,v1,1],x2=[u2,v2,1],得到等式
[u1,v1,1]T⎣⎡e1e4e7e2e5e8e3e6e9⎦⎤[u2,v2,1]=0
得到
[u1u2,u1v2,u1,v1u2,v1v2,v1,u2,v2,1]⋅[e1,e2,e3,e4,e5,e6,e7,e8,e9]T=0
每一对点可以得到一个上述方程,当有8对匹配点时,就可以求解本质矩阵了。但是通常匹配点的对数都会大于8,这个时候就会形成一个超定方程组,由于我们的特征点存在误差,不能完全满足上述约束,需要采用RANSAC和LMEDS(least median square)方法
- 1 RANSAC
随机抽样一致性方法。即每次随机从所有点中抽出8个点求解本质矩阵,然后计算误差,大量抽样选择误差最小的那个。
- 2 LMEDS
最小二乘法,通过数值方法选择误差最小的解。所有点形成的系数矩阵是A,对它进行SVD分解
A=UΣVT
可以看出当解最小的奇异值对应的右奇异矢量,也就是V的最后一列。
由以上方法得到解E′后,考虑到本质矩阵第二个特性,需要对它做SVD分解,将最小的特征值置为0,由于尺度不变特性,用1代替奇异值,得
E=UDVT,D=diag(1,1,0)
由E分解得到R,t
由于求解的E具有以上形式,对它分解R,t有以下几种可能,
(t1,R1)=(URz(2π)DUT,URz(2π)VT)
(t2,R2)=(URz(−2π)DUT,URz(−2π)VT)
其中Rz(2π)表示绕z轴2π的旋转矩阵
Rz(±2π)=⎣⎡0∓10±100000⎦⎤
两种可能组合有四种分解形式,但实际上只有一组解能满足深度都为正,(可以通过三角化求出深度,下文会讲到),以上过程即可求得E。
同理可以求出F,但是由于E、F是个病态矩阵,因此点的值很小的时候,可能带来很大的误差。因此还需要进行归一化处理,对极约束写成
PlTFPr=0=>(HrPl)TF(HrPr)=0
使用矩阵HL,Hr对点进行归一化处理,按照以上计算过程得出F,再进一步计算
F=(Hr)TFHl
归一化处理:
对点做归一化
[x^i,y^i,1]=[(xi−x)/d,(yi−y)/d,,1]
其中x=n1∑x,y=n1∑y,d=n∑(xi−x)2+(yi−y)2,归一化过程可以写成矩阵
⎣⎡1/d0001/d0−x/d−y/d1⎦⎤
三角测量
通过三角测量方法计算特征点的深度
x1=P,x2=RP+t,用点左叉乘后有
x1×x1=x1×P=0,x2×x2=RP+t=0,得到方程组的系数矩阵
⎣⎡x1P2−P1P0−P2x0−x1P0+x0P1⎦⎤
其中P=[R,t], Pi是它的行向量,对第二个点s2也可以列出类似方程组,第三行和一二行线性相关,一般省略,求解齐次超定方程组就可以(LMEDS)。