图像特征理解

2021-05-15 机器学习 图像处理

# 一、图像特征理解

# 1.1 图像特征

图像特征是图像中独特的,易于跟踪和比较的特定模板或特定结构。特征就是有意义的图像区域,该区域具有 独特性易于识别性

图像特征提取与匹配是计算机视觉中的一个关键问题,在目标检测、物体识别、三维重建、图像配准、图像理解等具体应用中发挥着重要作用。

图像特征主要有图像的颜色特征、纹理特征、形状特征和空间关系特征。

# 1.2 颜色特征

颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质。

颜色特征描述方法有:颜色直方图、颜色空间、颜色分布。

# 1.3 纹理特征

纹理特征也是一种全局特征,它也描述了图像或图像区域所对应景物的表面性质。

但由于纹理只是一种物体表面的特性,并不能完全反映出物体的本质属性,所以仅仅利用纹理特征是无法获得高层次图像内容的。

# 1.4 形状特征

形状特征有两类表示方法,一类是轮廓特征,另一类是区域特征。

图像的轮廓特征主要针对物体的外边界,而图像的区域特征则描述了是图像中的局部形状特征。

# 1.5 空间关系特征

空间关系特征,是指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系。

这些关系可分为连接/邻接关系、交叠/重叠关系和包含/独立关系等。

# 二、形状特征描述

# 2.1 HOG 算法

HOG 特征提取

方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来物体检测的特征描述子。

它通过计算和统计图像局部区域的梯度方向直方图来构成特征。HOG 特征结合 SVM 分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。

主要思想:在一副图像中,目标的形状能够被梯度或边缘的方向密度分布很好地描述。

HOG 实现过程

  1. 图像灰度化,去除颜色的影响;
  2. 采用 Gamma 校正法对输入图像进行颜色空间标准化;
  3. 计算图像每个像素的梯度(包括大小和方向);
  4. 将图像划分成小 cells;
  5. 统计每个 cell 的梯度直方图(不同梯度的个数),得到 cell 的描述子;
  6. 将每几个 cell 组成一个 block,得到 block 的描述子;
  7. 将图像内的所有 block 描述子串联起来就可以得到 HOG 特征。

# 2.2 Harris 算法

角点

在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。从图像分析的角度来定义角点可以有以下两种定义:

  • 角点可以是两个边缘的交点;
  • 角点是邻域内具有两个主方向的特征点。

角点计算方法:

  • 前者通过图像边缘计算,计算量大,图像局部变化会对结果产生较大的影响;
  • 后者基于图像灰度的方法通过计算点的曲率及梯度来检测角点。

Harris 角点检测

角点所具有的特征:

  • 轮廓之间的交点;
  • 对于同一场景,即使视角发生变化,通常具备稳定性质的特征;
  • 该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化。

性能较好的角点:

  • 检测出图像中“真实”的角点
  • 准确的定位性能
  • 很高的重复检测率
  • 噪声的鲁棒性
  • 较高的计算效率

Harris 实现过程

  1. 计算图像在 X 和 Y 方向上的梯度;
Ix=Ix=I(101),Iy=Iy=I(101)TI_x=\frac{\partial{I}}{\partial{x}}=I\otimes{(-1 \quad 0 \quad 1)},\quad I_y=\frac{\partial{I}}{\partial{y}}=I\otimes{(-1 \quad 0 \quad 1)^T}
  1. 计算图像两个方向梯度的乘积;
Ix2=IxIx,Iy2=IyIy,Ixy=IxIyI_x^2=I_x\cdot{I_x},\quad I_y^2=I_y\cdot{I_y},\quad I_{xy}=I_x\cdot I_y
  1. 使用高斯函数对三者进行高斯加权,生成矩阵 M 的 A、B、C;
A=g(Ix2)=Ix2ω,C=g(Iy2)=Iy2ω,B=g(Ixy)=IxyωA=g(I_x^2)=I_x^2\otimes{\omega},\quad C=g(I_y^2)=I_y^2\otimes{\omega},\quad B=g(I_{xy})=I_{xy}\otimes{\omega}
  1. 计算每个像素的 Harris 响应值 R,并对小于某一阈值 t 的 R 置为零;
  2. 3×33 \times 35×55 \times 5 的邻域内进行非最大值抑制,局部最大值点即为图像中的角点。

Harris 代码实现

  • 函数:cv2.cornerHarris(img, block_size, ksize, k)
  • 参数说明:
    • img:数据类型为 float32 的输入图像。
    • block_size:角点检测中要考虑的领域大小。
    • ksize:Sobel 求导中使用的窗口大小。
    • k:Harris 角点检测方程中的自由参数,取值为 0.04 到 0.06 之间(经验值)。

# 2.3 SIFT 算法

SIFT,即尺度不变特征变换算法(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种算法。SIFT 具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。

其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对。

SIFT 特性:

  • 独特性,也就是特征点可分辨性高,类似指纹,适合在海量数据中匹配。
  • 多量性,提供的特征多。
  • 高速性,就是速度快。
  • 可扩展,能与其他特征向量联合使用。

SIFT 特点:

  • 旋转、缩放、平移不变性
  • 解决了图像仿射变换、投影变换的关键点的匹配问题
  • 光照影响小
  • 目标遮挡影响小
  • 噪声景物影响小

SIFT 算法步骤

  1. 尺度空间极值检测点检测;
  2. 关键点定位:去除一些不好的特征点,保存下来的特征点能够满足稳定性等条件;
  3. 关键点方向参数:获取关键点所在尺度空间的邻域,然后计算该区域的梯度和方向,根据计算得到的结果创建方向直方图,直方图的峰值为主方向的参数;
  4. 关键点描述符:每个关键点用一组向量(位置、尺度、方向)将这个关键点描述出来,使其不随着光照、视角等等影响而改变;
  5. 关键点匹配:分别对模板图和实时图建立关键点描述符集合,通过对比关键点描述符来判断两个关键点是否相同。
Last Updated: 2023-01-28 4:31:25