(一)SIFT特征原理描述
1、SIFT概述
SIFT是尺度不变特征转换的简称,此算法由 David Lowe发表,是一种电脑视觉的算法用来侦测与描述影像中的局部性特征。SIFT特征包括兴趣点检测和描述子。它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,因此,它可以用于三维视角和噪声的可靠分配。SIFT特征包括兴趣点检测和描述子。
-
SIFT算法的特点:
1.图像的局部特征,对旋转、尺度缩放、亮度变化保持不变,对视角变化、仿射变换、噪声也保持一定程度的稳定性。
2.独特性好,信息量丰富,适用于海量特征库进行快速、准确的匹配。
3.多量性,即使是很少几个物体也可以产生大量的SIFT特征
4.高速性,经优化的SIFT匹配算法甚至可以达到实时性
5.扩招性,可以很方便的与其他的特征向量进行联合。 -
SIFT算法可以解决的问题:
1.目标的旋转、缩放、平移
2.图像仿射/投影变换
3.光照影响
4.目标遮挡
5.杂物场景
6.噪声
SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。
2、SIFT特征检测的步骤
(1)尺度空间的极值检测(寻找特征点)
-
高斯金字塔
高斯金字塔是同一图像在不同的分辨率下得到的一组结果,其生成过程一般包括两个步骤:
<1>对原始图像进行高斯平滑;
<2>对处理后的图像进行降采样(通常是水平、垂直方向的1/2)。降采样后得到一系列不断尺寸缩小的图像。显然,一个传统的金字塔中,每一层的图像是其上一层图像长、高的各一半。
-
高斯尺度空间(DOG函数)
高斯核是唯一可以产生多尺度空间的核,一个图像的尺度空间,L(x,y,σ),定义为原始图像I(x,y)与一个可变尺度的2维高斯函数G(x,y,σ)卷积运算。一副二维图像的尺度空间定义为:
其中 G(x,y,σ) 是尺度可变高斯函数:
σ大小决定图像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的σ值对应低分辨率,反之,对应高分辨率。
为了有效的在尺度空间检测到稳定的关键点,提出了高斯差分尺度空间(DOG)。利用不同尺度的高斯差分核与图像卷积生成。
-
DOG高斯差分金字塔:
由图片的大小决定建几个塔,每塔几层图像。0塔的第0层是原始图像。同一个金字塔之间的图像是不同程度高斯卷积关系。直观上看来越往上图片越模糊。塔间的图像是降采样关系。
-
检测DOG尺度空间极值点
特征点时由DOG空间的局部极值点组成的。为了寻找尺度空间的极值点,每一个采样点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。如图所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。 一个点如果在DOG尺度空间本层以及上下两层的26个领域中是最大或最小值时,就认为该点是图像在该尺度下的一个特征点,如图所示。
(2)关键点方向分配
利用特征点邻域像素的梯度方法分布特性,为每个特征点