大数跨境
0
0

详解计算机视觉中的特征点检测:Harris / SIFT / SURF / ORB

详解计算机视觉中的特征点检测:Harris / SIFT / SURF / ORB 极市平台
2020-10-28
1
导读:本文详细论述了四个特征点检测算法:Harris, SIFT,SURF以及ORB的思路步骤以及特点,分析了它们的局限性,并对几个重要问题进行了探讨。
↑ 点击蓝字 关注极市平台

作者丨Encoder@知乎
来源丨https://zhuanlan.zhihu.com/p/36382429
编辑丨极市平台
本文仅用于学术分享,若侵权,联系后台作删文处理。极市导读

极市导读

 

本文详细论述了四个特征点检测算法:Harris, SIFT,SURF以及ORB的思路步骤以及特点,分析了它们的局限性,并对几个重要问题进行了探讨。 >>加入极市CV技术交流群,走在计算机视觉的最前沿


Harris角点检测

Def. [角点(corner point)]
在邻域内的各个方向上灰度变化值足够高的点,是图像边缘曲线上曲率极大值的点。

  • [基于灰度图像的角点检测] 包括基于梯度的方法(通过计算边缘的曲率判断角点),基于模板的方法(考虑像素邻域点的灰度变化, 将与邻点亮度对比足够大的点定义为角点),基于模板梯度组合的方法
  • [基于二值图像的角点检测] 将二值图像作为单独的检测目标,可使用各种基于灰度图像的角点检测方法
  • [基于轮廓曲线的角点检测] 通过角点强度或曲线曲率提取角点

角点检测的基本思想是:使用角点检测算子,对图像的每个像素计算角点响应函数(Corner Response Function ),阈值化角点响应函数,根据实际情况选择阈值,对阈值化的角点响应函数进行非极大值抑制,并获取非零点作为角点。通过一个小的滑动窗口在邻域检测角点
在任意方向上移动窗口,若窗口内的灰度值都有剧烈的变化,则窗口的中心就是角点。定义角点响应函数


其中w为窗函数(window function),I为图像梯度,那么E就表示了灰度变化的剧烈程度。1977年,Moravec最先提出了如下的角点检测方法:

  1. 对于原始图像,取偏移量(Δx,Δy)为(1,0),(1,1),(0,1),(-1,1),分别计算每一像素点(xi,yi)的灰度变化
  2. 对于每一像素点(xi,yi),计算角点响应函数R(xi,yi)=min E
  3. 设定阈值T,将角点响应函数R(xi,yi)中低于T的值设为0
  4. 在窗口范围内进行非极大值抑制:遍历角点响应函数,若某个像素的角点响应函数在窗口内不是最大,该像素置0
  5. 选择非零点作为角点检测结果

Moravec角点检测的缺点

  • 二值的窗口函数导致角点响应函数不够光滑
  • 只在四个方向上计算灰度值变化,导致角点响应函数在多处都有较大响应
  • 对于每个点只考虑E的最小值,导致算法对边缘有很强的反应

1988年,Harris和Plessey对Moravec的方法进行了改进,提出了经典的Harris角点检测算法。Harris首先将Moravec算法中的窗口函数由阶跃函数改为二维高斯函数,并通过泰勒展开考察微小移动,也就是说,如果要求E的最大值以明确角点,就可以令 ,对E做泰勒展开,得

记  ,则上式可以写成  的形式,这表示了一个椭圆,自相关矩阵M描述了图像局部区域的灰度变化趋势,可以通过椭圆的形状来判定角点。

Proposition. 对于椭圆  ,设其半长轴和半短轴分别为a,b,那么  是矩阵M的特征值。

Proof. 椭圆上任意一点到原点(也就是椭圆的中心)的距离平方  ,条件为  ,那么拉格朗日函数

于是



 
又可以改写为

由于(x,y)不是零向量,所以  ,即1/λ是矩阵  的特征值,所以

这样λ1,λ2就分别对应d^2的两个最值,也就是a^2和b^2,所以,  是矩阵M的特征值。由此我们还可以得到,椭圆面积 
q.e.d.

得到M的特征值有什么用呢?若用奇异值分解的观点看这个问题。由于Jacobian矩阵  ,故M=JJ^T,这样M的特征值开根号后就是J的奇异值,因此M的特征值就可以体现I_X和I_Y的相对大小。

现在我们需要定义角点响应函数,进一步进行区分,令(一般k=0.04 ~ 0.06)
 
其中

则定性判断方法为

  • [边缘] 
  • [角点]  都很大,E在各个方向显著变化
  • [平滑区域]  都很小, 在各个方向基本不变

定量判断方法为

  • [边缘] R<<0
  • [角点] R>>0
  • [平滑区域] |R|很小

一般增大k的值,将减小角点响应值R,降低角点检测的灵性,减少被检测角点的数量;减小k值,将增大角点响应值R,增加角点检测的灵敏性,增加被检测角点的数量。

下面我们介绍如何利用Harris角点特征进行特征点匹配。

【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读5.7k
粉丝0
内容8.2k