3. 估计——2D射影变换
估计是指在某些本质测量的基础上计算某个变换或其他数学量。
- 测量数:考虑自由度个数和约束个数后给出的一个下届;
- 近似解:精确解称为最小配置解,近似解是通过最小化某个代价函数完成;
- 黄金标准算法:通常存在一种最优代价函数,其最优的含义是在一定假设下,使代价函数取最小值的解是最好估计,计算该代价函数最小值的算法称为黄金标准算法;
3.1 直接线性变换(DLT)算法
齐次矢量方程,相差一个尺度因子:
x i ′ = H x i → x i ′ × H x i = 0 → A i h = 0 \textbf{x}_i'=H\textbf{x}_i\rightarrow\textbf{x}_i'\times{H}\textbf{x}_i=0\rightarrow{A_i}\textbf{h}=0 xi′=Hxi→xi′×Hxi=0→Aih=0
(1) A i h = 0 A_i\textbf{h}=0 Aih=0是未知矢量 h \textbf{h} h的线性方程,矩阵 A i A_i Ai的元素是已知点坐标的二次多项式;
(2) A i A_i Ai中只有两行线性独立(包含无穷远点), A i A_i Ai为 2 × 9 2\times9 2×9矩阵;
(3) 该方程组对任何齐次坐标成立,非零因子可以通过对范数要求任意选择, ∣ ∣ h ∣ ∣ = 1 ||\textbf{h}||=1 ∣∣h∣∣=1;
3.1.1 Over-determined solution
对应点多余最小配置, A h = 0 A\textbf{h}=0 Ah=0为超定问题;由于测量存在噪声,可分为零解和近似解两种情况,为避免产生零解( h = 0 \textbf{h}=\textbf{0} h=0),附加范数条件 ∣ ∣ h ∣ ∣ = 1 ||\textbf{h}||=1 ∣∣h∣∣=1,等价于最小化 ∣ ∣ A h ∣ ∣ → ∣ ∣ A h ∣ ∣ / ∣ ∣ h ∣ ∣ ||A\textbf{h}||\rightarrow||A\textbf{h}||/||\textbf{h}|| ∣∣Ah∣∣→∣∣Ah∣∣/∣∣h∣∣最小值问题,解是 ∣ ∣ A T A ∣ ∣ ||A^TA|| ∣∣ATA∣∣的最小特征值的(单位)特征矢量,即 A A A最小奇异值的单位奇异向量;
3.1.2 Inhomogeneous solution
强加条件 h j = 1 h_j=1 hj=1,既然允许相差一个任意因子,可以通过因子选择使得 h j = 1 h_j=1 hj=1:
A i h = 0 → M i h ~ = b {A_i}\textbf{h}=0\rightarrow{M_i}\tilde{\textbf{h}}=\textbf{b} Aih=0→Mih~=b
h ~ \tilde{\textbf{h}} h~是8维矢量,可用高斯消去(线性方程基本解法)或最小二乘法求解,若真正的解 h j h_j hj趋近于零,此方法导致不稳定解;
3.1.3 Degenerate configurations
对于具体的一类变换而言,出现某种配置(共线点或共点线)不能确定唯一解的情形称为退化(无穷解簇或无解)。
3.1.4 Solutions from lines and other entities
单应也可以由直线或二次曲线的对应来计算,约束数必须等于或大于变换的自由度数,混合配置需注意配置可产生的约束数目;
3.2 不同的代价函数
为确定 H H H超定解而需最小化的若干代价函数。
3.2.1 Algebraic distance
DLT算法最小化范数 ∣ ∣ A h ∣ ∣ ||A\textbf{h}|| ∣∣Ah∣∣,矢量 ε = A h \varepsilon=A\textbf{h} ε=Ah称为残差矢量;矢量 ε i \varepsilon_i εi是关联对应点对和单应 H H H的代数误差矢量,该矢量的范数是一个标量,称为代数距离:
∑ i d a l g ( x i ′ , H x i ) 2 = ∑ i ∣ ∣ ε i ∣ ∣ 2 = ∣ ∣ A h ∣ ∣ 2 = ∣ ∣ ε 2 ∣ ∣ \sum_id_{alg}(\textbf{x}_i',H\textbf{x}_i)^2=\sum_i||\varepsilon_i||^2=||A\textbf{h}||^2=||\varepsilon^2|| i∑dalg(xi′,Hxi)2=i∑∣∣εi∣∣2=∣∣Ah∣∣2=∣∣ε2∣∣
对于任何两个矢量 x 1 \textbf{x}_1 x1和 x 2 \textbf{x}_2 x2的代数距离为: d a l g ( x 1 , x 2 ) 2 = a 1 2 + a 2 2 d_{alg}(\textbf{x}_1,\textbf{x}_2)^2=a^2_1+a^2_2 dalg(x1,x2)2=a12+a22,其中 a = ( a 1 , a 2 , a 3 ) ⊤ = x 1 × x 2 = ε i \textbf{a}=(a_1,a_2,a_3)^\top=\textbf{x}_1\times\textbf{x}_2=\varepsilon_i a=(a1,a2,a3)⊤=x1×x2=εi;其特殊的优越性在于线性(唯一)解以及计算代价小,通常代数距离的解被用作几何或统计代价函数的非线性最小化的起点,非线性最小化给这个解一个最后的“抛光”;
3.2.2 Geometric distance
基于图像上几何距离的测量并最小化图像坐标的测量值与估计值之差:矢量 x \textbf{x} x表示测量的图像坐标, x ^ \hat{\textbf{x}} x^表示该点的估计值,而 x ˉ \bar{\textbf{x}} xˉ表示该点的真值。
- 单幅图像误差:误差仅出现在第二幅图像的情形(标定),最小化转移误差 ∑ i d ( x i ′ , H x ˉ i ) 2 \sum_id(\textbf{x}_i',H\bar{\textbf{x}}_i)^2 ∑id(xi′,Hxˉi)2;
- 对称转移误差: ∑ i d ( x i , H − 1 x i ′ ) 2 + ∑ i d ( x i ′ , H x i ) 2 \sum_id(\textbf{x}_i,H^{-1}\textbf{x}_i')^2+\sum_id(\textbf{x}_i',H\textbf{x}_i)^2 ∑id(xi,H−1xi′)2+∑id(xi′,Hxi)2;
- 对应集合的转移误差是算法要估计的单应使误差取最小值的单应;
3.2.3 Reprojection error – both images
估计每组对应的“校正值”(对测量值校正):
∑ i d ( x i , x ^ i ) 2 + d ( x i ′ , x ^ i ′ ) 2 s . t . x ^ i ′ = H ^ x ^ i \sum_id(\textbf{x}_i,\hat{\textbf{x}}_i)^2+d(\textbf{x}_i',\hat{\textbf{x}}_i')^2s.t.\hat{\textbf{x}}_i'=\hat{H}\hat{\textbf{x}}_i i∑d(xi,x^i)2+d(xi′,x^i′)2s.t.x^i′=