使用 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 中也可以看到类似的错误。与使用此合成数据集创建的分类器相比,使用更具代表性的数据集进行训练,其中包含数千个手写字符,可能会产生更好的分类器。
=

目录
相关文章
|
9月前
|
机器学习/深度学习 JavaScript PyTorch
9个主流GAN损失函数的数学原理和Pytorch代码实现:从经典模型到现代变体
生成对抗网络(GAN)的训练效果高度依赖于损失函数的选择。本文介绍了经典GAN损失函数理论,并用PyTorch实现多种变体,包括原始GAN、LS-GAN、WGAN及WGAN-GP等。通过分析其原理与优劣,如LS-GAN提升训练稳定性、WGAN-GP改善图像质量,展示了不同场景下损失函数的设计思路。代码实现覆盖生成器与判别器的核心逻辑,为实际应用提供了重要参考。未来可探索组合优化与自适应设计以提升性能。
817 7
9个主流GAN损失函数的数学原理和Pytorch代码实现:从经典模型到现代变体
|
机器学习/深度学习 传感器 算法
【虚警检测】基于CA-CFAR(单元平均恒虚警)、GO-CFAR(最大选择恒虚警)、SO-CFAR(最小选择恒虚警)算法的恒虚警检测附Matlab代码
【虚警检测】基于CA-CFAR(单元平均恒虚警)、GO-CFAR(最大选择恒虚警)、SO-CFAR(最小选择恒虚警)算法的恒虚警检测附Matlab代码
|
10月前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。
|
算法 计算机视觉 C++
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测
Opencv(C++)学习系列---Sobel索贝尔算子边缘检测
1360 0
|
机器学习/深度学习
生物神经元与人工神经元
生物神经元与人工神经元
495 13
|
机器学习/深度学习 前端开发
【机器学习】机器学习30个笔试题
本文提供了一份包含30个问题的机器学习笔试试题集,覆盖了回归模型、极大似然估计、特征选择、模型评估、正则化方法、异常值检测、分类问题等多个机器学习领域的关键知识点。
1288 0
【机器学习】机器学习30个笔试题
|
机器学习/深度学习 算法框架/工具 计算机视觉
使用Python实现图像分类与识别模型
使用Python实现图像分类与识别模型
534 2
使用Python实现图像分类与识别模型
|
算法 计算机视觉 Python
【OpenCV】-算子(Sobel、Canny、Laplacian)学习
【OpenCV】-算子(Sobel、Canny、Laplacian)学习
1322 2
|
机器学习/深度学习 人工智能 算法
一、单层感知器(MCP人工神经元模型)
一、单层感知器(MCP人工神经元模型)
|
机器学习/深度学习 算法 BI
图像处理之HOG特征提取
图像处理之HOG特征提取
769 0

热门文章

最新文章