1 致谢

感谢网友tongle.Wang的帮助,

链接如下:

https://blog.csdn.net/ecnu18918079120/article/details/78195792

2 SURF算法介绍

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

3 SURF算法主要步骤

3.1 构造特征点

3.1.1 构造Hessian矩阵,并计算其特征值

SURF构造的金字塔图像与SIFT有很大不同,就是因为这些不同才加快了其检测的速度。SIFT采用的是DOG图像,而SURF采用的是Hessian矩阵行列式近似值图像。

接下来,我们来介绍一下Hessian矩阵,

黑塞矩阵(Hessian Matrix)是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。由德国数学家Ludwin Otto Hessian于19世纪提出。
SURF算法构造的金字塔图像与SIFT有很大不同,SIFT采用的是DoG图像,而SURF采用的是Hessian矩阵行列式近似值图像。所以说,Hessian矩阵是Surf算法的核心,构建Hessian矩阵的目的是为了生成图像稳定的边缘点(突变点),为下文的特征提取做好基础。

Hessian矩阵的定义如下,

3.1.2 构造尺度空间

构造尺度空间是为了在空间域与尺度域上找到极值点,作为初步的特征点。构造尺度空间传统的方法即构造一个高斯金字塔,原始图像作为最底层,然后对图像进行高斯模糊再降采样(2倍)作为下一层图像,循环迭代下去。高斯金字塔是对原图像的尺寸是在不断变化的,高斯模板尺寸不变。每一层的建立必须等到上一层构造完毕后才能进行处理,依赖性很强,这样造成速度上很慢。

SURF构建尺度金字塔的方法采用原图像大小不变,变化的是模板大小,即采用变化的模板盒子尺寸对原图像进行滤波,构造出尺度空间。(这同时说明,不同尺寸的高斯滤波模板可以用来模拟不同尺度的图像效果);同时,SURF可以采用并行运算,对金字塔中的每层图像同时进行处理。通过逐渐增大的盒子尺寸滤波模板与积分图像卷积产生的Hessian矩阵行列式的响应图像,构造出金字塔。

3.1.3 对Hessian矩阵进行极值点检测

在文章中,提到了NMS算法其实,就是具体来说就是SIFT算法中的“极值点检测”。NMS方法也是使用极值来初步定位特征点,如下图,将Hessian矩阵处中的每个像素点与其3维领域的26个点进行大小比较,取其中的最大值或者最小值作为极值,最后获得极值点图像数据。

3.1.4 准确定位特征点

(文章中提到了3D非极大值抑制,根据陈助教的解释,其实就是上面的极值点检测)由于极值点图像是离散空间的数据,通过拟合方法,准确定位到特征点的位置,每个特征点包含三个信息H(x,y,σ),即位置与尺度。这个步骤与SIFT的方法相似。

3.2 构造特征点描述子

3.2.1 选取特征点主方向

(这一步根据名称来说,好像也是在确定特征点的信息,但是其实这里对于过程的划分也没有过于准确的要求,这里我们的划分方法,是根据论文中的描述顺序来进行的,所以为了保持跟论文的叙述顺序一致,我们把“选取特征点主方向”的步骤也放到“构造特征描述子”中来)

为了保证旋转不变性,在SURF中,没有统计特征点的梯度直方图,而是统计了特征点邻域内的Harr小波特征。即以特征点为中心,计算半径为6s(s为特征点所在的尺度值)的邻域内,统计60度扇形内所有点在X(水平)和Y(垂直)方向的Haar小波响应总和(Haar小波边长取4s),并给这些响应值赋高斯权重系数,使得靠近特征点的响应贡献大,而远离特征点的响应贡献小,然后60度范围内的响应相加以形成新的矢量,遍历整个圆形区域,选择最长矢量的方向为该特征点的主方向。这样,通过特征点逐个进行计算,得到每一个特征点的主方向。该过程的示意图如下:

相邻的60°扇形区域之间可能会存在重叠(overlap),关于具体的重叠比例还要查看论文的源代码。

3.2.2 构成描述子

在这里,将使用已有的特征点信息来构造特征描述子。
对于每个特征点,沿着其主方向,取特征点周围20s×20s的矩形区域作为其邻域,其中s为特征点的尺度值;然后将矩形窗分成4×4个子区域,统计每个子区域内像素点的Harr小波响应,沿着主方向与垂直于主方向的响应,Harr小波滤波器宽度为2s。统计16个子区域的响应信息,每个子区域采用下面公式的方法进行统计,同时每个像素点的响应要乘以对应位置的高斯权重(σ = 3.3s)。其计算过程如下图所示,

这样每个子区域携带4个信息,即,共有16个子区域,共64维。其中,小波响应的使用会使该方法具有光照无关的效果。

尺度无关性是通过将描述子向量转换为单位向量来实现的。

