本文转自旷视研究院。
在 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.
本文仅做学术分享,如有侵权,请联系删文。
下载1
在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。
下载2
在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。
下载3
在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~