角点检测

一、 角点认识

角点是目标轮廓上曲率(曲率是描述曲线弯曲程度或者偏离直线的程度)的局部极大值点,是物体轮廓的决定性特征。角点没有明确的数学模型,但人们普遍认为角点是二维图像亮度变化剧烈的点或图像边沿曲线的极大值点,这些点保留着图像图形的重要特征同时可以有效的减少信息的数据量,提高信息含量,加快计算速度,有利于图像可靠性匹配,使得实时处理成为可能。角点还具有旋转不变性,利用角点特征进行匹配可以大大提高匹配的速度!关于角点的描述主要如下:
1、角点是一阶导数的局部最大值(极大值)
2、角点是两条及以上的边沿的交点
3、角点指示了物体边沿变化不连续的方向
4、角点处的一阶导数最大,二阶导数为0
5、角点是指图像中梯度值和梯度方向的变化速率都很高的点

二、角点检测应用

三维场景重建、运动估计、目标跟踪、目标识别、图像匹配

四种角点检测算法 ##待续….

  1. Harris
    该算法的策略思想:
    角点:最直观的印象就是在水平、竖直两个方向上变化均较大的点,即Ix、 Iy都较大 ;
    边缘:仅在水平、或者仅在竖直方向有较大的变化量,即Ix和Iy只有其一较大 ;
    平坦地区:在水平、竖直方向的变化量均较小,即Ix、Iy都较小。
    寻找角点的基本思想:观察一个小窗口所包含的区域,在角点附近向任何方向移动窗口,灰度值都会有较大的变化。如左图,在平坦区域,在任何方向灰度值都没有变化;如中图,沿着边缘方向灰度值无变化;如右图,在多个方向上灰度值都有变化。 装载文章:http://blog.csdn.net/gnehcuoz/article/details/52865333

这里写图片描述
这里用到微分和二次型矩阵化标准型知识
这里写图片描述
协方差矩阵可以表示多维随机变量之间的相关性。协方差矩阵的对角线元素表示的是各个维度的方差,而非对角线上的元素表示的是各个维度之间的相关性。可以把矩阵 M 看作一个二维随机分布的协方差矩阵,通过将其对角化,求矩阵的两个特征值,然后根据这两个特征值来判断是不是角点。
设 λ1,λ2 为矩阵 M 的特征值,当 λ1≫λ2 或 λ1≪λ2 时,为边缘点;当 λ1 和 λ2 都很小且接近时,为平坦区域内的点;当 λ1 和 λ2 都很大且接近时,说明图像窗口在各个方向上移动都产生了明显灰度变化,为角点。
这里写图片描述
理解这谱图可以将 λ1,λ2当做着是垂直方向和水平方向的像素值的差值。
由于特征值的计算量较大,因此,实际中采用角点响应函数来检测角点。角点响应函数定义为 :
R=det(M)−k∗[trace(M)]^2=λ1λ2−k∗(λ1+λ2)^2(用一个模型将上面的关系统一起来)
k 的经验取值一般为 0.04−0.06 ,R 依赖于 M 的特征值,R 较大时,为角点;R 值较大且为负时,为边缘;|R| 较小时,为平坦区域。最终,Harris 角点检测就是:寻找有大角点响应函数 R 的点(R>thres),且是 R 的局部极大值的点。

