精华内容
下载资源
问答
  • 针对加速鲁棒特征算法用于井下视频拼接时实时性不高的问题,通过降低特征点维度和仅在感兴趣区域提取特征点来改进加速鲁棒特征算法,在此基础上提出了一种井下视频拼接算法。首先,利用改进的加速鲁棒特征算法提取视频...
  • 基于加速鲁棒特征的木材显微图像自动配准方法
  • 为保证眼底图像配准精度,同时降低时间损耗,提出一种改进的基于加速鲁棒特征的眼底图像配准方法。该方法在提取眼底图像加速鲁棒特征的基础上,利用BBF 算法和特征的方向特性和空间一致性检测得到初始匹配特征序列,...
  • 针对遥感影像半全局立体匹配(SGM)对噪声敏感及在视差不连续和弱纹理区域产生条纹导致匹配率低的问题,提出一种结合加速鲁棒特征(SURF)的遥感影像SGM算法。首先,用SURF计算遥感影像的特征匹配点和特征点主方向,并用...
  • 基于改进加速鲁棒特征的平面旋转人脸检测算法,马丹,赖惠成,针对人脸检测中存在的旋转人脸的问题,本文提出将改进的SURF(Speeded Up Robust Features)与Adaboost算法相结合并融合人眼定位来实现平面旋�
  • 上一篇博客介绍了用于关键点检测和描述的SIFT,但它相对较慢。这篇博客将介绍其优化版本——SURF(Speeded-Up Robust Features 加速鲁棒特征),它是加速版的SIFT。

    上一篇博客介绍了用于关键点检测和描述的SIFT,但它相对较慢,这篇博客将介绍其优化版本——SURF(Speeded-Up Robust Features 加速鲁棒特征),它是加速版的SIFT;

    • 在SIFT中,Lowe用高斯差分近似高斯的拉普拉斯算子来寻找尺度空间。
    • SURF借助于积分图像,可以很容易地计算带盒滤波器的卷积。并行计算不同的尺度。此外,SURF还依赖于规模和位置的Hessian矩阵行列式。
    • SURF增加了许多功能以提高每一步的速度。它比SIFT快3倍,而性能与SIFT相当。
    • SURF擅长处理模糊和旋转的图像,但不擅长处理视点变化和照明变化。

    1. 效果图

    SURF默认参数效果图如下:

    检查到的关键点比较多,把原图覆盖完了。
    在这里插入图片描述
    SURF调整阈值,检查到关键点近50个,效果图如下:
    在这里插入图片描述
    使用U-SURF不计算方向,方向全为一个,SURF关键点效果图如下:
    在这里插入图片描述
    默认以64D计算效果图如上,调整为128D,U-SURF效果图如下:基本没差别
    在这里插入图片描述

    2. 原理

    OpenCV使用 SURF.detect()、SURF.compute()等来查找关键点和描述符。

    2.1 为什么SURF比SIFT快?

    • 在任何尺度下,利用积分图像都可以很容易地发现小波响应。
    • 不考虑旋转不变形,因此不需要找到方向会加快过程。
    • SURF提供了一种称为Upright-SURF或U-SURF的功能。它提高了速度,±15°之间非常健壮。
    • OpenCV支持Upright-SURF、U-SURF,具体取决于标志。如果为0,则计算方向。如果为1,则不计算方向,速度更快。
    • 维数越低,计算和匹配的速度越快,但特征的显著性越好。OpenCV通过分别为64 dim和128 dim设置扩展为0和1的标志值(默认值为128 dim)来支持这两种功能
    • 另一个重要的改进是对潜在兴趣点使用拉普拉斯符号(Hessian矩阵的轨迹)。它不增加计算成本。拉普拉斯符号将黑暗背景上的明亮斑点与相反情况区分开来。
    • 在匹配阶段,只比较具有相同对比度的特征(如下图所示)。这种最小的信息允许更快的匹配,而不会降低描述符的性能。

    2.3 怎样获取SIFT与SURF?

    SIFT、SURF是有专利的算法,在OpenCV3.0以上时已去除。移到了opencv-contrib-python版本中。所以有以下方法可以获取:
    1)安装opencv3以下版本
    2)卸载opencv3以上版本,opencv-contrib-python安装指定版本
    3)安装opencv3以上版本,安装opencv-contrib-python,源码编译安装opencv;

    综上方法2更方便可行,只需要俩步:

    1. 卸载opencv-python
    2. 安装指定版本opencv-contrib-python==3.4.2.17
    pip uninstall opencv-python
    
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python==3.4.2.17
    

    可以看到成功了
    在这里插入图片描述

    3. 源码

    # 寻找SURF关键点和描述符并绘制
    import cv2
    from matplotlib import pyplot as plt
    
    img = cv2.imread('images/butterfly.jpg', 0)
    
    # 创建SURF对象,可以在创建时指定参数也可以稍后设置参数
    # 此处设置 Hessian阈值为 400
    sift = cv2.xfeatures2d.SIFT_create()
    print('sift: ', sift)
    surf = cv2.xfeatures2d.SURF_create()
    print('surf: ', surf,
          ' \ndefaultParameter\thessianThreshold: ', surf.getHessianThreshold(),
          ' upright: ', surf.getUpright(),
          ' extended: ', surf.getExtended(),
          ' descriptors: ',surf.descriptorSize())
    
    # 寻找SURF关键点和描述符
    # kp:返回的关键点列表,des:numpy数组
    kp, des = surf.detectAndCompute(img, None)
    # 绘制关键点在图片上
    img2 = cv2.drawKeypoints(img, kp, None, (255, 0, 0), 4)
    plt.imshow(img2), plt.xticks([]), plt.yticks([]), plt.title('more keypoints'), plt.show()
    
    print('keypoints: ', len(kp))
    
    # 检查当前Hessian阈值
    # print(surf.getHessianThreshold())
    
    # 调整Hessian阈值,此处设置为50000,但一般最佳设置为300~500
    surf.setHessianThreshold(50000)
    print(' parameters\thessianThreshold: ', surf.getHessianThreshold(),
          ' upright: ', surf.getUpright(),
          ' extended: ', surf.getExtended(),
          ' descriptors: ',surf.descriptorSize())
    
    # 再一次计算关键点和描述符
    kp, des = surf.detectAndCompute(img, None)
    
    print('keypoints: ', len(kp))
    
    # 绘制关键点在图片上
    img2 = cv2.drawKeypoints(img, kp, None, (255, 0, 0), 4)
    
    plt.imshow(img2), plt.xticks([]), plt.yticks([]), plt.title('less than 50 keypoints'), plt.show()
    
    # U-SURF不会计算方向
    # print(surf.getUpright())
    surf.setUpright(True)
    print(' parameters\thessianThreshold: ', surf.getHessianThreshold(),
          ' upright: ', surf.getUpright(),
          ' extended: ', surf.getExtended(),
          ' descriptors: ',surf.descriptorSize())
    
    # 重新计算关键点和描述符,并绘制
    kp = surf.detect(img, None)
    print('keypoints: ', len(kp))
    img2 = cv2.drawKeypoints(img, kp, None, (255, 0, 0), 4)
    
    plt.imshow(img2), plt.xticks([]), plt.yticks([]), plt.title('U-SURF'), plt.show()
    
    # 所有方向显示在同一方向,它比以前快多了。如果您正在处理方向不成问题的情况(如全景缝合)等,使用U-SURF会更好。
    # 寻找描述符的大小
    # print(surf.descriptorSize())
    # extended为false,默认为64D
    # print(surf.getExtended())
    
    # 设置描述符为128D
    surf.setExtended(True)
    print(' parameters\thessianThreshold: ', surf.getHessianThreshold(),
          ' upright: ', surf.getUpright(),
          ' extended: ', surf.getExtended(),
          ' descriptors: ',surf.descriptorSize())
    
    kp, des = surf.detectAndCompute(img, None)
    print('keypoints: ',len(kp))
    img2 = cv2.drawKeypoints(img, kp, None, (255, 0, 0), 4)
    
    plt.imshow(img2), plt.xticks([]), plt.yticks([]), plt.title('128D res'), plt.show()
    

    参考

    展开全文
  • Sift算法的优点是特征稳定,对旋转、尺度变换、亮度保持不变性,对视角变换、噪声也有一定程度的稳定性;缺点是实时性不高,并且对于边缘光滑目标的特征点提取能力较弱。 Surf(Speeded Up Robust Features)改进了...

    1.原理:

    Sift算法的优点是特征稳定,对旋转、尺度变换、亮度保持不变性,对视角变换、噪声也有一定程度的稳定性;缺点是实时性不高,并且对于边缘光滑目标的特征点提取能力较弱。
    Surf(Speeded Up Robust Features)改进了特征的提取和描述方式,用一种更为高效的方式完成特征的提取和描述。

    2.Surf实现流程

    2.1 构建Hessian(黑塞矩阵),生成所有的兴趣点,用于特征的提取

    黑塞矩阵(Hessian Matrix)是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。由德国数学家Ludwin Otto Hessian于19世纪提出。
    surf构造的金字塔图像与sift有很大不同,Sift采用的是DOG图像,而surf采用的是Hessian矩阵行列式近似值图像。
    Hessian矩阵是Surf算法的核心,构建Hessian矩阵的目的是为了生成图像稳定的边缘点(突变点),为下文的特征提取做好基础。
    每一个像素点都可以求出一个Hessian矩阵。
    在这里插入图片描述
    Hessian矩阵的判别式为:
    在这里插入图片描述
    当Hessian矩阵的判别式取得局部极大值时,判定当前点是比周围邻域内其他点更亮或更暗的点,由此来定位关键点的位置。
    在SURF算法中,图像像素l(x,y)即为函数值f(x,y)。但是由于我们的特征点需要具备尺度无关性,所以在进行Hessian矩阵构造前,需要对其进行高斯滤波,选用二阶标准高斯函数作为滤波器。
    在这里插入图片描述
    通过特定核间的卷积计算二阶偏导数。通过特定核间的卷积计算二阶偏导数,这样便能计算出H矩阵的三个矩阵元素L_xx, L_xy, L_yy从而计算出H矩阵:
    在这里插入图片描述
    由于高斯核是服从正态分布的,从中心点往外,系数越来越低,为了提高运算速度,Surf使用了盒式滤波器来近似替代高斯滤波器,提高运算速度。
    盒式滤波器(Boxfilter)对图像的滤波转化成计算图像上不同区域间像素和的加减运算问题,只需要简单几次查找积分图就可以完成。
    每个像素的Hessian矩阵行列式的近似值:
    在这里插入图片描述
    在Dxy上乘了一个加权系数0.9,目的是为了平衡因使用盒式滤波器近似所带来的误差。

    2.2构建尺度空间

    同Sift一样,Surf的尺度空间也是由O组L层组成,不同的是,Sift中下一组图像的尺寸是上一组的一半,同一组间图像尺寸一样,但是所使用的高斯模糊系数逐渐增大;而在Surf中,不同组间图像的尺寸都是一致的,但不同组间使用的盒式滤波器的模板尺寸逐渐增大,同一组间不同层间使用相同尺寸的滤波器,但是滤波器的模糊系数逐渐增大。
    在这里插入图片描述

    2.3特征点定位

    特征点的定位过程Surf和Sift保持一致,将经过Hessian矩阵处理的每个像素点与二维图像空间和尺度空间邻域内的26个点进行比较,初步定位出关键点,再经过滤除能量比较弱的关键点以及错误定位的关键点,筛选出最终的稳定的特征点。
    在这里插入图片描述

    3.4特征点主方向分配

    Sift特征点方向分配是采用在特征点邻域内统计其梯度直方图,而在Surf中,采用的是统计特征点圆形邻域内的harr小波特征。
    在特征点的圆形邻域内,统计60度扇形内所有点的水平、垂直harr小波特征总和,然后扇形以一定间隔进行旋转并再次统计该区域内harr小波特征值之后,最后将值最大的那个扇形的方向作为该特征点的主方向。
    在这里插入图片描述

    3.5生成特征点描述子

    在Sift中,是取特征点周围44个区域块,统计每小块内8个梯度方向,用着4×4×8=128维向量作为Sift特征的描述子。
    Surf算法中,也是在特征点周围取一个4×4的矩形区域块,但是所取得矩形区域方向是沿着特征点的主方向。每个子区域统计25个像素的水平方向和垂直方向的haar小波特征,这里的水平和垂直方向都是相对主方向而言的。该haar小波特征为水平方向值之后、垂直方向值之后、水平方向绝对值之后以及垂直方向绝对值之和4个方向。
    在这里插入图片描述
    把这4个值作为每个子块区域的特征向量,所以一共有4×4×4=64维向量作为Surf特征的描述子,比Sift特征的描述子减少了一半。

    2.6 特征点匹配

    与Sift特征点匹配类似,Surf也是通过计算两个特征点间的欧式距离来确定匹配度,欧氏距离越短,代表两个特征点的匹配度越好。
    不同的是Surf还加入了Hessian矩阵迹的判断,如果两个特征点的矩阵迹正负号相同,代表这两个特征具有相同方向上的对比度变化,如果不同,说明这两个特征点的对比度变化方向是相反的,即使欧氏距离为0,也直接予以排除。

    原文链接

    SURF算法

    参考阅读

    图像特征提取算法:尺度不变特征变换SIFT
    SURF算法详解
    SURF原理与源码解析

    展开全文
  • SURF:Speed Up Robust Features是继SIFT算法后有H Bay提出的一特征点提取算法,其灵感来自于SIFT,所以该算法的几个步骤和SIFT算法相似,但其速度是SIFT算法的多倍之多(基于hessian的快速计算方法),下面我们就来...

    SURF:Speed Up Robust Features是继SIFT算法后有H Bay提出的一特征点提取算法,其灵感来自于SIFT,所以该算法的几个步骤和SIFT算法相似,但其速度是SIFT算法的多倍之多(基于hessian的快速计算方法),下面我们就来看看该算法实现的过程:(ps:本文纯属个人理解,如有错误望指正)

    1、初始化图像:将图像转变成32位单精度单通道图像

    2、得到图像积分图:积分图是为下面计算fast-hessian做准备

    3、hessian矩阵计算:采用近似计算,加快计算速度

    4、构建尺度空间:保持图片不变,增大高斯核的尺度

    5、找出关键点:利用hessian矩阵发现关键点,同时关键点还需是临近26个像素中最大或最小值

    6、确定描述因子方向:为了保持特征点的旋转不变性,确定描述因子主方向

    7、计算描述因子:利用harr小波变换计算描述因子


    接下来介绍几个主要知识点:

    1、积分图像:


    X代表点(x,y),即输入图像的原点和点X所组成的矩阵内所有像素的和。将图像所有像素点计算即可


    2、hessian matrix

    点X的hessian matrix 可由下式定义:


    其中Lxx为高斯二阶导数和图像在X点的卷积,Lxy、Lyy 类似

    算法提出一种hessian matrix 的近似求解方法:即box filters

    下图为二阶高斯导数的近似图像:


    左边为二阶高斯导数图像,右边为二阶高斯近似图像

    采用近似方法的好处是,hessian matrix的求解速度可以得到很大的提高,然后采用此方法也会造成结果出现一定的误差,因此我们在计算det(H)时加上一个系数w


    w取0.9,具体是由下面式子计算而来:



    3、构建尺度空间

    为了满足尺度不变性,特征点必须在不同的尺度空间下提取。SIFT采用的是高斯图像金字塔。由于使用了box filters 和积分图像,所以没有必要重复的计算采样层,不需要像SIFT算法那样去直接建立金字塔图像,不同尺度的采样层只需计算一次即可,采用不断增大的盒子滤波模板的尺寸的间接方法。通过不同尺寸盒子滤波模板和积分图像求取Hessian矩阵行列式的响应图像,然后,在响应图像上采用3D非最大值抑制,求取各种不同尺度的斑点。




    与SIFT相类似,SURF也将尺度空间划分成若干组(Octaves)。一个组代表了逐步放大的滤波模板对同一个输入图像进行滤波的一系列响应图像。每一组又有若干固定的层组成

    尺度空间被分成5组(five ostavls),每组4层(four intervals),高斯核的尺度空间如下:

     

    // Oct1: 9,  15, 21, 27
    // Oct2: 15, 27, 39, 51
    // Oct3: 27, 51, 75, 99
    // Oct4: 51, 99, 147,195
    // Oct5: 99, 195,291,387


    4、找出关键点

          为了在目标影像上确定SURF特征点,我们使用了3*3*3的模板在3维尺度空间进行非最大化抑制,根据预设的Hessian阈值H,当h大于H,而且比临近的26个点的响应值都大的点才被选为兴趣点。最后进行插值精确。



    5、特征点主方向确定

          为了保证特征矢量具有旋转不变形,需要对每一个特征点分配一个主要方向。需要以特征点为中心,以6ss为特正点的尺度)为半径的圆形区域内,对图像进行Haar小波响应运算。这样做实际就是对图像进行了梯度运算,但是利用积分图像,可以提高计算图像梯度的效率。为了求取主方向值,需要设计一个以方向为中心,张角为PI/3的扇形滑动窗口,以步长为0.2弧度左右,旋转这个滑动窗口,并对窗口内的图像Haar小波的响应值进行累加。 主方向为最大的Haar响应累加值对应的方向 。


    6、描述因子形成

      生成特征点的特征矢量需要计算图像的Haar小波响应。在一个矩形的区域内,以特征点为中心,沿主方向将20s*20s的图像划分成4*4个子块,每个子块利用尺寸2sHaar小波模板进行响应计算,然后对响应值进行统计形成的特征矢量 



    到此,SURF的描述因子就已经形成,我们就可以利用该描述因子去做我们想做的事情了!





    转载于:https://www.cnblogs.com/Black-Small/p/3258467.html

    展开全文
  • 安全冲浪:隐私保护,加速鲁棒特征提取器
  • 根据其便利性和便利性,最适用于图像特征点提取和匹配的算法是加速鲁棒特征(SURF)。 尺度不变特征变换(SIFT)算法的增强功​​能提高了算法的有效性,并提高了可能性,同时该算法的应用正在当前的计算机视觉系统...
  • 面向大规模SFM的快速鲁棒特征跟踪算法.pdf,运动恢复结构(SFM)是指通过分析二维图像序列恢复三维结构信息的过程,在计算机视觉的多种应用中起着重要的作用。特征跟踪是大规模SFM的核心组成部分,但现有的多视图特征...
  • 当然不是,本文设计了一种基于划分网格的算法对上述算法进行加速。将两幅图像划分为多个不重合的网格: 以及 , 表示为落到网格 和 中的一个匹配对,如上图中的一个红线段。于是邻域(表示在网格网格 中的匹配)被...

    点击上方“3D视觉工坊”,选择“星标”

    干货第一时间送达

    今天要介绍的文章是边佳旺在CVPR2017以及IJCV2020发表的GMS,论文名是"GMS: Grid-based Motion Statistics for Fast, Ultra-robust Feature Correspondence"。该算法能够实现对初始匹配的筛选,以减少错误匹配。

    (a)图是ORB+Lowe Ratio的结果,有很多错误的匹配;(b)图是ORB+Lowe Ratio+GMS的结果,匹配效果明显变好。

    首先祭出代码[1]:项目地址项目地址[2],论文:CVPR 2017[3]IJCV 2020[4], 讲义:稳定的图像特征匹配以及快速的GMS方案[5],视频资料:Bilibili[6]Youtube[7]

    原有技术问题

    原有算法复杂,为了达到好的效果,设计的算法比较复杂,导致运行速度慢,性价比低,无法部署在实时性要求较高的系统中。

    新技术创新点

    1. 将运动平滑约束转换为剔除错误匹配的统计量,实验证明该算法能够应对较为棘手的场景;

    2. 提出了一种高效的基于网格的得分估计器,使得该算法能够用于实时特征匹配;

    3. 能够取得比Lowe Ratio更好的特征匹配筛选效果,该结论已经在传统特征如SIFT,SURF以及CNN特征如LIFT上得到验证;

    新技术关键技术点

    首先给出一个假设:

    运动平滑性:真实匹配的小邻域内匹配通常是在三维空间中的同一块区域。同样地,一个错误匹配的邻域内的匹配通常是几何上不同的三维位置。

    这个假设告诉我们:正确匹配的邻域内有多个支持它的匹配,而错误匹配的邻域内支持它的匹配是很少的。这里其实隐含着一个逻辑:作者通过观察发现,正确匹配的邻域内匹配的数量多的概率就会很大,反之则少;那么根据贝叶斯法则,那些匹配对邻域内有很多匹配的匹配关系有很大概率是正确匹配。一句话:正确匹配周围会有较多的匹配去支持它,而错误的匹配周围支持它的匹配很少

    运动统计

    输入图像为 ,它们分别有 个特征匹配;

    表示图 到图 的最近邻匹配;其中 表示像素点 的匹配;定义 的邻域为:

    以及它的相似邻域可以表示为:

    其中 表示两点之间的欧式距离, 为距离阈值,对于 ,它表示在 中元素的个数,即匹配 的运动支持。如下图所示:黄圈区域即表示邻域 。支持它的匹配对为 ,错误匹配没有支持它的匹配对,即 。那么可以通过统计的方式知道哪些匹配是正确的,哪些是错误的。

    由上文我们知道:统计支持域内的匹配数量就能够判别正确/错误匹配。于是我们可以对 建模,如下:

    其中 表示二项分布, 表示邻域内匹配对的数量, 分别表示正确/错误匹配被其某个邻域窗口匹配支持的概率。

    进一步解释: 是受特征质量的控制,即接近匹配的正确率。 通常很小,因为错误匹配几乎随机分布在图像范围内。上式的期望为:

    方差为:

    于是真假匹配的可区分度被表示为如下形式(均值差异比方差之和):

    上式告诉我们 ,如果 时, 。也就是说,当图像中的匹配点越多,此时正确与错误匹配的可区分度就越强!同时,即使是在 稍微大一丁点的情况下,也可以通过增多特征点的数量来弥补正确匹配与错误匹配区分程度不足的缺点;当然,也可以通过提高特征质量 来增加正确/错误匹配之间的区分度。

    上图展示了作者在Oxford Affine Dataset上验证模型合理性的示意图。利用SIFT特征进行匹配,根据真值标记出正确以及错误匹配。统计每个匹配所在小邻域内的匹配数量。可以发现,正确匹配的支持域得分明显高于错误匹配,即使在非常困难的匹配序列上,该现象仍然存在。

    因此,可通过对 设置阈值来判定 是正确或者错误匹配:

    上式中, 以及 分别表示正确/错误匹配集合, 的阈值被设置为:

    其中 为超参数,经验值为4~6。

    基于网格的框架

    看到这里,大家肯定有一个疑问:如何高效地实现上述算法呢?难道对每一个匹配画个圈圈,然后统计圈圈内的匹配数?当然不是,本文设计了一种基于划分网格的算法对上述算法进行加速。将两幅图像划分为多个不重合的网格: 以及 表示为落到网格 中的一个匹配对,如上图中的一个红线段。于是邻域(表示在网格网格 中的匹配)被重新定义为:

    相似邻域被重新定义为:

    上面的两个式子中, 表示某个网格, 表示落在 中的匹配对, 表示同时落在 中的匹配对。换句话说,本文将落在同一个网格中的匹配当作邻域,将同时落在两个网格中的匹配称为相似邻域,即cell-pair。

    注意:一个cell-pair中的匹配满足运动平滑性假设,所以在判断匹配关系是正确还是错误时,仅需要判定一个cell-pair中的所有匹配是否正确即可,无需逐个匹配判断。此外,不需要确定所有可能的cell-pair,而是只检查与第一个图像网格匹配数量最多的一个cell-pair即可。

    运动核

    如果网格很小,则很少邻域信息将被考虑, 这会降低算法性能。但是,如果网格很大,则将包括更多不正确的对应关系。为解决这个矛盾,我们将网格大小设置为较小以提高准确性,并提出运动内核以考虑更多邻域信息。

    考虑了原有网格邻域的8个网格,构成一个更大的网格

    于是我们从新定义了邻域:

    其中 ;重新定义相似邻域:

    其中:

    多尺度+多旋转

    为了应对匹配过程中的尺度与旋转问题,本文提出了多尺度以及多旋转策略。

    多尺度

    固定一个图像网格,假设网格大小为 ,改变另一个图像的网格大小为 ,其中有5个候选的 取值,分别为 。在不同尺度的网格上运行GMS算法,然后统计最好的匹配结果。如果场景的尺度发生较大改变,此时可以设置更多的候选值或者增大

    多旋转

    利用旋转运动核模拟不同方向的旋转,如下图所示,固定 ,对 按照顺时针旋转,这样可以得到8个运动核。然后利用GMS算法在所有的运动核上,然后选择最好的结果(选择匹配数量最多那个)。

    伪代码

    综上,算法伪代码如下:

    局限性

    1. 首先,算法假设图像运动是分段平滑的时,在违反假设的区域,例如图像边界,性能可能退化;

    2. 其次,在视觉上相似但空间位置不同的图像区域,算法性能受到限制。此问题通常发生在具有大量重复纹理的场景中;

    3. 最后,由于算法使用了网格化对图像进行处理,算法判定正确的匹配网格中仍然存在不准确匹配。

    实验

    旋转以及尺度变化

    高精确率与召回率

    耗时短

    GMS能够在PC端速度2ms,multi-scale(GMS-S)以及multi-rotation(GMS-R)会增加一定的耗时。

    高效解算位姿

    求解位姿速度快,且位姿精确。

    有利于SLAM初始化

    集成到SLAM也可获得较好的结果(该实验不够充分,仅测试了将GMS集成到SLAM初始化的阶段,为了展示GMS能够更快/更好的进行初始化,同时能够产生较多的地图点)。

    借鉴意义

    1. 本文提供了一种高效/快速的外点滤除算法,能够在PC端实现实现实时滤除外点;

    2. 本算法已经被集成到OpenCV中,接口名为matchGMS(),可直接调用;

    3. 本算法可用于SLAM/SFM等领域,可提高位姿解算的精度以及速度;

    4. (局限)本算法需要提取较多的特征点以提高正确匹配与错误匹配的可区分度;若特征匹配较少,该算法性能会有一定下降;

    5. (局限)由于仅统计特征匹配数量,在重复纹理条件下该算法的性能也会下降;

    附录

    [1]

    代码Repo: https://github.com/JiawangBian/GMS-Feature-Matcher

    [2]

    项目地址: http://jwbian.net/gms

    [3]

    CVPR 2017: https://cdn.jsdelivr.net/gh/Vincentqyw/blog-resources/gms-matching/gms-matching-CVPR2017.pdf

    [4]

    IJCV 2020: https://cdn.jsdelivr.net/gh/Vincentqyw/blog-resources/gms-matching/gms-matching-IJCV2020.pdf

    [5]

    稳定的图像特征匹配以及快速的GMS方案: https://cdn.jsdelivr.net/gh/Vincentqyw/blog-resources/gms-matching/gms-matching-slides.pdf

    [6]

    Bilibili: https://www.bilibili.com/video/BV1Yx411h7Fe

    [7]

    Youtube: https://www.youtube.com/watch?v=3SlBqspLbxI&feature=youtu.be

    本文仅做学术分享,如有侵权,请联系删文。

    下载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人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。

    一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

    ▲长按加微信群或投稿

    ▲长按关注公众号

    3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

    学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

     圈里有高质量教程资料、可答疑解惑、助你高效解决问题

    觉得有用,麻烦给个赞和在看~  

    展开全文
  • GMS快速高鲁棒特征学习

    千次阅读 2017-07-07 17:16:06
    加入平滑约束项的特征匹配具有高鲁棒性匹配效果。 该文章提出GMS:一种简单方法封装运动平滑来作为数据估计区域中一个确定数量的匹配。GMS可以将高数量匹配转换成高质量匹配。这实现了一种实时,高鲁棒性的系统。...
  • 针对传统鲁棒高斯混合模型EM算法存在模型成分参数难以精确获取最优解以及收敛速度随样本数量的增加而快速降低等问题,提出了一种基于鲁棒高斯混合模型的加速EM算法。该算法采用隐含参量信息熵原理对高斯模型分量个数...
  • 滚滚长江东逝水,浪花淘尽英雄。是非成败转头空。——(明)杨慎《临江仙》 ...众所周知,将平滑度约束集成到特征点匹配中可以使特征匹配变得非常鲁棒。然而,这种方案既复杂又运行缓慢,这使得它在视
  • 图像存在遮挡、尺度缩放、多干扰时,传统加速鲁棒特征(SURF)算法会产生错误匹配问题,提出一种基于匹配角度聚类的匹配算法。算法先提取SURF特征点,利用特征点的主方向信息进行图像角度矫正,再统计并聚类粗匹配对...
  • 顾名思义它是SIFT的加速版本。 在SIFT中,Lower用高斯差分近似拉普拉斯高斯分布来寻找尺度空间。SURF走得更远一点,并用Box Filter逼近LoG。下图显示了这种近似的演示。这种近似的一大优点是,利用积分图像可以容易...
  • SURF特征检测

    2019-11-14 21:50:36
    SURF即Speeded Up Robust Features加速鲁棒特征; SURF可以用于对象定位和识别、人脸识别、3D重建、对...
  • SURF即Speeded Up Robust Features加速鲁棒特征; SURF可以用于对象定位和识别、人脸识别、3D重建、对象跟踪和提取兴趣点等。 工作原理: 1、选择图像中POI(Points of Interest) Hessian Matrix; 2、在不同的尺度...
  • 以下图像特征算法是计算机视觉入门必须了解的图像特征提取算法: MPEG-7标准中的视觉描述符 颜色和边缘的方向性描述符CEDD 模糊颜色和纹理直方图FCTH 颜色布局描述符Color ...图像特征提取算法:加速鲁棒特征SURF ...
  • 通过保角映射将3D人脸转换到2D平面,保留了面部变化的线索,提出了基于优化算法的差分进化(DE)算法用于提高识别效率,同时提取最优人脸特征集和分类器参数,加速鲁棒特征池描述了所有预期的人脸特征点。...
  • 提出了一种鲁棒的基于全局特征图像检索和组匹配的重定位方法。与传统的BoW方法相比,该方法具有更高的成功率和更低的计算成本。 提出了一种基于全局特征和局部特征的可靠LCD方法。通过训练新的视觉词汇来聚合局部...
  • 图像特征之SURF特征匹配

    千次阅读 2017-12-19 18:43:07
    原文站点:https://senitco.github.io/2017/06/27/image-feature-surf/  加速鲁棒特征(Speed Up Robust Feature, SURF)和SIFT特征类似,同样是一个用于检测、描述、匹配图像局部特征点的特征描述子。SIFT是被广泛...
  • 使用加速鲁棒特征检测特征 加速鲁棒特征(Speeded Up Robust Features,SURF)是一种类似SIFT并且由其启发的专利算法(参考11.3节)。SURF于2006年推出,使用Haar小波变换(参考6.13节)。SURF最大的优点是比SIFT更...
  • opencv3/C++ SURF特征检测

    千次阅读 2018-01-18 20:46:16
    SURF即Speeded Up Robust Features加速鲁棒特征; SURF可以用于对象定位和识别、人脸识别、3D重建、对象跟踪和提取兴趣点等。 工作原理: 1、选择图像中POI(Points of Interest) Hessian Matrix; 2、在不同的...
  • OpenCV检测图像SURF特征

    千次阅读 2016-05-05 19:11:24
    SURF特征SURF特征——speeded up robust features 加速鲁棒特征。具有尺度不变性,计算相对高效。 所谓尺度不变性,在特征点匹配上,个人比较白话的理解是: 相同内容的不同尺度的两张图片(例,图像1:张三的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,735
精华内容 4,294
关键字:

加速鲁棒特征