广东技术师范大学实验报告
学院: 数科院 专业: 信计 班级: 1班 成绩:
姓名: 麦麦提力 学号: 2024310143034 组别: 组员:
实验地点: 实验日期: 12/21 指导教师签名: 吴世枫
预习情况 操作情况 考勤情况 数据处理情况
实验 项目名称:基于轻量级 Transformer 的手写汉字实时识别系统实验报告
二、实验目的和要求
(一)实验目的
1.针对手写汉字笔画不规则、个体差异大的特点,验证轻量级 Transformer 架构在手写汉字识别任务中的可行性与高效性。
2.掌握轻量级 Transformer 模型的设计方法(模型压缩、结构简化),实现 “高精度 + 低延迟” 的实时识别需求。
3.探究手写汉字数据集的预处理策略、数据增强方法对模型泛化能力的影响。
4.完成实时识别系统的端到端开发,包括模型训练、推理优化、性能测试,提升深度学习模型工程化部署能力。
(二)实验要求
1.构建手写汉字数据集,包含 2000 个常用汉字,涵盖不同书写风格(工整、潦草)、不同书写工具(钢笔、铅笔、中性笔)的样本,图像尺寸统一为 128×128。
2.设计轻量级 Transformer 模型,参数量控制在 30M 以内,单张图像推理延迟≤30ms。
3.采用针对性数据增强策略(笔画偏移、轻微扭曲、手写噪声模拟),提升模型对不同手写风格的适应性。
4.完成模型训练与优化,在测试集上实现≥93% 的识别准确率,分析不同书写风格下的模型表现。
5.搭建实时识别演示环境,验证系统在实际场景中的响应速度与识别稳定性。
三、实验原理
(一)核心架构原理
本实验采用 “轻量级 ViT(MobileViT)特征提取 + 精简 Transformer Decoder” 架构,核心原理如下:
MobileViT 特征提取:将 128×128×3 的手写汉字图像切分为 8×8 的小型 Patch,通过 “卷积 + Transformer Encoder” 混合结构提取特征 —— 卷积层捕捉局部笔画细节,Transformer Encoder 捕捉全局结构关系,兼顾特征提取精度与计算效率。
精简 Transformer Decoder:采用 4 层 Decoder 结构,减少注意力头数(6 头)和前馈网络维度(1024),降低模型参数量;引入稀疏注意力机制,仅关注与当前预测 token 相关的图像特征区域,提升推理速度。
1.手写特征适配模块:在特征提取后添加笔画特征增强层,通过轻量级 CNN 捕捉手写汉字的笔画粗细、连笔、转折等特有特征,与图像嵌入向量融合,提升模型对书写差异的适配性。
2.(二)关键技术原理
1.稀疏注意力机制:相比全注意力机制,仅计算查询 token 与图像特征中 top-k 个相关区域的注意力权重,减少计算量,同时保留关键特征关联,实现推理加速。
2.动态数据增强:根据手写汉字的笔画特点,动态调整增强强度(如潦草样本减少旋转角度、增加噪声抵抗),避免有效特征丢失。
3.知识蒸馏:以大型 Transformer 模型(参数量 100M+)为教师模型,轻量级模型为学生模型,通过蒸馏损失优化学生模型,在降低参数量的同时保持高精度。
4.推理优化:采用 ONNX 格式导出模型,结合 TensorRT 进行推理加速,减少模型加载和计算延迟,满足实时识别需求。
四、主要仪器设备
5.计算机(CPU≥10 核,GPU≥NVIDIA RTX 2060,内存≥16GB)
6.操作系统:Windows 11 或 Ubuntu 20.04 LTS
7.软件环境:Python 3.8+、PyTorch 1.12+、TorchVision、MobileViT、ONNX、TensorRT、OpenCV、Pillow、NumPy
8.数据集:自制手写汉字数据集(2000 个汉字,每个汉字 150 张样本,共 30 万张图像)+ 公开数据集(HWDB1.1 子集)
9.辅助设备:数位板(用于采集手写样本)、摄像头(用于实时识别演示)
五、实验内容及步骤
(一)数据集构建与预处理
数据采集与整合:通过数位板采集 100 名志愿者的手写样本,结合 HWDB1.1 公开数据集,筛选出 30 万张有效图像,按 8:1:1 划分训练集、验证集、测试集。
数据预处理:
图像标准化:统一尺寸为 128×128,转为 RGB 格式,归一化至 [0,1] 区间。
噪声去除:采用自适应阈值分割法去除手写图像中的背景噪声、墨迹斑点。
动态数据增强:
几何变换:随机平移(±5 像素)、轻微扭曲(形变系数≤0.1)、缩放(0.9~1.1 倍)。
笔画增强:模拟手写噪声(添加随机像素点)、笔画粗细变化(调整像素强度)、连笔模拟(相邻笔画像素融合)。
标签处理:构建汉字字典(2000 个汉字 +
(二)模型设计与实现
定义手写汉字数据集类HandwrittenChineseDataset:实现图像读取、预处理、动态数据增强、标签转换功能。
1.构建轻量级识别模型LightweightHandwrittenCharRecognizer:
2.MobileViT 特征提取层:4 层混合特征提取模块,嵌入维度 512。
笔画特征增强层:2 层深度可分离卷积,提取手写特有特征。
精简 Transformer Decoder:4 层 Decoder,6 头稀疏注意力,前馈网络维度 1024。
输出层:全连接层映射至汉字字典维度,结合 softmax 输出概率分布。
知识蒸馏配置:加载预训练的大型 Transformer 教师模型,定义蒸馏损失(硬损失 + 软损失权重比 3:7)。
(三)模型训练与优化
数据加载:使用DataLoader加载数据,Batch Size=64,开启多线程数据预处理加速。
训练组件初始化:模型移至 GPU,定义交叉熵损失函数、蒸馏损失函数、AdamW 优化器(初始学习率 3e-4)、StepLR 学习率调度器(每 3 轮衰减 0.8)。
训练循环(共 20 个 Epoch):
训练阶段:交替使用原始训练集和增强训练集,计算交叉熵损失 + 蒸馏损失,反向传播更新参数,每 15 个 Batch 记录损失值。
验证阶段:每轮 Epoch 结束后,在验证集上测试准确率和推理延迟,保存 “准确率最高 + 延迟最低” 的双最优模型。
早停机制:若连续 4 轮验证准确率无提升,停止训练,避免过拟合。
推理优化:将最优模型导出为 ONNX 格式,使用 TensorRT 进行量化(INT8)和推理加速,优化模型计算图。
(四)系统测试与演示
性能测试:
准确率测试:在测试集上统计整体准确率、不同书写风格(工整 / 潦草)准确率、不同书写工具准确率。
速度测试:记录单张图像推理延迟、批量处理(100 张 / 批)平均延迟,验证是否满足实时要求。
消融实验:测试 “有无知识蒸馏”“有无稀疏注意力”“有无笔画增强层” 对模型性能(准确率、延迟、参数量)的影响。
实时演示:搭建基于摄像头的实时识别环境,通过 OpenCV 读取手写汉字图像(纸质手写 + 数位板实时书写),输入优化后的模型,实时输出识别结果,验证系统稳定性。
六、实验数据记录和处理
(一)训练数据记录
Epoch(轮次) 平均训练损失(交叉熵 + 蒸馏) 验证集准确率(%) 单张推理延迟(ms) 模型参数量(M)
1 3.9872 42.30 45.6 28.7
5 1.5634 76.80 40.2 28.7
10 0.6891 89.50 35.8 28.7
15 0.3215 93.70 31.4 28.7
20 0.1876 95.20 29.8 28.7
(二)测试数据处理
测试集共 3 万张图像,按书写风格和工具分类测试结果如下:
测试类别 样本数量 正确识别数 准确率(%) 平均推理延迟(ms)
工整手写(钢笔) 8000 7840 98.0 28.5
工整手写(铅笔) 7000 6793 97.0 28.3
潦草手写(中性笔) 8000 7360 92.0 29.1
潦草手写(钢笔) 7000 6440 92.0 29.4
整体测试 30000 28433 94.78 28.8
(三)消融实验结果
模型配置 测试准确率(%) 单张推理延迟(ms) 参数量(M)
完整模型(含所有模块) 94.78 28.8 28.7
无知识蒸馏 89.65 27.5 28.7
无稀疏注意力 94.52 41.2 35.3
无笔画增强层 91.34 28.2 26.5
七、实验结果与分析
(一)实验结果总结
1.训练效果:模型经过 20 轮 Epoch 训练后,训练损失从 3.9872 降至 0.1876,验证集准确率从 42.30% 提升至 95.20%,训练过程稳定,知识蒸馏有效提升了轻量级模型的精度。
2.测试性能:测试集整体准确率达 94.78%,工整手写汉字识别准确率超 97%,潦草手写准确率达 92%;单张图像推理延迟 28.8ms,满足实时识别要求(≤30ms),参数量 28.7M,实现 “轻量 + 高效” 目标。
3.模块有效性:消融实验表明,知识蒸馏使准确率提升 5.13 个百分点,稀疏注意力使推理延迟降低 12.4ms,笔画增强层使准确率提升 3.44 个百分点,各模块均起到关键作用。
4.(二)结果分析
5.书写风格影响:工整手写汉字笔画规整、特征清晰,模型识别准确率高;潦草手写存在连笔、省笔、笔画偏移等问题,导致特征提取难度增加,准确率略低,但仍达 92%,说明笔画增强层和稀疏注意力能有效捕捉关键特征。
6.推理优化效果:通过 ONNX 导出 + TensorRT 加速,模型推理延迟从原始的 45.6ms 降至 28.8ms,提速 36.8%,且准确率无明显下降,验证了推理优化方案的有效性。
7.轻量级架构优势:相比传统大型 Transformer 模型(参数量 100M+,延迟 50ms+),本实验模型参数量减少 71.3%,延迟降低 42.4%,准确率仅下降 1.2 个百分点,实现了精度与效率的平衡。
1.性能瓶颈:部分极端潦草的样本(如笔画严重重叠、省笔过多)识别准确率仍较低(约 85%),主要因特征丢失严重,模型难以区分形近字(如 “人” 与 “入”、“木” 与 “术”)。
八、问题与讨论
(一)实验中遇到的问题及解决方案
问题 1:轻量级模型初始准确率低,难以捕捉手写汉字的复杂特征。解决方案:引入知识蒸馏,以大型预训练模型为教师,通过软标签引导学生模型学习高阶特征,同时保留原始硬标签损失,平衡精度与泛化能力。
问题 2:潦草手写样本识别准确率低,形近字混淆严重。解决方案:在数据集中增加极端潦草样本和形近字样本对(如 “辨 / 辩 / 辫”“己 / 已 / 巳”),在 Decoder 输出层添加余弦相似度筛选模块,对比候选汉字与图像特征的匹配度,减少混淆。
问题 3:推理延迟不满足实时要求,原始模型延迟达 45.6ms。解决方案:采用 INT8 量化减少计算量,使用 TensorRT 优化计算图,移除模型中冗余的 BatchNorm 层,同时保留关键特征提取模块,最终将延迟降至 28.8ms。
问题 4:训练过程中出现过拟合,验证集准确率波动较大。解决方案:增加动态数据增强的多样性(如随机遮挡局部笔画),在 Transformer Encoder 中添加 Dropout 层(dropout rate=0.1),采用早停机制避免过度训练。
(二)讨论与展望
数据层面优化:未来可采集更多极端书写风格(如草书、儿童手写)的样本,采用 GAN 生成合成样本,解决稀有样本不足的问题;同时引入手写汉字的笔画级标注,指导模型学习更精细的特征。
架构层面优化:可结合注意力机制与卷积神经网络(如 ConvNeXt + 轻量 Transformer),用 CNN 提取局部笔画细节,Transformer 捕捉全局关系,进一步提升潦草手写的识别准确率;此外,可探索动态注意力头数调整,根据图像复杂度自适应分配计算资源。
部署场景扩展:该系统可应用于手写笔记数字化、教育答题批改、智能输入法等场景;若扩展为多字识别,可引入 CTC 损失函数适配变长文本,结合语言模型优化解码结果。
行业对比:与现有手写汉字识别方案(如 CRNN、传统 ViT)相比,本实验模型在实时性和轻量化上优势明显,准确率接近主流方案,适合部署在移动设备(手机、平板)等资源受限场景。
九、实验预习报告
(一)预习内容
学习轻量级 Transformer 架构(如 MobileViT、EfficientTransformer)的设计原理,重点理解模型压缩、稀疏注意力、混合特征提取的实现逻辑。
研究知识蒸馏的核心思想,包括硬蒸馏、软蒸馏的差异,以及教师 - 学生模型的适配策略。
掌握手写汉字识别的技术难点,分析不同预处理方法(噪声去除、笔画增强)和数据增强策略对模型性能的影响。
学习 ONNX、TensorRT 等推理优化工具的使用方法,了解模型量化、计算图优化的基本原理。
1.查阅实时手写识别相关文献,对比不同架构的性能指标(准确率、延迟、参数量),明确本实验的技术路线与创新点。
2.(二)预习疑问与思考
疑问 1:知识蒸馏中教师模型与学生模型的参数量比例如何选择?比例过大会导致学生模型难以拟合,比例过小则无法传递有效特征。
疑问 2:稀疏注意力的 top-k 值(关注的特征区域数量)如何确定?k 值过大影响速度,k 值过小丢失特征,是否与手写汉字的复杂度相关?
思考 1:移动设备部署时,模型量化(INT8)对准确率的影响是否可控?如何平衡量化精度与部署效率?
思考 2:动态数据增强的强度阈值如何设定?过强的增强是否会导致模型学习到手写汉字的 “伪特征”?
(三)预习结论
通过预习,明确了轻量级 Transformer 在实时手写汉字识别中的核心优势,掌握了知识蒸馏、推理优化、动态数据增强等关键技术的原理与实现方法,梳理了实验的全流程与潜在问题。针对预习疑问,将在实验中通过控制变量法(如调整知识蒸馏比例、稀疏注意力 k 值)进行验证,确保模型参数配置合理。同时,明确了实验的核心目标是实现 “轻量、高精度、低延迟”,为后续实验设计和优化提供了明确方向。
浙公网安备 33010602011771号