摘要:本文针对手写数字识别,基于 PyTorch 构建 MNIST CNN 卷积神经网络并实现端到端识别与在线推理系统。模型通过多层卷积与池化提取特征,在全连接层完成十类数字分类;训练采用 MNIST 数据集,结合随机旋转与仿射增强提升鲁棒性,并使用交叉熵损失、Adam 优化器、ReduceLROnPlateau 调度及 Early Stopping 选择最优参数。
作者信息
编号:PDL-2
大小:21M
作者:Bob(原创)
项目概述
本文以手写数字识别为研究对象,完成了一个基于卷积神经网络的识别模型训练与网页端部署系统。系统整体包含模型训练与在线推理两部分,旨在实现从数据学习到交互式应用的完整流程。
训练阶段使用 PyTorch 构建 MNISTCNN 网络结构,并在 MNIST 数据集上进行学习;训练过程中对样本加入随机旋转与仿射变换等数据增强方法,以提升模型对不同书写方式的适应能力。模型采用交叉熵损失函数与 Adam 优化器进行参数更新,同时结合验证集上的学习率自适应调整与 Early Stopping 策略,获得验证性能最优的模型权重并保存为 .pt 文件。
部署阶段基于 Flask 搭建 Web 推理服务,实现模型加载、预测接口与结果返回;针对前端画布输入的手写图片,后端设计了灰度化、二值化、笔迹区域裁剪、等比例缩放、居中及归一化等预处理步骤,使推理输入与训练数据保持一致。实验结果显示,所训练模型在测试集上具有较高识别准确率,部署后的系统能够对用户手写数字进行实时预测并输出置信度,具备良好的交互性与实用性。
系统设计
系统采用 PyTorch 训练 MNISTCNN 模型并保存权重,结合 Flask 搭建在线推理服务,通过前端画布采集手写输入、后端一致化预处理与模型预测,实现手写数字的实时识别与结果展示。

图1 系统整体流程图
硬件配置
该系统硬件配置如上,如果您的电脑配置低于下述规格,运行速度可能会与本系统的存在差异,请注意。

表1 惠普(HP)暗影精灵10台式整机配置(系统硬件配置)
软件环境
对本实验所需的各类软件及工具的基本信息进行了清晰汇总。

表2 系统软件配置(真实运行环境)
运行展示
运行app.py

图2 系统整体流程图

图3 手写数字识别系统-0

图4 手写数字识别系统-1

图5 手写数字识别系统-2

图6 手写数字识别系统-3

图7 手写数字识别系统-4

图8 手写数字识别系统-5

图9 手写数字识别系统-6

图10 手写数字识别系统-7

图11 手写数字识别系统-8

图12 手写数字识别系统-9
运行train_model.py

图13 模型训练过程中的准确率与损失曲线
该图展示了 MNISTCNN 在训练过程中训练集与验证集的准确率逐步上升、损失持续下降并趋于稳定,表明模型有效收敛且无明显过拟合。

图14 模型训练与测试结果输出
从日志可见模型在验证集上达到约 99.07% 的最佳准确率、测试集准确率约 99.33% 且损失很低,说明训练充分收敛并具有良好泛化能力。
文件清单
本项目的文件清单如下所示:

拓展服务
我们为有进一步需求的用户提供以下有偿拓展服务,包括但不限于:

温馨提醒:上述服务均为有偿服务。我们会根据您的实际需求、项目规模与技术复杂度,提供对应的方案评估与费用报价,在充分沟通后再开展具体工作。若您有环境搭建、功能开发、模型训练或远程指导等需求,欢迎先与我们联系,我们将尽量在预算与效果之间为您找到合适的平衡方案。


评论(0)