没有合适的资源?快使用搜索试试~ 我知道了~
学习笔记———《SIFT算法》
5星 · 超过95%的资源 需积分: 9 72 下载量 139 浏览量
2014-01-14
10:49:43
上传
评论 3
收藏 1.57MB PDF 举报
温馨提示
试读
14页
本人在学习SIFT算法时,通过阅读Lowe的文章,也对应看了别人整理的笔记,个人觉得有些地方说的不是很清楚,特整理此笔记供大家参考!
资源推荐
资源详情
资源评论
SIFT
(
Scale-Invariant Feature Transform
)
SIFT(Scale-Invariant Feature Transform)尺度不变特征转换,是一种检测局
部特征的算法,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变
量,此算法由 David Lowe在1999年《Object Recognition from Local Scale-Invariant
Features》中发表,2004年在《Distinctive Image Features from Scale-Invariant
Keypoints》完善总结。其应用范围包含物体辨识、机器人地图感知与导航、影像
缝合、3D模型建立、手势辨识、影像追踪和动作比对。此算法有其专利,专利
拥有者为英属哥伦比亚大学。局部影像特征的描述与侦测可以帮助辨识物体,
SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对
于光线、噪声、一些微视角改变的容忍度也相当高。基于这些特性,它们是高度
显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有
误认。使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个
以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型
的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在
海量数据库中快速准确匹配。
SIFT算法的特点有:
1.SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,
对视角变化、仿射变换、噪声也保持一定程度的稳定性;
2.独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进
行快速、准确的匹配;
3.多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;
4.高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;
5.可扩展性,可以很方便的与其他形式的特征向量进行联合。
SIFT算法可以解决的问题:目标的自身状态、场景所处的环境和成像器材的
成像特性等因素影响图像配准/目标识别跟踪的性能。而SIFT算法在一定程度上
可解决:
1.目标的旋转、缩放、平移(RST)
2.图像仿射/投影变换(视点viewpoint)
3.光照影响(illumination)
4.目标遮挡(occlusion)
5.杂物场景(clutter)
6.噪声
SIFT算法的实质是在不同的尺度空间上查找特征点,并计算出特征点的方向。
SIFT所查找到的特征点是一些十分突出,不会因光照、仿射变换和噪音等因素而
变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。
SIFT的缺点,SIFT在图像的不变特征提取方面拥有无与伦比的优势,但并不
完美,仍然存在:
1.实时性不高。
2.有时特征点较少。
3.对边缘光滑的目标无法准确提取特征点等缺点,近来不断有人改进,其中
最著名的有SURF和PCA-SIFT。
Lowe将SIFT算法分解为如下五步:
1.构建尺度空间:这是一个初始化操作,尺度空间理论目的是模拟图像数据
的多尺度特征。
2.检测尺度空间极值点:搜索所有尺度上的图像位置。通过高斯微分函数来
识别潜在的对于尺度和旋转不变的兴趣点。
3.精确定位特征点:在每个候选的位置上,通过一个拟合精细的模型来确定
位置和尺度。特征点的选择依据于它们的稳定程度。
4.特征点方向分配:基于图像局部的梯度方向,分配给每个特征点位置一个
或多个方向。所有后面的对图像数据的操作都相对于特征点的方向、尺度和位置
进行变换,从而提供对于这些变换的不变性。
5. 特征点特征矢量生成:在每个特征点周围的邻域内,在选定的尺度上测
量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许有较大的局部形
状的变形和光照变化。
本文沿着Lowe的步骤,参考Rob Hess源码,详解SIFT算法的实现过程。
1.
构建尺度空间
这是一个初始化操作,SIFT算法是在不同的尺度空间上查找关键点,尺度空
间理论目的是模拟图像数据的多尺度特征,而尺度空间的获取需要使用高斯模糊
来实现,Tony Lindeberg等人已在《Scale-space theory: A basic tool for analysing
structures at different scales》中证明高斯卷积核是实现尺度变换的唯一变换核,
并且是唯一的线性核。于是一个二维图像的尺度空间
(,, )Lxy
σ
定义为一个变尺
度的高斯函数
(,, )Gxy
σ
与图像
(, )Ixy
卷积产生的。即:
(,, ) (,, ) (, ) (1 1)Lxy Gxy Ixy
σσ
=∗−
其中
∗
表示在
x
和
y
两个方向上进行的卷积操作,而
(,, )Gxy
σ
为:
22 2
( )/2
2
1
( , , ) (1 2)
2
xy
Gxy e
σ
σ
πσ
−+
= −
其中
(, )xy
代表图像像素的空间坐标,
σ
是尺度空间坐标。
σ
的大小决定图
像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的
σ
值对应粗超尺度(低分辨率),反之,小的
σ
值对应精细尺度(高分辨率)。
1.1 高斯金字塔的构建
图1-1 高斯金字塔模型
尺度空间在实现时使用高斯金字塔表示,如图1-1所示,高斯金字塔的构建
分为两部分:(1)对图像做不同尺度的高斯模糊;(2)对图像做降采样(隔点
采样);
1.2 构建尺度空间需确定的参数
为了让尺度体现其连续性,在简单下采样的基础上加上了高斯滤波。一幅图
像可以产生几组(octave)图像,每组图像包括几层(interval)图像。高斯图像
金字塔共
O
组,每组
S
层,高斯金字塔组数计算公式:
( )
( )
2
log min , 3 (1 3)O MN
= −−
其中
M
,
N
分别表示图像的行数和列数。特征点的尺度坐标
σ
按特征点所
在的组和组内的层计算得到:
0
( , ) 2 (1 4)
s
o
S
os
σσ
+
=⋅−
,
[ ] [ ]
0,..., 1 , 0,..., 2o Os S∈ −∈ +
其中
σ
表示尺度空间坐标,
o
为组的索引,
s
表示组内层的索引,
0
σ
表示基
准层尺度,
S
表示每组层数(一般为3~5)。当图像通过相机拍摄时,相机的
镜头已经对图像进行了一次初始的模糊,根据高斯模糊的性质:
22
0
( ) ( ) (1 5)
init pre
σσ σ
=−−
其中
init
σ
为第0层尺度,
pre
σ
为被相机镜头模糊后的尺度。高斯金字塔的组内
尺度是指同一组内的尺度关系,组内相邻层尺度简化为:
1
(, 1) (,)2 (1 6)
S
os os
σσ
+= ⋅ −
组间尺度是指不同组之间的尺度关系,相邻组的同层尺度简化为:
1
0
( 1,) 2 2 2 2(,) (1 7)
o s os
SS
o
o s os
σσ σσ
++ +
+=⋅ =⋅ = −
最后可将组内和组间尺度归为:
1 21
2(, , , )
in
kk k
σσ σ σ
−−
,其中
1
2
S
k =
,
i
表
示为金字塔组数,
n
为每一组的层数。上一组图像的底层是由前一组图像的倒数
第三层图像隔点采样生成的,这样可以保持尺度的连续性。
在 Lowe 的论文使用了如下参数
0
1.6
σ
=
,
3S =
。
1.3
DoG
尺度空间生成
使用 LoG(Laplacian of Gaussian)能够很好地找到图像中的兴趣点,取一张图像
将其模糊,并且计算它的二阶导数,这样可以定位图像中的边界和直角。这些边
界和直角对于找到特征点是很有帮助的。但是二阶导数对噪音是非常敏感的,通
过使用模糊操作平滑噪音,可以稳定了二阶导数。这个问题计算所有二阶导数需
要大量的计算,所以使用近似操作。Lowe 使用更高效的高斯差分算子代替拉普
拉斯算子进行极值检测。
剩余13页未读,继续阅读
资源评论
- actionrecognition2014-05-16分析得很详细 谢谢分享
- u0102648312014-03-17值得一看,由浅入深
- Kristina00682015-05-23这篇文章对SIFT算法的五大步骤讲解的非常透彻,看后对SIFT的本质有了清醒的认识,一目了然,适合对数字图像处理没有基础的童鞋查阅。
李承锦MJ
- 粉丝: 21
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功