角点检测算法

角点检测算法总结

Harris

在假定的兴趣点周围放置一个小窗口,并观察窗口内某个方向上强度值的变化。如果位移向量为 (u, v),那么可以用均方差之和表示强度的变化:

在所有方向计算平均强度变化值,如果不止一个方向的变化值很高,就认为这个点是角点。

计算机完成角点检测是通过一个小窗口逐步扫描过去来完成的,在移动过程中的灰度的变换则作为判断角点的依据:
1. 当检测窗口移动时,灰度几乎没有发生变化 ->认为是“平整地带”;
2. 当检测窗口移动时,灰度只在一个方向上发生突变 ->认为是“边缘地带”;
3. 当检测窗口移动时,灰度在各个方向上均发生突变 ->认为是“角点地带”;

首先,获得平均强度值变化最大的方向;

然后,检查垂直方向上的平均强度变化值,如果也很大,就说明是一个角点。

排除紧邻的Harris角点:

非极大值抑制

Harris角点不仅要有高于指定阈值的评分,还必须是局部范围内的最大值。为了检查这个条件,detect方法中加入了一个小技巧,对Harris评分的图像做膨胀运算。

膨胀运算会在领域中把每个像素替换成最大值,因此只有局部最大值的像素是不变的。
 

FAST 加速分割测试获得特征 Features from Accelerated Segment Test

原理:

如果存在一段圆弧,连续长度超过圆周长的3/4,并且上面所有的像素的强度值都与圆心的强度值明显不同(全部更暗或者更亮),那就认定是一个关键点。

SURF 加速稳健特征  Speeded Up Robust Features

上述两种角点检测算法可以较好地解决方向不变性问题,但是要解决尺寸不变性问题就需要更好的算法。

尺度不变特征:不仅在任何尺度下拍摄得到物体都能检测到一致的关键点,而且每个被检测的特征点都对应一个尺度因子

对每个像素计算Hessian矩阵,该矩阵衡量一个函数的局部曲率。

根据矩阵的行列式值,可以得到曲率的强度。该方法把角点定义为局部高区率(即在多个方向上得变化幅度都很高)的额像素点。

为了使得算法更加高效,避免在不同尺度下计算全部导数值,算法使用近似的高斯内核。

SURF与SIFT主要有以下几点不同处理:

      1、 SIFT在构造DOG金字塔以及求DOG局部空间极值比较耗时,SURF的改进是使用Hessian矩阵变换图像,极值的检测只需计算Hessian矩阵行列式,作为进一步优化,使用一个简单的方程可以求出Hessian行列式近似值,使用盒状模糊滤波(box blur)求高斯模糊近似值

      2、 SURF不使用降采样,通过保持图像大小不变,但改变盒状滤波器的大小来构建尺度金字塔。

       3、在计算关键点主方向以及关键点周边像素方向的方法上,SURF不使用直方图统计,而是使用哈尔(haar)小波转换。SIFT的KPD达到128维,导致KPD的比较耗时,SURF使用哈尔(haar)小波转换得到的方向,让SURF的KPD降到64维,减少了一半,提高了匹配速度

SIFT 尺度不变特征变换匹配算法  Scale Invariant Feature Transform 

SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。SURF算法是SIFT算法的加速版本

算法步骤:

1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。

2. 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。

3. 方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。

4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

SIFT的缺点:

1. 实时性不高。

2. 有时特征点较少。

3. 对边缘光滑的目标无法准确提取特征点。

 

 

 

参考链接:

https://blog.csdn.net/qq_34057694/article/details/79050138

https://blog.csdn.net/weixin_41745620/article/details/83618875

https://blog.csdn.net/hujingshuang/article/details/46910259

https://blog.csdn.net/zddblog/article/details/7521424

https://blog.csdn.net/qq_30815237/article/details/86545950

https://blog.csdn.net/u010440456/article/details/81483145

https://blog.csdn.net/qq_37374643/article/details/88606351

参考书籍:

《OpenCV 计算机视觉编程攻略》

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值