CVPR 2017论文:基于网格的运动统计,用于快速、超鲁棒的特征匹配(附大神解读)

CVPR 2017论文:基于网格的运动统计,用于快速、超鲁棒的特征匹配(附大神解读)

转自极市

CVPR 2017论文:基于网格的运动统计,用于快速、超鲁棒的特征匹配(附大神解读)

CVPR 2017论文

Grid-based Motion Statistics for Fast, Ultra-robust Feature Correspondence


  • 说明

将平滑度约束引入特征匹配是已知的可以实现超强鲁棒匹配。 然而,这样的匹配方案既复杂又缓慢,使得它们不适合于视频应用。 本文提出了GMS(基于网格的运动统计),一种简单的方法,将运动平滑度作为一个统计量,进行局部区域的匹配。GMS可以将高匹配数字转换成高匹配质量。 这提供了一个实时、超强的匹配系统。 评估低质量、模糊的视频和广泛基线显示,GMS始终如一地优于其他实时匹配器。

办公椅演示demo

视频_腾讯视频https://v.qq.com/x/page/u1318owv7e0.html

项目主页:GMS: Grid-based Motion Statistics for Fast, Ultra-robust Feature Correspondence | Total Visits 8521 | JiaWang Bian

本人主页:Home | Total Visits 5054 | JiaWang Bian

C++代码:JiawangBian/GMS-Feature-Matcher

以上转自视觉机器人微博


  • 以下是来自大神对论文的解读

论文GMS的方法实际上是消除错误匹配的一种方案,比如可以替换ransac。算法执行的大致流程是:先执行任意一种特征点的检测和特征点的描述子计算,论文中采用的是ORB特征。然后执行暴力匹配BF,最后执行GMS以消除错误匹配。

opencv的ransac非常耗时,他这个GMS则非常快,比opencv的ransac快好几倍。我是说在同样特征点执行错误消除的时候要比openCV的ransac快。实际上ransac可以优化到非常快,至少可以比openCV的ransac要快10倍以上。

如果说是超越sift,是从最终的效果上看的。其实两个完全不是一个可以直接进行比较的对象。


如论文中所说,ORB特征采用1w个特征点,则orb部分耗时占90%,而GMS的时间可能之占10%。论文中的GMS需要大量的特征点,占时间的将会集中在最前面部分了。这样对比才是对的:

传统的匹配: ORB + BF + RANSAC的时间比例是:30% + 30% + 40%

GMS匹配 : ORB + BF + GMS的时间比例是 :50% + 40% + 10%


当然最终的效果的确不错,这是论文中值得称道的地方。具体还要看应用场景,gms只是解决匹配的问题,ransac除了消除错误匹配,最重要的是得到了图像之间的投影变换矩阵。而且有一点,如果把特征点的数量弄到只有几百个,那最终的效果势必会大打折扣。具体需要进一步去跑跑代码才能知道。


我的结论是:在同样特征点个数的情况下,用ORB+BF+GMS 的时间 小于 SIFT + RANSAC的时间。


为了保证效果,特征点的个数就会很多。这时候ORB+BF+GMS的匹配效果要远好于SIFT+RANSAC,但整个时间可能和SIFT+SANSAC的时间相当甚至还要长。


附大神的博客:CeleryChen 致力于语音图像视频算法在各种硬件体系结构下的最优化实现

附大神的分享:面向移动端的目标检测算法

附原作者线上分享视频回放:

【极市】边佳旺-稳定的图像特征匹配以及快速的GMS方案_演讲•公开课_科技_bilibili_哔哩哔哩
编辑于 2017-06-27 15:42