特征描述子之SIFT算子

理解可能有误或者不够全面,此文章以后可能会持续修改。

感觉这个算子真心强大,光照不变性、旋转不变性、尺度不变性,可以说特性非常全面,唯一缺点可能就是运算量比较大,但是这个缺点在它的衍生算子上也得到了一定的改进,再加上硬件配置的不断升级,想必它和它的衍生算子们适用面还会越来越广的(不过SIFT是已经申请专利了)。

讲到SIFT算子就不得不先说一说尺度空间。尺度空间的基本思想是在图像信息处理模型中加入一个尺度参数,通过连续变换的调整尺度参数来得到图像在多尺度下的表示。拿现实事物打个比方:一台相机,在光圈不变的情况下,为同一个物体远近不同的进行拍照(假设物体的成像大小不变),得到的一组图像即为不同尺度下的同一图像,这里的尺度被映射成相机与目标的距离。在物体与相机之间的距离与光圈参数匹配时,目标物体的边缘和细节呈现得最为清晰完整,在此距离上拉远或拉近,成像会变得越来越模糊,边缘和细节也越来越平滑。
我们用高斯函数来实现图像的不同尺度:用不同的尺度空间因子σ去与原图像做卷积,即可得到模糊程度不同的处理后图像了:

尺度因子σ越小图像平滑得越少,σ越大卷积后得到的图像越模糊。
为了实现尺度空间,我们需要建立高斯图像金字塔,从塔底自上做1/4大小的降采样,形成金字塔的原始框架,金字塔的每层再以不同的σ做高斯模糊,得到一套相同大小但模糊程度不同的图片,称之为一个Octave,如此便构成了高斯金字塔(一般下一个octave的原图为上一个octave里倒数第二层图经下采样得到)。

为了寻找尺度空间的极值点,需要再将高斯金字塔转换为DOG(Difference of Gaussian)金字塔,顾名思义,DOG反映的是高斯金字塔不同尺度图像之间的差异,实现如下图所示:



为了满足尺度变化的连续性,高斯金字塔的每个octave会在最大尺度因子σ末尾再做三次更高的尺度变化,每个octave图像个数为s+3,相应的DOG空间的每个octave图像个数为s+2,这一块我讲的不太好,可以参考Rachel-Zhang美眉的博客进一步理解:http://blog.csdn.net/abcjennifer/article/details/7639681

DOG金字塔已经反映了不同尺度间图像的差异,接下来需要结合目标像素点周边的8个像素点以及其相邻尺度对应的位置9*2个像素点进行比较,当目标像素点极值点时(极大/极小),将其认为是潜在的SIFT特征点:



潜在的特征点中含有一些对比地低的点以及位于边缘处的点,它们并不适合作为SIFT特征点,需要去除。
①低对比度点:
对尺度空间DOG函数进行曲线拟合进行泰勒展开:

将其求导并等于零,得到极值点位置:

代入回原式,得到对应的D(X)值:

论文中取时保留该特征点,否则丢弃。

②边缘特征点
位于边缘上的特征点一般在X,Y两个方向上的主曲率不平衡,我们可以通过这个特性来找出哪些点位于边缘上,主曲率的计算通过2*2的Hessian矩阵H求出:

矩阵内的元素分别表示XX、XY、YX、YY上的二阶偏导,则矩阵的对角线元素之和以及矩阵行列式为:

设α为较大特征值,β为较小的特征值,且α=rβ,则

当r=1时该比值最小(即α=β时),相反α与β差距越大则比值越大。在实现SIFT时即可选择合适的r作为阈值,

只有当时保留,否则抛弃。

至此,已经确认了一张图像的SIFT特征点位置,接下来描述每个特征点的特性,使之与众不同.

SIFT算子利用特征点及其周边像素的梯度及梯度方向信息来描述该特征点,为了使之拥有旋转不变性,首先需要确定出该特征点主方向并将坐标轴与主方向对齐:

将方向域0-360划分为36个区间,每个区间10度,先对区域做两次高斯平滑滤波(模板[0.25,0.5,0.25]),接着以R为半径统计区域内的梯度幅值及梯度方向的直方图分布(统计区域半径与尺度因子σ有关: R=3*1.5*σ).直方图中的最大梯度累加值为该特征点的主方向,若有其他方向的梯度累加值则作为该特征点的辅方向.

坐标点相对位置计算公式:

特征值的描述方式与上篇所说的HOG算子有点类似,以2*2*8=32维SIFT特征向量为例:

以特征点为中心,4*4像素点为一个cell,统计该cell的梯度方向的分布及其梯度幅值在各方向域内的累加,将方向空间划分为8柱,每一柱45度,每个cell可用一个8维向量描述.将4个cell的8维向量串联,得到一个32维向量即为该SIFT特征点的描述(需要提高SIFT描述精度时可扩大统计范围,统计以特征点为中心,4*4个4*4大小的cell区域,即可得到4*4*8=128维的特征描述向量).


以上.

SIFT缺点:

1.实时性较差

2.对光滑图片无能为力,特别对圆毫无办法,如下图:


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值