在SIFT和SURF之后,有哪些比较新的且具有影响力的图像配准算法?

作者 | 梓木  编辑 | 汽车人

原文链接:https://www.zhihu.com/question/32066833/answer/511051905

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【SLAM】技术交流群

后台回复【SLAM综述】获取视觉SLAM、激光SLAM、RGBD-SLAM等多篇综述!

距离回答这个问题已经一年了,简单讨论下这个任务在这一年的进展吧。

还是和之前一样先说detector。不出意外,现在几乎都是detector和descriptor一起去学了,这个任务进展非常大。个人觉得比较有意思的几个工作:首先是CVPR'19的D2-Net,这篇大意是说detector其实没必要特意去学,直接从descriptor里取depth-wise maximum和local spatial maximum就可以得到。如果沿着这个方向做,甚至detector都没必要特意设计loss去学(这个loss真的挺难设计的),确实是个很吸引人的性质。但现在d2-net的keypoint localization还是很不准,这对geometry computation影响还是很大,所以如果用来做sfm或者slam这种对geometry很敏感的任务估计还不太行。最近还有一篇R2D2会比d2-net复杂一些,不过看实验结果似乎localization error小了很多,如果以后开源可以多测下。不过D2-Net和R2D2都依赖dense gt correspondences, 比如D2-Net依赖MegaDepth,而R2D2是用EpicFlow自己插值出来的,获取成本和精度都是麻烦事...所以最近有一篇UnSuperPoint,完全self-supervised方法只用homography transformation(这点其实和superpoint很像,不过做成了self-improving,比superpointVO优雅)去做,看起来效果也相当不错,期待它开源了再仔细测一测了。

然后回到descriptor。这次CVPR关于descriptor有两篇oral工作,一篇是SOSNet,引入了second order的regularization,没有复杂的trick,感觉应该是简单有效的。另外是我们组的工作ContextDesc。做这篇的出发点很简单:local patch能提供的信息是有限的,而对于常见的repetitive pattern,很多时候这些patch就不是locally discriminative的,再好的descriptor可能也没法提供更有价值的信息。最直观的想法,当然是forward更多的visual information,比如增大receptive field,但有没有更高效的方法?如何去平衡local detail和global context两者的表示,还是有不少问题值得探索的。另一方面是说,spatial information有什么可以利用的?keypoint location又能提供什么线索?这篇工作的出发点就是去利用更多的contextual information,而不仅仅去依赖local visual information,去增强现有的descriptor,而非学一个新的descriptor。

最后仍然说下matching。learning-based outlier rejection在这一年里也几篇跟进,包括CVPR'19的NM-Net (oral), 以及刚挂上arxiv的一篇kwang moo yi组的续作。我们组ICCV也做了一篇OA-Net。其实三篇工作的核心思想都有些共通,就是要做一些clustering,去capture更多的local motion信息而不仅仅是单纯global的信息。在CVPR19的两个workshop(Local Features & Beyond和Long-term Visual Localization)里,我们把ContextDesc和OA-Net做了结合,也取得了相当不错的效果。

总体来说这个任务在这一年来的发展是蛮快的,越来越多的坑被填,而且各种方法的实用性也被提高。而且经过两个workshop challenge,相关套路的有效性也被进一步验证,应该会在工业界得到更多的应用吧。

原回答:

大致来说整个image matching的流程包含了keypoint detection, feature description及image matching,不知题主具体想了解哪个步骤?反正我先大致根据自己了解的介绍下近期基于learning(2018)的发展吧。

首先是detection, 这一块的文章相对较少,因为通常你很难给出一个对keypoint的清晰定义,这样你就不太容易去用一些supervised的方法去进行训练。其中我觉得比较有意思的几篇 Quad-Net (https://arxiv.org/abs/1611.07571), SuperPoint (Self-Supervised Interest Point Detection and Description), LF-Net (Learning Local Features from Images), 其中后两篇是end-to-end带着descriptor一起学的,未来应该也会有进一步的发展。对于这个任务,我觉得最大的问题是learning-based methods收益到底能有多大,因为传统的诸如DoG已经有比较完备的理论支撑(scale space theory),而且适应于绝大部分场景。在这样一个非常基础的task上消耗如此多计算资源,到底收益如何?generalization能力怎样?我觉得是两个非常实际的问题。

之后是description. 这一块文章就很多了,从improve invariance property的角度来说,deep feature确实更有可能超过诸如SIFT这种基于image gradient的策略。这几年我觉得比较有突破性的工作,一个是L2-Net (yuruntian/L2-Net), 一个是HardNet (DagnyT/hardnet),同时CVPR'18也有好几篇关于这个的paper。另外也安利一下我们组ECCV'18的工作GeoDesc(lzx551402/geodes),俗话说百闻不如一见,我们直接提供了测试脚本可以对SIFT进行对比。GeoDesc也被集成到了我们自己用于生产的3D reconstruction pipeline (Altizure The Portal for Realistic 3D Modeling),并做了大量的测试,所以我还是有些信心说这个工作是很实用的吧(如果你有不work的case可以发我哈哈)。

最后是matching。基于3d point cloud进行matching的文章近年很多,(也有我们的一篇ECCV'18的工作顺便安利下~zlthinker/RMBP),但2d matching改进不是很大,还是传统的那一套:nearest neighbor matching, outlier rejection (e.g., ratio test), geometric verification (e.g., RANSAC)。但CVPR'18有篇很有意思的文章([1711.05971] Learning to Find Good Correspondences) 做outlier rejection这一步,虽然paper细节我还有些疑问,但总体来说是极少数从raw 2d point set上extract feature的工作,而且把geometric verification给encode进网络里也非常有意思。

总体来说我觉得learning-based方法最终还是能取代传统基于SIFT的匹配吧,现在虽然有些efficiency的问题,但优化是无穷无尽的,有朝一日用到SLAM这种实时性要求极高的场景里我觉得也非常有希望。希望对题主有帮助。

44be7230f9a476608abba911adf9b356.png

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;

e200a21ff366f5f641a1de5bec05b5b7.jpeg

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值