计算机视觉基础(5)——特征点及其描述子

编程入门 行业动态 更新时间:2024-10-25 10:32:23

计算机视觉基础(5)——<a href=https://www.elefans.com/category/jswz/34/1769701.html style=特征点及其描述子"/>

计算机视觉基础(5)——特征点及其描述子

前言

本文我们将学习到特征点及其描述子。在特征点检测中,我们将学习角点检测和SIFT关键点检测器,角点检测以哈里斯角点检测器为例进行说明,SIFT将从高斯拉普拉斯算子和高斯差分算子展开。在描述子部分,我们将分别学习SIFT描述子和二进制描述子的概念、基本计算流程以及优劣评价,并给出实例进行说明。

一、特征点检测

首先,让我们来了解一下特征点的定义及其性质。

特征点:图像中具有独特局部性质的点。

特征点应用:

  • 图像对其配准
  • 3D重建
  • 运动跟踪
  • 机器人导航
  • 图像检索
  • ···

 特征点有如下性质:

  • 局部性:特征是局部的,对遮挡和混乱场景鲁棒
  • 数量:一幅图像中可以产生足够数量的特征点,比如成百上千
  • 独特性:可以和其他图像中大多数点相区分
  • 高效:能够进行实时的检测和比较
  • 可重复性:对图像进行旋转平移等操作后,仍能被检测到 

1.1  角点检测器

1.1.1  角点

角点的定义:在一个以角点为中心的局部窗口内沿着,任意方向移动都会给亮度带来显著变化

1.1.2  角点检测

某个以( 𝑥, 𝑦 ) 为中心的局部窗口𝑊经过(𝑢, 𝑣)的微小偏移后,窗口内部亮度发生的变化量,可以用SSD表示为:

 

【举例说明】

我们不妨设:

【水平方向边缘】

 【竖直方向边缘】

【重点:需要理解】

 【举例说明】

用二阶矩矩阵的特征值对图像中的点进行分类:

【举例说明】

1.1.3  哈里斯角点检测器

用Harris角点响应函数对图像中的点进行分类:

1.1.4  小结 

 【流程总结】

 【特点】

1.2  SIFT关键点检测器

基本思想:用一个突出区域滤波器(blob filter)对图像在多个尺度上进行卷积并在尺度空间寻找滤波器响应的极值

blob定义:图像等信号内出现”灰度突变”的区域

1.2.1  高斯拉普拉斯算子

Laplacian of Gaussian,LOG

定义:将拉普拉斯算子作用到高斯平滑过的图像上来检测Blob

拉普拉斯算子运算结果如图所示:

 接下来,我们对高斯拉普拉斯算子进行详细的分析:

通过对上图的分析,我们不难得到如下结论:在信号中blob尺度和LoG中高斯平滑尺度接近时,其响应最大。

但是拉普拉斯算子出现了如下问题:响应随着其LoG中高斯平滑尺度的增加而减小。如下所示:

解决方案是进行尺度归一化(Scale Normalization),即× 𝜎²。如下所示:

使用高斯拉普拉斯算子进行计算的实例如下:

1.2.2  高斯差分算子

Difference of Gaussian, DoG

高斯拉普拉斯算子(LoG)需要计算二阶导数,计算复杂度会比计算一阶高,因此考虑可以用一阶高斯差分来近似。由此引出高斯差分算子的概念:

高斯差分算子 (Difference of Gaussian, DoG)具有如下特点:

  1. 高斯模糊过的图像可以去除噪声的影响;
  2. 高斯差分操作可以只保留相邻层模糊水平之间的频率,即类似一种带通滤波;
  3. 可以突显图像中的角、边和其他细节;

使用高斯差分算子进行关键点检测的结果,展示如下:

二、特征描述子

在正式进入特征描述子的学习之前,我们需要知道什么样的特征描述子是好的、优秀的。

好的特征描述子应该具有如下性质:

  • 鲁棒性:对多种几何变换和光照变换具有一定的不变性
  • 独特性:一个区域的特征描述子和其他区域能很好的区分开
  • 紧致性:仅用较低维的向量就可以对该特征进行鲁棒和独特的描述
  • 计算高效:可以快速的计算特征描述子并进行高效的比较

 常用的特征描述子如下:

  • HOG: Histogram of Oriented Gradients
  • SIFT: Scale Invariant Feature Transform
  • SURF: Speeded-Up Robust Features
  • GLOH: Gradient Location and Orientation Histogram
  • BRIEF: Binary Robust Independent Elementary Features
  • ORB: Oriented FAST and rotated BRIEF
  • BRISK: Binary Robust Invariant Scalable Keypoints
  • FREAK: Fast REtinA Keypoint 

2.1  SIFT描述子

2.1.1  概念

Scale-Invariant Feature Transform, SIFT

SIFT描述子是根据尺度空间中局部极值所在的位置和尺度,以及其所在的邻域范围内的梯度计算得到的一个向量。

2.1.2  SIFT基本计算流程 

1. 根据兴趣点的尺度和位置,在邻域计算36bin的梯度方向直方图,并选择其中最大计数的桶对应的方向作为描述子主方向

2. 根据描述子的主方向和兴趣点的尺度和位置,确定相应的16 × 16邻域并计算梯度,之后将梯度图划分成4×4个小块

 3. 对每个小块计算8bin的梯度方向直方图

 4. 把每个小块的梯度方向直方图都拼接起来,得到16 × 8 = 128 维的特征向量

2.1.3  举例说明

基本计算流程示例:

 两幅图像中SIFT兴趣点匹配:

兴趣匹配的原则:

2.2  二进制描述子

2.2.1  概念

二进制描述子:生成可以高效计算且易于比较的二进制串

比较两个二进制描述子的注意事项

  • 邻域内像素对要用同样的选择方式
  • 像素对的选择顺序也要保持一致

不同二进制描述子主要区别在于选择像素对的策略

2.2.2  Brief 描述子

Binary robust independent elementary features

2.2.3  ORB 描述子

对于其他的描述子,大家感兴趣的可以去网上查找资源自行进行学习噢~ 

总结

本文我们主要学习了特征点检测与特征描述子,为图像处理中的特征点检测和特征描述打下了坚实的基础。希望大家能将本文所有算法的流程熟悉一遍,然后能自己总结复述出来,最好结合公式进行推导。本章的重点在于哈里斯角点检测、SIFT关键点检测(高斯拉普拉斯算子和高斯差分算子),以及SIFT描述子和二进制描述子。

更多推荐

计算机视觉基础(5)——特征点及其描述子

本文发布于:2023-12-07 08:16:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1670645.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:特征   视觉   计算机   基础

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!