手写汉字识别系统-python+CNN

项目描述 基于 CNN(卷积神经网络) 的 手写汉字识别 Web 系统
用户在网页画板上通过鼠标或触屏手写汉字,前端使用 HTML5 Canvas 采集笔迹图像,经等比缩放与 base64 编码后通过 AJAX 异步提交到 Flask 后端。后端完成灰度转换、字框裁剪、居中留白、尺寸归一化等预处理后,送入基于 CASIA-HWDB 数据集训练好的 CNN 模型进行推理,取出 Top-3(3 个最可能的候选) 汉字的类别索引与置信度,再通过 PIL 将汉字渲染成 64×64 的结果图片,和准确率一起以 JSON 形式异步回传到前端页面进行可视化展示。识别范围覆盖 GB2312 一级常用简体汉字共 3755 个 。

项目功能
– 在线手写画板 :基于 DrawingBoard.js 的 Canvas 画板,支持清屏、橡皮擦切换、18px 默认粗笔触书写
– 原始图实时预览 :画板内容等比缩放到 64×64 缩略框,展示后端看到的输入
– Top-3 汉字识别 :点击/停止书写后,以 AJAX 异步调用 /chineseRecognize 接口返回 3 个最可能的候选汉字
– 准确率百分比展示 :每个候选汉字附带 softmax 置信度(如 74.85% ),用户可按概率参考判断
– 汉字结果图片生成 :后端以微软雅黑字体将候选汉字直接绘成 RGB 图片回传,免除客户端字体缺失导致的方框乱码问题
– 异常/错误信息弹窗 :权重文件缺失、模型恢复失败、白板无笔画等异常均会以 alert 形式提示用户具体原因
– 预处理增强 :字的外接矩形 bbox 裁剪、20% 留白 pad 成正方形居中、LANCZOS 重采样缩放到 64×64,显著提升”写在边角/字太小”场景下的识别率

 

开发工具运行环境
后端语言 Python 3.13(原始开发为 3.6.1,已兼容升级到 3.13) Web 框架 Flask 3.1.0(原始为 0.12.2,已兼容升级) 深度学习框架 TensorFlow 2.21.0 + tf_slim 1.1.0(原始为 TensorFlow 1.3.0,使用 tf.compat.v1 + tf_slim 做 v1 兼容改造) 图像处理 Pillow 10.4.0(原始为 4.2.1,适配 Pillow 10+) 数值计算 NumPy 2.1.3 模型序列化 pickle(保存汉字编码→汉字映射字典) 前端语言 HTML5 / JavaScript / CSS 前端画板库 DrawingBoard.js(controls:Navigation + DrawingMode) DOM/AJAX 库 jQuery 1.11.2 背景动效 three.min.js + canvas-nest 代码编辑 PyCharm / VS Code 依赖管理 Pipenv(Pipfile)

项目技术
Python+ Flask

以上系统源码经过技术整理与调试,确保能正常运行

提供最优质的资源集合

立即查看 了解详情