一、前言
此示例说明如何使用 HOG 功能和多类 SVM 分类器对数字进行分类。
对象分类是许多计算机视觉应用中的一项重要任务,包括监控、汽车安全和图像检索。例如,在汽车安全应用程序中,您可能需要将附近的对象分类为行人或车辆。无论要分类的对象类型如何,创建对象分类器的基本过程是:
为了说明这一点,此示例展示了如何使用 HOG(定向梯度直方图)特征和多类 SVM(支持向量机)分类器对数字进行分类。这种类型的分类通常用于许多光学字符识别 (OCR) 应用程序。
二、数字数据集
合成数字图像用于训练。每个训练图像都包含一个被其他数字包围的数字,这模仿了数字通常一起看到的方式。使用合成图像很方便,它可以创建各种训练样本,而无需手动收集它们。对于测试,手写数字扫描用于验证分类器对与训练数据不同的数据的性能。虽然这不是最具代表性的数据集,但有足够的数据来训练和测试分类器,并显示该方法的可行性。
用于将与每个标签关联的图像数制成表格。在此示例中,训练集由 101 位数字中的每一个的 10 张图像组成。测试集由每个数字 12 张图像组成。
显示一些训练和测试图像
在训练和测试分类器之前,将应用预处理步骤来消除收集图像样本时引入的噪声伪影。这为训练分类器提供了更好的特征向量。
三、使用 HOG 功能
用于训练分类器的数据是从训练图像中提取的 HOG 特征向量。因此,确保 HOG 特征向量编码有关对象的适量信息非常重要。该函数返回一个可视化输出,可以帮助形成一些关于“适量信息”含义的直觉。通过改变 HOG 像元大小参数并可视化结果,您可以看到像元大小参数对特征向量中编码的形状信息量的影响。
可视化显示,单元格大小 [8 8] 不会编码太多形状信息,而单元格大小 [2 2] 编码大量形状信息,但显著增加了 HOG 特征向量的维数。一个很好的折衷方案是 4 x 4 的像元大小。此大小设置编码足够的空间信息以直观地识别数字形状,同时限制 HOG 特征向量中的维度数,这有助于加快训练速度。在实践中,应通过重复的分类器训练和测试来改变HOG参数,以确定最佳参数设置。
四、训练数字分类器
数字分类是一个多类分类问题,您必须将图像分类为十个可能的数字类中的一个。在此示例中,统计和机器学习工具箱™中的函数用于使用二进制 SVM 创建多类分类器。
首先从训练集中提取 HOG 特征。这些功能将用于训练分类器。接下来,使用提取的特征训练分类器。
五、评估数字分类器
使用测试集中的图像评估数字分类器,并生成混淆矩阵以量化分类器的准确性。
与训练步骤一样,首先从测试图像中提取 HOG 特征。这些功能将用于使用经过训练的分类器进行预测。
该表以百分比形式显示混淆矩阵。矩阵的列表示预测的标签,而行表示已知标签。对于此测试集,数字 0 经常被错误分类为 6,很可能是由于它们的形状相似。在 9 和 3 中也可以看到类似的错误。与使用此合成数据集创建的分类器相比,使用更具代表性的数据集进行训练,其中包含数千个手写字符,可能会产生更好的分类器。
=