0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图像识别中SIFT算法与SURF算法的区别

PoisonApple 来源:网络整理 2017-12-15 07:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

SIFT由David Lowe在1999年提出,在2004年加以完善 。SIFT在数字图像的特征描述方面当之无愧可称之为最红最火的一种,许多人对SIFT进行了改进,诞生了SIFT的一系列变种。SIFT已经申请了专利。

SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。

SURF 算法,全称是 Speeded-Up Robust Features。该算子在保持 SIFT 算子优良性能特点的基础上,同时解决了 SIFT 计算复杂度高、耗时长的缺点,对兴趣点提取及其特征向量描述方面进行了改进,且计算速度得到提高。

SURF (Speeded Up Robust Features)也是一种类似于SIFT的兴趣点检测及描述子算法。其通过Hessian矩阵的行列式来确定兴趣点位置,再根据兴趣点邻域点的Haar小波响应来确定描述子,其描述子大小只有64维(也可以扩展到128维,效果更好),是一种非常优秀的兴趣点检测算法。本文主要从SURF原文出发,结合自己一些理解,并比较sift方法,对其算法原理进行总结。

一、FAST-Hessian检测

首先同SIFT方法一样,SURF也必须考虑如何确定兴趣点位置,不过SIFT采用是DOG来代替LOG算子,找到其在尺度和图像内局部极值视为特征点,而SURF方法是基于Hessian矩阵的,而它通过积分图像极大地减少运算时间,并称之为FAST-Hessian。(这里提一下,SIFT通过DOG来近似LOG,也实际上相当于计算Laplacian,即可以视为Hessian矩阵的迹,而SURF则利用的近似Hessian矩阵的行列式)

首先我们考虑一个Hessian矩阵:

图像识别中SIFT算法与SURF算法的区别

这里的Lxx是指图像经过高斯二阶梯度模板卷积之后得到的,像素点关于x方向的二阶梯度。SURF方法考虑将高斯二阶梯度模板用盒函数来近似,如下图:

图像识别中SIFT算法与SURF算法的区别

如此以来,我们可以通过积分图像非常方便地计算高斯二阶梯度,得到其近似:

图像识别中SIFT算法与SURF算法的区别

因为是近似,我们也需要平衡两者之间的相关比,这里我们假设,尺度为1.2的高斯模板可以用9*9的盒函数模板代替,然后计算下式归一化尺度的模板比值,这里的是指Frobenius范数:

图像识别中SIFT算法与SURF算法的区别

最后Hessian矩阵的行列式,我们可以近似为:

图像识别中SIFT算法与SURF算法的区别

由此,这里的0.9是归一化比值,所以在任何尺度下,我们都可以通过这个比来补偿近似造成的误差,因此任何尺度下,我们都可以计算近似Hessian行列式的值。

二、SURF的尺度空间

尺度空间通常通过高斯金字塔来实施,图像需要被重复高斯平滑,然后经过不断子采样,一层一层直到塔顶,如sift方法。而SUFR通过盒函数和积分图像,我们就不需要像SIFT方法那样,每组之间需要采样,而且还需要对当前组应用同上层组相同的滤波器,而SURF方法不需要进行采样操作,直接应用不同大小的滤波器就可以了。

为什么可以这样呢?因为都是为了得到不同尺度的图像,而sift通过采样操作比图像卷积操作计算量更少,而对于SURF来说,不存在这样的问题,因为盒函数和积分图像的操作计算量也非常小。另一方面,因为不需要采样,所以也不会出现混叠现象。

下图说明了这一情况,左图是sift算法,其是图像大小减少,而模板不变(这里只是指每组间,组内层之间还是要变的)。而SURF算法(右图)刚好相反,其是图像大小不变,而模板大小扩大。

图像识别中SIFT算法与SURF算法的区别

SURF也是将金字塔分为组(Octaves),而每组分为若干层。其将9*9大小的滤波器结果作为初始尺度组,即指的高斯尺度为1.2。那么接下来的每组,是通过逐渐增大的模板来进行滤波图像,一般情况下,滤波器的大小以9*9,15*15,21*21,27*27等变化,随着尺度增加,滤波器大小之间的差别也在增加。因此,对于每组来说,其滤波器大小增加数(15-9)是以双倍增长的(如6到12再24)。与此同时,提取兴趣点的采样间隔也是在以双倍增长的(这样可以获得小的尺度变化范围)。下面是模板的变化图:

图像识别中SIFT算法与SURF算法的区别

下图反映了组及层之间尺度变化,及滤波模板长度变化过程,我们可以发现层间采样间隔以2倍扩大,所以随着层尺度增加,其尺度变化的粒度减少了,但是我们发现第一组每一层的尺度变化粒度太大了,所以在这里我们需要引入尺度空间更为精细的插值操作。

