论文阅读笔记《AdaLAM: Revisiting Handcrafted Outlier Detection》

核心思想

  本文提出一种利用局部仿射变换筛除误匹配点的方法。两个视角之间的单应性矩阵在局部区域内能够使用仿射变换来近似,仿射变换能够强烈的约束正确匹配点之间几何交叉一致性,是一种非常可靠的滤波器。然而,仿射变换所基于的假设条件如平面性,局部性和正确的映射关系等在实际图像中很难保证。因此作者从候选匹配点中选择匹配置信度高的匹配点作为种子,并且在种子附近的一个小邻域内计算仿射变换矩阵,以满足上述的假设条件。在每个小邻域内都利用RANSAC算法的思想,迭代筛除误匹配点,最终得到正确匹配点的集合。

  本文的匹配流程如上图所示,首先利用SIFT算法从两幅图像中提取关键点,并利用最近邻匹配方法从中提取到候选匹配点集 M \mathcal{M} M,如图1中黄色的点所示。然后,根据比率测试得分作为匹配点的置信度得分(比率测试得分应该是越低,置信度越高),并通过非极大值抑制的方式在半径为 R R R的区域内选择置信度得分最高的点作为种子匹配点,如图2中蓝色圆圈内紫色匹配点所示。
  接着为每个种子匹配点分配一个适当的邻域范围,即将候选匹配点分配给不同的种子匹配点。邻域选择的越大,则越容易包含正确的匹配点来拟合仿射变换矩阵,但也更容易破坏局部性约束。令 S i = ( x 1 S i , x 2 S i ) S_i=(x^{S_i}_1,x^{S_i}_2) Si=(x1Si,x2Si)来表示一对种子匹配点,则从他的局部特征帧中可以获得相似变换,包含方向分量 α S i = α 2 S i − α 1 S i \alpha^{S_i}=\alpha^{S_i}_2-\alpha^{S_i}_1 αSi=α2Siα1Si和尺度分量 σ S i = σ 2 S i / σ 1 S i \sigma^{S_i}=\sigma^{S_i}_2/\sigma^{S_i}_1 σSi=σ2Si/σ1Si。从候选匹配点集 M \mathcal{M} M中选取一组匹配点 ( p 1 , p 2 ) = ( ( x 1 , d 1 , α 1 , σ 1 ) , ( x 2 , d 2 , α 2 , σ 2 ) ) (p_1,p_2)=((x_1,d_1,\alpha_1,\sigma_1),(x_2,d_2,\alpha_2,\sigma_2)) (p1,p2)=((x1,d1,α1,σ1),(x2,d2,α2,σ2)),然后计算该匹配点对应的相似变换 α p , σ p \alpha^p,\sigma^p αp,σp,则种子匹配点对应的邻域范围满足以下条件
论文阅读笔记《AdaLAM: Revisiting Handcrafted Outlier Detection》_第1张图片
其中,公式1约束了候选匹配点与种子匹配点之间的距离应小于一定的范围,公式2约束了种子匹配点和候选匹配点之间的方向变换和尺度变换也要小于一定的阈值,满足上述条件的候选匹配点就归属于相应的种子匹配点。如图3中黄色的连线所表示的。
  最后,对每个小邻域进行自适应仿射变换,按照RANSAC的思想从中邻域内选取最小样本集(最少只需要两对匹配点)来估计仿射变换矩阵,然后筛除离群点,再从剩余的匹配点中采样继续估计仿射变换矩阵,如此反复迭代一定的次数,剩下的匹配点就看作是正确的匹配点。本文采用的是PROSAC(RANSAC的一种改进版)的采样思想,不是随机的从候选匹配点中选择样本来估计仿射变换矩阵,而是引入比率测试得分来偏置采样分布,使得置信度更高的匹配点,更优先被选中。
  在第 j j j次迭代中,邻域 N i \mathcal{N}_i Ni上采样拟合得到的放射矩阵为 A i j A^j_i Aij,则对于邻域内的候选匹配点 k k k,其对应的偏差值 r k r_k rk如下
在这里插入图片描述
简单来讲,偏差值 r k r_k rk小于一定阈值的,就可以认为是正确匹配点,而大于一定阈值的,就认为是误匹配点(离群点)。但本文是对一个局部邻域内进行仿射变换估计,其只能够反映局部区域的图像运动情况。因此没法得到一个具体的固定的阈值,适用于所有种子匹配点对应的邻域。本文采用了一种基于假设检验的方式来判断当前的候选匹配点是否为正确匹配点,假设所有的离群点都符合均匀分布,则可以将偏差值 r k r_k rk映射到一个置信度度量值 c k c_k ck
论文阅读笔记《AdaLAM: Revisiting Handcrafted Outlier Detection》_第2张图片
其中 R \mathcal{R} R表示所有候选匹配点对应的偏差值集合,并从小到大排序; P P P表示偏差值小于等于 r k r_k rk的匹配点的数量, P = 1 + k P=1+k P=1+k R 2 R_2 R2是上文提到的种子匹配点对应邻域范围的半径。假设 r k r_k rk对应的匹配点 k k k是最差的正确匹配点,或者说 r k r_k rk是允许接受的最大偏差值,则 P P P就表示实际找到的正确匹配点的数量, r k 2 / R 2 2 r_k^2/R_2^2 rk2/R22就表示半径为 r k r_k rk的范围占整个邻域范围的面积比例(因为是圆形区域所以用半径的平方计算比例),那么 ∣ R ∣ r k 2 R 2 2 |\mathcal{R}|\frac{r_k^2}{R_2^2} RR22rk2就表示满足前提假设(离群点符合均匀分布)条件下应该找到的正确匹配点数量。置信度 c k c_k ck就是真实找到的正确匹配点数量和估计的正确匹配点数量的比值,比值越大,则说明 k k k点为正确匹配点的概率越高。因此设定一个固定的阈值 t c t_c tc,将置信度大于等于 t c t_c tc的点判断为正确匹配点。对于每个邻域按上述的方法迭代筛选,只输出内点(正确匹配点)数量最多的那次的结果,并且如果某个邻域输出的内点数量小于阈值 t n t_n tn,该邻域也会被筛除。剩余的即为最终的匹配点,如图4中绿色的线条表示。

创新点

  • 通过选择可靠的种子匹配点和划分局部邻域来满足仿射变换假设,进而可以使用RANSAC思想来筛选匹配点
  • 提出一种基于假设检验思想的自适应仿射匹配方法,避免了固定的偏差阈值对于不同的邻域和仿射变换不适应的问题

算法评价

  本文是采用了一种基于传统方法的离群点筛除方法,取得了超过许多基于深度学习的方法,说明传统方法在图像匹配领域还是有继续挖掘的潜质。本文前半部分内容并不难理解,就是通过选取种子匹配点和划分局部邻域,来满足仿射变换假设条件,从而可以采用基于RANSAC方法来筛除离群点。比较困难的点在于不同的邻域都包含不同的仿射变换模型,进而很难用一个固定阈值来判断哪些点属于内点,作者采用的方法相当于根据每个邻域内的实际观测结果,来估计一个置信度值,将置信度高于阈值的点判定为内点,这种方法的好处在于置信度值是会根据邻域内的实际情况自适应调整的,从而可以用一个固定的阈值来进行判断。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。

你可能感兴趣的:(论文阅读笔记,#,图像匹配,图像匹配,RANSAC,仿射变换)