目标识别与跟踪识别篇---SURF算法
来源:互联网 发布:禁止windows自动更新 编辑:程序博客网 时间:2024/05/18 02:27
SURF算法
一.概述
实现流程:
1. 构建Hessian(黑塞矩阵),生成所有的兴趣点,用于特征的提取;
2. 构建尺度空间
3. 特征点定位
4. 特征点主方向分配
5. 生成特征点描述子
6. 特征点匹配
二.具体说明
1.构建Hessian(黑塞矩阵),生成所有的兴趣点,用于特征的提取,每一个像素点都可以求出一个Hessian矩阵。
Hessian矩阵的判别式为:
当Hessian矩阵的判别式取得局部极大值时,判定当前点是比周围邻域内其他点更亮或更暗的点,由此来定位关键点的位置。
2.构建尺度空间
同Sift一样,Surf的尺度空间也是由O组L层组成,不同的是,Sift中下一组图像的尺寸是上一组的一半,同一组间图像尺寸一样,但是所使用的高斯模糊系数逐渐增大;而在Surf中,不同组间图像的尺寸都是一致的,但不同组间使用的盒式滤波器的模板尺寸逐渐增大,同一组间不同层间使用相同尺寸的滤波器,但是滤波器的模糊系数逐渐增大。
3.特征点定位
特征点的定位过程Surf和Sift保持一致,将经过Hessian矩阵处理的每个像素点与二维图像空间和尺度空间邻域内的26个点进行比较,初步定位出关键点,再经过滤除能量比较弱的关键点以及错误定位的关键点,筛选出最终的稳定的特征点。
4.特征点主方向分配
Sift特征点方向分配是采用在特征点邻域内统计其梯度直方图,而在Surf中,采用的是统计特征点圆形邻域内的harr小波特征。在特征点的圆形邻域内,统计60度扇形内所有点的水平、垂直harr小波特征总和,然后扇形以一定间隔进行旋转并再次统计该区域内harr小波特征值之后,最后将值最大的那个扇形的方向作为该特征点的主方向。
5.生成特征点描述子
在Sift中,是取特征点周围4*4个区域块,统计每小块内8个梯度方向,用着4*4*8=128维向量作为Sift特征的描述子。Surf算法中,也是在特征点周围取一个4*4的矩形区域块,但是所取得矩形区域方向是沿着特征点的主方向。每个子区域统计25个像素的水平方向和垂直方向的haar小波特征,这里的水平和垂直方向都是相对主方向而言的。该haar小波特征为水平方向值之后、垂直方向值之后、水平方向绝对值之后以及垂直方向绝对值之和4个方向。
把这4个值作为每个子块区域的特征向量,所以一共有4*4*4=64维向量作为Surf特征的描述子,比Sift特征的描述子减少了一半。
6.特征点匹配
与Sift特征点匹配类似,Surf也是通过计算两个特征点间的欧式距离来确定匹配度,欧氏距离越短,代表两个特征点的匹配度越好。不同的是Surf还加入了Hessian矩阵迹的判断,如果两个特征点的矩阵迹正负号相同,代表这两个特征具有相同方向上的对比度变化,如果不同,说明这两个特征点的对比度变化方向是相反的,即使欧氏距离为0,页直接予以排除。
三.总结
SURF算法的优点在于大量合理使用积分图像降低运输量,而且在运用的过程中并未降低精度(小波变换,Hessian矩阵行列式检测都是成熟有效的手段)。在时间上,SURF运行速度大约为SIFT的3倍;在质量上,SURF的鲁棒性很好,特征点识别率较SIFT高,在视角、光照、尺度变化等情形下,大体上都优于SIFT。
- 目标识别与跟踪识别篇---SURF算法
- 目标识别与跟踪识别篇---SIFT算法
- 小目标识别与跟踪算法
- 目标识别、目标跟踪算法总结
- 目标识别与跟踪基础知识(三)-距离度量篇
- 目标识别与跟踪基础知识(四)---特征提取篇
- 目标识别与跟踪基础知识(一)
- 目标识别与跟踪基础知识(二)
- Qualcomm AR之目标识别、跟踪
- 图像识别中目标分割、目标识别、目标检测和目标跟踪方法
- 【阅读】目标识别算法目录
- 最新手势跟踪与识别
- 目标识别
- 目标识别
- 目标识别
- 目标识别
- 目标跟踪算法与资料
- 图像识别中,目标分割、目标识别、目标检测和目标跟踪这几个方面区别是什么?+资料列表
- 栈与时间复杂度
- 第6章gp_toolkit管理架构-Checking Append-Optimized Tables
- Linux grep基本用法与正则表达式
- luogu P1115 最大字段和
- 保存保存,markdown使用方法!!!
- 目标识别与跟踪识别篇---SURF算法
- Redis 分布式锁的正确实现方式
- 动辄几个亿的东半球最强饭局:大佬们都吃了啥?
- 2018年薪资最高的15个技术岗
- 搜索引擎伦理
- 博客目的
- Dubbo的SPI实现
- 12/04/2017
- Java可变参数