sift算法,SIFT 特征提取算法

什么是局部特征?
•局部特征从总体上说是图像或在视觉领域中一些有别于其周围的地方
•局部特征通常是描述一块区域,使其能具有高可区分度
•局部特征的好坏直接会决定着后面分类、识别是否会得到一个好的结果
局部特征需具备的特性
•重复性
•可区分性
•准确性
•数量以及效率
•不变性
局部特征提取算法-sift
•SIFT算法由D.G.Lowe 1999年提出,2004年完善总结。后来Y.Ke将其描述子部分用PCA代替直方图的方式,对其进行改进。
•SIFT算法是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置,尺度,旋转不变量
•SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。
•独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。
•多量性,即使少数的几个物体也可以产生大量SIFT特征向量。
•可扩展性,可以很方便的与其他形式的特征向量进行联合。

SIFT算法步骤
SIFT 特征提取算法sift算法

尺度空间理论
•尺度空间理论目的是模拟图像数据的多尺度特征
•其基本思想是在视觉信息图像信息处理模型中引入一个被视为尺度的参数, 通过连续变化尺度参数获得不同尺度下的视觉处理信息, 然后综合这些信息以深入地挖掘图像的本质特征。
线性尺度算子检测极值点
•SIFT算法中使用的是线性尺度空间,高斯卷积核是实现线性尺度变换的唯一线性核
•在SIFT算法中,使用了差分金字塔算子DOG
•DOG算子计算简单,是尺度归一化的LoG算子的近似 (只差一个常数因子k-1)
•中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较 ,如下图所示
SIFT 特征提取算法sift算法
DoG尺度空间局部极值检测
SIFT 特征提取算法sift算法
由两组高斯尺度空间图像示例金字塔的构建,第二组的第一副图像由第一组的第一副到最后一副图像由一个因子2压采样得到
精确确定极值点位置
•在检测到极值点后,对差分算子进行二阶泰勒展开,求泰勒公式的极大偏移量,精确定位检测到的极值点。极大偏移量如下式;在具体的算法实现中,可以利用Hessian矩阵和D的一阶矩阵来实现。
SIFT 特征提取算法sift算法

•在求出极大偏移量后,若其值大于0.5则表示极值点更靠近相邻的点。若小于0.5则不动。
去除低对比度极值点:
•由于线性尺度空间不能保证对比度不变性,因此在精确定位好后,通过上面求得的式子,要去除低对比度点。计算公式如下:
SIFT 特征提取算法sift算法

•在Lowe的论文中提到当D(X)小于0.3时就定义此极值点为低对比度点,此点将被去除掉;
边缘响应的去除
•一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率。由于这样的边缘点容易受到图像噪声的影响,因此也要去除这些不稳定的边缘点。
•主曲率通过一个2x2 的Hessian矩阵H求出,在Hessian特征点检测中有提到如何通过Hessian矩阵求边缘点的方法
关键点方向分配
•利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备旋转不变性。
•以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度方向。梯度直方图的范围是0~360度,其中每10度一个柱,总共36个柱。随着距中心点越远的领域其对直方图的贡献也响应减小。
•Lowe论文中还提到要使用高斯函数对直方图进行平滑,减少突变的影响。
辅方向分配
当存在另一个相当于主峰值80%能量的峰值时,则将这个方向认为是该关键点的辅方向。一个关键点可能会被指定具有多个方向(一个主方向,一个以上辅方向),从而生成多个不同方向的特征点。以此增强匹配的鲁棒性。
特征描述子:
•在局部特征的设计中最关键的一步就是特征描述符的设计,而判断一个特征描述符好坏的重要依据就是其高可区分性
•有许多不同的特征描述符的技术用于描述图像局部特征。但在物体识别领域,当前最为流行的就是基于图像外型结构特征的局部梯度直方图统计

SIFT特征点描述子生成:
SIFT 特征提取算法sift算法
描述子生成:
以关键点为中心取16×16的窗口;然后在每4×4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点,如下图:
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描述子。
主要步骤 1)、尺度空间的生成;

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

3)、精确定位极值点;

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

5)、关键点描述子的生成。
SIFT 特征提取算法sift算法
SIFT 特征提取算法sift算法
SIFT 特征提取算法sift算法
SIFT 特征提取算法sift算法
SIFT 特征提取算法sift算法
SIFT 特征提取算法sift算法
SIFT 特征提取算法sift算法
SIFT 特征提取算法sift算法
SIFT 特征提取算法sift算法旋转到主方向


Tags:  图像特征提取算法 sift算法代码 sift算法优点 sift算法步骤 sift算法

延伸阅读

最新评论

发表评论