尺度空间理论和SIFT算法小结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
尺度空间理论
尺度空间(scalesPace)思想最早由Iijima 于1962年提出([l]),但当时并未引起算机视觉领域研究者们的足够注意,直到上世纪八十年代,witkin([2])Koenderink([3])等人的奠基性工作使得尺度空间方法逐渐得到关注和发展。
此后,随着非线性扩散方程、变分法和数学形态学等方法在计算机视觉领域中的广泛应用,尺度空间方法进入了快速发展阶段。
尺度空间方法本质上是偏微分方程对图像的作用。
尺度空间方法的基本思想是:在视觉信息(图像信息)处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得不同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘图像的本质特征。
尺度空间方法将传统的单尺度视觉信息处理技术纳入尺度不断变化的动态分析框架中,因此更容易获得图像的本质特征。
尺度空间的生成目的是模拟图像数据的多尺度特征。
高斯卷积核是实现尺度变换的唯一线性核。
尺度空间是一个用来控制观察尺度或表征图像数据多尺度自然特性的框架;信号的尺度空间表征是信号的特征结构集合并包含有一个连续的尺度参量(即观察尺度)。
尺度空间理论[8]是通过对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。
尺度空间表示是一种基于区域而不是基于边缘的表达,它无需关于图像的先验知识。
与通过减小图像尺寸而提高计算效率的其他多尺度或多分辨率表达相比,尺度空间表示由平滑获得,在多由尺度上都保持了不变的空间取样,但对同一特征而言,它在粗糙尺度上对应更多的像素点,这样就使得对这些数据的计算任务得到连续的简化。
尺度空间表示的另一个重要特征,就是基于尺度的结构特性能以一种简单的方式解析的表达,不同尺度上的特征可以一种精确的方式联系起来。
作为尺度空间理论中的一个重要概念,尺度空间核被定义为:in out f K f *= (1)
对于所有的信号in f ,若它与变换核K 卷积后得到的信号out f 中的极值(一阶微分过零点数)不超过原图像的极值,则称K 为尺度空间核,所进行的卷积变换称为尺度变换。
尺度空间表示通过平滑获得,可描述为),(σx 空间(?y 呢?),x 和σ分别为位置参数和尺度参数。
当采用不同尺度的平滑函数对同一图像进行滤波时,得到的一簇图像就是原始图像相对于该平滑函数的尺度空间,σ为尺度空间坐标。
在高斯尺度空间,同一类型特征点和边缘在不同的尺度上具有因果性,即当尺度变化时,新的特征点可能出现,而老的特征点可能移位或消失。
这种因果性带来的含糊性是固有的,不可避免的,不能企求消除,但可以减小。
然而,由于高斯核[9] 具有线性、平移不变性、旋转不变性和子集特性等特性,可以证明,
高斯核是实现尺度变换的唯一变换核[10]。
因此,利用高斯核的一阶导数将Harris 角点算子变换成尺度空间的表示。
[8] Lindeberg T. Scale-space theory :A basic tool for ana-lysing structures at different scales [J]. Journal Ap-plied Statistics, 1994, 21(2):223 261.
[9] Babaud J, Witkin A P, Baudin M,et al. Uniquenessof the Gaussian kernel for scale-space filtering [J].IEEE Transactions on Pattern Analysis Machine
Intelligence, 1986, 8(1):26 33.
[10]吴立德.计算机视觉[M].上海:复旦大学出版社,1993.
Harris 角点提取方法是目前效果最好的,它不受摄像机姿态及光照的影响。
然而,对于尺度变化较大的视觉系统,该方法却不能保持特征的不变性,如移动机器人视觉系统,由于移动机器人位置变化,其采集的图像不仅会有光照、位置的变化,还存在尺度变化。
通常,通过大尺度观察图像,可以得到图像的粗糙画面;而从小尺度观察,能够检测到图像的细节特征。
实际图像中的特征角点常常发生在不同的尺度范围上,并且每一角点的尺度信息是未知的。
一般认为在较大尺度下能较可靠地消除误检和检测到真正的角点,但角点的定位不易准确。
相反,在较小尺度下对真正的特征角点的定位比较准确,但误检的比例会增加。
所以,可考虑先在较大尺度下检测出角点,然后在较小尺度下对真正特征角点进行较精确定位。
因此,利用多尺度技术检测角点是获得理想特征角点的一种理想途径,即有效组合利用多个不同尺度的角点检测算子,同时正确地检测一幅图像内发生在各个尺度水平上的角点。
某一角点检测算法的优劣可通过稳定性准则、可靠性准则和抗噪性能准则来评价[12]。
这3个准则依靠改变参数、阈值或增加噪声后检测出的角点与初始检测出的角点的重复率η决定。
()%100,min ⨯⋂=j i j
i C C C C η
分子的含义是计算不同尺度下检测到的完全相同的角点(即横、纵坐标都相同)的数目。
由式(9)可知,重复率η越大,算法的稳定性越高。
[12] 杨杨,张田文.角点检测算法评价方法的研究[J].哈尔滨工业大学学报,1998,30(2):7 10.
为了能够对特征点在不同尺度下提取的效果进行定量评价,使用以下公式
[12]:
()()
%100,,2121⨯=m m mean I I C η 分子表示两幅图像中重复特征点的个数,分母表示两幅图像中特征点提取个数的平均值,这个值被称为重复率。
重复率越大,则说明特征点算法效果越好,即算法提取特征点的稳定性越好。
[12] C Schmid R M,C paring and evaluating in-terest
points[A].Proceedings of the6th International Confer-ence on Computer
Vision[C].Bombay,India:IEEE ComputerSociety Press,1998.230-235.
视觉多尺度分析是一种新的视觉信息处理方法,其基本思想是:当我们用眼睛观察物体且物体和观察者之间的距离(将距离视为尺度参数)不断变化时,视网膜将感知到不断变化的图像信息,分析和综合这些不同尺度下的视觉信息以获得被观察物体的本质特征,这种视觉分析方法即称为视觉多尺度分析。
尺度空间满足的视觉不变性:
上述诸不变性定义的视觉解释如下:当我们用眼睛观察物体时,一方面,当物体所处背景的光照条件变化时,视网膜感知图像的亮度水平和对比度是不同的,因此要求尺度空间算子对图像的分析不受图像的灰度水平和对比度变化的影响,即满足灰度不变性和对比度不变性;另一方面,相对于某一固定坐标系,当观察者和物体之间的相对位置变化时,视网膜所感知的图像的位置、大小、角度和形状(三维物体投影到视网膜上的二维图像轮廓,通常对应于图像的仿射变换)是不同的,因此要求尺度空间算子对图像的分析与图像的位置、大小、角度以及仿射变换无关,即满足平移不变性、尺度不变性、欧基里德不变性以及仿射不变性。
尺度空间的因果性:
上述定义所叙述的锥形性意味着大尺度下的图像可以通过对小尺度图像的尺度空间算子作用而直接获得,局部对比性意味着尺度空间算子作用对图像灰度值的局部保序性,而正则性则是为导出尺度空间算子表达形式而引入的附加要求。
SIFT算法小结
1 SIF T 发展历程
SIFT算法由D.G.Lowe 1999年提出,2004年完善总结。
后来Y.Ke将其描述子部分用PCA代替直方图的方式,对其进行改进。
2 SIFT 主要思想
SIFT算法是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置,尺度,旋转不变量。
3 SIFT算法的主要特点:
a)SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。
b)独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进
行快速、准确的匹配[23]。
c)多量性,即使少数的几个物体也可以产生大量SIFT特征向量。
d)高速性,经优化的SIFT匹配算法甚至可以达到实时的要求。
e)可扩展性,可以很方便的与其他形式的特征向量进行联合。
4 SIFT 算法步骤:
1)检测尺度空间极值点
2)精确定位极值点
3)为每个关键点指定方向参数
4)关键点描述子的生成
5 SIFT 算法详细
▲尺度空间的生成
尺度空间理论目的是模拟图像数据的多尺度特征。
高斯卷积核是实现尺度变换的唯一线性核[],于是一副二维图像的尺度空间定义为:
),(),,(),,(y x I y x G y x L *=σσ (1) 其中 ),,(σy x G 是尺度可变高斯函数,2)(22/21
),,(22σπσσy x e y x G +-= (2)
(x ,y )是空间坐标,σ是尺度坐标。
σ大小决定图像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。
大的σ值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。
为了有效的在尺度空间检测到稳定的关键点,提出了高斯差分尺度空间(DOG scale-space )。
利用不同尺度的高斯差分核与图像卷积生成。
),,(),,(),()),,(),,((),,(σσσσσy x L k y x L y x I y x G k y x G y x D -=*-= (3)
DOG 算子计算简单,是尺度归一化的LoG 算子的近似。
图像金字塔的构建:图像金字塔共O 组,每组有S 层,下一组的图像由上一组图像降采样得到。
图1由两组高斯尺度空间图像示例金字塔的构建, 第二组的第一副??图像由第一组的第一副到最后一副图像由一个因子2降采样得到。
如何实现??
图2 DoG 算子的构建:
图1 Two octaves of a Gaussian scale-space image pyramid with s =2 intervals. The first image in the second octave is created by down sampling the second??to last image in the previous
图2 The difference of two adjacent intervals in the Gaussian scale-space pyramid create an interval in the difference-of-Gaussian pyramid (shown in green).
▲空间极值点检测
为了寻找尺度空间的极值点,每一个采样点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。
如图3所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。
一个点如果在DOG尺度空间本层以及上下两层的26个领域中是最大或最小值时,就认为该点是图像在该尺度下的一个特征点,如图1所示。
▲ 构建尺度空间需确定的参数
σ-尺度空间坐标
O -octave 坐标
S - sub-level 坐标
σ和O 、S 的关系S s o s o /02),(+=σσ,],1,...,0[min -+∈O o o ]1,...,0[-∈S s 其中0σ是基准层尺度。
o -octave 坐标,s - sub-level 坐标。
注:octaves 的索引可能是负的。
第一组索引常常设为0或者-1,当设为-1的时候,图像在计算高斯尺度空间前先扩大一倍。
空间坐标x 是组octave 的函数,设0x 是0组的空间坐标,则
[][]1,...,01,...,0,,20000-⨯-∈Z ∈=M N x o x x o
如果()00,M N 是基础组o=0的分辨率,则其他组的分辨率由下式获得:
0000,22o o N M N M ⎢⎥⎢⎥==⎢⎥⎢⎥⎣⎦⎣⎦
注:在Lowe 的文章中,Lowe 使用了如下的参数:
1/0min 0.5, 1.62,1,3S n o S σσ==⋅=-=
在组o=-1,图像用双线性插值扩大一倍(对于扩大的图像1n σ=)。
▲ 精确确定极值点位置
通过拟和三维二次函数以精确确定关键点的位置和尺度(达到亚像素精度),同时去除低对比度的关键点和不稳定的边缘响应点(因为DoG 算子会产生较强的边缘响应),以增强匹配稳定性、提高抗噪声能力。
图3 DoG 尺度空间局部极值检测
①空间尺度函数),,(σy x D (在局部极值点()σ,,00y x 处的,去掉这个限制不行吗?
: ()x x
D x x x D y x D y x D T T 2221,,),,(∂∂+∂∂+=σσ (3) 对上式求导,并令其为0,得到精确的位置x ˆ,x
D x D x ∂∂∂∂-=-212ˆ (4) ②在已经检测到的特征点中,要去掉低对比度的特征点和不稳定的边缘响应点。
去除低对比度的点:把公式(4)代入公式(3),只取前两项可得:
()x x
D y x D x D T
ˆ21,,)ˆ(∂∂+=σ 若()03.0ˆ≥x
D ,该特征点就保留下来,否则丢弃。
③边缘响应的去除
一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率。
主曲率通过一个2x2 的Hessian 矩阵H 求出:
xx xy xy yy D D H D D ⎡⎤=⎢⎥⎣⎦ (4)
导数由采样点相邻差估计得到。
D 的主曲率和H 的特征值成正比,令
α为最大特征值,β为最小的特征值,则
令
αγβ=,则:
(r + 1)2
/r 的值在两个特征值相等的时候最小,随着r 的增大而增大,因此,为
了检测主曲率是否在某域值r下,只需检测
在Lowe的文章中,取r=10。
▲关键点方向分配
利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备旋转不变性。
(5)
式(5)为(x,y)处梯度的模值和方向公式。
其中L所用的尺度为每个关键点各自所在的尺度。
在实际计算时,我们在以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度方向。
梯度直方图的范围是0~360度,其中每10度一个柱,总共36个柱。
直方图的峰值则代表了该关键点处邻域梯度的主方向,即作为该关键点的方向。
图4是采用7个柱时使用梯度直方图为关键点确定主方向的示例。
(窗口尺寸采用Lowe推荐的1.5σ×1.5σ)
图4 由梯度方向直方图确定主梯度方向
在梯度方向直方图中,当存在另一个相当于主峰值80%能量的峰值时,则将这个方向认为是该关键点的辅方向。
一个关键点可能会被指定具有多个方向(一个主方向,一个以上辅方向),这可以增强匹配的鲁棒性[53]。
至此,图像的关键点已检测完毕,每个关键点有三个信息:位置、所处尺度、方向。
由此可以确定一个SIFT特征区域(在实验章节用椭圆或箭头表示)。
▲特征点描述子生成
首先将坐标轴旋转为关键点的方向,以确保旋转不变性。
图5 由关键点邻域梯度信息生成特征向量
接下来以关键点为中心取8×8的窗口。
图5-4左部分的中央黑点为当前关键点的位置,每个小格代表关键点邻域所在尺度空间(和关键点是否为一个尺度空间??)的一个像素,利用公式(5)求得每个像素()j i ,的梯度幅值j i m ,与梯度方向j i ,θ,箭头方向代表该像素的梯度方向,箭头长度代表梯度模值,然后用高斯窗口对其进行加权运算,每个像素对应一个向量,长度为()j i m j i G ,',,*σ,()
j i G ,,'σ为该像素点的高斯权值,方向为j i ,θ, 图中蓝色的圈代表高斯加权的范围(越靠近关键点的像素梯度方向信息贡献越大)。
高斯参数σ′取3倍特征点所在的尺度,即3σ 1.5σ。
然后在每4×4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点,如图5右部分所示。
此图中一个关键点由2×2共4个种子点组成,每个种子点有8个方向向量信息。
这种邻域方向性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特征匹配也提供了较好的容错性。
实际计算过程中,为了增强匹配的稳健性,Lowe 建议对每个关键点使用4×4共16个种子点来描述,这样对于一个关键点就可以产生128个数据,即最终形成128维的SIFT 特征向量。
此时SIFT 特征向量已经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进一步去除光照变化的影响。
当两幅图像的SIFT 特征向量生成后,下一步我们采用关键点特征向量的欧式距离来作为两幅图像中关键点的相似性判定度量。
取图像1中的某个关键点,并找出其与图像2中欧式距离最近的前两个关键点,在这两个关键点中,如果最近的距离除以次近的距离少于某个比例阈值,则接受这一对匹配点。
降低这个比例阈值,SIFT 匹配点数目会减少,但更加稳定。
为了排除因为图像遮挡和背景混乱而产生的无匹配关系的关键点,Lowe 提出了比较最近邻距离与次近邻距离的方法,距离比率ratio 小于某个阈值的认为是正确匹配。
因为对于错误匹配,由于特征空间的高维性,相似的距离可能有大量其他的错误匹配,从而它的ratio 值比较高。
Lowe 推荐ratio 的阈值为0.8。
(还不理解)但作者对大量任意存在尺度、旋转和亮度变化的两幅图片进行匹配,结果表明ratio 取值在0. 4~0. 6之间最佳,小于0. 4的很少有匹配点,大于0. 6的则存在大量错误匹配点。
(如果这个地方你要改进,最好给出一个匹配率和ration 之间的关系图,这样才有说服力)作者建议ratio 的取值原则如下:
ratio=0. 4 对于准确度要求高的匹配;
ratio=0. 6 对于匹配点数目要求比较多的匹配;
ratio=0. 5 一般情况下。
也可按如下原则:当最近邻距离<200时ratio=0. 6,反之ratio=0. 4。
ratio 的取值策略能排分错误匹配点。
对SIFT算法的总的概述:SIFT算法中的邻域方向性信息联合的思想能够增强算法的抗噪声能力,同时对于含有定位误差的特征匹配也提供了较好的容错性,并且SIFT特征是图像的局部特征,其对图像旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性,它具有很好的独特性和丰富的信息量,适用于海量特征数据库的图像匹配。
SIFT图像特征的许多属性适合于对不同图像或场景中同一目标进行匹配。
这些特征对于图像尺度、旋转、亮度和3D视点都具有不变性,而且有很高的独特性,能使单独一个特征从很大的特征数据库中被高概率正确地匹配出来,减小了由遮挡、混乱或噪音所造成的错误概率。
生成SIFT图像特征集的主要计算步
SIFT算法基于图像特征尺度选择的思想,建立图像的多尺度空间,在不同尺度下检测到同一个特征点,确定特征点位置的同时确定其所在尺度,以达到尺度抗缩放的目的,剔出一些对比度较低的点以及边缘响应点,并提取旋转不变特征描述符以达到抗仿射变换的目的。
该算法主要包含4个步骤:(1)建立尺度空间,寻找候选点;(2)精确确定关键点,剔除不稳定点;(3)确定关键点的方向;(4)提取特征描述符。
利用一组连续的高斯卷积核与原图像进行卷积,生成一系列尺度空间的图像,相邻尺度的图像相减就得到一组DOG图像,然后将图像缩小2倍并重复以上过程,直至图像尺寸小于某一范围(例如32×32)。
SIFT特征描述子以基于梯度位置和方向的三维直方图来描述图像局部特征,其中每个位置和方向上的描述子分量由梯度幅值的加权和计算求得,这种梯度位置和方向的量化使得SIFT特征描述子对图像中细小的几何畸变以及特征提取过程中微小的定位误差具有非常好的抗干扰性。
SIFT算法学习小记
Sift是David Lowe于1999年提出的局部特征描述子,并于2004年进行了更深入的发展和完善。
Sift特征匹配算法可以处理两幅图像之间发生平移、旋转、仿射变换情况下的匹配问题,具有很强的匹配能力。
在Mikolajczyk对包括Sift算子在内的十种局部描述子所做的不变性对比实验中,Sift及其扩展算法已被证实在同类描述子中具有最强的健壮性。
总体来说,Sift算子具有以下特性:
(1)Sift特征是图像的局部特征,对平移、旋转、尺度缩放、亮度变化、遮挡和噪声等具有良好的不变性,对视觉变化、仿射变换也保持一定程度的稳定性。
(2)独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。
(3)多量性,即使少数的几个物体也可以产生大量Sift特征向量。
(4)速度相对较快,经优化的Sift匹配算法甚至可以达到实时的要求。
(5)可扩展性强,可以很方便的与其他形式的特征向量进行联合。
Sift特征匹配算法主要包括两个阶段,一个是Sift特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量;第二阶段是Sift特征向量的匹配。
Sift特征的生成一般包括以下几个步骤:
1、构建尺度空间,检测极值点,获得尺度不变性;
2、特征点过滤并进行精确定位;
3、为特征点分配方向值;
4、生成特征描述子。
以特征点为中心取16*16的邻域作为采样窗口,将采样点与特征点的相对方向通过高斯加权后归入包含8个bin的方向直方图,最后获得4*4*8的128维特征描述子。
示意图如下:
当两幅图像的Sift特征向量生成以后,下一步就可以采用关键点特征向量的欧式距离来作为两幅图像中关键点的相似性判定度量。
取图1的某个关键点,通过遍历找到图像2中的距离最近的两个关键点。
在这两个关键点中,如果次近距离除以最近距离小于某个阙值,则判定为一对匹配点。