您现在的位置是:首页 >技术杂谈 >嵌入式人工智能应用-第四章 基于 sklearn 的手写数字识别 2网站首页技术杂谈

嵌入式人工智能应用-第四章 基于 sklearn 的手写数字识别 2

数贾电子科技 2025-03-17 12:01:04
简介嵌入式人工智能应用-第四章 基于 sklearn 的手写数字识别 2

1 基于 sklearn 的手写数字识别

1.1 原理

图像识别(Image Recognition)是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。图像识别的发展经历了三个阶段:文字识别、数字图像处理与识别、物体识别。机器学习领域一般将此类识别问题转化为分类问题。
手写识别是常见的图像识别任务。计算机通过手写体图片来识别出图片中的字,与印刷字体不同的是,不同人的手写体风格迥异,大小不一, 造成了计算机对手写识别任务的一些困难。数字手写体识别由于其有限的类别(0~9 共 10 个数字)成为了相对简单的手写识别任务。DBRHD 和 MNIST 是常用的两个数字手写识别数据集。

1.2 MINIST 数据集

MNIST 也可以从网站下载,网址:

MNIST 是一个包含数字 0~9 的手写体图片数据集,图片已归一化为以手写数字为中心的 28*28 规格的图片。MNIST 由训练集与测试集两个部分组成,其中训练集:60,000 个手写体图片及对应标签;测试集:10,000 个手写体图片及对应标签,MNIST 中的数字图片如图所示。
在这里插入图片描述

MNIST 数据集中的每一张图片是由 28*28 个像素点组成的,每个像素点的值区间为 0~255,其中 0 表示白色,255 表示黑色。MNIST 数据集是外国人收集的,确实是外国人写的 0 到 9 的数字,不过外国人写数字和中国人写的略有差异,在实际的手写测试上,外国人手写的识别率高于中国人。

1.3 DBRHD 数据集

DBRHD(Pen-Based Recognition of Handwritten Digits Data Set)是 UCI 的机器学习中心提供的数字手写体数据库。本次实验已经提供了 DBRHD 数据集,名称为 DBRHD 数据集. 网址

DBRHD 数据集包含大量的数字 0~9 的手写体图片,这些图片来源于 44 位不同的人的手写数字,图片已归一化为以手写数字为中心的 32*32 规格的图片。DBRHD 数据集中,训练集:7,494 个手写体图片及对应标签,来源于 40 位手写者;测试集:3,498 个手写体图片及对应标签,来源于 14 位手写者。

DBRHD 去掉了图片颜色等复杂因素,将手写数字转化为训练数据为大小 32*32 的文本矩阵,可以直接使用记事本等打开,如图 4.3.2 所示。其中 0 代表白色,1 代表黑色,所以 4.3.2 所示的图片数字是 0 和 1。目前已经有很多的模型在 MNIST 和 DBRHD 数据集上进行了实验,某些模型对数据及进行了偏斜校正,甚至在数据集上进行了人为的扭曲、偏移、缩放以及失真等操作,目的是获取更加多样性的样本,这样是模型更具有广泛性。

2 数据分类与识别

无论是使用 MNIST 数据集还是 DBRHD 数据集,如何进行分类与识别技术是一样的,常用的分类器是:线性分类器、K 最近邻分类器、Boosted Stumps、非线性分类器、SVM、多层感知器、卷积神经网络。首先数字的识别是个多分类问题,也就是 0 到 9 的十个数字,要分成 10 类,每个手写数字图像的类别标签是 0~9 中的其中一个数。
K 邻近,这里就以 KNN 来完成手写数字的分类任务。这里需要再次强调一下,手写数字的识别本质上是分类,识别的结果是 1 还是 2 等类似的结果,而不是这个 1 是 A 写的,那个 1 是 B 写的。当然识别是谁写的也是可以做的,不过也是分类为题。

2.1 KNN 介绍

K最近邻(K-Nearest Neighbors,KNN)是一种简单且广泛使用的监督学习算法,主要用于分类和回归任务。以下是关于KNN的一些基本介绍:

2.1.1 基本原理

KNN的核心思想是:通过寻找与待分类样本最相近的K个训练样本,来进行分类或预测。具体步骤如下:

  • 选择参数K:K是一个正整数,表示在进行分类时考虑的邻居数量。
  • 计算距离:对于待分类样本,计算其与训练集中所有样本的距离(常用的距离度量包括欧氏距离、曼哈顿距离等)。
  • 寻找最近邻:根据计算出的距离,找出距离最近的K个样本。
  • 进行投票(分类)或求平均(回归)
    • 分类:K个邻居中出现频率最高的类别作为预测结果。
    • 回归:K个邻居的目标值的平均值作为预测结果。

2.1.2. 特点

  • 简单易懂:KNN算法的原理简单直观,容易实现。
  • 无参数模型:KNN通常没有明确的训练过程,所有训练样本都保留在内存中,直接用于预测。
  • 适应性强:可以处理多类分类和多维特征数据。

2.1.3 优缺点

优点

  • 简单易实现
  • 不需要假设数据分布
  • 适合处理小规模数据集

缺点

  • 计算开销大:在进行预测时需要计算所有训练样本的距离,计算量大,尤其在数据量较大时。
  • 存储开销大:需要存储所有训练样
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。