3. 估计——2D射影变换

估计是指在某些本质测量的基础上计算某个变换或其他数学量。

  • 测量数:考虑自由度个数和约束个数后给出的一个下届;
  • 近似解:精确解称为最小配置解,近似解是通过最小化某个代价函数完成;
  • 黄金标准算法:通常存在一种最优代价函数,其最优的含义是在一定假设下,使代价函数取最小值的解是最好估计,计算该代价函数最小值的算法称为黄金标准算法;

3.1 直接线性变换(DLT)算法

齐次矢量方程,相差一个尺度因子:
xi=Hxixi×Hxi=0Aih=0 x_i'=Hx_i\rightarrow{x}_i'\times{H}x_i=0\rightarrow{A_i}h=0
(1) Aih=0A_ih=0是未知矢量hh的线性方程,矩阵AiA_i的元素是已知点的坐标的二次多项式;
(2) AiA_i中只有两行线性独立(包含无穷远点),AiA_i2×92\times9矩阵;
(3) 该方程组对任何齐次坐标成立;
(4) 非零因子可以通过对范数要求任意选择,h=1||h||=1

3.1.1 Over-determined solution

对应点多余最小配置,Ah=0Ah=0为超定问题;由于测量存在噪声,可分为零解和近似解两种情况,为避免产生零解(h=0h=\textbf{0}),附加范数条件h=1||h||=1,等价于最小化AhAh/h||Ah||\rightarrow||Ah||/||h||最小值问题,解是ATA||A^TA||的最小特征值的单位特征向量,即AA最小奇异值的单位奇异向量;

3.1.2 Inhomogeneous solution

强加条件hj=1h_j=1,既然允许相差一个任意因子,可以通过因子选择使得hj=1h_j=1
Aih=0Mihˉ=b {A_i}h=0\rightarrow{M_i}\bar{h}=b
hˉ\bar{h}是8维矢量,可用高斯消去(线性方程基本解法)或最小二乘法求解,若真正的解hjh_j趋近于零,此方法导致不稳定解;

3.1.3 Degenerate configurations

对于具体的一类变换而言,出现某种配置(共线点或共点线)不能确定唯一解的情形称为退化(无穷解簇或无解)。

3.1.4 Solutions from lines and other entities

单应也可以由直线或二次曲线的对应来计算,约束数必须等于或大于变换的自由度数,混合配置需注意配置可产生的约束数目;
计算机视觉中的多视图几何<Part0—基础知识:射影几何、变换和估计>(3)

3.2 不同的代价函数

为确定HH超定解而需最小化的若干代价函数。

3.2.1 Algebraic distance

