单应矩阵
本文先通过特征点匹配关系给出单应矩阵的定义,并完整的推到如何求解单应矩阵,最后给出通过单应矩阵还原旋转矩阵和位移向量的数学原理
单应矩阵
计算H
假设所有配对点的空间坐标落在同一平面上,取平面P的方程为
\[ax+by+cz+d=0\]简写成
\[n^tX+d=0\]其中$n=(a,b,c),x=(x,y,z)$ 由假设特征点落在平面P上,即
\[n^tx/d=-1\]假设$x_1$和$x_2$为空间点在两个相机坐标系下的坐标,$R$ $t$是相机之间的相对运动
\[d_{x_2}x_2=Rx_1+td_{x_1}\]令
\[d_{x_2}x_2=Rx_1-d_{x_1}tn^tx_1/d\]整理可得
\[d_{x_2}x_2=d_{x_1}(R-tn^t/d)x_1\]等式两边都叉乘$x_2$可得
\[0=x_2\times (R-tn^t/d)x_1\]令$A=Rd+tn^t$,且$H=K(R-tn^t/d)K^{-1}$
恢复R、t
取
\[A=Rd+tn^t\]对A进行SVD分解得
\[V \Sigma U=Rd+tn^t\]整理得
\[\Sigma=R_1d_1+t_1n_1^t\]其中$R=SUR_1V^t t=Ut_1 n=vn_1 d=sd_1 s=detUdetV$ 取一直基 $e_1 e_2 e_3$则
\[n=x_1e_1+x_2e_2+x_3e_3\]带入原式可得
\[d^{'}_ie_i=d_1R_1e_i+t_1x_i\]i=1,2,3,$d^{‘}_i$是$\Sigma$的对角元素
连立两个等式就可以得到$X$的解tUdetV$ 取一直基 $e_1 e_2 e_3$则
\[n=x_1e_1+x_2e_2+x_3e_3\]带入原式可得
\[d^{'}_ie_i=d_1R_1e_i+t_1x_i\]i=1,2,3,$d^{‘}_i$是$\Sigma$的对角元素
\[d^{'}_i=d_1R_1e_i+t_1x_i\]联立三个公司消掉t可得
\[d_1R_1(x_je_i-x_ie_j)=d^{'}_ix_je_i-d^{'}_jx_ie_j\]因为$R_1$不改变向量的长度,所以
\[\begin{cases} (d_1^2-d^{'^2}_2)x_1^2+(d_1^2-d^{'^2}_1)x_2^2=0 \\ (d_1^2-d^{'^3}_2)x_2^2+(d_1^2-d^{'^2}_2)x_3^2=0 \\ (d_1^2-d^{'^2}_1)x_3^2+(d_1^2-d^{'^2}_3)x_1^2=0 \end{cases}\]因为上诉方程一定有非零解,所有对应的行列式一定为零,即
\[(d_1^2-d^{'^2}_2)(d_1^2-d^{'^3}_2)(d_1^2-d^{'^2}_1)=0\]至此可以求的$d_1$ 进而求解出$R$和$t$
本文由作者按照 CC BY 4.0 进行授权