使用 HOG 功能和多类 SVM 分类器对数字进行分类

简介: 使用 HOG 功能和多类 SVM 分类器对数字进行分类。

一、前言
此示例说明如何使用 HOG 功能和多类 SVM 分类器对数字进行分类。
对象分类是许多计算机视觉应用中的一项重要任务,包括监控、汽车安全和图像检索。例如,在汽车安全应用程序中,您可能需要将附近的对象分类为行人或车辆。无论要分类的对象类型如何,创建对象分类器的基本过程是:

为了说明这一点,此示例展示了如何使用 HOG(定向梯度直方图)特征和多类 SVM(支持向量机)分类器对数字进行分类。这种类型的分类通常用于许多光学字符识别 (OCR) 应用程序。

二、数字数据集
合成数字图像用于训练。每个训练图像都包含一个被其他数字包围的数字,这模仿了数字通常一起看到的方式。使用合成图像很方便,它可以创建各种训练样本,而无需手动收集它们。对于测试,手写数字扫描用于验证分类器对与训练数据不同的数据的性能。虽然这不是最具代表性的数据集,但有足够的数据来训练和测试分类器,并显示该方法的可行性。

用于将与每个标签关联的图像数制成表格。在此示例中,训练集由 101 位数字中的每一个的 10 张图像组成。测试集由每个数字 12 张图像组成。

显示一些训练和测试图像
1.png

在训练和测试分类器之前,将应用预处理步骤来消除收集图像样本时引入的噪声伪影。这为训练分类器提供了更好的特征向量。

2.png

三、使用 HOG 功能
用于训练分类器的数据是从训练图像中提取的 HOG 特征向量。因此,确保 HOG 特征向量编码有关对象的适量信息非常重要。该函数返回一个可视化输出,可以帮助形成一些关于“适量信息”含义的直觉。通过改变 HOG 像元大小参数并可视化结果,您可以看到像元大小参数对特征向量中编码的形状信息量的影响。
3.png

可视化显示,单元格大小 [8 8] 不会编码太多形状信息,而单元格大小 [2 2] 编码大量形状信息,但显著增加了 HOG 特征向量的维数。一个很好的折衷方案是 4 x 4 的像元大小。此大小设置编码足够的空间信息以直观地识别数字形状,同时限制 HOG 特征向量中的维度数,这有助于加快训练速度。在实践中,应通过重复的分类器训练和测试来改变HOG参数,以确定最佳参数设置。

四、训练数字分类器
数字分类是一个多类分类问题,您必须将图像分类为十个可能的数字类中的一个。在此示例中,统计和机器学习工具箱™中的函数用于使用二进制 SVM 创建多类分类器。

首先从训练集中提取 HOG 特征。这些功能将用于训练分类器。接下来,使用提取的特征训练分类器。

五、评估数字分类器
使用测试集中的图像评估数字分类器,并生成混淆矩阵以量化分类器的准确性。

与训练步骤一样,首先从测试图像中提取 HOG 特征。这些功能将用于使用经过训练的分类器进行预测。
4.png

该表以百分比形式显示混淆矩阵。矩阵的列表示预测的标签,而行表示已知标签。对于此测试集,数字 0 经常被错误分类为 6,很可能是由于它们的形状相似。在 9 和 3 中也可以看到类似的错误。与使用此合成数据集创建的分类器相比,使用更具代表性的数据集进行训练,其中包含数千个手写字符,可能会产生更好的分类器。
=

目录
相关文章
|
6月前
|
机器学习/深度学习 算法 数据库
KNN和SVM实现对LFW人像图像数据集的分类应用
KNN和SVM实现对LFW人像图像数据集的分类应用
104 0
|
6月前
|
机器学习/深度学习 算法 C++
选择适合的SVM模型进行分类任务
选择SVM模型时需考虑数据线性可分性、问题类型(二分类或多分类)、优化算法(凸优化优势)及性能指标(如准确率、召回率)。数据非线性可分时可使用核技巧。针对多分类,有OVO、OVA和DAG方法。同时,利用交叉验证评估模型泛化能力。
43 4
|
6月前
|
SQL 数据可视化 数据挖掘
R语言线性分类判别LDA和二次分类判别QDA实例
R语言线性分类判别LDA和二次分类判别QDA实例
|
6月前
|
机器学习/深度学习 算法 PyTorch
实战图像softmax分类模型
本文是学习softmax图像分类模型的总结,主要分享softmax图像分类模型的技术原理,以及用代码实现验证,供大家参考。
236 3
|
机器学习/深度学习 算法 索引
逻辑回归与多项式特征:解密分类问题的强大工具
逻辑回归与多项式特征:解密分类问题的强大工具
|
机器学习/深度学习 传感器 算法
多元分类预测 | Matlab 基于卷积支持向量机(CNN-SVM)分类预测
多元分类预测 | Matlab 基于卷积支持向量机(CNN-SVM)分类预测
|
机器学习/深度学习 传感器 数据采集
【SVM分类】基于支持向量机的数据分类预测(libsvm)附matlab代码
【SVM分类】基于支持向量机的数据分类预测(libsvm)附matlab代码
|
机器学习/深度学习 算法 数据可视化
基于线性SVM的CIFAR-10图像集分类
基于线性SVM的CIFAR-10图像集分类
746 0
基于线性SVM的CIFAR-10图像集分类
|
机器学习/深度学习 存储 算法
机器学习算法(四): 基于支持向量机的分类预测(SVM)
机器学习算法(四): 基于支持向量机的分类预测(SVM)
|
机器学习/深度学习 传感器 算法
【adaboost分类】基于adaboost实现一维数据分类附matlab代码
【adaboost分类】基于adaboost实现一维数据分类附matlab代码