各种文档看得累。条理不清结构不明缺斤少两。决定自己总结一个。(公式较多,墙外浏览更顺哟)
一些注意
后方交会是为了获取影像的内外方位数据,其中外方位数据可以通过GPS、INS(惯性导航系统)、雷达、星相摄像机来获取;然而由于穷穷穷,只能利用影响覆盖范围内的一定控制点来计算空间坐标与影响坐标之间的关系,来反算外方位元素。
多片检校基于单片检校。在矩阵组合时分别解算外方位元素。但使用同一组内方位元素。在一个大矩阵内进行。
后方交会可以只检校外方位元素。当需要进行畸变差校正时(即畸变差不可忽略时),可在方程中加入畸变差项进行迭代;当需要进行内方位元素检校时(即内方位元素精度没有达到需求),可在方程中加入内方位元素进行迭代。
对于畸变差校正,包括径向畸变、切向畸变、薄棱镜畸变,其中多数情况考察径向畸变的前两项系数k1 k2和切向畸变p1 p2 ,在某些组合相机的畸变模型中,还包括α像素非正方形比例和βccd非正交性畸变系数。
对于内方位元素检校,有的地方将f分为fx和fy即f在坐标两个方向上的像素值(由于有的xy不是同一比例尺即不是正方形)
检校,就是纠正相机各个方面的误差和精度,可以得到相机内部的主点、焦距、畸变的客观信息,这些信息在大部分情况下不会轻易改变;而相机外部的空间位置时时刻刻都在改变,但一些论文指出,在焦距变化、空间位置变化、移轴、高空拍摄情况下,相机的焦距、主点位置也会随之或多或少的改变,因此迭代时最好能带上这些参数一起进行平差。
一些重要概念
后方交会基于共线方程,物理含义为同一个三维坐标系中投影中心、物方点、像平面投影的点在同一条直线上。
$$x-x_{0}=-f\cdot \frac{a_{1}(X-X_{s})+b_{1}(Y-Y_{s})+c_{1}(Z-Z_{s})}{a_{3}(X-X_{s})+b_{3}(Y-Y_{s})+c_{3}(Z-Z_{s})}$$
$$y-y_{0}=-f\cdot \frac{a_{2}(X-X_{s})+b_{2}(Y-Y_{s})+c_{2}(Z-Z_{s})}{a_{3}(X-X_{s})+b_{3}(Y-Y_{s})+c_{3}(Z-Z_{s})}$$
上式中,包含留个外方位元素,即Xs、Ys、Zs、φ、Ω、k。只有确定了六个外方位元素,才能确定摄影中心在物方空间的位置。a1、a2、a3、b1、b2、b3、c1、c2、c3是需要计算的直线方程的系数,其物理性质是3个外方位角元素组成的9个方向余弦。该方程利用了相似三角形的性质;f是焦距长,X Y Z均值控制点的测量坐标,默认为精确的,因此物方控制点测量的精度很大程度上决定了最后检校的精度;x y是X Y Z对应的像平面的坐标,x0,y0是主点在像平面的坐标,有时当作已知并不再改变,有时也参与迭代计算。
共线条件方程用途有:
- 单像、多像空间后方交会;多像空间前方交会
- 解析空中三角测量的光束法平差
- 数字投影的基础
- 计算模拟影像数据(已知内外方位元素和物方坐标点求像点)
- DEM与共线方程制作正射影像
- DEM与共线方程进行单幅影像测图
注意 一个方程代表一个点在像平面和物方世界的关系,因此一个点对应两个方程,若有n个控制点,则对应2n个方程
若f x0 y0当作已知,则有外方位元素6个未知数,因此需要6个方程,即3个控制点的方程;若f x0 y0当作未知,则有9个未知数,因此需要至少5个控制点的方程。当然,很多文章也指出,越多的冗余数据参与计算得到的结果也越精确;越多的像片参与计算,得到的结果越精确;更均匀的控制点分布,能更多的控制整张像片,均匀的分布在边缘,得到的结果更精确。
一般情况下,令
$$\overline{X}=a_{1}(X-X_{s})+b_{1}(Y-Y_{s})+c_{1}(Z-Z_{s})$$
$$\overline{Y}=a_{2}(X-X_{s})+b_{2}(Y-Y_{s})+c_{2}(Z-Z_{s})$$
$$\overline{Z}=a_{3}(X-X_{s})+b_{3}(Y-Y_{s})+c_{3}(Z-Z_{s})$$
而用矩阵的形式可以表示为:
$$\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z}\end{pmatrix}=\begin{pmatrix}a_{1}&b_{1}&c_{1}\\a_{2}&b_{2}&c_{2}\\a_{3}&b_{3}&c_{3}\end{pmatrix}\cdot\begin{pmatrix}X-Xs\\Y-Ys\\Z-Zs\end{pmatrix}=R^{T}\begin{pmatrix}X-Xs\\Y-Ys\\Z-Zs\end{pmatrix}$$
这里R是旋转矩阵,且$R^{T}=R^{-1}$,行列式的值为0,即任意元素等于其代数余子式的值.则共线方程变为:
$$x-x_{0}=-f\cdot \frac{\overline{X}}{\overline{Z}},y-y_{0}=-f\cdot \frac{\overline{Y}}{\overline{Z}}$$
由于上式是共线方程的变形,因此Fx和Fy是六个外方位元素为参数的函数。由于方程是非线性的,因此不能解求数值,需要对方程进行线性化。思路是,对上式按泰勒级数在初值处展开并保留一次项,将非线性方程转化为各参数改正数的线性方程
设初值为$$X_{S}^{0},X_{S}^{0},Z_{S}^{0},\varphi^{0},\omega^{0},\kappa {0},X^{0},Y^{0},Z^{0},x_{0}^{0},y_{0}^{0},f^{0}$$
相应的改正数为
$$dXs=\triangle Xs=Xs-Xs^{0},dYs=\triangle Ys=Ys-Ys^{0},dZs=\triangle Zs=Zs-Zs^{0}$$
$$d\varphi=\triangle \varphi=\varphi-\varphi^{0},d\omega=\triangle \omega=\omega-\omega^{0},d\kappa=\triangle \kappa=\kappa-\kappa^{0}$$
$$dX=\triangle X=X-X^{0},dY=\triangle Y=Y-Y^{0},dZ=\triangle Z=Z-Z^{0}$$
则共线方程的泰勒一次展开一般式为①
$$x=(x)+\frac{\partial x}{\partial Xs}dXs+\frac{\partial x}{\partial Ys}dYs+\frac{\partial x}{\partial Zs}dZs+\frac{\partial x}{\partial \varphi }d\varphi +\frac{\partial x}{\partial \omega }d\omega +\frac{\partial x}{\partial \kappa }d\kappa +\frac{\partial x}{\partial X}dX+\frac{\partial x}{\partial Y}dY+\frac{\partial x}{\partial x_{0}}dx_{0}+\frac{\partial x}{\partial y_{0}}dy_{0}+\frac{\partial x}{\partial f}df$$
$$y=(y)+\frac{\partial y}{\partial Xs}dXs+\frac{\partial y}{\partial Ys}dYs+\frac{\partial y}{\partial Zs}dZs+\frac{\partial y}{\partial \varphi }d\varphi +\frac{\partial y}{\partial \omega }d\omega +\frac{\partial y}{\partial \kappa }d\kappa +\frac{\partial y}{\partial X}dX+\frac{\partial y}{\partial Y}dY+\frac{\partial y}{\partial x_{0}}dx_{0}+\frac{\partial y}{\partial y_{0}}dy_{0}+\frac{\partial y}{\partial f}df$$
这是一个重要的总结性公式。(x)(y)分别是内方位元素x,y的初值。式中包含了所有内外元素和物放测量点。当进行不同矩阵运算时,可以选择需要的精度不足够的进行迭代计算。
其中,对x和y求各未知项的偏导:
$$\frac{\partial x}{\partial Xs}=-f\cdot \frac{\frac{\partial \overline{X}}{\partial Xs}\overline{Z}-\frac{\partial \overline{Z}}{\partial Xs}\overline{X}}{\overline{Z}^{2}}=-\frac{f}{\overline{Z}^{2}}(-a_{1}\overline{Z}+a_{3}\overline{X})=\frac{1}{\overline{Z}}[a_{1}f-a_{3}f\frac{\overline{X}}{\overline{Z}}]=\frac{1}{\overline{Z}}[a_{1}f+a_{3}(x-x_{0})]$$
同理,其他的偏导为
$$\begin{align}
\frac{\partial x}{\partial Ys} & =\frac{1}{\overline{Z}}[b_{1}f+b_{3}(x-x_{0})] \\
\frac{\partial x}{\partial Zs} & =\frac{1}{\overline{Z}}[c_{1}f+b_{3}(x-x_{0})] \\
\frac{\partial y}{\partial Xs} & =\frac{1}{\overline{Z}}[a_{2}f+a_{3}(x-x_{0})] \\
\frac{\partial y}{\partial Ys} & =\frac{1}{\overline{Z}}[b_{2}f+b_{3}(x-x_{0})] \\
\frac{\partial y}{\partial Zs} & = \frac{1}{\overline{Z}}[c_{2}f+c_{3}(x-x_{0})] \\
\frac{\partial x}{\partial f} & =\frac{x-x_{0}}{f}=-\frac{\overline{X}}{\overline{Z}} \\
\frac{\partial y}{\partial f} & =\frac{y-y_{0}}{f}=-\frac{\overline{Y}}{\overline{Z}} \\
\frac{\partial x}{\partial x_{0}} & =1,\frac{\partial x}{\partial y_{0}}=0\\
\frac{\partial y}{\partial x_{0}} & =0,\frac{\partial y}{\partial y_{0}}=1
\end{align}$$
这里相对比较难解决的是角元素的偏导,关于角度的问题可以参考第三篇。
角度的变换在这里不再详述,两个坐标系之间的转换可以归结为变换矩阵的求取。三个角元素共同构成了矩阵的元素确定。 由于
$$R^{T}=R_{\kappa }^{T}R_{\omega }^{T}R_{\varphi }^{T} $$
因而,难度转到求取$\overline{X}\overline{Y} \overline{Z} $对角元素的偏导上。对角元素求偏导可以分为三个步骤:
①求各个方向余弦$a_{i},b_{i},c_{i}$对ω、k、φ的偏导数。共27个。
②求$\overline{X},\overline{Y},\overline{Z}$对ω、k、φ的偏导数,共9个。
③求x、y对ω、k、φ的偏导数,共6个。
如下是$\overline{X},\overline{Y},\overline{Z}$对φ的偏导,三个参数写在矩阵中,有的地方也展开写成每一项的等式形式。
$$\begin{align}
\frac{\partial }{\partial \varphi }\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z}\end{pmatrix}&=R_{\kappa }^{T}R_{\omega }^{T}\frac{\partial R_{\varphi }^{T}}{\partial \varphi }\begin{pmatrix}X-Xs\ Y-Ys\ Z-Zs\end{pmatrix}=R_{\kappa }^{T}R_{\omega }^{T}\frac{\partial R_{\varphi }^{T}}{\partial \varphi }(R^{T})^{-1}\begin{pmatrix}\overline{X}\ \overline{Y}\ \overline{Z}\end{pmatrix}=R_{\kappa }^{T}R_{\omega }^{T}\frac{\partial R_{\varphi }^{T}}{\partial \varphi }R\begin{pmatrix}\overline{X}\ \overline{Y}\ \overline{Z}\end{pmatrix}\\\ &=R_{\kappa }^{T}R_{\omega }^{T}(R_{\varphi }^{T}R_{\varphi })\frac{\partial R_{\varphi }^{T}}{\partial \varphi }R\begin{pmatrix}\overline{X}\ \overline{Y}\ \overline{Z}\end{pmatrix}=R^{T}R_{\varphi }\frac{\partial R_{\varphi }^{T}}{\partial \varphi }R\begin{pmatrix}\overline{X}\ \overline{Y}\ \overline{Z}\end{pmatrix}
\end{align}$$
带入具体系数,上式可变形为
$$
\begin{matrix}
\begin{pmatrix}a_{1} & b_{1} & c_{1}\\a_{2} & b_{2} & c_{2}\\a_{3} & b_{3} & c_{3}\end{pmatrix}\begin{pmatrix}0 & 0 &1\\0 & 0 & 0\\\ -1 & 0 & 0\end{pmatrix}\begin{pmatrix}a_{1} & a_{2} & a_{3}\\b_{1} & b_{2} & b_{3}\\c_{1} & c_{2}&c_{3} \end{pmatrix}\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z} \end{pmatrix}\\
=\begin{pmatrix}0 &-a_{2}c_{1}+a_{1}c_{2}&-a_{3}c_{1}+a_{1}c_{3}\\\ -a_{1}c_{2}+a_{2}c_{1} & 0 & -a_{3}c_{2}+a_{2}c_{3}\\\ -a_{1}c_{3}+a_{3}c_{1}& -a_{2}c_{3}+a_{3}c_{2} &0\end{pmatrix}\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z} \end{pmatrix} \\
= \begin{pmatrix}0 & -b_{3} & b_{2}\\b_{3}&0&-b_{1}\\\ -b_{2}&b_{1}&0\end{pmatrix}\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z} \end{pmatrix}
\end{matrix}
$$
其中利用了旋转矩阵一个元素的值等于代数余子式的值。如下是$\overline{X},\overline{Y},\overline{Z}$对ω的偏导。
$$\begin{align}
\frac{\partial }{\partial \omega }\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z}\end{pmatrix} &=R_{\kappa }^{T}\frac{\partial R_{\omega}^{T}}{\partial \omega }R_{\varphi }^{T}\begin{pmatrix}X-Xs\\Y-Ys\\Z-Zs\end{pmatrix}=R_{\kappa}^{T}\frac{\partial R_{\omega }^{T}}{\partial \omega }R_{\varphi }^{T}(R_{\varphi }R_{\omega }R_{\kappa })\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z}\end{pmatrix}\\
&=R_{\kappa }^{T}\frac{\partial R_{\omega }^{T}}{\partial \omega}R_{\omega }R_{\kappa }\begin{pmatrix}\overline{X}\ \overline{Y}\ \overline{Z}\end{pmatrix}=
\begin{pmatrix}0&0&sin\kappa\\\ 0&0&cos\kappa \\\ -sin\kappa&-cos \kappa&0\end{pmatrix}\begin{pmatrix}\overline{X}\ \overline{Y}\ \overline{Z}\end{pmatrix}
\end{align}$$其中,这里用到了
$$\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z}\end{pmatrix}=R^{T}\begin{pmatrix}X-Xs\\Y-Ys\\Z-Zs\end{pmatrix}=(R_{\varphi}R_{\omega}R_{\kappa })^{T}\begin{pmatrix}X-Xs\\Y-Ys\\Z-Zs\end{pmatrix}=R_{\kappa }^{T}R_{\omega }^{T}R_{\varphi }^{T}\begin{pmatrix}X-Xs\\Y-Ys\\Z-Zs\end{pmatrix}$$
$$\begin{pmatrix}X-Xs\\Y-Ys\\Z-Zs\end{pmatrix}=(R^{T})^{-1}\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z}\end{pmatrix}=R\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z}\end{pmatrix}=R_{\varphi }R_{\omega }R_{\kappa }\begin{pmatrix}\overline{X}\\\overline{Y}\\\overline{Z}\end{pmatrix}$$
如下是$\overline{X},\overline{Y},\overline{Z}$对k的偏导。
$$\begin{align}
\frac{\partial }{\partial \kappa }\begin{pmatrix}\overline{X}\ \overline{Y}\ \overline{Z}\end{pmatrix}&=\frac{\partial R_{\kappa }^{T}}{\partial \kappa }R_{\omega }^{T}R_{\varphi }^{T}\begin{pmatrix}X-Xs\\Y-Ys\\Z-Zs\end{pmatrix}\\&=\frac{\partial R_{\kappa }^{T}}{\partial \kappa }(R_{\kappa }R_{\kappa }^{T})R_{\omega }^{T}R_{\varphi }^{T}\begin{pmatrix}X-Xs\\Y-Ys\\Z-Zs\end{pmatrix}\\
&=\frac{\partial R_{\kappa }^{T}}{\partial \kappa }R_{\kappa }\begin{pmatrix}\overline{X}\ \overline{Y}\ \overline{Z}\end{pmatrix}=\begin{pmatrix}\overline{Y} \\\- \overline{X}\\0\end{pmatrix}
\end{align}$$
通过以上三式可得到x和y对各角元素未知数的偏导。有的地方,将x,y先分别除以$\overline{Z}$,这样可以在求取偏导的时候减少计算量。
$$
\begin{align}
\frac{\partial x}{\partial \varphi}
& = -\frac{f}{\overline{Z}^{2}}(\frac{\partial \overline{X}}{\partial \varphi }\overline{Z}-\frac{\partial \overline{Z}}{\partial \varphi }\overline{X}) \\
& = -\frac{f}{\overline{Z}^{2}}(-b_{3}\overline{Y}+b_{2}\overline{Z})\overline{Z}+\frac{f}{\overline{Z}^{2}}(b_{2}\overline{X}-b_{1}\overline{Y})\overline{X} \\
& = -(y-y_{0})b_{3}-fb_{2}-\frac{(x-x_{0})^{2}}{f}b_{2}+\frac{(x-x_{0})(y-y_{0})}{f}b_{1} \\
& = \frac{(x-x_{0})(y-y_{0})}{f}b_{1}-(f+\frac{(x-x_{0})^{2}}{f})b_{2}-(y-y_{0})b_{3}
\end{align}
$$
其他以此类推
$$
\begin{align}
\frac{\partial x}{\partial \omega } &=
\frac{(x-x_{0})^{2}}{f}sin\kappa-\frac{(x-x_{0})(y-y_{0})}{f}cos\kappa -fsin\kappa \\\
\frac{\partial x}{\partial \kappa } &=
(f+\frac{(y-y_{0}^{2})}{f})b_{1}-\frac{(x-x_{0})(y-y_{0})}{f}b_{2}-(x-x_{0})b_{3} \\
\frac{\partial y}{\partial \omega } &=
-\frac{(x-x_{0})(y-y_{0})}{f}sin\kappa -\frac{(y-y_{0})^{2}}{f}cos\kappa -fcos\kappa \\
\frac{\partial y}{\partial \kappa }&=-(x-x_{0})
\end{align} $$
以上求出了所有的偏导,则①式的公式可变为更重要的式②
$$\begin{aligned}
c_{11}dXs+c_{12}dYs+c_{13}dZs+c_{14}d\phi +c_{15}d\omega &+c_{16}d\kappa \\\ -c_{11}dX &-c_{12}dY-c_{13}dZ+c_{17}df+c_{18}dx_{0}+c_{19}dy_{0}-lx=0
\end{aligned}$$
$$\begin{aligned}
c_{21}dXs+c_{22}dYs+c_{23}dZs+c_{24}d\phi +c_{25}d\omega &+c_{26}d\kappa \\\ -c_{21}dX &-c_{22}dY-c_{23}dZ+c_{27}df+c_{28}dx_{0}+c_{29}dy_{0}-ly=0
\end{aligned}$$
这里可以看到,Xs和X Ys和Y Zs和Z的偏导互为相反数,因此12个未知数只需要求解9个。 其中c的系数分别为:
$$\begin{align}
c_{11}& = \frac{1}{\overline{Z}}(a_{1}f+a_{3}(x-x_{0})) \\
c_{12}& = \frac{1}{\overline{Z}}(b_{1}f+b_{3}(x-x_{0})) \\
c_{13}& = \frac{1}{\overline{Z}}(c_{1}f+c_{3}(x-x_{0})) \\
c_{14}& = \frac{(x-x_{0})(y-y_{0})}{f}b_{1}-(f+\frac{(x-x_{0})^{2}}{f})b_{2}-(y-y_{0})b_{3} \\
c_{15}& = -\frac{(x-x_{0})^{2}}{f}sin\kappa -\frac{(x-x_{0})(y-y_{0})}{f}cos\kappa -fsin\kappa \\
c_{16}& = y-y_{0}\\
c_{17}& = \frac{x-x_{0}}{f},c_{18}=1,c_{19}=0,lx=x-x_{cal}\\
c_{21} &= \frac{1}{\overline{Z}}(a_{2}f+a_{3}(y-y_{0}))\\
c_{22} &= \frac{1}{\overline{Z}}(b_{2}f+b_{3}(y-y_{0}))\\
c_{23} &= \frac{1}{\overline{Z}}(c_{2}f+c_{3}(y-y_{0}))\\
c_{24} &= (f+\frac{(y-y_{0})^{2}}{f})b_{1}-\frac{(x-x_{0})(y-y_{0})}{f}b_{2}+(x-x_{0})b_{3}\\
c_{25} &= -\frac{(x-x_{0})(y-y_{0})}{f}sin\kappa -\frac{(y-y_{0})^{2}}{f}cos\kappa -fcos\kappa \\
c_{26} &= -(x-x_{0})\\
c_{27}&=\frac{y-y_{0}}{f},c_{28}=0,c_{29}=1,ly=y-y_{cal}\end{align} $$
在正摄影像近似垂直时,可以采用φ≈ω≈k≈0,$\overline{Z}\approx -H$的取值带入系数中,则②式可化简为本篇最终的结果式③:
$$\left\{\begin{matrix}v_{x}=-\frac{f}{H}dXs-\frac{x-x_{0}}{H}dZs-[f+\frac{(x-x_{0})^{2}}{f}]d\varphi-\frac{(x-x_{0})(y-y_{0})}{f}d\omega+(y-y_{0})d\kappa+\frac{f}{H}dX+\frac{x-x_{0}}{H}dZ+\frac{x-x_{0}}{f}df+dx_{0}-(x-x_{cal})\\v_{y}=-\frac{f}{H}dYs-\frac{y-y_{0}}{H}dZs-\frac{(x-x_{0})(y-y_{0})}{f}d\varphi-[f+\frac{(y-y_{0})^{2}}{f}]d\omega+(x-x_{0})d\kappa+\frac{f}{H}dY+\frac{y-y_{0}}{H}dZ+\frac{y-y_{0}}{f}df+dy_{0}-(y-y_{cal})\end{matrix}\right.$$
式中相对①式添加了改正项,为了平衡一次项以下的展开式对结果的影响,是平差方程中重要的一部。误差方程将在下文提到。