图像识别中SIFT算法与SURF算法的区别

尺度空间搭建好了之后,同sift运算一样,我们找到在尺度及图像空间的3*3*3的范围内进行非极大值抑制,找到局部极值点(Hessian行列式),最后再应用尺度和图像空间的插值操作,以获得精确的兴趣点位置(原文用的是Brown的方法,也可以参考sift方法,不再详细讲解了)

三、兴趣点主方向获得

为了获得旋转不变性,我们需要识别兴趣点区域的一个主方向。SIFT方法采用的是计算兴趣点附近3*1.5Ϭ大小的圆形区域内方向直方图,选择最大的方向为主方向。而SURF方法则是通过计算其在x,y方向上的haar-wavelet响应,这是在兴趣点周围一个6s半径大小的圆形区域内。当然小波变换的大小也同尺度参数s有关,其步长为s,其大小为4s。

一旦区域内所有小波响应被计算,再对所有小波响应进行高斯加权(以兴趣点为中心,尺度为2.5s),然后建立小波响应dx,dy的坐标系(dx是小波在x方向上的响应,而dy是小波在y方向上的响应),将区域内的每点在这个坐标系来表示,如下图所示,选择一个60度的扇区(下图灰色区域),统计这个扇区所有响应的总和,就获得了一个总的方向(下图红箭头),旋转整个扇区,找到最长的矢量方向即为主方向。

图像识别中SIFT算法与SURF算法的区别

四、SURF描述子

同sift算法一样,SURF也是通过建立兴趣点附近区域内的信息来作为描述子的,不过sift是利用邻域点的方向,而SURF则是利用Haar小波响应。

SURF首先在兴趣点附近建立一个20s大小的方形区域,为了获得旋转不变性,同sift算法一样,我们需要将其先旋转到主方向,然后再将方形区域划分成16个(4*4)子域。对每个子域(其大小为5s*5s)我们计算25(5*5)个空间归一化的采样点的Haar小波响应dx和dy。

之后我们将每个子区域(共4*4)的dx,dy相加,因此每个区域都有一个描述子(如下式),为了增加鲁棒性,我们可以给描述子再添加高斯权重(尺度为3.3s,以兴趣点为中心)

图像识别中SIFT算法与SURF算法的区别

所以最后在所有的16个子区域内的四位描述子结合,将得到该兴趣点的64位描述子

图像识别中SIFT算法与SURF算法的区别

由于小波响应对于光流变化偏差是不变的,所以描述子具有了光流不变性,而对比性不变可以通过将描述子归一化为单位向量得到。

另外也建立128位的SURF描述子,其将原来小波的结果再细分,比如dx的和将根据dy的符号,分成了两类,所以此时每个子区域内都有8个分量,SURF-128有非常好效果,如下图所示。

图像识别中SIFT算法与SURF算法的区别

五、快速索引匹配

我们发现兴趣点其Laplacian(Hessian矩阵的迹)的符号(即正负)可以将区分相同对比形状的不同区域,如黑暗背景下的白斑和相反的情况。

图像识别中SIFT算法与SURF算法的区别

考虑到检测时,我们容易遇到两个这样类似的结构(因为特征兴趣点经常是这样的斑点形状),原来我们必须为这两个结构分别建立描述子,现在我们只需要为其中一个建立描述子,而给另一个索引,而在匹配过程中,只要比较一个描述子,就能确定两个位置,是不是属于这两个结构中的一种,如果是,再通过迹来判断其是这两个结构中的那一种。

