脱机手写中文文本行识别系统——软件设计方案
作者:互联网
脱机手写中文文本行识别系统——软件设计方案
通过高级软件工程课,我学习到了软件工程分析的方法。本文将对工程实践使用软件工程方法进行分析。
我的工程实践选题是基于深度学习的脱机手写中文文本行识别系统。脱机手写中文文本行识别是指,将手写体的中文纸质文档通过扫描或拍照的方式转化为数字图像,并进一步对该图像中的中文文本行进行识别。目前,随着以 CNN 为代表的一系列深度学习模型的出现, 手写单字符中文识别问题已基本上得到了很好解决。但相对单个汉字识别而言, 含序列信息的脱机手写中文文本行的识别率急剧下降,仍然是此领域还未解决的难点问题之一。
参考资料:课堂PPT
(一)课题内容
本选题拟实现一个基于深度学习的脱机手写中文文本行识别系统。具体包括:
(1)通过收集/合成更多类别的汉字及不同的书写风格、结合相关数据增强技术来丰富训练集,以提高当前模型结构的泛化能力。
(2)设计和实现至少一个文本行识别模型。
(3)在训练集上进行参数优化,完成模型的训练。
(4)结合后处理的纠错技术,以提高模型的最终的推理精度。
(5)在测试集上,完成对整个系统的评测。
(6)系统部署。
1. 系统概要设计
1) 体系结构设计
通过需求分析,可以设计一个实用的脱机手写中文文本行检测和识别系统,本文开发的自然场景文本识别的系统具有五个关键的模块,它们是工具类模块,图像预处理模块,文本行检测模块,文本识别模块。系统体系结构如图
图3.3.1系统的体系结构图
2) 系统功能模块
工具类模块的主要功能是在训练文本行识别模型前扩充文本行训练集。预处理模块的主要功能是进行数据增强。能够更好的模拟自然场景下的手写中文文本,可以使模型的抗干扰能力增强,同时可以使得模型避免过拟合。文本行检测模块的功能性需求是能够较准确的检测出一页中的文本行,并且能够快速准确的将每行文本用矩形区域框出来。文本行识别模块的功能性需求是能够较准确的识别自然场景中文本的信息,文本行识别是对文本行检测中提取的矩形区域中的文本进行识别。UI模块主要功能是为用户提供使用此系统的个性化界面。
- 工具类模块
(1) 单字合成文本行:为扩充文本行训练集,随机选择指定个数单字,将单字拼接成指定长度的文本行,并生成对应文本行标签, 如图3.3.2所示
图3.3.2工具类模块的输入输出流
- 图像预处理模块
(1) 随机平移:将文本行中的每个汉字上下平移随机范围的长度。
(2) 随机插入间隙:将文本行的每个汉字之间随机插入一段随机大小范围的间隙。
(3) 随机透明度:将文本行的每个汉字随机设置一定范围内的透明度。
(4) 噪声:对文本行加入噪声。
如图3.3.3所示:
图3.3.3图像预处理模块的输入输出流
- 文本行检测模块
(1) 构建文本行检测网络:选择恰当的神经网络模型,设置适宜的输入参数、模型的超参数以及损失函数,用于文本行的检测。
(2) 训练文本行检测模型:将训练集经过预处理后输入到文本行检测网络中进行训练,不断进行迭代以降低模型的损失值,提高精确度。
(3) 定位文本行:将文本行待定位的图片输入到已经训练好的模型中,经过后处理得到文本行已定位的图片(即每行用矩形框框出的图片)。
如图3.3.4所示:
图3.3.4 文本行检测模块的输入输出流
- 文本行识别模块
(1) 构建文本行识别网络:选择恰当的神经网络模型,设置适宜的输入参数、模型的超参数以及损失函数,用于文本行的识别。
(2) 训练文本行识别模型:将训练集经过预处理后输入到文本行识别网络中进行训练,不断进行迭代以降低模型的损失值,提高精确度。
(3) 识别文本行:将已定位好文本行的图片输入到已经训练好的文本行识别模型中,经过后处理得到文本行图片对应的文本信息。
如图3.3.5所示:
图3.3.5 文本行识别模块的输入输出流
- UI模块
(1)可视化识别界面:实现人机交互功能,用户可以选择浏览手写中文图片,然后生成模型识别出来的对应的文本信息并显示在屏幕上。
标签:识别系统,软件设计,模型,脱机,文本,3.3,模块,手写,识别 来源: https://www.cnblogs.com/yaojinsong/p/14203601.html