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 度的区间。单元格中的每个梯度向量都累积在对应于该梯度大
本文介绍了如何使用OpenCV和SVM进行目标检测,特别是针对交通标志分类。首先,详细讲解了HOG图像特征,包括如何计算图像梯度和构建HOG描述符。接着,通过交通标志分类实例展示了SVM模型的训练过程,使用HOG特征和SVM实现分类。此外,还探讨了SVM的工作原理。最后,提供了人物检测的示例,展示了一个预训练的HOG+SVM人物检测器的应用。
订阅专栏 解锁全文
2万+