DLT算法最小化范数Ah||Ah||,矢量ε=Ah\varepsilon=Ah称为残差矢量;矢量εi\varepsilon_i是关联对应点对和单应HH的代数误差矢量,该矢量的范数是一个标量,称为代数距离:
idalg(xi,Hxi)2=iεi2=Ah2=ε2 \sum_id_{alg}(\textbf{x}_i',H\textbf{x}_i)^2=\sum_i||\varepsilon_i||^2=||A\textbf{h}||^2=||\varepsilon^2||
对于任何两个矢量x1\textbf{x}_1x2\textbf{x}_2的代数距离为:dalg(x1,x2)2=a12+a22d_{alg}(\textbf{x}_1,\textbf{x}_2)^2=a^2_1+a^2_2,其中a=(a1,a2,a3)T=x1×x2\textbf{a}=(a_1,a_2,a_3)^T=\textbf{x}_1\times\textbf{x}_2;其特殊的优越性在于线性(唯一)解以及计算代价小,通常代数距离的解被用作几何或统计代价函数的非线性最小化的起点,非线性最小化给这个解一个最后的“抛光”;

3.2.2 Geometric distance

基于图像上几何距离的测量并最小化图像坐标的测量值与估计值之差:矢量x\textbf{x}表示测量的图像坐标,x^\hat{\textbf{x}}表示该点的估计值,而xˉ\bar{\textbf{x}}表示该点的真值。

  • 单幅图像误差:误差仅出现在第二幅图像的情形(标定),最小化转移误差id(xi,Hxˉi)2\sum_id(\textbf{x}_i',H\bar{\textbf{x}}_i)^2
  • 对称转移误差:id(xi,H1xi)2+id(xi,Hxi)2\sum_id(\textbf{x}_i,H^{-1}\textbf{x}_i')^2+\sum_id(\textbf{x}_i',H\textbf{x}_i)^2

3.2.3 Reprojection error – both images

估计每组对应的“校正值”:
id(xi,x^i)2+d(xi,x^i)2s.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
这种估计可对诸如世界平面点的图像对应点xixi\textbf{x}_i\leftrightarrow\textbf{x}_i'测量建模,估计世界平面点X^\hat{\textbf{X}}',然后将它重投影到估计HH上认为是完全匹配的对应x^ix^i\hat{\textbf{x}}_i\leftrightarrow\hat{\textbf{x}}_i'
计算机视觉中的多视图几何<Part0—基础知识:射影几何、变换和估计>(3)

3.2.4 Comparison of geometric and algebraic distance

仿射变换下,几何距离和代数距离相等:
d(xi,x^i)=dalg(xi,x^i)/w^iwi d(\textbf{x}_i',\hat{\textbf{x}}_i')=d_{alg}(\textbf{x}_i',\hat{\textbf{x}}_i')/\hat{w}_i'w_i'
几何距离与代数距离相关,但不相等;

3.2.5 Geometric interpretation of reprojection error

两平面之间的单应估计可以视为4D空间IR4中的“曲面”来拟合点:每对图像点定义测量空间IR4的一个点,满足HH的点对定义了IR4中的代数簇VH\mathcal{V}_H(IRN中一个或多个多元多项式公共零点集),是两个超二次曲面的交集,HH元素对应二次多项式系数,即定义了一个具体的二次曲面;
给定IR4中的点Xi=(xi,yi,xi,yi)T\textbf{X}_i=(x_i,y_i,x_i',y_i')^T,单应估计的任务变成寻找一个通过点(或几乎通过)Xi\textbf{X}_i的某个簇VH\mathcal{V}_H(对应变换HH),对每一点Xi\textbf{X}_i,令X^i=(x^i,y^i,x^i,y^i)T\hat{\textbf{X}}_i=(\hat{x}_i,\hat{y}_i,\hat{x}_i',\hat{y}_i')^T为簇VH\mathcal{V}_H上最靠近Xi\textbf{X}_i的点;IR4中的几何距离等价于量图像中的重投影误差,求VH\mathcal{V}_H和其上到测量点距离平方和最小的点,等价于求单应和最小化重投影误差函数;

  • VH\mathcal{V}_H上离测量点X\textbf{X}最近的点X^\hat{\textbf{X}}X\textbf{X}的连线垂直于过X^\hat{\textbf{X}}的切平面:
    d(xi,x^i)2+d(xi,x^i)2=d(Xi,VH)2 d(\textbf{x}_i,\hat{\textbf{x}}_i)^2+d(\textbf{x}_i',\hat{\textbf{x}}_i')^2=d_\perp(\textbf{X}_i,\mathcal{V}_H)^2
    其中d(Xi,VH)d_\perp(\textbf{X}_i,\mathcal{V}_H)是点X\textbf{X}到簇VH\mathcal{V}_H的垂直距离。
  • 二次曲线类似:
    计算机视觉中的多视图几何<Part0—基础知识:射影几何、变换和估计>(3)
    在仿射变换时,该代数簇是两张超平面的交,即是一个2维线性子空间,x=HAx\textbf{x}'=H_A\textbf{x}给出x,x,yx,x',yx,y,yx,y,y'两个线性约束,每个约束定一个IR4中的一个超平面;

3.2.6 Sampson error

几何误差的性质相当复杂,其最小化需要同时估计单应矩阵和满足单应矩阵的对应点对,引入Sampson误差介于几何与代数误差之间;
由于代数簇VH||\mathcal{V}_H||的非线性本质,点X\textbf{X}不能直接估计,必须通过迭代;
Sampson误差函数的思想是估计点X^\hat{\textbf{X}}的一阶近似并假定代价函数在被估计点附近有很好的线性近似;
对给定单应HH,在VH||\mathcal{V}_H||上的任何点X\textbf{X}满足Ah=0A\textbf{h}=0;为突出代价函数对X\textbf{X}的相关性,记代价函数(二维矢量)CH(X)=0\mathcal{C}_H(\textbf{X})=0,代价函数一阶Taylor逼近如下:
CH(X+δx)=CH(X)+CHXδx \mathcal{C}_H(\textbf{X}+\delta_{\textbf{x}})=\mathcal{C}_H(\textbf{X})+\frac{\partial\mathcal{C}_H}{\partial\textbf{X}}\delta_{\textbf{x}}
δx=X^XCH(X)+CHXδx=0Jδx=ε \delta_{\textbf{x}}=\hat{\textbf{X}}-\textbf{X}\rightarrow\mathcal{C}_H(\textbf{X})+\frac{\partial\mathcal{C}_H}{\partial\textbf{X}}\delta_{\textbf{x}}=0\rightarrow{J}\delta_{\textbf{x}}=-\varepsilon
在满足Jδx=εJ\delta_{\textbf{x}}=-\varepsilon条件下使用δx||\delta_{\textbf{x}}||取最小值的矢量δx\delta_{\textbf{x}},引入Langrange乘子:
δxTδx2λ(Jδx+ε)2δxT2λTJ=0T&JJTλ=εδx2=εT(JJT)2ε \delta_{\textbf{x}}^T\delta_{\textbf{x}}-2\lambda(J\delta_{\textbf{x}}+\varepsilon)\rightarrow2\delta_{\textbf{x}}^T-2\lambda^TJ=\textbf{0}^T \,\&\,JJ^T\lambda=-\varepsilon\rightarrow||\delta_{\textbf{x}}||^2=\varepsilon^T(JJ^T)^{-2}\varepsilon
范数δx2||\delta_{\textbf{x}}||^2是Sampson误差;

相关文章: