郑州大学学报(理学版)  2021, Vol. 53 Issue (3): 9-14  DOI: 10.13705/j.issn.1671-6841.2020277

引用本文  

熊黎剑, 吾守尔·斯拉木, 许苗苗. 基于Django印刷体维吾尔文识别系统的设计与实现[J]. 郑州大学学报(理学版), 2021, 53(3): 9-14.
XIONG Lijian, WUSHOR Silamu, XU Miaomiao. Design and Implementation of Printed Uyghur Recognition System Based on Django[J]. Journal of Zhengzhou University(Natural Science Edition), 2021, 53(3): 9-14.

基金项目

国家自然科学基金项目(61433012);国家“973”重点基础研究计划基金项目(2014CB340506)

通信作者

吾守尔·斯拉木(1941—),男,教授,中国工程院院士,主要从事多语种信息处理研究,E-mail: wushour@xju.edu.cn

作者简介

熊黎剑(1996—),男,硕士研究生,主要从事OCR研究,E-mail: xiong_lijian@163.com

文章历史

收稿日期:2020-08-25
基于Django印刷体维吾尔文识别系统的设计与实现
熊黎剑1,2,3, 吾守尔·斯拉木1,2,3, 许苗苗1,2,3    
1. 新疆大学 信息科学与工程学院 新疆 乌鲁木齐 830046;
2. 新疆多语种信息技术实验室 新疆 乌鲁木齐 830046;
3. 新疆多语种信息技术研究中心 新疆 乌鲁木齐 830046
摘要:光学字符识别(optical character recognition,OCR)技术在图书数字化、文献管理等诸多领域得到了广泛应用,而相比于已十分成熟的中文、英文印刷体识别系统,小文种(维吾尔文)印刷体识别还有研究空间和实际应用需求。针对传统识别方法特征表示不足等问题,结合日益兴起的深度学习技术,采用Python语言编程,选用经改进的卷积循环神经网络作为识别算法核心,并利用Django设计系统框架。实验表明,印刷体维文识别系统的精度达到95.7%,平均速度达到12.5 fps。该系统实现了端到端的维文整词识别。
关键词卷积循环神经网络    门控循环单元    连接时序分类器    印刷体维吾尔文    
Design and Implementation of Printed Uyghur Recognition System Based on Django
XIONG Lijian1,2,3, WUSHOR Silamu1,2,3, XU Miaomiao1,2,3    
1. School of Information Science and Engineering, Xinjiang University, Urumqi 830046, China;
2. Xinjiang Multilingual Information Technology Laboratory, Urumqi 830046, China;
3. Xinjiang Multilingual Information Technology Research Center, Urumqi 830046, China
Abstract: Optical character recognition (OCR) has been widely used in many fields such as book digitization and document management.Compared with the more mature Chinese and English printed recognition system, there is still room for research and practical application of Uyghur printed recognition. Aiming at the problem of insufficient feature representation of traditional recognition methods, the rising deep learning technology was combined, the Python language programming was used, the improved convolutional recurrent neural network as the core of recognition algorithm was selected, and Django was used to design the system framework. The experimental results showed that the accuracy of the system was 95.7% and the average speed was 12.5 fps, which realized the end-to-end Uyghur whole word recognition.
Key words: convolutional recurrent neural network    gated recurrent unit    connectionist temporal classification    printed Uyghr    
0 引言

随着信息化社会的不断推进,光学字符识别(optical character recognition,OCR)技术在各领域开花结果。印刷体文字识别在数字化办公、文献管理等方面均有良好的应用前景。相比于已成熟化的印刷体中、英文识别,印刷体维吾尔文识别还有研究空间[1]。维吾尔文多使用于我国新疆地区,包含32个字母,其中8个元音字母,24个辅音字母,词序是主语-谓语-宾语[2]。有一些维文字母的主体部分相同,仅依靠上下点的标记来区别不同字符[3]。同时,当字母出现在词前、词中、词末以及独立出现时,对应的写法也不同,切分不当会导致单词的改变,所以本文从整词识别入手。已有研究方法多以传统方法为主,如基于统计和结构的方法[4]、模板匹配法[5]等。这些方法往往需要较多的人工干预,包括手工设计特征和人工建立标准的匹配库等,因此效率不高。

近些年以来,国内相关的维文OCR系统是西安电子科技大学卢朝阳教授团队开发的维吾尔文识别软件。它的设计核心是:单词切分成字符再结合人工选取的特征(如方向线素特征和梯度特征),再用欧氏距离分类器[6-8],最终得到候选结果。2019年,该实验室又利用“翻字典”原理设计了从字符到单词的两级级联分类器[9],完成了维文单词的识别。以上方法均是手工选取特征结合分类器进行识别,在特征选择方面具有一定的局限性。

本文选用经改进的卷积循环神经网络(convolutional recurrent neural network,CRNN)和连接时序分类器(connectionist temporal classification,CTC)作为文字识别的核心算法,Django作为构建前后端的框架,搭建了完整的维文整词识别系统。

1 算法原理 1.1 卷积循环网络

用于文字识别领域的卷积循环神经网络(CRNN)是由Shi等提出的[10]。它由深层卷积网络(deep convolutional neural network, DCNN)加循环网络(recurrent neural network, RNN)构成。随着计算机视觉领域研究的持续火热,DCNN经常被用于图像特征提取,同时,它也在目标检测[11-12]、情感分析[13]、图像处理[14]等方面表现优异,但是文字的检测与识别不同于一般的目标检测任务,基于特征(人工设计或CNN得到)及分类的方法往往忽视了文本隐含上下文关联的特点。RNN能处理序列信息,在原有的CRNN中,RNN部分是双向长短期记忆网络(bi-directioanl long short-term memory,BiLSTM),但其结构复杂,训练收敛速度慢。本文将BiLSTM替换为更为简洁的双向门控循环神经单元网络(bi-directioanl gated recurrent unit,BiGRU)[15]。实验证明,改进后的CRNN网络比原有网络收敛的速度更快,同时,在测试精度方面也有略微提升。

1.2 门控循环神经单元网络(GRU)

GRU是在RNN和LSTM的基础上一步步演变而来的,LSTM网络解决了RNN在训练时容易出现梯度爆炸和梯度消失的问题,而相比LSTM更为复杂的3门结构——输入门、忘记门和输出门,GRU将其简化为2门结构——更新门和重置门,这样简洁的结构减少了网络训练收敛时间,具有更高的计算效率,提高了模型精度。GRU内部结构如图 1所示。

图 1 GRU结构图 Fig. 1 Diagram of GRU structure

GRU的前向传播计算公式[15]

$ \left\{\begin{array}{l} z_{t}=\sigma\left(\boldsymbol{W}_{z} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{x}_{t}\right]\right), \\ \boldsymbol{r}_{t}=\sigma\left(\boldsymbol{W}_{r} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{x}_{t}\right]\right), \\ \overline{\boldsymbol{h}}_{t}=\tanh \left(\boldsymbol{W}_{\bar{h}} \cdot\left[\boldsymbol{r}_{t} * \boldsymbol{h}_{t-1}, \boldsymbol{x}_{t}\right]\right), \\ \boldsymbol{h}_{t}=\left(1-z_{t}\right) * \boldsymbol{h}_{t-1}+z_{t} * \overline{\boldsymbol{h}}_{t}, \end{array}\right. $

式中:zt代表更新门;σ代表Sigmoid激活函数;Wz代表更新门权重矩阵;ht-1代表t-1时刻隐藏层的输出;xt代表t时刻输入;[]表示两个向量相连;rt代表重置门;Wr代表重置门权重矩阵;ht代表t时刻的候选隐藏层;tanh代表双曲正切激活函数;Wh代表候选隐藏层权重矩阵;*代表矩阵的哈达玛积;ht代表t时刻隐藏层的输出。

重置门用来控制需要保留多少之前的信息,被忘记的历史信息越多,其值越小;更新门主要决定被添加到当前状态信息中的历史信息量,经过Sigmoid函数激活,取值为0~1;这两个门共同决定了隐藏状态的输出。

本文采用正向GRU和反向GRU结合成双向GRU(BiGRU),并用双层堆叠形式进行序列建模,其中隐藏层单元数为256。如图 2所示。

图 2 系统框架图 Fig. 2 Diagram of system frame
1.3 连接时序分类器

连接时序分类器是一种用于解决不等长序列的输出问题(序列对齐问题)的算法,最早由Graves提出,之后他又将CTC成功应用于语音识别方面[16]。训练时无须切分语料,也不需要中间语音的表示,在测试集上错误率低至17.7%。该解码算法能有效解决输入、输出序列不等长的问题。

数学模型上,CTC层也叫转录层,是根据上一层(RNN层)输出长度为T的预测序列{x1, x2,…,xT},去寻找具有最高概率的标签序列。

$ p(l \mid x)=\sum\limits_{\pi \in F^{-1}(l)} p(\pi \mid x), $ (1)
$ p(\pi \mid x)=\prod\limits_{t=1}^{T} y_{\pi_{t}}^{t}, $ (2)

式(1)表示输出标签序列的概率是多条路径概率之和。其中:l是标签序列;x是输入序列;π是输出路径;F-1是标签到路径的映射。式(2)表示基于输入x输出π路径的概率。其中:T是输入序列长度;yπttt时刻输出π路径的概率。

维吾尔文识别的一个CTC实例。

1) RNN层输出标签序列,时序中没有标签的地方用“-”代替

2) CTC去除空白标签“-”,删除重复标签,只保留

3) 整个过程可表示为(汉语意思为“建立”)。

由上述实例可以看出,CTC对齐前的输入序列长度为26,CTC对齐后的输出序列长度为5,可见CTC有效地解决了序列对齐问题。

2 识别系统的设计与实现 2.1 系统框架

本文采用开源的Django设计系统,遵循M(model)T(templete)V(view)模式。用户在浏览器端发送请求,通过urls.py发给view处理,view再调用对应的templete和model进行处理。其中view负责业务逻辑,templete(主要是HTML文件)负责页面展示,model负责数据库对象和业务对象。这种松耦合和相互独立的特性,易于开发和维护。系统流程如图 3所示。

图 3 系统框架图 Fig. 3 Diagram of system frame
2.2 系统功能与展示

后台输入命令启动服务,然后在浏览器页面输入网址, 开启Web服务。

1) 上传功能。选择一张本地图像,点击提交,图像会自动上传到后台splite数据库。

2) 识别功能。后台读取数据库中的图像,调用识别模块和计时模块,将识别结果(汉语意思为“创造力”)、时间(0.07 s)、原图片及图片名返回前端页面并显示,如图 4所示。

图 4 系统展示图 Fig. 4 Photo of system
3 实验与结果 3.1 实验数据

1) 训练数据(合成数据)

利用JAVA语言编写脚本,合成了含32个维文字母(8个元音,24个辅音)在内的约10万张图片数据(JPG格式),以及对应的标签数据(TXT格式)。同时,为了使训练样本更具代表性,本文对32个维文字母作了数据均衡处理。部分训练图片如图 5所示。

图 5 部分训练数据 Fig. 5 The sample of training data

2) 测试数据(真实数据)

从天山网(维文版)(http://uy.ts.cn/)中的不同栏目进行收集并制作成测试图片和标签。总数约1 500张,部分测试数据图片如图 6所示。

图 6 部分测试数据 Fig. 6 The sample of testing data
3.2 实验设置

为了验证系统的有效性,本文设置了对比实验。采用约10万张图片作为训练数据,分别在CRNN和改进的CRNN(BiGRU)上训练,并将训练得到的模型文件分别在测试集上进行测试。实验中的PC机主要配置为:Nvidia独立显卡(1060Ti 6G内存)等。所依赖的软件及环境为:Pycharm(社区版)编译工具、Ubuntu18.04操作系统、Python3.6.2编程语言、Pytorch1.2.0等。

1) 实验中精度的定义为A=(nt/ns)·100%,其中:nt代表正确识别样本数;ns代表样本总数;A代表识别精度。

2) 实验中识别速度的定义为v=1/(to-ti),其中:to代表获得字符串时刻;ti代表输入图片时刻;v代表识别速度。

3) 实验中网络训练的损失函数定义为$ O=-\sum\limits_{I_{i}, l_{i} \in X} \log p\left(l_{i} \mid y_{i}\right)$, 其中:χ代表训练集;Ii代表输入图片;li代表标签序列;yi代表循环层产生的概率预测序列。从损失函数可知,它直接从输入的维文印刷体图片Ii和对应的单词标签序列li中计算损失值,网络实现了字母免分割的训练。

3.3 实验结果

本实验对两种方法均进行了充分训练,当损失趋于收敛后,保留最终模型文件,其中CRNN(BiGRU)收敛速度更快。在测试集上,CRNN的精度为94.1%,CRNN(BiGRU)的精度为95.7%,平均速度为12.5 fps,表现出较好性能。究其原因,循环层由BiGRU替换,简化了模型结构,加快了模型训练收敛速度,提高了计算效率。此外,训练数据均衡也使得识别率较为稳定。

4 结语

针对传统维文识别方法特征表示不足和基于切分的识别方法易出错等问题,本文从整词识别入手,采用卷积神经网络自动提取文字的深层次抽象特征,并对循环层进行改进,用BiGRU替换原有的BiLSTM,改善了识别性能。引入连接时序分类器,很好地解决了维文字符难切分以及不等长输入输出问题。测试识别精度达到95.7%,平均速度达到12.5 fps。最后,利用Django框架,设计了一个端到端的维文整词识别系统。因此,该系统具有一定的实际应用价值。然而,现有系统只能识别纯维文(不含数字、字符),从实际应用的角度来看,后续工作可将常用的符号和数字纳入识别系统,进一步完善该系统。

