SIFT 特征提取算法总结

简介: 原文链接:http://www.cnblogs.com/cfantaisie/archive/2011/06/14/2080917.html   主要步骤 1)、尺度空间的生成; 2)、检测尺度空间极值点; 3)、精确定位极值点; 4)、为每个关键点指定方向参数; 5)、关键点描述子的生成。

原文链接:http://www.cnblogs.com/cfantaisie/archive/2011/06/14/2080917.html

 

主要步骤

1)、尺度空间的生成;

2)、检测尺度空间极值点;

3)、精确定位极值点;

4)、为每个关键点指定方向参数;

5)、关键点描述子的生成。

img_1ff470c3987ec45f398219098dcdfdc9.png

img_a11b2a701053e3477f89db6c0d9fc7f4.png

L(x,y,σ), σ= 1.6 a good tradeoff

img_2a8a641d8a0c78e48d3ac32e4015ae54.png

    D(x,y,σ), σ= 1.6 a good tradeoff

img_764e651023cbf8adf7cc82491f997d2d.jpg

img_db342f59fa7a2fca87feeca9621cea33.png

关于尺度空间的理解说明:图中的2是必须的,尺度空间是连续的。  Lowe的论文中 ,

   将第0层的初始尺度定为1.6,图片的初始尺度定为0.5. 在检测极值点前对原始图像的高斯

  平滑以致图像丢失高频信息,所以 Lowe 建议在建立尺度空间前首先对原始图像长宽扩展

  一倍,以保留原始图像信息,增加特征点数量。尺度越大图像越模糊。

img_a45609fe22a91d0523bfe0a9ac19b4b9.png

