一.SIFT特征原理描述
SIFT(Scale-invariant feature transform,尺度不变特征变换)包括兴趣点检测器和描述子,其具有非常强的稳健性,对于尺度、旋转和亮度都具有不变性,因此也用于三维视角和噪声的可靠匹配。此算法由 David Lowe在1999年所发表,2004年完善总结。
SIFT算法具有如下一些特点:
a.SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;
b. 区分性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;
c. 多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;
d.高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;
e.可扩展性,可以很方便的与其他形式的特征向量进行联合。
SIFT主要有三个流程:
1、提取关键点;
1.1 关键点
一些十分突出的点不会因光照、尺度、旋转等因素的改变而消失,比如角点、边缘点、暗区域的亮点以及亮区域的暗点
1.2 尺度空间理论
基本思想:通过对原始图像进行尺度变换,获得图像多尺度下的空间表示。而实现边缘、角点检测和不同分辨率上的特征提取,以满足特征点的尺度不变性。一个图像的尺度空间,定义为一个变化尺度的高斯函数与原图像的卷积。
其中,*表示卷积运算
1.3 高斯模糊:使照片呈现不同的模糊程度,但整体的像素没有变,依然可以找到灰度值突变的点。
1.4 金字塔降采样:若对一张图片进行降采样,其像素点就会减少,图片尺寸也会随之变小。那么给人的感觉就好比一个金字塔。先进行图片模糊平滑,再降采样,根据降采样率不同从而获得的一系列尺寸逐渐变小的图片,其处理速度快,占用的存储空间小。
1.5 LOG(高斯拉普拉斯图像) 先将照片降采样,得到了不同分辨率下的图像金字塔。再对每层图像进行高斯卷积。这样一来,原本的图像金字塔每层只有一张图像,而卷积后,每层又增加了多张不同模糊程度下的照片。
1.6 DOG(高斯差分)在获得LOG图像后,用其相邻的图像进行相减,得到所有图像重新构造的金字塔就是DOG金字塔。
2、对关键点附加详细的信息(局部特征),即描述符;
2.1 关键点方向匹配
主方向:极值点周围区域梯度直方图的主峰值
辅方向:在梯度方向直方图中,当存在另一个相当于主峰值
2.2 关键点描述
a 确定描述子采样区域:在获得了赋值后的SIFT特征点,包含位置、尺度、方向等信息后,我们将用一组向量将关键点描述出来。特征描述子与特征点所在的尺度有关,因此,对梯度的求取应在特征点对应的高斯图像上进行。
b 生成描述子 :为了保证特征矢量具有旋转不变性,需要以特征点为中心,将特征点附近邻域内(mσ(Bp+ 1)√2 x mσ(Bp+ 1)√2)图像梯度的位置和方向旋转一个方向角θ,即将原图像x轴转到与主方向相同的方向。旋转公式如下:
在特征点附近邻域图像梯度的位置和方向旋转后,再以特征点为中心,在旋转后的图像中取一个mσBp x mσBp大小的图像区域。并将它等间隔划分成Bp X Bp个子区域,每个间隔为mσ像元。
3、通过特征点(附带上特征向量的关键点)的两两比较找出相互匹配的若干对特征点,建立景物间的对应关系,目标的识别是通过两点集内关键点描述子的比对来完成。