3、SIFT算法的主要特点:
SIFT特征匹配算法可以处理两幅图像之间发生平移、旋转、仿射变 换情况下的匹配问题,具有很强的匹配能力。在Mikolajczyk对包括Sift算子在内的十种局部描述子所做的不变性对比实验中,Sift及其扩展算 法已被证实在同类描述子中具有最强的健壮性。
总体来说,Sift算子具有以下特性:
(1)Sift特征是图像的局部特征,对平移、旋转、尺度缩放、亮度变化、遮挡和噪声等具有良好的不变性,对视觉变化、仿射变换也保持一定程度的稳定性。
(2)独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。
(3)多量性,即使少数的几个物体也可以产生大量Sift特征向量。
(4)速度相对较快,经优化的Sift匹配算法甚至可以达到实时的要求。
(5)可扩展性强,可以很方便的与其他形式的特征向量进行联合。
Sift特征匹配算法主要包括两个阶段,一个是Sift特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量;第二阶段是Sift特征向量的匹配。
4、SIFT算法步骤
Sift特征的生成一般包括以下几个步骤:
1、构建尺度空间,检测极值点,获得尺度不变性;
2、特征点过滤并进行精确定位;
3、为特征点分配方向值;
4、生成特征描述子。
以特征点为中心取16*16的邻域作为采样窗口,将采样点与特征点的相对方向通过高斯加权后归入包含8个bin的方向直方图,最后获得4*4*8的128维特征描述子。示意图如下:
当两幅图像的Sift特征向量生成以后,下一步就可以采用关键点特征向量的欧式距离来作为两幅图像中关键点的相似性判定度量。取图1的某个关键点,通过遍 历找到图像2中的距离最近的两个关键点。在这两个关键点中,如果次近距离除以最近距离小于某个阙值,则判定为一对匹配点。
一些Sift特征匹配的例子:
转自:http://hi.baidu.com/panorama1103/blog/item/05449a312ccc4ef21a4cffde.html
1、 SIFT 算法提出及其改进
SIFT算法是David Lowe于1999年提出的局部特征描述子,并于2004年进行了更深入的发展和完善。代表性文献
[1]David G. Lowe, "Object recognition from local scale-invariant features," International Conference on Computer Vision, Corfu, Greece (September 1999), pp.1150-1157.
[2] David G. Lowe, "Distinctive image features from scale-invariant keypoints," International Journal of Computer Vision, 60, 2 (2004), pp. 91-110.
具体的MATLAB代码在
http://www.cs.ubc.ca/~lowe/keypoints/ 可以下载。
Rob Hess 基于GSL和Opencv编写了C语言程序。具体的代码可以在
http://web.engr.oregonstate.edu/~hess/index.html 中下载,可以在VC++.net环境中运行,在调试时要注意对GSL和Opencv的正确配置。
后来Y.Ke将其描述子部分用PCA代替直方图的方式,对其进行改进。
[3] Y. Ke and R. Sukthankar. PCA-SIFT: A More Distinctive Representation for Local Image Descriptors.Computer Vision and Pattern Recognition, 2004
Yanke’s homepage:
http://www.andrew.cmu.edu/user/yke/
2、SIFT算法主要思想
SIFT算法是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置,尺度,旋转不变量。