guodong's blog

master@zhejiang university
   

图像特征点对应坐标修正

由于图像特征点或者人为标注的特征点不可避免的引入噪声,两条经过相机中心和各自匹配图像特征点的涉嫌并不能相交,而对极几何的方法对于噪声比较敏感。所以这里谈一下坐标修正方法。

参考书目:《基于图像点特征的多视图三维重建》—-康来

参考文献:Triangulation from Two Views Revisited: Hartley-Sturm vs. Optimal Correction.

相机矩阵参数化

不失一般性,我们假设第一个相机坐标系和世界坐标系对齐,则相机相对姿态估计的任务是确定世界坐标系下的第二个相机相对于第一个相机的旋转矩阵R和平移向量t。对于旋转矩阵的参数话,可以采用旋转轴-角度表述,欧拉角表示以及四元数表示等方法。由于四元数具有简洁的数学表达式以及灵活的插值特性,本章采用单位四元数表示三维空间中的旋转,给定四元数q=w+\mathrm{i} x+\mathrm{j} y+\mathrm{k} z,w称为标量部分,v=(x, y, z)^{\mathrm{T}} \in \mathbb{R}^{3}为矢量部分。为了简化表达,将四元数q记为(w,v),若q为单位四元数,满足|\boldsymbol{q}|=\sqrt{w^{2}+x^{2}+y^{2}+z^{2}}=1,四元数q所表示的旋转矩阵的形式:

(1)   \begin{equation*} R_{m}(q)=\left[ \begin{array}{ccc}{1-2 y^{2}-2 z^{2}} & {2 x y-2 w z} & {2 x z+2 w y} \\ {2 x y+2 w z} & {1-2 x^{2}-2 z^{2}} & {2 y z-2 w x} \\ {2 x z-2 w y} & {2 y z+2 w x} & {1-2 x^{2}-2 y^{2}}\end{array}\right] \end{equation*}

式中R_{m}(q)表示将四元数转化成相应旋转矩阵的函数。相机的相对平移用单位平移向量t=(a, b, c)^{\mathrm{T}}表示。两个相机的焦距分别记为f1,f2.给定上述参数后,两个相机投影矩阵由9维参数向量\Theta=\left(f_{1}, f_{2}, w, x, y, z, a, b, c\right)^{T}唯一确定,即:

(2)   \begin{equation*} \left\{\begin{array}{l}{P_{1}=P_{m}(\Theta)=K_{1}[I | 0]} \\ {P_{2}=P_{m}^{\prime}(\Theta)=K_{2}\left[R_{m}(q) |-R_{m}(q) t\right]}\end{array}\right. \end{equation*}

式中,k1 k2为两个相机的标定矩阵,P_{m}P_{m}^{\prime} 分别为将参数向量转化为左右相机投影矩阵的函数。

坐标修正

坐标修正算法在确保射线相交的前提下最小坐标位移量的平方和,从这个意义上来说,该算法是最优的。记\boldsymbol{u}_{j}^{i}=\left(u_{j}^{i}, v_{j}^{i}, 1\right)^{\mathrm{T}} 为第 j(j=1, \cdots, N) 个三维点在第i(i=1,2)幅视图中的图像坐标点。假定\boldsymbol{u}_{j}^{i}为其真实值在均值为0,标准差为\sigma的各同性高斯噪声作用下的观测值。坐标修正即计算各图象观察的最大似然估计\hat{u}_{j}^{i}=\left(\hat{u}_{j}^{i}, \hat{v}_{j}^{i}, 1\right)^{\mathrm{T}, 使得对极约束条件:

(3)   \begin{equation*} \left(\hat{\boldsymbol{u}}_{j}^{2}\right)^{\mathrm{T}} F_{m}(\boldsymbol{\Theta}) \hat{\boldsymbol{u}}_{j}^{1}=0 \end{equation*}

对所有的j(j=1, \cdots, N)成立。其中,F_{m}(\boldsymbol{·})为将相机参数向量 \boldsymbol{\Theta}转化为相应的基本矩阵函数,并且

(4)   \begin{equation*} F_{m}(\Theta)=K_{2}^{-T} R_{m}(q)[t]_{ \times} K_{1}^{-1} \end{equation*}

除了需要满足对极约束,修正后的坐标最小化如下目标函:

(5)   \begin{equation*} \begin{aligned} \mathcal{J}_{c c}(\Theta, \boldsymbol{x}) &=\sum_{i=1}^{2} \sum_{j=1}^{N} \rho\left(\boldsymbol{\Theta}, \boldsymbol{u}_{j}^{i}\right) \\ &=\sum_{i=1}^{2} \sum_{j=1}^{N}\left\|\boldsymbol{u}_{j}^{i}-\hat{\boldsymbol{u}}_{j}^{i}\right\|_{2}^{2} \end{aligned} \end{equation*}

式中,\boldsymbol{x}=\left\{\boldsymbol{u}_{j}^{i} | i=1,2 ; j=1, \cdots, N\right\} 为图像特征匹配点对集合。该修正过程假设u_{j}^{1} \leftrightarrow u_{j}^{2}为正确匹配,即特征点不包括外点。在这种情况下,对于任意给定的参数\Theta,均可以计算其对应的 \mathcal{J}_{c c}(\Theta, \boldsymbol{x})。因此相机定标的问题可以转化成下列最优参数搜索问题:

(6)   \begin{equation*} \Theta^{*}=\arg \min _{\Theta} \mathcal{J}_{c c}(\Theta, x) \end{equation*}

值得注意的是,\mathcal{J}_{c c}(\Theta, \boldsymbol{x})中的误差项\rho\left(\boldsymbol{\Theta}, \boldsymbol{u}_{j}^{i}\right)仅仅依赖于参数向量\Theta, 而不需要计算三维点的坐标,此外,该误差项可以被替代为对外点鲁棒的误差项(后面会提及)。经过图像特征点坐标修正后,有:

(7)   \begin{equation*} \left\{\begin{array}{l}{\hat{u}_{j}^{1} \simeq P_{1} \hat{U}_{j}} \\ {\hat{u}_{j}^{2} \simeq P_{2} \hat{U}_{j}}\end{array}\right. \end{equation*}

对于j(j=1, \cdots, N)成立。其中,\hat{U}_{j}=\left(\hat{X}_{i}, \hat{Y}_{i}, \hat{Z}_{i}, 1\right)^{\mathrm{T}}为三维点的估计值的齐次坐标。由于\hat{u}_{j}^{1} \leftrightarrow \hat{u}_{j}^{2}严格满足对极几何关系,所以可以采用快速的线性三角化方法来计算。

图像对应外点剔除

在自动图像特征点匹配过程中,误匹配时常发生,从而导致图像对应中存在部分外点。在这种情况下,式子(6)得到的结果不能反应相机的真实参数,并且因为这个式子对于误匹配异常敏感,一对误匹配就可能导致完全错误的相机定标。对此计算机视觉领域内有学者已经提出多种关于外点匹配鲁棒的方法,比如 随机采样一致(RANSAC)算法,最小平方中值(LMedS)以及最大后验采样一致(MAPSAC)等方法。

与RANSAC不同,本节假设变换并不是从随机选取的样本中拟合得到的,而是直接从参数向量\Theta计算而来的。\Theta 在9维连续空间中采样,假设变换的可能取值远远超过了RANSAV中所需的迭代次数。本节将传统的LMedS算法和MAPSAC算法结合起来,以减少外点对参数估计的影响,同时加快算法的收敛速度。具体来说,在搜索最优参数向量\Theta^{*}时,利用对极几何误差中值约束来减少搜索空间,利用MAPSAC来计算鲁棒性投影误差项。

对于任意参数向量\Theta,两视图间的基本矩阵F_{m}(\boldsymbol{\Theta})可以用过4式来计算。令d_{s}\left(F_{m}(\boldsymbol{\Theta}), \boldsymbol{u}_{j}^{1}, \boldsymbol{u}_{j}^{2}\right)为图像匹配特征点对的几何误差的一次逼近(即Sampson距离),则其服从\chi_{k}^{2}分布。其中k表示\chi_{k}^{2}的自由度,对于对极几何来说,k=1. 为了确定匹配点对与参数向量\Theta是否一致,需要选择一个距离阈值T_{d}^{2}=F_{k}^{-1}(\alpha) \sigma^{2} 使得当d_{s}\left(F_{m}(\boldsymbol{\Theta}), \boldsymbol{u}_{j}^{1}, \boldsymbol{u}_{j}^{2}\right) < T_{d}^{2} 时,u_{j}^{1} \leftrightarrow u_{j}^{2}为内点对应的概率不小于\alpha, (本节令\alpha=0.95 ), 这里,F_{\chi_{k}^{2}}(\cdot)\chi_{k}^{2}的累积分布函数,\alpha为图像观察中高斯噪声的标准差,则,内点外点可以通过如下方式来判断:

(8)   \begin{equation*} f_{\text { in }}\left(\Theta, u_{j}^{1}, u_{j}^{2}\right)=\left\{\begin{array}{ll}{1,} & {d_{s}\left(F_{m}(\boldsymbol{\Theta}), \boldsymbol{u}_{j}^{1}, \boldsymbol{u}_{j}^{2}\right) \leqslant T_{d}^{2}} \\ {0,}&{others}\end{array}\right. \end{equation*}

其中,1表示内点,0表示外点。当且仅当参数向量\Theta满足不等式约束(对极约束)

(9)   \begin{equation*} g(\boldsymbol{\Theta}, \boldsymbol{x})=g_{e}(\boldsymbol{\Theta}, \boldsymbol{x})-T_{d}^{2} \leqslant 0 \end{equation*}

时,\Theta称为对极可行解。其中,对极几何误差g_{e}(\Theta, x)的定义为

(10)   \begin{equation*} g_{e}(\Theta, x) =\left\{\begin{array}{ll}{0,}&{\operatorname{med}_{1 \leqslant j \leqslant N} d_{s}\left(F_{m}(\Theta), \boldsymbol{u}_{j}^{1}, \boldsymbol{u}_{j}^{2}\right) \leqslant T_{d}^{2}} \\ {\operatorname{med}_{1 \leqslant j \leqslant N} d_{s}\left(F_{m}(\Theta), u_{j}^{1}, u_{j}^{2}\right), }&{others}\end{array}\right. \end{equation*}

式中,med表示取种植操作,该方法可以处理上至50%的外点,当所有对应的Sampson距离中值小于T_{d}^{2}时,g_{e}(\Theta, x) 等于0,因此,式9定义的不等式约束仅用于缩小搜索空间,而不是用于最小化对极几何误差。

后续还可以经过施加Cheirality约束来进一步区分内点外点。具体请自行查阅资料。在参考书目里有详细解释。




上一篇:
下一篇:

头像

guodong

说点什么

avatar
  Subscribe  
提醒