转:图像匹配之:经典sift算法(一)

sift是图像匹配的非常经典的算法,但是很复杂,要想自己拿C或C++实现很麻烦,如果只是使用的话,有国外某高人维护的sift库,前期只要自己能够调用即可,关键是要熟悉大致的流程,对sift库有个了解,具体的工作只要调用其中的函数即可。匹配效果:


sift是图像匹配的非常经典的算法,但是很复杂,要想自己拿C或C++实现很麻烦,如果只是使用的话,有国外某高人维护的sift库,前期只要自己能够调用即可,关键是要熟悉大致的流程,对sift库有个了解,具体的工作只要调用其中的函数即可。

一、sift简介

1、sift算法应用典型场合:

  物体识别

  机器人定位与导航

  图像拼接

  三维建模

  手势识别

  视频跟踪

  笔记鉴定

  指纹与人脸识别

  犯罪现场特征提取

2、sift算法解决的问题

  目标的旋转、缩放、平移(RST)

  图像仿射/投影变换(视点viewpoint)

  光照影响(illumination)

  目标遮挡(occlusion)

  杂物场景(clutter)

  噪声

二、sift基本概念

1、SIFT匹配的定义

  SIFT匹配(Scale-invariant feature transform,尺度不变特征转换)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe 在1999年所发表,2004年完善总结。其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对。

  局部影像特征的描述与侦测可以帮助辨识物体,SIFT 特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、些微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用 SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。

2、SIFT特征的主要特点

  从理论上说,SIFT是一种相似不变量,即对图像尺度变化和旋转是不变量。然而,由于构造SIFT特征时,在很多细节上进行了特殊处理,使得SIFT对图像的复杂变形和光照变化具有了较强的适应性,同时运算速度比较快,定位精度比较高。如:

  在多尺度空间采用DOG算子检测关键点,相比传统的基于LOG算子的检测方法,运算速度大大加快;

  关键点的精确定位不仅提高了精度,而且大大提高了关键点的稳定性;

  在构造描述子时,以子区域的统计特性,而不是以单个像素作为研究对象,提高了对图像局部变形的适应能力;

  对于16*16的关键点邻域和4*4的子区域,在处理梯度幅度时都进行了类似于高斯函数的加权处理,强化了中心区域,淡化了边缘区域的影响,从而提高了算法对几何变形的适应性;

  该方法不仅对通用的线性光照模型具有不变性,而且对复杂的光照变化亦具有一定的适应性。关于这部分内容的细节,可参看文献“Distinctive Image Features from Scale-Invariant Keypoints”

  SIFT算法的特点:

         a.SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程     度的稳定性;

         b.独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;

         c.多量性,即使少数的几    个物体也可以产生大量的SIFT特征向量;

         d.高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;

         e.可扩展性,可以很方便的与其他形式   的特征向量进行联合。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值