参考文献
[1]
UBUL K, TURSUN G, AYSA A, et al. Script identification of multi-script documents: a survey[J]. IEEE access, 2017, 5: 6546-6559. (0)
[2]
彭勇, 哈力旦·阿布都热依木, 丁维超. 基于改进单深层神经网络的自然场景中维吾尔文检测[J]. 计算机应用研究, 2019, 36(9): 2876-2880.
PENG Y, HALIDAN A, DING W C. Uyghur text detection in natural scene based on improved single deep neural network[J]. Application research of computers, 2019, 36(9): 2876-2880. (0)
[3]
艾力·居麦, 哈力旦·A, 黄浩. 视频图像中维吾尔文字的识别研究[J]. 计算机工程与应用, 2011, 47(36): 190-192.
ELI J M, HALIDAN A, HUANG H. Recognition of extracting Uyghur texts from videos images[J]. Computer engineering and applications, 2011, 47(36): 190-192. (0)
[4]
买买提依明·哈斯木, 吾守尔·斯拉木, 维尼拉·木沙江, 等. 基于统计专用字符的维、哈、柯文文种识别研究[J]. 中文信息学报, 2015, 29(2): 111-117.
MAIMAITIYIMING H, WUSHOUER S, WEINILA M, et al. Unique character based statistical language identification for Uyghur, Kazak and Kyrgyz[J]. Journal of Chinese information processing, 2015, 29(2): 111-117. (0)
[5]
于丽, 亚森·艾则孜. 基于HOG特征和MLP分类器的印刷体维吾尔文识别方法[J]. 微型电脑应用, 2017, 33(6): 30-33.
YU L, YASEN A. A printed Uyghur recognition method based on HOG feature and MLP classifier[J]. Microcomputer applications, 2017, 33(6): 30-33. (0)
[6]
许亚美. 手写维吾尔文字识别若干关键技术研究[D]. 西安: 西安电子科技大学, 2014.
XU Y M. A study of key techniques for Uighur handwriting recognition[D]. Xi′an: Xidian University, 2014. (0)
[7]
白云辉. 印刷体维吾尔文单词识别[D]. 西安: 西安电子科技大学, 2014.
BAI Y H. Printed Uyghur word recognition[D]. Xi′an: Xidian University, 2014. (0)
[8]
郎潇. 基于切分的印刷体维吾尔文单词识别[D]. 西安: 西安电子科技大学, 2015.
LANG X. Recognition of printed Uyghur words based on segmentation[D]. Xi′an: Xidian University, 2015. (0)
[9]
李旦旦. 印刷体维吾尔文单词识别的分类器设计[D]. 西安: 西安电子科技大学, 2019.
LI D D. Classifier design for printed Uyghur word recognition[D]. Xi′an: Xidian University, 201 (0)
[10]
SHI B G, BAI X, YAO C. An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition[J]. IEEE transaction on pattern analysis & machine intelligence, 2017, 39: 2298-2304. (0)
[11]
张建明, 刘煊赫, 吴宏林, 等. 面向小目标检测结合特征金字塔网络的SSD改进模型[J]. 郑州大学学报(理学版), 2019, 51(3): 61-66, 72.
ZHANG J M, LIU X H, WU H L, et al. Improved SSD model with feature pyramid network for small object detection[J]. Journal of Zhengzhou university (natural science edition), 2019, 51(3): 61-66, 72. (0)
[12]
佘颢, 吴伶, 单鲁泉. 基于SSD网络模型改进的水稻害虫识别方法[J]. 郑州大学学报(理学版), 2020, 52(3): 49-54.
SHE H, WU L, SHAN L Q. Improved rice pest recognition based on SSD network model[J]. Journal of Zhengzhou university (natural science edition), 2020, 52(3): 49-54. (0)
[13]
陈珂, 梁斌, 左敬龙, 等. 一种用于中文微博情感分析的多粒度门控卷积神经网络[J]. 郑州大学学报(理学版), 2020, 52(3): 21-26, 33.
CHEN K, LIANG B, ZUO J L, et al. Multiple grains-gated convolutional neural networks for Chinese microblog sentiment analysis[J]. Journal of Zhengzhou university (natural science edition), 2020, 52(3): 21-26, 33. (0)
[14]
王知人, 谷昊晟, 任福全, 等. 基于深度卷积残差学习的图像超分辨[J]. 郑州大学学报(理学版), 2020, 52(3): 42-48.
WANG Z R, GU H S, REN F Q, et al. Residual learning of deep CNN for image super-resolution[J]. Journal of Zhengzhou university (natural science edition), 2020, 52(3): 42-48. (0)
[15]
WANG Y S, LIAO W L, CHANG Y Q. Gated recurrent unit network-based short-term photovoltaic forecasting[J]. Energies, 2018, 11(8): 2163. (0)
[16]
GRAVES A, MOHAMED A R, HINTON G. Speech recognition with deep recurrent neural networks[C]//IEEE International Conference on Acoustics, Speech and Signal Processing. New York: IEEE Press, 2013: 6645-6649. (0)