*总结Harris算法的思路:
利用角点的物理特性是x和y方向都会发生比较大的变化,相当于在这两个发现上检测特变,因此采用求二阶导导数为0,建立起Hessian矩阵(二阶导矩阵)求出其特征值,两个方向突变的厉害则表明两个方向的特征值应该是比价大的。因此算出其特征值我们看这两个特征值的大小即可!*

  1. DoG
    DoG (Difference of Gaussian)是灰度图像增强和角点检测的方法,做法即高斯函数差分是两幅高斯图像的差,一维和二维如下表达:
    这里写图片描述
    具体到图像处理来讲,就是将两幅图像在不同参数下的高斯滤波结果相减,得到DoG图,DoG三维信息图的最大值和最小值就是表示角点信息。
    如下图是表示DOG的三维,从这3*3模板的三层检测,假如X是邻接像素点的最大值或最小值点。则标记为特征值点。算法是说中间层的X像素是三个层模板其他26个点的极大值或者极小值就标为角点否则就不是角点!!!

    这里写图片描述
    DOG是一种通过多尺度来获得角点的技术!!

  2. FAST
    该算法对角点的理解:以一定的半径搜索中心周围的像素,有n个连续大于或者小于中心像素则作为角点。
    具体FAST算法的基本原理:
    在图像中任选一点p, 假定其像素(亮度)值为 Ip
    以3为半径画圆,覆盖p点周围的16个像素,如下图所示
    设定阈值t,如果这周围的16个像素中有连续的n个像素的像素值都小于 Ip−t 或者有连续的n个像素都大于
    Ip+t, 那么这个点就被判断为角点。 在OpenCV的实现中n取值为12(16个像素周长的 3/4).
    一种更加快的改进是: 首先检测p点周围的四个点,即1, 5, 9, 12四个点中是否有三个点满足超过Ip+t, 如果不满足,则直接跳过,如果满足,则继续使用前面的算法,全部判断16个点中是否有12个满足条件。
    这里写图片描述
    以上算法的缺点:很可能大部分检测出来的点彼此之间相邻,我们要去除一部分这样的点。为了解决这一问题,我们采用了最大值抑制(去除非极大值)的算法。
    假设P,Q两个点相邻,计算两个点与其周围的16个像素点之间的差分和V,去除V值较小的点。
    FAST 算法总结:
    A、在速度上要比其他算法速度快很多
    B、受图像噪声以及设定的阈值影响很大
    C、FAST不产生多尺度特征而且FAST特征点没有方向信息,这样就会失去旋转不变性。

    1. SIFT(尺度和分辨率都引入)
      常用于图像拼接,尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe在1999年所发表,2004年完善总结。
      其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对。
      此算法有其专利,专利拥有者为英属哥伦比亚大学。
      SIFT算法的特点有:

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

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

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

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

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

SIFT算法分解为如下四步:
1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。
2. 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
3. 方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。
4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

SIFT算法是在不同的尺度空间上查找关键点,而尺度空间的获取需要使用高斯模糊来实现,Lindeberg等人已证明高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性核。

之所以引入尺度的原因的模拟人的视觉过程:
尺度空间方法将传统的单尺度图像信息处理技术纳入尺度不断变化的动态分析框架中,更容易获取图像的本质特征。尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标在视网膜上的形成过程。
尺度空间满足视觉不变性。该不变性的视觉解释如下:当我们用眼睛观察物体时,一方面当物体所处背景的光照条件变化时,视网膜感知图像的亮度水平和对比度是不同的,因此要求尺度空间算子对图像的分析不受图像的灰度水平和对比度变化的影响,即满足灰度不变性和对比度不变性。另一方面,相对于某一固定坐标系,当观察者和物体之间的相对位置变化时,视网膜所感知的图像的位置、大小、角度和形状是不同的,因此要求尺度空间算子对图像的分析和图像的位置、大小、角度以及仿射变换无关,即满足平移不变性、尺度不变性、欧几里德不变性以及仿射不变性。

sigma是尺度空间因子,值越小表示图像被平滑的越少,相应的尺度也就越小。大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。

Lindeberg 在文献 《 Scale- - space theory: A basic tool for analysing
structures at different scales 》 指出尺度规范化的 LoG 算子具有真正
的尺度不变性。
这里写图片描述
这里写图片描述
这里写图片描述
高斯差分图可以看出图像像素值变化情况,如果没有特征(即很平坦)是没有变化的!特征是变化尽可能多的点。而怎么从DOG中提取特征点参考前面关于DOG的一篇博文。
这里写图片描述
我们必须要知道对于每一个关键点(特征点)有三个信息:位置、尺度、方向。
上面的操作解决的是位置和尺度问题,接下来方向就得我们的梯度上,在模板上做梯度直方图的统计!
这里写图片描述
描述子采用128维向量表征综合效果是最优的
这里写图片描述
最有关于匹配,两个图都化为128维向量:
这里写图片描述

总结:
SIFT说到底 就是一种特征描述子,把一副图片最终描述成为128维的特征向量。
5. SURF
这里写图片描述
SURF是基于积分图的SIFT加速版。
图像的积分图表示如下:
这里写图片描述
我们都知道角点、边沿的二阶导数是为0 的!因此利用Hession矩阵来实现二阶微分来进行斑点检测
这里写图片描述
图像的每个像素都是可以计算出二阶导以及二阶偏导,上面的计算是先平滑再求二阶导。计算出上面的矩阵的行列式值就是最终的特征值。这个过程相当于SIFT的DOG操作!SIFT的octave不同层图像大小是没变的,只是高斯的尺度不同而已。节省了降采样的过程可以提高些速度。不同SURF也是需要进行三层的极值点的判断提取出特征点。后面的步骤跟SIFT的步骤是相似的。
参考:
http://blog.csdn.net/gnehcuoz/article/details/52865333
http://blog.csdn.net/GH_HOME/article/details/51501588

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值