基于 Django + PyTorch 的中文字体识别系统

1. 项目介绍

中文书法字体在笔画结构、连笔特征、字形重心和墨迹轮廓上具有显著差异。为了让字体类别的判断过程更加直观,本项目实现了一套中文字体识别系统:用户上传一张汉字图像后,系统调用已训练的视觉分类模型,返回对应的字体类别与预测置信度。

项目采用 Django 构建轻量级 Web 服务,PyTorch 完成模型训练与推理。当前数据集覆盖隶书(lishu)和行楷(xingkai)两类,训练端提供 CNN 与 Transformer 等多种模型入口,适合作为深度学习图像分类课程设计、毕业设计或 PyTorch 实战项目参考。

2. 系统功能

  • 在线识别:上传 JPG、PNG 等字体图像,完成单张图片分类。
  • 模型选择:页面自动读取可用权重,可按 CNN(如 AlexNet、ResNet、MobileNet)和 Transformer(如 ViT、Swin Transformer)等类别切换模型。
  • 结果展示:呈现模型名称、预测字体类别、置信度和上传图片。
  • 训练管理:提供统一的训练入口,支持指定网络架构、数据集、学习率、批次大小和训练轮数。
  • 实验记录:训练脚本可输出 loss、accuracy、precision、recall、F1 等过程指标,便于追踪和分析。

3. 技术栈

  • 后端框架:Django,负责路由、模板渲染、图片上传与识别结果返回。
  • 深度学习框架:PyTorch 与 torchvision,使用 ImageFolder 按目录自动读取类别标签。
  • 模型库:CNN 系列(AlexNet、VGG、GoogLeNet、ResNet、DenseNet、MobileNet、EfficientNet、RegNet、ShuffleNet)与 Transformer 系列(Vision Transformer、Swin Transformer)。
  • 运行环境:Python 3.10.15,PyTorch 2.3.1+cu121,支持 CUDA 加速。

4. 数据集说明

数据集根目录为 data_set/ChineseStyle,采用标准的 train/test 双分割结构。每个子目录对应一个字体类别:lishu 表示隶书,xingkai 表示行楷。当前训练集共 8000 张图像,每类 4000 张;测试集共 5526 张图像,每类 2763 张。

训练阶段使用随机裁剪、缩放、归一化等预处理策略;验证阶段使用确定性的缩放和中心裁剪,保证评估过程稳定。

ImageFolder 会根据类别目录生成标签映射,因此扩展字体类别时只需补充相应文件夹和样本。

5. 模型与识别流程

系统将图像分类任务拆分为"数据准备、模型训练、权重保存、Web 推理"四个步骤。训练脚本读取训练集和测试集,自动获取类别数并构建分类头;训练结束后保存最优权重和类别索引文件。Web 端在收到上传请求后,根据用户选择导入对应模型的 predict 函数,完成图像预处理、前向推理、Softmax 概率计算和结果返回。

对于书写风格差异显著的样本,卷积神经网络能够有效学习局部笔画与纹理特征;Vision Transformer、Swin Transformer 等模型则能进一步建模字形的全局结构特征。项目保留多模型入口,便于对比轻量模型与 Transformer 模型在速度和精度上的实际表现。

6. 系统页面展示

首页以"中文字体识别工作台"为核心操作区域,左侧为模型选择与图片上传区,右侧展示数据类别与使用提示。页面遵循简洁的业务流程:选择模型 → 上传字体图像 → 点击识别 → 查看类别与置信度。

7. 实验结果与分析

项目目录中保留了多种网络的结果文件,可用于观察训练过程与模型间差异。下图从已有结果工作簿中读取部分模型的末条 Accuracy 记录并绘制柱状图,便于在文章中快速展示实验管理流程。由于不同网络的训练轮数、权重初始化和数据版本可能不同,该图用于结果可视化示例。

中文字体数据集的最终结论应以重新训练后的日志和测试结果为准。

8. 项目总结

本文介绍了一套基于 Django 与 PyTorch 的中文字体识别系统。项目围绕真实的中文字体图像分类任务,完成了数据集读取、多模型训练、权重推理和 Web 可视化展示等关键环节。对于希望将深度学习模型落地到网页端的开发者而言,该项目提供了从模型训练到 Web 部署的完整实践链路。

后续工作可以继续扩充楷书、行书、草书、篆书等字体类别,并引入 Top-K 候选结果、混淆矩阵和 Grad-CAM 可解释性分析等功能。此外,也可将模型导出为 ONNX 或 TorchScript 格式,以降低线上推理成本并提升部署灵活性。

9. 适用场景

  • 深度学习图像分类课程设计与毕业设计。
  • Django + PyTorch 前后端整合练习。
  • 书法字体数字化、字体资料整理与文化内容检索的原型系统。
  • 多模型分类性能对比与实验记录展示。
相关推荐
计算机编程指导师2 分钟前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
夜雪一千40 分钟前
应用层加密的优缺点
python
计算机编程指导师1 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品
用户0332126663671 小时前
Python 实用技巧:从零自主生成结构化 PDF 页面
python
benchmark_cc1 小时前
前复权数据每天可能变化,历史数据库应该覆盖还是保留原始价格?
大数据·python·pandas·量化交易·股票数据·quantdash
计算机编程指导师1 小时前
计算机毕设选题推荐:Hadoop大数据下的个体肥胖健康风险评估与可视化系统源码 毕业设计 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·肥胖健康风险
code2cat1 小时前
【随笔】MCP输入Schema:把参数错误拦在工具执行之前
python·json schema·ai agent·mcp
计算机编程指导师2 小时前
Python大数据毕设怎么写?Django结合Hadoop+Spark京东销售分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·京东商品
合尘猫2 小时前
AI 项目上线就停:一次事件循环阻塞的完整排查过程
人工智能·后端·python
染指11102 小时前
142.Agent-多Agent框架-通过Skills实现多Agent
开发语言·人工智能·python·langchain·agents