正常情况下通过前方交会求解公式为:
$$x=PX(1)$$
其中矩阵$P$包含内参矩阵,旋转和平移矩阵,即$P=K[R|t]$,在此情况下进行求解,则必须将像点坐标 $x$和空间点坐标$X$转换为齐次式,求解过程为:
根据公式$x=PX$,则有 $[x \times P]X=0$ 求解以上齐次线性方程组,通过SVD分解进行分解,在有两个同名点的情况下得到$V$矩阵为求解结果。
然而对于几何校正的应用来说,需要根据矩阵$P$计算地面点的坐标,然而$x=PX$中有三个未知数但是只有两个方程组,是一个欠定问题,无法进行求解,实际上在真实求解过程中一般都是假设地面的高程已知,在高程已知的情况下需要求解的参数就只有2个,能够通过以上方程进行求解了,在此探讨整个求解过程,虽然求解过程比较简单,但是在计算机视觉中似乎没有人提到应该如何进行求解。
我们将式(1)展开,则有:
$$
\begin{bmatrix}
x\\
y\\
1\
\end{bmatrix}=
\begin{bmatrix} a_1 &a_2&a_3&a_4\\ b_1 &b_2&b_3&b_4\\ c_1 &c_2&c_3&c_4 \end{bmatrix}\cdot
\begin{bmatrix} X\\ Y\\ Z\\ 1 \end{bmatrix}
(2)
$$
根据式(2)可知三个线性方程组,现在目标在于在已知$Z$的情况下求解$X$和$Y$,因此我们可以将(2)式乘开,有:
$$
x=a_1X+a_2Y+a_3Z+a_4(3)\\
y=b_1X+b_2Y+b_3Z+b_4(4)\\
1=c_1X+c_2Y+c_3Z+c_4(5)\\
$$
实际上对于式(3)-(5)有用的能够用来计算的式子只有(3)(4),下面我们重点考虑(3)(4)式,在计算过程中由于矩阵$P$是已知的,因此$a_i,b_i,c_i$都是
已知值,$Z$也是已知的,则式(3)(4)可以转换为:
$$
x-a_3Za_4=a_1X+a_2Y(6)\\
y-b_3Z-b_4=b_1X+b_2Y(7)\\
$$
将上式写成矩阵的形式则有:
$$
\begin{bmatrix}\hat{x}\\ \hat{y}\end{bmatrix}=
\begin{bmatrix}a_1&a_2\\ b_1&b_2\end{bmatrix}\cdot
\begin{bmatrix}X\\ Y\end{bmatrix}(8)
$$
则直接对上式进行求解可以得到$X,Y$,以上都是在理想情况下的数学推到结果,得到的结论也是显而易见的,为了验证结论的正确性需要在程序中同时通过正解和反解的方式进行验证,经过思考发现实际上计算结果与式(3)-(5)有差异,实际上在计算过程中齐次坐标可能并不是1,因此将式(3)-(5)修改为:
$$
kx=a_1X+a_2Y+a_3Z+a_4(9)\\
ky=b_1X+b_2Y+b_3Z+b_4(10)\\
k=c_1X+c_2Y+c_3Z+c_4(11)
$$
其中$k$为比例系数,则采用x=(9)/(11),y=(10)/(11),在已知$P,Z$的情况下上式转换为:
$$
x=\frac{a_1X+a_2Y+a_3Z+a_4}{c_1X+c_2Y+c_3Z+c_4}(12)\\
y=\frac{b_1X+b_2Y+b_3Z+b_4}{c_1X+c_2Y+c_3Z+c_4}(13)\\
$$
由式(12)(13)解算得到X,Y,最后求解结果用矩阵表示为:
$$
\begin{bmatrix}\hat{a_1}& \hat{a_2} \\ \hat{b_1}&\hat{b_2}\end{bmatrix}\cdot
\begin{bmatrix}X\\ Y\end{bmatrix}=
\begin{bmatrix}T1\\ T2\end{bmatrix}(14)
$$
求解式(14)可得$X,Y$