因为引入特性不需要额外的计算(检测过程中已经计算了)。所以在匹配过程中,可以达到快速的效果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像识别
    +关注

    关注

    9

    文章

    529

    浏览量

    39846
  • Sift
    +关注

    关注

    1

    文章

    38

    浏览量

    15565
  • SURF
    +关注

    关注

    0

    文章

    5

    浏览量

    3924
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用Otsu阈值算法将灰度图像二值化

    还是纯白,即利用此阈值将原图像分成前景、背景两个图象。不同阈值对于前景和背景图象的划分不同,一般来说,前景和背景图象的差别越大,表明划分的效果越好。在 Otsu 算法,以类间方差来衡量背景和前景图象
    发表于 10-28 06:49

    国密系列算法简介及SM4算法原理介绍

    算法可用于无线局域网产品;SM7算法可用于身份识别、票务、支付与通卡类业务。ZUC算法可用于移动通信网络。 密码杂凑算法:SM3
    发表于 10-24 08:25

    基于FPGA的CLAHE图像增强算法设计

    CLAHE图像增强算法又称为对比度有限的自适应直方图均衡算法,其算法原理是通过有限的调整图像局部对比度来增强有效信号和抑制噪声信号。
    的头像 发表于 10-15 10:14 407次阅读
    基于FPGA的CLAHE<b class='flag-5'>图像</b>增强<b class='flag-5'>算法</b>设计

    基于米尔MYC-YM90X安路飞龙DR1开发板仪表图像识别系统开发

    Linux 等操作系统,为系统提供稳定的软件运行环境,负责复杂的系统管理、任务调度、用户交互以及与外部设备的通信控制等工作。在仪表图像识别系统,ARM 处理器可完成图像识别算法的高
    发表于 08-17 21:29

    国家级认证!拓维海云天“中文手写体作文图像识别评分生成算法”通过国家网信办备案

    近日,国家互联网信息办公室发布第十二批深度合成服务算法备案公告,拓维海云天自主研发的核心技术成果——“中文手写体作文图像识别评分生成算法”成功通过备案(备案编号:250011号)。这是拓维海云天在
    的头像 发表于 08-15 16:42 1159次阅读
    国家级认证!拓维海云天“中文手写体作文<b class='flag-5'>图像识别</b>评分生成<b class='flag-5'>算法</b>”通过国家网信办备案

    华怡丰推出ISC-B/C系列图像识别传感器

    在工业自动化领域,精准、高效的视觉检测是提升生产效率的关键。华怡丰全新推出的ISC-B/C系列图像识别传感器集高精度定位、测量算法与先进图像处理技术于一体,为各类工业场景提供稳定、可靠的解决方案!
    的头像 发表于 08-15 11:36 1465次阅读
    华怡丰推出ISC-B/C系列<b class='flag-5'>图像识别</b>传感器

    【GM-3568JHF开发板免费体验】OpenCV开发环境安装和计数程序开发

    、 Android 等系统上运行,并通过Python接口简化操作。 sudo apt install libopencv-dev python3-opencv 四、OpenCV图像识别测试 使用python3
    发表于 08-09 13:30

    火车车号图像识别系统如何应对不同光照条件下的识别问题?

    在铁路运输管理,准确识别火车车号是实现自动化车辆管理的关键环节。然而,实际应用场景复杂多变的光照条件给车号识别带来了巨大挑战。现代火车车号图像识
    的头像 发表于 07-15 11:37 533次阅读
    火车车号<b class='flag-5'>图像识别</b>系统如何应对不同光照条件下的<b class='flag-5'>识别</b>问题?

    手持终端集装箱识别系统的图像识别技术

    行业提供了更灵活、精准的管理工具。 一、技术核心:OCR+AI深度融合 现代手持终端系统采用多模态图像识别技术,结合深度学习算法,可快速捕捉并解析集装箱号码。其技术优势体现在: 1. 复杂环境适应性:通过动态曝光补偿和图像增强算
    的头像 发表于 04-03 10:49 553次阅读

    岸桥箱号识别系统如何工作?揭秘AI图像识别技术!

    在港口自动化升级的浪潮,AI岸桥识别系统凭借前沿的图像识别技术,成为提升码头作业效率的“智慧之眼”。那么,这套系统如何实现集装箱信息的精准捕捉?又是如何通过AI技术替代传统人工理货?让我们一探
    的头像 发表于 04-02 09:45 538次阅读

    DLPC7540EVM是否支持自定义的图像处理算法,以及如何进行算法的移植?

    是否支持自定义的图像处理算法,以及如何进行算法的移植?
    发表于 02-17 08:25

    FPGA上的图像处理算法集成与优化

    、Tophat形态学滤波、RAW8转RGB888、彩色图像均值滤波、Alpha背景叠加、直方图灰度拉伸算法以及自动白平衡算法。每种算法都提供了实现方法和相关公式,涵盖了
    的头像 发表于 02-14 13:46 1160次阅读
    FPGA上的<b class='flag-5'>图像</b>处理<b class='flag-5'>算法</b>集成与优化

    BP神经网络在图像识别的应用

    BP神经网络在图像识别中发挥着重要作用,其多层结构使得网络能够学习到复杂的特征表达,适用于处理非线性问题。以下是对BP神经网络在图像识别应用的分析: 一、BP神经网络基本原理 BP神经网络,即反向
    的头像 发表于 02-12 15:12 1193次阅读

    人脸识别技术的算法原理解析

    在数字化时代,人脸识别技术已经成为身份验证和安全监控的重要手段。这项技术的核心在于算法,它们能够从图像中提取关键信息,并与数据库的信息进行匹配,以
    的头像 发表于 02-06 17:50 2957次阅读