SIFT特征提取算法实验
SIFT特征提取算法实验
-
SIFT特征提取算法
1.1 算法定义
1.2 SIFT特征提取算法实验:
1.3 构造数据集 -
检测提取感兴趣点
2.1代码实现:
2.2.绘制特征点代码分析: -
提取数据集中每张图片的SIFT特征并展示
3.1实现对比:
3.2代码实现:
4.计算两张图片间的SIFT特征匹配结果
4.1匹配实现:
4.2代码实现:
5.数据集内检索匹配图像
5.1代码实现:
5.2分析:
1.SIFT特征提取算法
1.1【定义】
尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe在1999年所发表,2004年完善总结。
SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。
1.2 SIFT特征提取算法实验:
通过实验验证了SIFT特征特性:尺度不变性、旋转不变性、光照不变性、鉴别性强,信息量丰富;但同时也发现了SIFT特征提取的缺点:实时性不高,因为不断的下采样和插值等操作、对于边缘光滑的目标无法准确提取特征点,算法速度过慢尤其当图片角点比较复杂的时候。SIFT特征在一下方面应用广泛:主要解决图像配准和目标识别跟踪中下述问题;目标的旋转、缩放、平移,图像的仿射/射影变换,部分减轻光照影响,目标的部分遮挡物场景、噪声。
1.3 构造数据集
2. 检测提取感兴趣点:
2.1代码实现:
2.2.绘制特征点代码分析:
3.提取数据集中每张图片的SIFT特征并展示
3.1实现对比:
3.2代码实现:
4.计算两张图片间的SIFT特征匹配结果
4.1匹配实现:
4.2代码实现:
5.给定一张输入的图片,在数据集内部进行检索,输出与其匹配最多的三张图片
5.1代码实现:
输入图片:
输出:
5.2 分析:
输入图片与数据集中图片两两进行特征匹配后的匹配数保存在npy文件中,要找到与输入图片匹配特征点最多的图,最后将npy文件中数值最大的三个位置输出。SIFT匹配的结果非常精确,由此可见SIFT特征对旋转、尺度缩放、亮度变化等保持不变性,是一种比较稳定的局部特征。
输入照片中的树木较多,输出照片也都是含有树木较多的图片,可能背后的楼房一定程度下会影响主要匹配对象的匹配度,但总体来说还是很准确的。匹配如此准确与特征点定位、特征方向赋值、特征点描述等方面密不可分。SIFT特征不只具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角,仍然能够得到好的检测效果。