一 为什么要做局部匹配
图像匹配是计算机视觉的基础工作,广泛用于三维重建,SLAM和视觉定位。图像匹配(image to image)算法集中在提取准确的关键点和描述子,而针对外点过滤的方法较少,最经典的莫过于1981年提出的RANSAC算法。
随着匹配算法越来越重要,苏黎世联邦理工学院(ETH Zurich)设计实现了一个快速并行的outlier检测器,可以接入到任何关键点和描述子检测pipeline中作为一个filter使用,高效快速地滤除外点;并且算法没有像RANSAC那样公式较多。论文虽然不是基于深度学习,但是通俗易懂,有python实现的源代码开源,在Image Matching Challenge (CVPR2020)取得state-of-art。(不是第一,第一名还没有开源)
homograph是很好的几何约束模型,但是由于:2d-2d匹配生成的3d点在空间可能不共面(homograph要求的是共面的点),如果检测的点如果相对较远,则会影响误差,由于遮挡,光照等,有可能匹配的2d-2d 不是一个3d上边的点(误匹配等),畸变也会带来误差。
论文提出一种假设:局部仿射,既然整个图像不满足共面,仿射变换不成立,为什么不做局部仿射变换那?
二、匹配对的计算过程
AdaLAM[3]的全称是Adaptive Locally-Affine Matching(自适应局部仿射匹配),本文提出了一种高效快速外点滤除算法。
1.找到初始匹配(最近邻top1):
我们为每个匹配赋值一个score(score可以从ratio test的到,置信度越高score越高),然后使用非极大值抑制得到score最高的match point即选取为seed点;
2、选取满足条件的种子点的附近的点(匹配),构成邻域来支持seed点。
3、每个邻域集合中使用固定迭代次数的ransac,保留那些局部一致较好匹配;
4、并行计算所有的seed点,得到整体的匹配对,根据一定阈值做整体的迭代。
三、优缺点分析
优点:
1.论文用分治的思想,既然图像整体难以满足共面假设,为什么不做局部的共面那?不仅仅可以提速,还可以提高整体的匹配点召回。
2.用纯数学的方法,可以实现比深度学习OA-Net更高的准确率,很是难得。
缺点:
1.论文是Image Matching Challenge (CVPR2020)的一部分,测试集不包括Aachen Day-Night,MegaDepth,Phototourism,给人感觉不是在一个维度讲故事。
2.在几何约束模型上,也没有DEGENSAC,MAGSAC,连自家的SuperGlue[2]也不比对,乍一看和参考文献[1]主流方法分开的感觉。
参考文献
1.Image matching across wide baselines: From paper to practice.arXiv preprint arXiv:2003.01587, 2020.
2.Superglue: Learning feature matching with graph neural networks. arXiv preprint arXiv:1911.11763, 2019.
3.AdaLAM: Revisiting Handcrafted Outlier Detection.arXiv preprint arXiv:2006.04250v1, 2020.