OpenCV实战(32)——使用SVM和定向梯度直方图执行目标检测
0. 前言
本节中,我们将介绍机器学习方法支持向量机 (Support Vector Machine
, SVM
),它可以根据训练数据得到准确的二分类分类器,它已被广泛用于解决许多计算机视觉问题。该分类器可以通过使用数学公式表达,该公式可以用于在高维空间中查看数据集的几何结构。此外,我们还将介绍一种新的图像表示,该表示通常与 SVM
结合使用以获取鲁棒性目标检测器。
1. HOG 图像特征
物体图像主要以其形状和内容为特征,通常可以由定向梯度直方图 (Histogram of Oriented Gradients
, HOG
) 表示,这种表示方法基于图像梯度构建的直方图。因为我们对物体形状和纹理感兴趣,所以需要分析梯度方向的分布。此外,为了考虑这些梯度的空间分布,在将图像划分为多个区域计算多个直方图。
因此,构建 HOG
表示的第一步是计算图像的梯度。然后将图像细分为小单元格(例如,8×8
像素),并为这些单元格构建梯度方向直方图。因此,必须将可能的方向范围划分为多个区间。大多数情况下,只考虑梯度方向而不考虑它们的符号(称为无符号梯度),在这种情况下,可能的方向范围是 0
到 180
度,此时,一个 9-bin
直方图会将可能的方向划分为 9
个 20
度的区间。单元格中的每个梯度向量都累积在对应于该梯度大小的 bin
。
然后将单元格分组为块,由一定数