日语假名手写识别系统

深度学习课程设计报告 · 钟文清 · 230200813 · 23智能2

一、项目简介

本项目基于 CNN 卷积神经网络构建日语假名手写识别系统,包含模型训练、测试集验证、Tkinter 手写板 UI三大模块。用户可在画布上手写日语假名,系统实时识别并显示结果。

系统环境:Python 3.10 · TensorFlow GPU

二、数据集

Kuzushiji-49 数据集,包含 49 个日语假名字符类别(48 平假名 + 1 迭代标记),总计 270,912 张 28×28 灰度图像。

三、模型架构

配置
卷积层 132 通道 → BatchNorm → Dropout
卷积层 264 通道 → BatchNorm → Dropout
卷积层 3128 通道 → BatchNorm → Dropout
全连接 11024 神经元
全连接 2512 神经元
输出层49 类 Softmax

四、训练策略

训练曲线:

训练曲线

五、UI 界面

使用 Tkinter 构建手写识别桌面应用:

六、关键问题解决

问题 1:黑底白字导致识别错误

初始版本画布背景为黑色,与训练数据(白底黑字)不一致。改为白色背景 + 黑色笔迹后问题解决。

修复前(黑底白字):

黑底白字版本

修复后(白底黑字):

白底黑字正确识别

问题 2:截图区域偏移

非全屏窗口下 ImageGrab.grab() 捕获区域错误。通过 winfo_rootx() / winfo_x() 获取画布绝对坐标精准定位。

七、技术选型

模块技术对应知识点
数据处理NumPy + Matplotlib通用数据预处理流程
模型构建TensorFlow + Keras CNN图像分类模型
UI 界面Tkinter手写数字 UI 案例
模型部署load_model 函数模型加载方法
← 返回作品集