1、Scale Invariant Feature TransformSIFTsift算法详解及应用算法详解及应用Scale Invariant Feature TransformSIFTl 传统的特征提取方法传统的特征提取方法 成像匹配的核心问题是将同一目标在成像匹配的核心问题是将同一目标在不同时间不同时间、不同不同分辨率分辨率、不同光照不同光照、不同位姿不同位姿情况下所成的像相对应。情况下所成的像相对应。传统的匹配算法往往是直接提取角点或边缘,对环境的传统的匹配算法往往是直接提取角点或边缘,对环境的适应能力较差,急需提出一种鲁棒性强、能够适应不同适应能力较差,急需提出一种鲁棒性强、能够适应不同
2、光照、不同位姿等情况下能够有效识别目标的方法。光照、不同位姿等情况下能够有效识别目标的方法。Scale Invariant Feature TransformSIFT19991999年年British ColumbiaBritish Columbia大学大卫大学大卫.劳伊(劳伊(David G.LoweDavid G.Lowe)教授总结了现有)教授总结了现有的基于不变量技术的特征检测方法,并正式提出了一种基于尺度空间的、对的基于不变量技术的特征检测方法,并正式提出了一种基于尺度空间的、对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征描述算子图像缩放、旋转甚至仿射变换保持不变性的图像局部特征
3、描述算子SIFTSIFT(尺度不变特征变换),这种算法在(尺度不变特征变换),这种算法在20042004年被加以完善。年被加以完善。l SIFT提出的目的和意义提出的目的和意义David G.LoweComputer Science Department2366 Main MallUniversity of British ColumbiaVancouver,B.C.,V6T 1Z4,Canada E-mail:lowecs.ubc.caScale Invariant Feature TransformSIFTl 将一幅图像映射(变换)为一个将一幅图像映射(变换)为一个局部特征向量集局部特征向
4、量集;特征向量具有平;特征向量具有平移、缩放、旋转不变性,同时对光照变化、仿射及投影变换也有一定不移、缩放、旋转不变性,同时对光照变化、仿射及投影变换也有一定不变性。变性。Original image courtesy of David LoweScale Invariant Feature TransformSIFTl SIFT算法特点算法特点 SIFT SIFT特征是图像的特征是图像的局部特征局部特征,其对旋转、尺度缩放、亮度变化,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。定性。独特性独
5、特性(Distinctiveness)(Distinctiveness)好,信息量丰富,适用于在海量特征好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。数据库中进行快速、准确的匹配。多量性,即使少数的几个物体也可以产生大量多量性,即使少数的几个物体也可以产生大量SIFTSIFT特征向量。特征向量。经过优化的经过优化的SIFTSIFT算法可满足一定的速度需求。算法可满足一定的速度需求。可扩展性,可以很方便的与其他形式的特征向量进行联合。可扩展性,可以很方便的与其他形式的特征向量进行联合。Scale Invariant Feature TransformSIFT 目标的自身状态、场景
6、所处的环境和成像器材的成像特性等因素目标的自身状态、场景所处的环境和成像器材的成像特性等因素影响图像配准影响图像配准/目标识别跟踪的性能。而目标识别跟踪的性能。而SIFTSIFT算法在一定程度上可解决:算法在一定程度上可解决:目标的旋转、缩放、平移(目标的旋转、缩放、平移(RST)图像仿射图像仿射/投影变换(视点投影变换(视点viewpoint)光照影响(光照影响(illumination)目标遮挡(目标遮挡(occlusion)杂物场景(杂物场景(clutter)噪声噪声l SIFT SIFT算法可以解决的问题算法可以解决的问题BackScale Invariant Feature Tran
7、sformSIFT l SIFT SIFT算法实现步骤简述算法实现步骤简述SIFTSIFT算法的实质可以归为在不同尺度空间上查找特征点(关键点)的问题。算法的实质可以归为在不同尺度空间上查找特征点(关键点)的问题。SIFTSIFT算法实现物体识别主要有三大工序,算法实现物体识别主要有三大工序,1 1、提取关键点;、提取关键点;2 2、对关键点附加、对关键点附加详细的信息(局部特征)也就是所谓的描述器;详细的信息(局部特征)也就是所谓的描述器;3 3、通过两方特征点(附带上、通过两方特征点(附带上特征向量的关键点)的两两比较找出相互匹配的若干对特征点,也就建立了特征向量的关键点)的两两比较找出相
8、互匹配的若干对特征点,也就建立了景物间的对应关系。景物间的对应关系。Scale Invariant Feature TransformSIFT1.关键点检测关键点检测2.关键点描述关键点描述 3.关键点匹配关键点匹配4.消除错配点消除错配点l SIFT SIFT算法实现步骤算法实现步骤Scale Invariant Feature TransformSIFT所谓关键点,就是在不同所谓关键点,就是在不同尺度空间尺度空间的图像下检测出的具有方向的图像下检测出的具有方向信息的局部极值点。信息的局部极值点。根据归纳,我们可以看出特征点具有的三个特征:根据归纳,我们可以看出特征点具有的三个特征:尺度尺度
9、 方向方向 大小大小1.1.哪些点是哪些点是SIFTSIFT中要查找的关键点(特征点)?中要查找的关键点(特征点)?这些点是一些这些点是一些十分突出的点不会因光照条件的改变而消失十分突出的点不会因光照条件的改变而消失,比如,比如角点角点、边缘点边缘点、暗区域的亮点暗区域的亮点以及以及亮区域的暗点亮区域的暗点,既然两幅图像中有相同的景物,既然两幅图像中有相同的景物,那么使用某种方法分别提取各自的稳定点,这些点之间会有相互对应的匹配那么使用某种方法分别提取各自的稳定点,这些点之间会有相互对应的匹配点。点。Scale Invariant Feature TransformSIFT 我们要精确表示的物
10、体都是通过一定的尺度来反映的。现实世界的我们要精确表示的物体都是通过一定的尺度来反映的。现实世界的物体也总是通过不同尺度的观察而得到不同的变化。物体也总是通过不同尺度的观察而得到不同的变化。尺度空间理论最早在尺度空间理论最早在19621962年提出,其主要思想是通过对原始图像进年提出,其主要思想是通过对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,对这些序列进行行尺度变换,获得图像多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。角
11、点检测和不同分辨率上的特征提取等。尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标在视网膜上的形成过程。标由近到远时目标在视网膜上的形成过程。尺度越大图像越模糊。尺度越大图像越模糊。2.2.什么是尺度空间(什么是尺度空间(scale spacescale space)?)?Scale Invariant Feature TransformSIFT 根据文献根据文献Scale-space theory:A basic tool for analysing Scale-space theory:A basic to
12、ol for analysing structures at different scalesstructures at different scales我们可知,高斯核是唯一可以产生我们可知,高斯核是唯一可以产生多尺度空间的核,一个图像的尺度空间,多尺度空间的核,一个图像的尺度空间,L L(x,y,),x,y,),定义为原始图像定义为原始图像I(x,y)I(x,y)与一个可变尺度的与一个可变尺度的2 2维高斯函数维高斯函数G(x,y,)G(x,y,)卷积运算。卷积运算。,*,L x yG x yI x y22221()(),exp22iiiixxyyG x y高斯函数高斯函数尺度是自然存在的
13、,不是人为创造的!高斯卷尺度是自然存在的,不是人为创造的!高斯卷积只是表现尺度空间的一种形式积只是表现尺度空间的一种形式Scale Invariant Feature TransformSIFT3.3.高斯模糊高斯模糊 高斯模糊是在高斯模糊是在Adobe PhotoshopAdobe Photoshop等图像处理软件中广泛使用的处理等图像处理软件中广泛使用的处理效果,通常用它来减小图像噪声以及降低细节层次。这种模糊技术生成效果,通常用它来减小图像噪声以及降低细节层次。这种模糊技术生成的图像的视觉效果是好像经过一个半透明的屏幕观察图像。的图像的视觉效果是好像经过一个半透明的屏幕观察图像。Scal
14、e Invariant Feature TransformSIFT 2221rrexp22G22r=xyr r为模糊半径,为模糊半径,在减小图像尺寸的场合经常使用高斯模糊。在进行欠采样的时,在减小图像尺寸的场合经常使用高斯模糊。在进行欠采样的时,通常在采样之前对图像进行低通滤波处理。这样就可以保证在采样通常在采样之前对图像进行低通滤波处理。这样就可以保证在采样图像中不会出现虚假的高频信息。图像中不会出现虚假的高频信息。Scale Invariant Feature TransformSIFT在实际应用中,在计算高斯函数的离散近似时,在大概在实际应用中,在计算高斯函数的离散近似时,在大概33距离
15、之外距离之外的像素都可以看作不起作用,这些像素的计算也就可以忽略。的像素都可以看作不起作用,这些像素的计算也就可以忽略。通常,图像处理程序只需要计算通常,图像处理程序只需要计算(61)(61)高斯模板大小的选择高斯模板大小的选择0.000000670.000022920.000191170.000387710.000191170.000022920.000000670.000022920.000786330.006559650.013303730.006559650.000786330.000022920.000191170.006559650.054721570.110981640.0547
16、21570.006559650.000191170.000387710.013303730.110981640.225083520.110981640.013303730.000387710.000191170.006559650.054721570.110981640.054721570.006559650.000191170.000022920.000786330.006559650.013303730.006559650.000786330.000022920.000000670.000022920.000191170.000387710.000191170.000022920.0000
17、0067高斯模板高斯模板Scale Invariant Feature TransformSIFT高斯模糊具有圆对称性。高斯模糊具有圆对称性。高斯模糊具有高斯模糊具有线性可分线性可分的性质,也可以在的性质,也可以在二维图像上对两个独立的一二维图像上对两个独立的一维空间分别进行计算维空间分别进行计算。这样可以大大。这样可以大大减少了运算的次数减少了运算的次数。对一幅图像进行多次连续高斯模糊的效果与一次更大的高斯模糊可以对一幅图像进行多次连续高斯模糊的效果与一次更大的高斯模糊可以产生同样的效果,大的高斯模糊的半径是所用多个高斯模糊半径平方产生同样的效果,大的高斯模糊的半径是所用多个高斯模糊半径平方
18、和的平方根。例如,使用半径分别为和的平方根。例如,使用半径分别为 6 6 和和 8 8 的两次高斯模糊变换得的两次高斯模糊变换得到的效果等同于一次半径为到的效果等同于一次半径为 10 10 的高斯模糊效果,的高斯模糊效果,根据这个关系,使用多个连续较小的高斯模糊处理不会比单个高斯较根据这个关系,使用多个连续较小的高斯模糊处理不会比单个高斯较大处理时间要少。大处理时间要少。高斯模糊的性质高斯模糊的性质226810Scale Invariant Feature TransformSIFT高斯金子塔的构建过程可分为高斯金子塔的构建过程可分为两步:两步:(1 1)对图像做高斯平滑;)对图像做高斯平滑;
19、(2 2)对图像做降采样。)对图像做降采样。为了让尺度体现其连续性,在简单为了让尺度体现其连续性,在简单下采样的基础上加上了高斯滤波。下采样的基础上加上了高斯滤波。一幅图像可以产生几组(一幅图像可以产生几组(octaveoctave)图像,一组图像包括几层图像,一组图像包括几层(intervalinterval)图像。)图像。4.4.高斯金字塔高斯金字塔Scale Invariant Feature TransformSIFT高斯图像金字塔共高斯图像金字塔共o o组、组、s s层,层,则有:则有:0()2sSs尺度空间坐标;尺度空间坐标;s ssub-levelsub-level层坐标;层坐标
20、;0 0初始尺度;初始尺度;S S每组层数(一般为每组层数(一般为35)。)。Scale Invariant Feature TransformSIFT 高斯金字塔的初始尺度高斯金字塔的初始尺度当图像通过相机拍摄时,相机的镜当图像通过相机拍摄时,相机的镜头已经对图像进行了一次初始的模头已经对图像进行了一次初始的模糊,所以根据高斯模糊的性质:糊,所以根据高斯模糊的性质:2logmin,3OM NM M、N N分别为图像的行数和列数分别为图像的行数和列数0initinitprepre0initinitprepreinit第第0 0层尺度层尺度pre被相机镜头模糊后的尺度被相机镜头模糊后的尺度 高斯
21、金字塔的组数高斯金字塔的组数Scale Invariant Feature TransformSIFT 高斯金字塔的组内尺度与组间尺度高斯金字塔的组内尺度与组间尺度0()2sSs组内尺度是指同一组(组内尺度是指同一组(octave)内的)内的尺度关系,组内相邻层尺度化简为:尺度关系,组内相邻层尺度化简为:112Sss组间尺度是指不同组直接的尺度关组间尺度是指不同组直接的尺度关系,相邻组的尺度可化为:系,相邻组的尺度可化为:1()2s SSoos222s SsSSoo 由此可见,相邻两组的同一层尺度为由此可见,相邻两组的同一层尺度为2倍的关系倍的关系Scale Invariant Feature
22、 TransformSIFT 最后可将组内和组间尺度最后可将组内和组间尺度归为:归为:i i金字塔组数金字塔组数n n每一组的层数每一组的层数1212(,)inkkk12Sk Scale Invariant Feature TransformSIFT上一组图像的底层是由前上一组图像的底层是由前一组图像的倒数第二层图一组图像的倒数第二层图像隔点采样生成的。像隔点采样生成的。这样可以保持尺度的连续这样可以保持尺度的连续性。性。?为啥?为啥?Scale Invariant Feature TransformSIFT 通过研究通过研究LoweLowe教授的论文发现,所有特征点的检测都是基于了尺度不教授
23、的论文发现,所有特征点的检测都是基于了尺度不变的特性,特征点的检测占据了论文的大部分的篇章,变的特性,特征点的检测占据了论文的大部分的篇章,具有十分重要的具有十分重要的意义!意义!LindebergLindeberg在文献在文献Scale-space theory:A basic tool for analysing Scale-space theory:A basic tool for analysing structures at different scalesstructures at different scales指出尺度规范化的指出尺度规范化的LoGLoG算子具有真正算子具有真正
24、的尺度不变性。的尺度不变性。LoGLoG算子即(算子即(Laplacion of GaussianLaplacion of Gaussian),可以由高斯函数梯度算子可以由高斯函数梯度算子GOGGOG构建构建22222GGGxy尺度规范化的尺度规范化的GoGGoG算子算子尺度规范化的尺度规范化的LoGLoG算子算子22GScale Invariant Feature TransformSIFT22,1G x y kG x ykG222(,)(,)(,)(1)Gauss x y kGauss x yLOG x yGkLOGLOG算子与高斯核函数的关系算子与高斯核函数的关系通过推导可以看出,通过推
25、导可以看出,LOGLOG算子与高斯核函数的差有直接关系,算子与高斯核函数的差有直接关系,由此引入一种新的算子由此引入一种新的算子DOGDOG(Difference of GaussiansDifference of Gaussians),),即即高斯差分算子。高斯差分算子。22222GGGxyScale Invariant Feature TransformSIFTDoGDoG(Difference of GaussianDifference of Gaussian)函数)函数,*,L x yG x yI x y,*,D x yG x y kG x yI x yL x y kL x yDoGD
26、oG在计算上只需相邻尺度高斯平滑后图像相减,因此简化了计算!在计算上只需相邻尺度高斯平滑后图像相减,因此简化了计算!应该是同一组内的相邻层吧?应该是同一组内的相邻层吧?Scale Invariant Feature TransformSIFTDoGDoG高斯差分金字塔高斯差分金字塔对应对应DOGDOG算子,我们要构建算子,我们要构建DOGDOG金字塔金字塔我们可以通过我们可以通过高斯差分图高斯差分图像像看出图像上的像素值变看出图像上的像素值变化情况。(如果没有变化,化情况。(如果没有变化,也就没有特征。特征必须也就没有特征。特征必须是变化尽可能多的点。)是变化尽可能多的点。)DOGDOG图像描
27、绘的是目标的图像描绘的是目标的轮廓。轮廓。Scale Invariant Feature TransformSIFTScale Invariant Feature TransformSIFT 在检测极值点前对原始图像的高斯平滑以致图像丢失高频信息,所以在检测极值点前对原始图像的高斯平滑以致图像丢失高频信息,所以LoweLowe建议在建立尺度空间前首先对原始图像长宽扩展一倍,以保留原始图像建议在建立尺度空间前首先对原始图像长宽扩展一倍,以保留原始图像信息,增加特征点数量。信息,增加特征点数量。在在LoweLowe的论文中,将第的论文中,将第0 0层的初始尺度定为层的初始尺度定为1.61.6,图片
28、的初始尺度定为,图片的初始尺度定为0.50.5,则图像金字塔第则图像金字塔第0 0层的实际尺度为层的实际尺度为1.6 1.60.5 0.51.52 当对图像长宽扩展一倍时,便构建了当对图像长宽扩展一倍时,便构建了-1-1层,该层尺度为层,该层尺度为1.6 1.6(2 0.5)(2 0.5)1.25P.S.:P.S.:图像插值时,选用的插值函数可以是多种多样的。图像插值时,选用的插值函数可以是多种多样的。Scale Invariant Feature TransformSIFT 中间的检测点和它同尺度的中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的个相邻点和上下相邻尺度对应的92个点共个
29、点共26个点比较,以确保在尺度空间和二维图像空间都检测到极个点比较,以确保在尺度空间和二维图像空间都检测到极值点。值点。l DoG的局部极值点的局部极值点 关键点是由关键点是由DOGDOG空间的局部极值点组成的。空间的局部极值点组成的。为了寻找为了寻找DoGDoG函数的极值点,函数的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。的相邻点大或者小。Scale Invariant Feature TransformSIFT 在极值比较的过程中,在极值比较的过程中,每一组图像的首末两层是无法每
30、一组图像的首末两层是无法进行极值比较的,为了满足尺进行极值比较的,为了满足尺度变化的连续性,我们在每一度变化的连续性,我们在每一组图像的顶层继续用高斯模糊组图像的顶层继续用高斯模糊生成了生成了3幅图像,高斯金字塔幅图像,高斯金字塔有每组有每组S+3层图像。层图像。DOG金字金字塔每组有塔每组有S+2层图像层图像 右图为不同尺度不同层间右图为不同尺度不同层间极值检测示意图。极值检测示意图。P.S.:P.S.:我们只牺牲了我们只牺牲了-1-1组的第组的第0 0层层和第和第N N组的最高层组的最高层Scale Invariant Feature TransformSIFTl 关键点精确定位关键点精确
31、定位 为了提高关键点的稳定性,需要对尺度空间为了提高关键点的稳定性,需要对尺度空间DoGDoG函数进行曲线拟合。利用函数进行曲线拟合。利用DoGDoG函数在尺度空间的函数在尺度空间的TaylorTaylor展开式:展开式:2212TTDDD XDXXXXX其极值点其极值点,TXx y 由于由于DoGDoG值对噪声和边缘较敏感值对噪声和边缘较敏感,因此因此,在上面在上面DoGDoG尺度空间中检测到局部尺度空间中检测到局部极值点还要经过进一步的检验才能精确定位为特征点。极值点还要经过进一步的检验才能精确定位为特征点。Scale Invariant Feature TransformSIFT 上式去
32、除那些对比度较低的不稳定极值点。上式去除那些对比度较低的不稳定极值点。Lowe的试验显示,所的试验显示,所有取值小于有取值小于0.04的极值点均可抛弃(的极值点均可抛弃(像素灰度值范围像素灰度值范围0,1)。)。12TDD XDXX 在计算过程中,分别对图像的行、列及尺度三个量进行了修正,其在计算过程中,分别对图像的行、列及尺度三个量进行了修正,其修正结果如下:修正结果如下:为修正值为修正值X在在LoweLowe的程序中,对坐标进行了五次修正。的程序中,对坐标进行了五次修正。212()TDDXXX 将修正后的结果代入式将修正后的结果代入式 2212TTDDD XDXXXXX求解得求解得2212
33、TTDDD XDXXXXXScale Invariant Feature TransformSIFTl 去除边缘响应去除边缘响应 仅仅去除低对比度的极值点对于极值点的对于特征点稳定性是远远不仅仅去除低对比度的极值点对于极值点的对于特征点稳定性是远远不够的。够的。DoGDoG函数在图像边缘有较强的边缘响应,因此我们还需要排除边缘函数在图像边缘有较强的边缘响应,因此我们还需要排除边缘响应。响应。DoGDoG函数的(欠佳的)峰值点在横跨边缘的方向有较大的主曲率,而函数的(欠佳的)峰值点在横跨边缘的方向有较大的主曲率,而在垂直边缘的方向有较小的主曲率。主曲率可以通过计算在该点位置尺在垂直边缘的方向有较
34、小的主曲率。主曲率可以通过计算在该点位置尺度的度的2 22 2的的HessianHessian矩阵矩阵得到,导数由采样点相邻差来估计得到,导数由采样点相邻差来估计:xxxyxyyyDDHDDxxD表示表示DOGDOG金字塔中某一尺度的图像金字塔中某一尺度的图像x x方向求导两次方向求导两次Scale Invariant Feature TransformSIFT221Tr HrDet Hr 在两特征值相等时达最小,随在两特征值相等时达最小,随r的增长而增长。的增长而增长。Lowe论文中建议论文中建议r取取10。21rrr2221Tr HrDet Hr D的主曲率和的主曲率和H的特征值成正比,为
35、了避免直接的计算这些特征值,而只的特征值成正比,为了避免直接的计算这些特征值,而只是考虑它们的之间的比率。令为是考虑它们的之间的比率。令为 最大特征值最大特征值 ,为最小的特征值,则为最小的特征值,则xxyyTr HDDxxyyxyxyDet HDDDD时将关键点保留,反之剔除时将关键点保留,反之剔除Scale Invariant Feature TransformSIFT 通过尺度不变性求极值点,可以使其具有缩放不变的性质,利用通过尺度不变性求极值点,可以使其具有缩放不变的性质,利用关键点邻域像素的梯度方向分布特性,我们可以为每个关键点指定方向关键点邻域像素的梯度方向分布特性,我们可以为每个
36、关键点指定方向参数方向,参数方向,从而使描述子对图像旋转具有不变性。从而使描述子对图像旋转具有不变性。,IIgradI x yxy22,1,1,1,1m x yL xyL xyL x yL x y1,1,1,tan1,1,L x yL x yx yL xyL xyl 像素点的梯度表示像素点的梯度表示梯度幅值:梯度方向:我们通过求每个极值点的梯度来为极值点赋予方向。我们通过求每个极值点的梯度来为极值点赋予方向。Scale Invariant Feature TransformSIFTl 方向直方图的生成方向直方图的生成 确定关键点的方向采用梯度直方图统计法,统计以关键点为原确定关键点的方向采用梯
37、度直方图统计法,统计以关键点为原点,一定区域内的图像像素点对关键点方向生成所作的贡献。点,一定区域内的图像像素点对关键点方向生成所作的贡献。Scale Invariant Feature TransformSIFT 1.1.直方图以每直方图以每1010度方向为一个柱,共度方向为一个柱,共3636个柱,柱所代表的方向为像个柱,柱所代表的方向为像素点梯度方向,柱的长短代表了梯度幅值。素点梯度方向,柱的长短代表了梯度幅值。2.2.根据根据LoweLowe的建议,直方图统计半径采用的建议,直方图统计半径采用3 3*1.51.5*。3.3.在直方图统计时,每相邻三个像素点采用高斯加权,根据在直方图统计时
38、,每相邻三个像素点采用高斯加权,根据LoweLowe的的建议,模板采用建议,模板采用0.25,0.5,0.250.25,0.5,0.25,并连续加权两次。,并连续加权两次。关于方向直方图的几点说明关于方向直方图的几点说明Scale Invariant Feature TransformSIFT 关键点关键点主方向主方向:极值点周围区域梯度直方图的:极值点周围区域梯度直方图的主主峰值也是特征点方向峰值也是特征点方向 关键点关键点辅方向辅方向:在梯度方向直方图中,当存在另一个相当于主峰值在梯度方向直方图中,当存在另一个相当于主峰值 80%能量的峰值时,则将这个方向认为是该关键点的辅方向。能量的峰值
39、时,则将这个方向认为是该关键点的辅方向。这可以增强匹配的鲁棒性这可以增强匹配的鲁棒性,LoweLowe的论文指出大概有的论文指出大概有15%15%关键点具有关键点具有多方向,但这些点对匹配的稳定性至为关键。多方向,但这些点对匹配的稳定性至为关键。关键点的主方向与辅方向关键点的主方向与辅方向Scale Invariant Feature TransformSIFT1.确定计算关键点直方图的高斯函数权重函数参数确定计算关键点直方图的高斯函数权重函数参数;2.生成含有生成含有36柱的方向直方图,梯度直方图范围柱的方向直方图,梯度直方图范围0360度,其中每度,其中每10度一个柱。由半径为图像区域生成
40、;度一个柱。由半径为图像区域生成;3.对方向直方图进行两次平滑;对方向直方图进行两次平滑;4.求取关键点方向(可能是多个方向);求取关键点方向(可能是多个方向);5.对方向直方图的对方向直方图的Taylor展开式进行二次曲线拟合,精确关键点方向;展开式进行二次曲线拟合,精确关键点方向;l 方向分配实现步骤方向分配实现步骤 图像的关键点已检测完毕,每个关键点有三个信息:位置、尺度、图像的关键点已检测完毕,每个关键点有三个信息:位置、尺度、方向;同时也就使关键点具备平移、缩放、和旋转不变性。方向;同时也就使关键点具备平移、缩放、和旋转不变性。BackScale Invariant Feature
41、TransformSIFTl 描述的目的描述的目的l 描述的思路描述的思路 通过对关键点周围图像区域分块,计算块内梯度直方图,生通过对关键点周围图像区域分块,计算块内梯度直方图,生成具有独特性的向量,这个向量是该区域图像信息的一种抽象,具成具有独特性的向量,这个向量是该区域图像信息的一种抽象,具有唯一性。有唯一性。描述的目的是在关键点计算后,用一组向量将这个关键点描描述的目的是在关键点计算后,用一组向量将这个关键点描述出来,这个描述子不但包括关键点,也包括关键点周围对其有贡述出来,这个描述子不但包括关键点,也包括关键点周围对其有贡献的像素点。用来作为目标匹配的依据,也可使关键点具有更多的献的像
42、素点。用来作为目标匹配的依据,也可使关键点具有更多的不变特性,如光照变化、不变特性,如光照变化、3D视点变化等。视点变化等。Scale Invariant Feature TransformSIFT 下图是一个下图是一个SIFT描述子事例。其中描述子由描述子事例。其中描述子由228维向量表征,也维向量表征,也即是即是22个个8方向的方向方向的方向直方图组成。直方图组成。左图的种子点由左图的种子点由88单元组成。每一单元组成。每一个小格都代表了特征点邻域所在的尺度空间的一个像素,箭头方向代表了像素个小格都代表了特征点邻域所在的尺度空间的一个像素,箭头方向代表了像素梯度方向,箭头长度代表该像素的幅
43、值。然后在梯度方向,箭头长度代表该像素的幅值。然后在44的窗口内计算的窗口内计算8个方向的个方向的梯度方向直方图。绘制每个梯度方向的累加可形成一个种子点,如右图所示:梯度方向直方图。绘制每个梯度方向的累加可形成一个种子点,如右图所示:一个特征点由一个特征点由4个种子点的信息所组成。个种子点的信息所组成。Scale Invariant Feature TransformSIFT LoweLowe实验结果实验结果表明表明:描述子描述子采用采用4 44 48 8128128维向量表征维向量表征,综合效果最优综合效果最优(不变性与独(不变性与独特性)。特性)。Scale Invariant Featu
44、re TransformSIFT 是关键点所在组(是关键点所在组(octave)的组内尺度,)的组内尺度,1.确定确定计算计算描述子所需的图像区域描述子所需的图像区域 描述子梯度方向直方图由关键点所在尺度的模糊图像计算产描述子梯度方向直方图由关键点所在尺度的模糊图像计算产生。图像区域的半径通过下式计算生。图像区域的半径通过下式计算:32112octdradiusoct4d l 128维关键点描述子生成步骤维关键点描述子生成步骤Scale Invariant Feature TransformSIFT2.将坐标移至关键点主方向将坐标移至关键点主方向那么旋转角度后新坐标为:那么旋转角度后新坐标为:
45、cossinsincosxxyy Scale Invariant Feature TransformSIFT:等于描述子窗口宽度 直方图列数(取4)的一半;22,exp1112kkrcowxyweightgrad Ix ydddkxkyw3:该点与关键点的列距离;:该点与关键点的行距离;3.3.在图像半径区域内对每个像素点求其梯度幅值和方向,然后对每个梯在图像半径区域内对每个像素点求其梯度幅值和方向,然后对每个梯度幅值乘以高斯权重参数,生成方向直方图。度幅值乘以高斯权重参数,生成方向直方图。Scale Invariant Feature TransformSIFT4.4.在窗口宽度为在窗口宽度
46、为2X22X2的区域内计算的区域内计算8 8个方向的梯度方向直方图,绘制每个个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点。然后再在下一个梯度方向的累加值,即可形成一个种子点。然后再在下一个2X22X2的区域的区域内进行直方图统计,形成下一个种子点,共生成内进行直方图统计,形成下一个种子点,共生成1616个种子点。个种子点。12128,Ww ww12128,Ll ll5.5.描述子向量元素门限化及门限化后的描述子向量规范化。描述子向量元素门限化及门限化后的描述子向量规范化。描述子向量元素门限化:描述子向量元素门限化:方向直方图每个方向上梯度幅值限制在一定门限值以下(门限一
47、般取方向直方图每个方向上梯度幅值限制在一定门限值以下(门限一般取0.20.2)。)。描述子向量元素规范化:描述子向量元素规范化:为得到的为得到的128128描述子向量描述子向量,为规范化后的向量为规范化后的向量 Scale Invariant Feature TransformSIFT 关键点关键点描述子向量的规范化正是可去除描述子向量的规范化正是可去除满足此模型的光照满足此模型的光照影影响响。对于图像灰度值整体漂移对于图像灰度值整体漂移 ,图像各点的梯度是邻域像素相减得,图像各点的梯度是邻域像素相减得到,所以也能去除。到,所以也能去除。1281/jjiilww1,2,128j BackBac
48、kScale Invariant Feature TransformSIFT 分别对模板图(参考图,分别对模板图(参考图,reference imagereference image)和实时图(观测)和实时图(观测图,图,observation imageobservation image)建立关键点描述子集合。目标的识别是通)建立关键点描述子集合。目标的识别是通过两点集内关键点描述子的比对来完成。具有过两点集内关键点描述子的比对来完成。具有128128维的关键点描述子维的关键点描述子的相似性度量采用欧式距离。的相似性度量采用欧式距离。Scale Invariant Feature Trans
49、formSIFT原图像原图像目标图像目标图像穷举匹配穷举匹配Scale Invariant Feature TransformSIFT12128,iiiiRr rr12128,iiiiSsss12821,iiijijjd R Srs 模板图中关键点描述子:模板图中关键点描述子:实时图中关键点描述子:实时图中关键点描述子:任意两描述子相似性度量:任意两描述子相似性度量:要得到配对的关键点描述子,需满足:ijipRSThresholdRS实时图中距离 最近的点 实时图中距离 的次最近点,ijd R SScale Invariant Feature TransformSIFT关键点的匹配可以采用穷举
50、法来完成,但是这样耗费的时间太多,一关键点的匹配可以采用穷举法来完成,但是这样耗费的时间太多,一般都采用一种叫般都采用一种叫kdkd树的数据结构来完成搜索。搜索的内容是以目标图树的数据结构来完成搜索。搜索的内容是以目标图像的关键点为基准,搜索与目标图像的特征点最邻近的原图像特征点像的关键点为基准,搜索与目标图像的特征点最邻近的原图像特征点和次邻近的原图像特征点。和次邻近的原图像特征点。KdKd树是一个平衡二叉树树是一个平衡二叉树Scale Invariant Feature TransformSIFTBackScale Invariant Feature TransformSIFT关键点匹配并