《sift算法特征提取》由会员分享,可在线阅读,更多相关《sift算法特征提取(42页珍藏版)》请在金锄头文库上搜索。
1、sift算法详解常艳杰 511645001352021/5/231sift算法概述:算法概述:尺度不变特征转换SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配,获得了良好效果。2021/5/232SIFT算法实质SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因
2、素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。2021/5/233应用范围物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对。2021/5/234局部影像特征的描述与侦测可以帮助辨识物体,SIFT 特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、些微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。2021/5/235使用 SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑
3、硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。2021/5/236SIFT算法的特点1. SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;2. 独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;2021/5/237SIFT算法的特点3. 多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;4. 高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;5. 可扩展性,可以很方便的与其他形式的特征向
4、量进行联合。2021/5/238SIFT算法可以解决的问题:目标的自身状态、场景所处的环境和成像器材的成像特性等因素影响图像配准/目标识别跟踪的性能。而SIFT算法在一定程度上可解决:1. 目标的旋转、缩放、平移(RST)2. 图像仿射/投影变换(视点viewpoint)2021/5/239SIFT算法可以解决的问题:3. 光照影响(illumination)4. 目标遮挡(occlusion)5. 杂物场景(clutter)6. 噪声2021/5/2310SIFT算法步骤1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。2. 关键点定位
5、:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。2021/5/2311SIFT算法步骤3. 方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。2021/5/2312SIFT算法步骤4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。2021/5/2313SIFT算法是在不同的尺度空间上查找关键点,而尺度空间的获取需要使用高斯模糊来实现
6、,Lindeberg等人已证明高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性核。2021/5/2314一、尺度空间极值检测尺度空间使用高斯金字塔表示。Tony Lindeberg指出尺度规范化的LoG(Laplacion of Gaussian)算子具有真正的尺度不变性,Lowe使用高斯差分金字塔近似LoG算子,在尺度空间检测稳定的关键点。2021/5/2315尺度空间(scale space)在计算机视觉邻域使用广泛。尺度空间理论的基本思想是:在图像信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓的提取,并以该主
7、轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。2021/5/23162021/5/2317尺度空间满足视觉不变性。一个图像的尺度空间,定义为一个变化尺度的高斯函数与原图像的卷积 其中,*表示卷积运算,是尺度空间因子,值越小表示图像被平滑的越少,相应的尺度也就越小。大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。2021/5/2318一、尺度空间极值检测 高斯金字塔的构建高斯金字塔的构建尺度空间在实现时使用高斯金字塔表示,高斯金字塔的构建分为两部分:1. 对图像做不同尺度的高斯模糊;2. 对图像做降采样(隔点采样)。2021/5/23192021/5/2320一、尺
8、度空间极值检测高斯差分金字塔高斯差分金字塔2002年Mikolajczyk在详细的实验比较中发现尺度归一化的高斯拉普拉斯函数的极大值和极小值同其它的特征提取函数,能够产生最稳定的图像特征。而Lindeberg早在1994年就发现高斯差分函数(Difference of Gaussian ,简称DOG算子)与尺度归一化的高斯拉普拉斯函数非常近似。2021/5/2321Lowe使用更高效的高斯差分算子代替拉普拉斯算子进行极值检测。在实际计算时,使用高斯金字塔每组中相邻上下两层图像相减,得到高斯差分图像,如下图所示,进行极值检测。2021/5/2322高斯差分金字塔的生成2021/5/2323空间极
9、值点检测(关键点的初步探查)关键点是由DOG空间的局部极值点组成的,关键点的初步探查是通过同一组内各DoG相邻两层图像之间比较完成的。为了寻找DoG函数的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。如图3.4所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的92个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。2021/5/23242021/5/2325二、关键点定位通过拟合三维二次函数来精确确定关键点的位置和尺度,同时去除低对比度的关键点和不稳定的边缘响应点(因为DoG算子会产生较强的边缘响应),以增强匹配稳定性、提高抗
10、噪声能力。2021/5/23262.1关键点的精确定位离散空间的极值点并不是真正的极值点,图4.1显示了二维函数离散空间得到的极值点与连续空间极值点的差别。利用已知的离散空间点插值得到的连续空间极值点的方法叫做子像素插值(Sub-pixel Interpolation)。2021/5/2327离散空间与连续空间极值点的差别为了提高关键点的稳定性,需要对尺度空间DoG函数进行曲线拟合。2021/5/23282.2消除边缘响应一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率。DOG算子会产生较强的边缘响应,需要剔除不稳定的边缘响应点。2021/5/2
11、329边缘消除响应前后的的关键点2021/5/2330三、关键点方向分配为了使描述符具有旋转不变性,需要利用图像的局部特征为给每一个关键点分配一个基准方向。使用图像梯度的方法求取局部结构的稳定方向。对于在DOG金字塔中检测出的关键点点,采集其所在高斯金字塔图像3邻域窗口内像素的梯度和方向分布特征。2021/5/2331在完成关键点的梯度计算后,使用直方图统计邻域内像素的梯度和方向。梯度直方图将0360度的方向范围分为36个柱(bins),其中每柱10度。如下图所示,直方图的峰值方向代表了关键点的主方向,(为简化,图中只画了八个方向的直方图)。2021/5/2332关键点方向直方图2021/5/
12、2333检测结果如图所示:sift特征将检测出的含有位置、尺度和方向的关键点即是该图像的SIFT特征点2021/5/2334四、关键点特征描述通过以上步骤,对于每一个关键点,拥有三个信息:位置、尺度以及方向。接下来就是为每个关键点建立一个描述符,用一组向量将这个关键点描述出来,使其不随各种变化而改变,比如光照变化、视角变化等等。这个描述子不但包括关键点,也包含关键点周围对其有贡献的像素点,并且描述符应该有较高的独特性,以便于提高特征点正确匹配的概率。 2021/5/2335根据SIFT进行Match生成了A、B两幅图的描述子,(分别是k1*128维和k2*128维),就将两图中各个scale(
13、所有scale)的描述子进行匹配,匹配上128维即可表示两个特征点match上了2021/5/2336当两幅图像的SIFT特征向量生成后,下一步我们采用关键点特征向量的欧式距离来作为两幅图像中关键点的相似性判定度量。取图像1中的某个关键点,并找出其与图像2中欧式距离最近的前两个关键点,在这两个关键点中,如果最近的距离除以次近的距离少于某个比例阈值,则接受这一对匹配点。降低这个比例阈值,SIFT匹配点数目会减少,但更加稳定2021/5/23372021/5/23382021/5/2339SIFT的缺点SIFT在图像的不变特征提取方面拥有无与伦比的优势,但并不完美,仍然存在:1. 实时性不高。2. 有时特征点较少。3. 对边缘光滑的目标无法准确提取特征点。2021/5/2340Q & A2021/5/2341部分资料从网络收集整理而来,供大家参考,感谢您的关注!