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描述子。

相关文章
|
12月前
|
算法 语音技术
基于MFCC特征提取和HMM模型的语音合成算法matlab仿真
基于MFCC特征提取和HMM模型的语音合成算法matlab仿真
|
3月前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```
|
3月前
|
机器学习/深度学习 算法 语音技术
基于语音信号MFCC特征提取和GRNN神经网络的人员身份检测算法matlab仿真
**语音识别算法概览** MATLAB2022a中实现,结合MFCC与GRNN技术进行说话人身份检测。MFCC利用人耳感知特性提取语音频谱特征,GRNN作为非线性映射工具,擅长序列学习,确保高效识别。预加重、分帧、加窗、FFT、滤波器组、IDCT构成MFCC步骤,GRNN以其快速学习与鲁棒性处理不稳定数据。适用于多种领域。
|
9月前
|
机器学习/深度学习 算法 数据库
基于HOG特征提取和GRNN神经网络的人脸表情识别算法matlab仿真,测试使用JAFFE表情数据库
基于HOG特征提取和GRNN神经网络的人脸表情识别算法matlab仿真,测试使用JAFFE表情数据库
|
4月前
|
算法 数据挖掘 计算机视觉
OpenCV中应用尺度不变特征变换SIFT算法讲解及实战(附源码)
OpenCV中应用尺度不变特征变换SIFT算法讲解及实战(附源码)
63 0
|
9月前
|
算法 计算机视觉
图像特征提取--ORB算法
图像特征提取--ORB算法
96 0
|
算法 数据可视化 计算机视觉
基于affine+sift+GTM算法的图像配准和三维重建算法matlab仿真
基于affine+sift+GTM算法的图像配准和三维重建算法matlab仿真
|
编解码 算法 Java
基于Gabor-小波滤波深度图表面法线的特征提取算法【通过正常Gabor-小波的直方图进行2D或3D特征提取】研究(Matlab代码实现)
基于Gabor-小波滤波深度图表面法线的特征提取算法【通过正常Gabor-小波的直方图进行2D或3D特征提取】研究(Matlab代码实现)
|
16天前
|
算法 BI Serverless
基于鱼群算法的散热片形状优化matlab仿真
本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。
|
16天前
|
算法 数据可视化
基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
奇异谱分析(SSA)是一种基于奇异值分解(SVD)和轨迹矩阵的非线性、非参数时间序列分析方法,适用于提取趋势、周期性和噪声成分。本项目使用MATLAB 2022a版本实现从强干扰序列中提取趋势线,并通过可视化展示了原时间序列与提取的趋势分量。代码实现了滑动窗口下的奇异值分解和分组重构,适用于非线性和非平稳时间序列分析。此方法在气候变化、金融市场和生物医学信号处理等领域有广泛应用。