next octave 是由 first octave 降采样得到(如2

img_58a060feb0d3d27b1800e8a817afc358.pngimg_00e064a534b8c288ef216b05a86e77b2.png

   尺度空间的所有取值,s为每组层数,一般为3~5

img_3562d57ee208617ceda5163db4367281.png

      同一组中的相邻尺度(由于k的取值关系,肯定是上下层)之间进行寻找

img_b5a66667ce38c57e070a3704f70c76a6.png

     在极值比较的过程中,每一组图像的首末两层是无法进行极值比较的,为了满足尺度

     变化的连续性,我们在每一组图像的顶层继续用高斯模糊生成了 3 幅图像,高斯金字

     塔有每组S+3层图像。DOG金字塔每组有S+2层图像.

img_47a75a222ca477ab7bfa6944226c0c21.png

img_e57105196469b1de844afaa40175812b.png

img_20f8d2c1d948c667f57c2caf0b55c7a4.png

   If ratio > (r+1)2/(r), throw it out (SIFT uses r=10)

img_a948fd2f6ee3c7171cb288bff8a3204c.png表示DOG金字塔中某一尺度的图像x方向求导两次

通过拟和三维二次函数以精确确定关键点的位置和尺度(达到亚像素精度)?

img_c055e7dbd509576f3a3fc7232362cd5c.png

直方图中的峰值就是主方向,其他的达到最大值80%的方向可作为辅助方向

img_b6d5b1327353a45ac71e9bee0842431f.jpg

Identify peak and assign orientation and sum of magnitude to key point

  The user may choose a threshold to exclude key points based on their

                             assigned sum of magnitudes.

      利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备

      旋转不变性。以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度

      方向。梯度直方图的范围是0~360度,其中每10度一个柱,总共36个柱。随着距

      中心点越远的领域其对直方图的贡献也响应减小.Lowe论文中还提到要使用高斯函

      数对直方图进行平滑,减少突变的影响。

img_4c0c06ce9d54807b43bb3830e22b5372.png

关键点描述子的生成步骤

img_1988b18b8a4e574d2a53b17c5564b4cd.png

通过对关键点周围图像区域分块,计算块内梯度直方图,生成具有独特性

          的向量,这个向量是该区域图像信息的一种抽象,具有唯一性。

img_610dc2241fb12c63d35375f4f6836d42.png

      每一个小格都代表了特征点邻域所在的尺度空间的一个像素 ,箭头方向代表了像素梯

      度方向,箭头长度代表该像素的幅值。然后在4×4的窗口内计算8个方向的梯度方向直

      方图。绘制每个梯度方向的累加可形成一个种子点。

img_8a485f4462c0834d584f3f99196bf043.png

      每个直方图有8方向的梯度方向,每一个描述符包含一个位于关键点附近的四个直方图

      数组.这就导致了SIFT的特征向量有128维.(先是一个4×4的来计算出一个直方图,

      每个直方图有8个方向。所以是4×4×8=128维)将这个向量归一化之后,就进一步

      去除了光照的影响。

img_d7e12e11cb0e009319b75931af816bd1.png

     旋转为主方向

img_5e22ac93f74e2099bd9c051833a44059.jpg

img_fc5560ddd12325665b062b544d5dd254.png

img_0c22af05e3c529394f3a2a5081a2fe54.png

img_53ce053f397b3a5756cf1368c69cecf6.png

img_1ba96e82a655308a7125667b6fcbdd7f.png

img_1cb9cc7af13d39ef43270044acc72116.png

基本概念及一些补充

什么是局部特征?

•局部特征从总体上说是图像或在视觉领域中一些有别于其周围的地方

•局部特征通常是描述一块区域,使其能具有高可区分度

•局部特征的好坏直接会决定着后面分类、识别是否会得到一个好的结果

局部特征需具备的特性

•重复性

•可区分性

•准确性

•数量以及效率

•不变性

局部特征提取算法-sift

•SIFT算法由D.G.Lowe 1999年提出,2004年完善总结。后来Y.Ke将其描述子部分用PCA代替直方图的方式,对其进行改进。

  •SIFT算法是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置,尺度,旋转不变量

•SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。

•独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。

•多量性,即使少数的几个物体也可以产生大量SIFT特征向量。

•可扩展性,可以很方便的与其他形式的特征向量进行联合。

尺度空间理论

•尺度空间理论目的是模拟图像数据的多尺度特征

•其基本思想是在视觉信息图像信息处理模型中引入一个被视为尺度的参数, 通过连续变化尺度参数获得不同尺度下的视觉处理信息, 然后综合这些信息以深入地挖掘图像的本质特征。

描述子生成的细节

•以极值点为中心点,并且以此点所处于的高斯尺度sigma值作为半径因子。对于远离中心点的梯度值降低对其所处区域的直方图的贡献,防止一些突变的影响。

•每个极值点对其进行三线性插值,这样可以把此极值点的贡献均衡的分到直方图中相邻的柱子上

归一化处理

•在求出4*4*8的128维特征向量后,此时SIFT特征向量已经去除了尺度变化、旋转等几何变形因素的影响。而图像的对比度变化相当于每个像素点乘上一个因子,光照变化是每个像素点加上一个值,但这些对图像归一化的梯度没有影响。因此将特征向量的长度归一化,则可以进一步去除光照变化的影响。

•对于一些非线性的光照变化,SIFT并不具备不变性,但由于这类变化影响的主要是梯度的幅值变化,对梯度的方向影响较小,因此作者通过限制梯度幅值的值来减少这类变化造成的影响。

PCA-SIFT算法

•PCA-SIFT与标准SIFT有相同的亚像素位置,尺度和主方向。但在第4步计算描述子的设计,采用的主成分分析的技术。

•下面介绍一下其特征描述子计算的部分:

•用特征点周围的41×41的像斑计算它的主元,并用PCA-SIFT将原来的2×39×39维的向量降成20维,以达到更精确的表示方式。

•它的主要步骤为,对每一个关键点:在关键点周围提取一个41×41的像斑于给定的尺度,旋转到它的主方向 ;计算39×39水平和垂直的梯度,形成一个大小为3042的矢量;用预先计算好的投影矩阵n×3042与此矢量相乘;这样生成一个大小为n的PCA-SIFT描述子。

相关文章
|
算法 语音技术
基于MFCC特征提取和HMM模型的语音合成算法matlab仿真
基于MFCC特征提取和HMM模型的语音合成算法matlab仿真
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
2月前
|
算法 数据安全/隐私保护
织物图像的配准和拼接算法的MATLAB仿真,对比SIFT,SURF以及KAZE
本项目展示了织物瑕疵检测中的图像拼接技术,使用SIFT、SURF和KAZE三种算法。通过MATLAB2022a实现图像匹配、配准和拼接,最终检测并分类织物瑕疵。SIFT算法在不同尺度和旋转下保持不变性;SURF算法提高速度并保持鲁棒性;KAZE算法使用非线性扩散滤波器构建尺度空间,提供更先进的特征描述。展示视频无水印,代码含注释及操作步骤。
|
6月前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```
|
6月前
|
机器学习/深度学习 算法 语音技术
基于语音信号MFCC特征提取和GRNN神经网络的人员身份检测算法matlab仿真
**语音识别算法概览** MATLAB2022a中实现,结合MFCC与GRNN技术进行说话人身份检测。MFCC利用人耳感知特性提取语音频谱特征,GRNN作为非线性映射工具,擅长序列学习,确保高效识别。预加重、分帧、加窗、FFT、滤波器组、IDCT构成MFCC步骤,GRNN以其快速学习与鲁棒性处理不稳定数据。适用于多种领域。
|
机器学习/深度学习 算法 数据库
基于HOG特征提取和GRNN神经网络的人脸表情识别算法matlab仿真,测试使用JAFFE表情数据库
基于HOG特征提取和GRNN神经网络的人脸表情识别算法matlab仿真,测试使用JAFFE表情数据库
|
7月前
|
算法 数据挖掘 计算机视觉
OpenCV中应用尺度不变特征变换SIFT算法讲解及实战(附源码)
OpenCV中应用尺度不变特征变换SIFT算法讲解及实战(附源码)
79 0
|
算法 计算机视觉
图像特征提取--ORB算法
图像特征提取--ORB算法
117 0
|
2月前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
1天前
|
算法
基于大爆炸优化算法的PID控制器参数寻优matlab仿真
本研究基于大爆炸优化算法对PID控制器参数进行寻优,并通过Matlab仿真对比优化前后PID控制效果。使用MATLAB2022a实现核心程序,展示了算法迭代过程及最优PID参数的求解。大爆炸优化算法通过模拟宇宙大爆炸和大收缩过程,在搜索空间中迭代寻找全局最优解,特别适用于PID参数优化,提升控制系统性能。