基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕

  • ✳️ 一、引言
  • ✳️ 二、手写体数字识别系统
    • ✳️ 2.1 MNIST 数据集
    • ✳️ 2.2 CNN
    • ✳️ 2.3 网络训练
  • ✳️ 三、手写体数字识别结果
  • ✳️ 四、参考文献
  • ✳️ 五、Matlab代码获取

✳️ 一、引言

手写数字识别是计算机视觉领域中的一个重要应用,已广泛应用在很多领域。手写数字识别的准确性至关重要,例如在银行自动识别支票系统中,如果识别错误就会出现资金丢失等严重后果。因此,研究如何提高手写数字识别的准确率具有重要的现实意义。目前,手写数字识别分类存在两个主要问题:第一,不同数字之间存在一些相似性,导致很难准确分类;第二,不同人书写的数字具有不同的大小、形状和方向,可能造成某个人写的一个数字与其他人写的另外一个数字非常相似。例如,甲写的7可能很像乙写的1。因此,手写数字识别分类的难度远高于已有的常规字体和特定规格的印刷字体。

传统识别算法虽然基本能够正确识别手写数字, 但是存在识别准确率低、 识别速度慢等问题, 随着技术的发展逐渐被淘汰。 卷积神经网络( Convolutional Neural Networks, CNN)具有良好的泛化能力和鲁棒性, 已广泛应用在人脸识别、 语音识别和图像分类等领域。

✳️ 二、手写体数字识别系统

✳️ 2.1 MNIST 数据集

本博文在训练和测试过程中采用 MNIST 数据集。 MNIST数据集是一个大型手写数字数据库, 包含 60 000 张手写数字图像的训练样本集和 10 000 张手写数字图像的测试样本集,被广泛应用于图像处理模型的训练和测试。 其中, 每幅图像都是一张像素值为 28× 28 的灰度手写数字图片, 分别由不同的人员书写, 其中心有一个数字。 MNIST 数据集中的手写数字样本图像如图 1 所示。

基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码_第1张图片

图 1 MNIST 数据集中的手写数字样本图像

✳️ 2.2 CNN

CNN 是一种典型的多处理层神经网络, 主要包含输入层、卷积层、池化层、全连接层和输出层。 卷积层是CNN的核心部分,卷积操作可以减少多层网络中参数的计算量。 输入数据首先需要经过卷积层处理, 通过一个或多个可训练的卷积核对输入图片进行卷积。 池化层用于进一步减少输出参数的数量, 提高模型的泛化能力。 一般来说, 卷积神经网络进行一次完整的训练需要执行前向传播和反向传播两个过程。 前向传播可以理解为计算样本的实际输出, 通过网络结构预测结果; 反向传播则是计算实际输出与理想输出的差值, 根据这些差值反过来调整网络参数。

本文首先使用三层卷积层、 两层池化层、 一层打平层和两层全连接层组成的 CNN 模型测试手写数字识别的性能, 该CNN 模型结构图如图 2 所示。

基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码_第2张图片

图2 CNN 模型结构图

为了更好地从输入图像中提取相关特征,往往会在卷积层中添加滤波器。因此,在第一层、第二层、第三层卷积层中,按照顺序分别在每层使用了16个、32个和64个卷积内核大小为3×3的滤波器。对于两层池化层,首先采用的是平均池化层。在第三层卷积层之后,增加了一层打平层,将二维输入数据转换为一维向量。接下来是一层全连接层,其中有84个神经元。最后,使用含有10个神经元的输出层对数字0~9进行分类。卷积神经网络通常需要引入激活函数来增加网络模型的非线性。在三层卷积层和第一层全连接层中,使用ReLU函数作为激活函数。因为这是一个识别分类问题,所以输出层采用Softmax激活函数对输出结果进行分类处理。在优化器选择上,首先使用RMSprop优化器搜索该网络模型的局部最小值。

✳️ 2.3 网络训练

基于已加载的数据进行训练,此时共训练50轮,每轮的迭代次数为75次,共迭代3750次,大约用时22分钟,训练结果如下图所示,随着训练迭代步数的增加,准确率曲线明显上升,损失函数曲线逐渐下降,最后识别率大约在99%左右。

基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码_第3张图片

图3 训练结果

✳️ 三、手写体数字识别结果

现有一手写体(黑色背景,红色字体)如下图所示,准确识别出了该手写字体,且用时只有0.02s。

基于AlexNet卷积神经网络的手写体数字识别系统研究-附Matlab代码_第4张图片

图4 手写体数字识别结果

✳️ 四、参考文献

[1] SELMI Z,MB HALIMA,PAL U,et al.DELP-DAR system for license plate detection and recognition[J].Pattern Recognition Letters,2019(129):213-223.
[2] YU D,MA L,LU H.Lottery digit recognition based on multifeatures[C]//Systems & Information Engineering Design Symposium,2008:340-341.
[3] 陈群贤.基于k-邻近算法识别手写数字[J].缔客世界,2021(3):41-42
[4] 李彦冬,郝宗波,雷航.卷积神经网络研究综述[J].计算机应用,2016,36(9):2508-2515.

✳️ 五、Matlab代码获取

上述手写体数字识别系统由Matlab代码完成,可私信博主获取。


博主简介:研究方向涉及智能图像处理、深度学习、卷积神经网络等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


你可能感兴趣的:(#,3.1,图像识别,AlexNet卷积神经网络,CNN,手写体数字识别,字体识别,深度学习)