在刚刚结束的 CVPR 2021 Image Matching 比赛中,旷视研究院 3D 组取得了两冠一亚的成绩。Image Matching (图像匹配)是计算机视觉领域最基础的技术之一,它是指通过稀疏或者稠密特征匹配的方式,将两幅图像相同位置的局部信息进行关联。Image Matching 在很多领域均有广泛应用,如机器人、无人车、AR/VR、图像/商品检索、指纹识别等。
本文将详细介绍旷视的比赛方案、实验和一些思考。
滑动查看更多图片
一、比赛介绍
图像匹配是指将两幅图像具有相同或者相似属性的内容或结构进行像素上的识别与对齐。一般而言,待匹配的图像通常取自相同或相似的场景或目标,或者具有相同形状或语义信息的其他类型的图像对,从而具有一定的可匹配性。
Image Matching Challenge
本次 Image Matching Challenge(IMC) 比赛分为两个赛道——unlimited keypoints 和 restricted keypoints,即每张图片可提取特征点数量分别小于 8k 和 2k。
比赛分为三个数据集—— Phototourism、PragueParks 和 GoogleUrban 。这三个数据集差异化较大,对算法的泛化能力要求较高。如何找到一种可以在三个数据集上面都表现较好的方法,成为了最终评选的标准。
针对每个数据集,评委采用了两种方法进行评估:分别是 Stereo 和 Multiview,最后分别求出这两个任务 rank。
- Stereo:通过两张图片进行匹配,然后解算F矩阵,求解实际的位姿误差。
- Multiview:选取少部分图片组成一个bags,通过bags进行建图,通过3d模型求解不同图片之间的位姿误差。
比赛流程图:
SimLoc Match
SimLoc 也是包含不同场景的数据集,与 IMC 数据集的不同之处——它是一个合成数据集,可以获得完全准确的ground truth。
最终的排名评测由匹配成功率决定,分为了三个指标:
- 内点数量(越高越好)
- 匹配成功率,即匹配内点数量/所有提供的匹配对(越高越好)
- 负匹配对数量,当两张图片没有共视区域时,匹配对应该越少越好
二、比赛方案
数据分析
首先对比赛的三个数据集进行分析
- 观察验证集和测试集之间是否存在gap
- 通过统计各个数据集之间的长宽,来确定resize的大小
Pipeline
这是旷视提交的pipeline,包含六个部分:预处理,特征点检测,refine特征点位置,多尺度或者多角度提取描述子,Guided 匹配和基于自适应FH的RANSAC。
预处理
由于 IMC 赛道对特征点数量的限制,所以特征点的位置选择就变得比较重要。但是一些动态的物体比如车辆,天空等,对匹配求解位姿没有作用,或者有负面作用,都会干扰判断。所以我们采用了分割网络将这些物体先 mask,当提取特征点的时候,就会略过 mask 区域。
使用分割网络进行预处理之后,我们发现了两个问题:
- 一个是由于分割网络的精确度不高,并不能很好的区分建筑物和天空连接区域,就会存在把建筑物边缘轻微破坏的情况,这样不利于匹配。所以我们 mask 动态物体之后,对 mask 区域做了腐蚀处理,这样可以把建筑物的边缘细节保留下来。
- 另外一个问题则是分割网络算法针对真人和雕塑的泛化能力不是很好,当 mask 行人的时候,雕塑也会被 mask。而部分场景例如林肯数据集,雕塑上面的特征点对匹配结果比较重要。针对这个情况,我们训练了一个分类网络用来区分雕塑和行人,这样既可以去掉行人又可以保留雕塑。
通过预处理操作,在 Phototourism 验证集 Stereo 和 Multiview 任务分别提升1.1%和0.3%。
特征点提取
Adapt Homographic
采用100次单应矩阵变换,得到100张变换后的图像,在这些图像上利用 SuperPoint 模型分别提取特征点,可以得到n个特征点的 heatmap,把这n个 heatmap 叠加到一起,得到最后的heatmap,然后再根据需要选择特征点。这样做的好处除了可以提取更多的特征点,也能让特征点的位置更加合理。
由此,通过使用 Adapt Homographic,在 Phototourism 验证集 Stereo 和 Multiview 任务分别提升1.7%和1.3%。
Refinement
SuperPoint 提取出来的特征点是整数,我们采用 soft argmax refinement 并且使用半径为2的参数,进行亚像素化,使得特征点位置更加准确。采用 refinement 方法,在 Phototourism 验证集 Stereo 和 Multiview 任务分别提升0.8%和0.35%。
NMS
通过观察 DISK 特征方法提取出来的特征点,会存在特征点密集扎堆的情况,这样会导致部分区域没有特征点。
为了缓解这类情况,我们采用比较大半径的 NMS,利用 NMS 半径从3扩展到10,从图上可以反映出来,特征点扎堆情况得到改善。在 PragueParks 验证集 Stereo 任务上,也得到0.57%的提升。
Pyramid Descriptor & Guided Pyramid Matching
分析 Corner Cases
滑动查看更多图片
在搭建完 baseline 之后,我们在测试集里面随机抽样,选出部分图片分析 corner cases。通过观察,匹配效果并不好,主要是因为两种情况,或者同时包含上述两种情况:
- 尺度差距比较大
- 大角度旋转
针对上述 corener cases,我们采取了金字塔描述子提取和引导匹配策略。
提取不同尺度和不同角度上面基于同一组特征点提取描述子,也就是在一副图上提取特征点,根据特征点的映射到不同图片上提取描述子。
匹配时先设置一个阈值t,如果匹配数量大于阈值t就使用原尺度或者原角度匹配,当小于阈值t时,则采用多尺度匹配或者多角度匹配的叠加。
经过修正,上述 corner cases 匹配效果得到了一定改善。
滑动查看更多图片
经过上述策略在三个数据集验证集 Stereo 和 Multiview 任务平均提升0.4%。
Retrain SuperGlue
另外我们还重新训练了SuperGlue,这里体现在两个方面。一个是将复现官方的 SuperPoint SuperGlue 方法。第二个是使用效果更好的特征提取方法 DISK,训练 DISK SuperGlue。其中DISK SuperGlue 在 YFCC 验证集上面比 SuperPoint SuperGlue 高4%左右。
针对比赛数据集,DISK SuperGlue 在 Phototourism 上表现较好,但在其他另外两个数据集效果较差,可能是因为 DISK在 Megadepth 上面训练,在建筑物数据集上面过拟合。而 SuperPoint 是在 COCO 上面训练的,COCO包含的场景更加丰富,所以泛化能力更强。
最后在 8k 赛道(unlimited keypoints),我们对 SuperPoint SuperGlue ,DISK SuperGlue 进行 ensemble,效果比二者单独使用要更好。
RANSAC & Adapt FH
首先我们尝试了多种 RANSAC 方法,例如 OpenCV 自带的 RANSAC 方法,DEGENSAC 方法以及 MAGSAC 方法,通过实验发现 DEGENSAC 效果最好。
另外 DEGENSAC 使用F矩阵进行求解时,会出现平面退化问题,类似下图。
针对平面退化问题,受到 ORB-SLAM 的启发,我们设计了一个自适应 FH 策略,具体算法为:
三、方案应用:AR 导航
旷视一直重视将前沿算法与实际业务相结合,本文介绍的 Image Matching 技术已经运用在 S800V SLAM 机器人、AR导航等多个项目之中。
以“室内视觉定位导航”为例,依赖大场景 SfM 稀疏点云重建技术和 Image Matching 等技术,旷视实现了仅使用手机摄像头,就能在复杂室内场景进行准确定位和 AR 导航的功能。相比于传统的 GPS、蓝牙等室内定位方案,“室内视觉定位导航”具有厘米级建图精度、亚米级定位精度且无需对室内场景进行额外布点,满足了客户对室内定位“高精度、易部署维护”的要求。
四、未来展望
- 在训练的时候可以加上强化学习,重新训练整个 pipeline。
- 增强 DISK 的泛化能力,使用更多的数据集进行训练。
- 使用 Refinements 网络,进行对特征点的位置 refine。
五、参考文献
1. D. DeTone, T. Malisiewicz, and A. Rabinovich, “SuperPoint: Self-supervised interest point detection and description,”CoRR, vol. abs/1712.07629, 2017.
2. M. Tyszkiewicz, P. Fua, and E. Trulls, “DISK: Learning local features with policy gradient,” Advances in Neural Informa-tion Processing Systems, vol. 33, 2020.
3.K. He, G. Gkioxari, P. Dollár, and R. B. Girshick,“Mask R-CNN,” CoRR, vol. abs/1703.06870, 2017.
4.H. Zhao, J. Shi, X. Qi, X. Wang, and J. Jia, “Pyramid scene parsing network,” in CVPR, 2017.
5.P.-E. Sarlin, D. DeTone, T. Malisiewicz, and A. Rabinovich, “SuperGlue: Learning feature matching with graph neural networks,” in CVPR, 2020.
6.D. Mishkin, J. Matas, and M. Perdoch, “Mods: Fast and robust method for two-view matching,” Computer Vision and Image Understanding, 2015.
7.C. Campos, R. Elvira, J. J. Gomez, J. M. M. Montiel, and J. D.Tardós, “ORB-SLAM3: An accurate open-source library for visual, visual-inertial and multi-map SLAM,” arXiv preprint arXiv:2007.11898, 2020.