3.3 特征点匹配

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

计算机视觉CV中特征点提取SURF算法的学习笔记相关推荐

  1. 计算机视觉CV中特征点提取SIFT算法的学习笔记

    1 SIFT算法介绍 SIFT算法,即 Scale-Invariant Feature Transform,尺度无关的特征变换算法. 2 SIFT算法的主要步骤 2.1 生成特征点 2.1.1生成尺度 ...

  2. 计算机视觉CV中特征点方法相关函数的学习笔记~

    1 致谢 感谢网友大奥特曼打小怪兽的帮助 原文链接如下: https://www.cnblogs.com/zyly/p/9646201.html 1 前言 特征点方法是计算机视觉传统目标检测方法中很常 ...

  3. 计算机视觉算法——Transformer学习笔记

    算机视觉算法--Transformer学习笔记 计算机视觉算法--Transformer学习笔记 1. Vision Transformer 1.1 网络结构 1.2 关键知识点 1.2.1 Self ...

  4. 计算机视觉——一种现代方法(第二版)学习笔记

    计算机视觉--一种现代方法(第二版)学习笔记 第1章 摄像机的几何模型 如上左图所示,我们需要将一个空间点X映射到一个图像点x(3维->2维)上即 根据右上图我们很容易推到处下面的变换: 这个结 ...

  5. SVO中 Inverse Compositional Image Alignment方法的学习笔记

    SVO中 Inverse Compositional Image Alignment方法的学习笔记 这篇文章 光流法简介 逆向光流法 结尾 这篇文章  在SVO系统中的"Relaxation ...

  6. 聚类算法评价指标学习笔记

    聚类算法评价指标学习笔记 本文列举常用聚类性能度量指标,并列出相应代码与参考资料 聚类性能度量大致分两类,一类将聚类结果与某个"参考模型"(reference model)进行比较 ...

  7. 数据结构与算法-链表学习笔记

    数据结构与算法-链表学习笔记 链表的概念 链表是有序的列表. 链表是以节点的方式来存储,是链式存储,它在内存中并不是一定是连续的. 每个节点包含 data 域:存储数据, next 域:指向下一个节点 ...

  8. 算法训练营学习笔记1

    算法训练营学习笔记 贪心算法 心算法总是做出当前最好的选择,期望通过局部最优选择得到全局最优的解决方案.从问题的初始解开始,一步歩地做出当前最好的选择,逐步逼近问题的目标,尽可能得到最优解: 贪心本质 ...

  9. java opencv surf_在OpenCV3.1.0中使用SIFT,SURF算法

    写在前边: 1.我使用的是python2.7 + OpenCV3.1.0 2.OpenCV3.0.0+的文档有很大问题,很多文档写的还是OpenCV2.0+, OpenCV3.0+根本用不了,其中有一 ...

最新文章

  1. zabbix 小纪录
  2. 深入理解Spark Streaming执行模型
  3. Spring Cloud【Finchley】- 20使用@RefreshScope实现配置的刷新
  4. m3u8合并mp4软件_m3u8格式转mp4究极办法!
  5. python-虚拟环境的作用
  6. 图解算法系列笔记(二)
  7. php赋值就变错误了,PHP基础陷阱题(变量赋值)_PHP教程
  8. [转](转载+整理)超详细的cmake教程
  9. java8 两个list合并_深入介绍和使用 Java 8 的 Collector 接口和 Collectors 工具类
  10. qmail 发邮件故障
  11. python学习笔记之读取pdf文件库pdfplumber(一)
  12. Uber上市即破发 CEO安慰员工:Facebook和亚马逊上市后股价表现也不好
  13. 五万字,快速读完《图解TCP/IP》核心内容!!!(建议收藏)
  14. 全网首发Modown主题8.31开心版
  15. 计算机简单的办公操作,电脑操作掌握这15种快捷键技巧,你就是办公高手!
  16. 【代码随想录】Day6
  17. web课程设计网页规划与设计 :旅游景点网站设计——西安(20页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 HTML静态网页作业
  18. Visual Domain Adaptation with Manifold Embedded Distribution Alignment 阅读MEDA
  19. 在线IEEE浮点二进制计算器工具
  20. Chrome流量监控

热门文章

  1. TreeMap1.8源码
  2. Spring中的观察者模式
  3. 如何实现插入数据时自动更新另外一个表的内容
  4. 关于项目中一些时间转换的问你题 -紫叶and妍
  5. windows鼠标响应相关知识
  6. 一些C#实用的方法汇总
  7. Windows API 学习记录1
  8. 【Java从0到架构师】项目实战 - 驾考(旧)- Freemarker、MyBatis-Plus
  9. 【Vue.js 知识量化】ES6 语法积累
  10. 【Spring 持久层】Spring 与 Mybatis 整合