基于字素分割的蒙古文手写识别研究
2017-11-27范道尔吉高光来武彗娟
范道尔吉,高光来,武彗娟
(1. 内蒙古大学 计算机学院,内蒙古 呼和浩特 010021;2. 内蒙古大学 电子信息工程学院,内蒙古 呼和浩特 010021)
基于字素分割的蒙古文手写识别研究
范道尔吉1,高光来1,武彗娟2
(1. 内蒙古大学 计算机学院,内蒙古 呼和浩特 010021;2. 内蒙古大学 电子信息工程学院,内蒙古 呼和浩特 010021)
隐马尔科夫模型(HMM)对序列数据有很强的建模能力,在语音和手写识别中都得到了广泛的应用。利用HMM研究蒙古文手写识别,首先需要解决的问题是手写文字的序列化。从蒙古文的构词和书写特点看,蒙古文由多个字素从上到下串联构成。选择字素集合和词的字素分割是手写识别的基础,也是影响识别效果的关键因素。该文根据蒙古文音节和编码知识确定了蒙古文字母集合,共包括1 171个字母。通过相关性处理、HMM排序筛选等手段得到长字素集合,共包括378个字素。对长字素经过人工分解,获得了50个短字素。最后利用两层映射给出了词转字素序列的算法。为了验证长短字素在手写识别中的效果,我们在HTK(hidden Markov model toolkit)环境下利用小规模字库实现了手写识别系统,实验结果表明短字素比长字素有更好的性能。文中给出的字素集合和词转字素序列的算法为后续基于HMM的蒙古文手写识别研究奠定了基础。
蒙古文;字素;HMM;手写识别
1 引言
各种语言的手写体识别是人工智能领域最具有挑战性的研究课题之一,主要包括脱机手写体识别和联机手写体识别。国外在文字识别领域较早地开展了此项工作,由于西文(如英文、法文)大多是拼音文字,字母数量少且书写规整,其印刷体和手写体识别产品早已问世。在国内许多大专院校及科研单位都开展了汉字识别技术的研究工作,且卓有成效。文献[1]中回顾了汉字手写识别发展,及近年来基于深度学习的手写识别研究方法在汉字识别中的应用成果。蒙古语是古老的民族语言之一,属于阿尔泰语系黏着语。在我国,蒙古语和蒙古文有广泛的使用人群,但蒙古文手写识别系统还处于研究阶段。文献[2-3]中最早研究了联机蒙古文识别技术中的特征提取、切分、分类器设计等内容。文献[4]中主要研究了印刷体蒙古文识别中的倾斜校正、字素切分、特征匹配等内容。
一般而言,手写识别系统主要包括数据预处理、特征提取和分类识别三部分,其中识别方法根据语言特点和识别单位可分为基于切分策略和基于无切分策略两种方式。例如汉字识别,如果识别单位是单个字,可采用无切分方法;对于文本行识别,切分和无切分策略都适用[5]。但蒙古文、阿拉伯文等词长不等,只能采用基于切分的策略,即利用滑动窗口按一定步长滑窗,对窗口内的图形进行分类或建模[6-7],再结合统计语言模型得出识别结果[8]。
本文提出了基于字素的目标序列构建方案,并给出了两种字素集合,同时在基于HMM的手写识别系统上对两种字素集合与Unicode编码间进行了性能评估,最终短字素集合表现出了最优性能。字素是构成蒙古文词汇的最小公共图形集合,也是文字序列化单位。通过串联字素可表达任意蒙古文单词,但字素集合的选择没有相关理论或统一的方法,在实际中,需要考虑识别系统的准确率、系统训练规模和词编码转字素序列的复杂度等因素。本文从蒙古文元音、辅音出发,找出了全部的字母表。由于字母表包含相同形状的字母,所以不能直接作为字素集合。我们把每个字母转换成图片,通过相关性删除重复字母,并提出图片排序等方法筛选出长字素集合。在长字素基础上又提出了短字素集合,并利用长、短字素构建基于HMM的蒙古文手写识别系统,验证了基于字素分割手写识别系统的可行性,并为基于深度学习的蒙古文手写识别研究奠定了基础。
本文后续章节安排如下: 第二部分介绍了蒙古文编码、字素、构成等内容;第三部分介绍了字素选择方法和过程;第四部分提出了词转字素序列的算法;最后通过实验验证了字素分割在手写识别系统中的效果。
2 蒙古文简介
蒙古文有独特的构词和书写方法,由7个元音、17个辅音及用于外来语书写的1个元音和9个辅音构成。国际标准编码Unicode把0x1820~0x1842的范围分配给了蒙古文[11]。元音和辅音根据在词中的不同位置和不同上下文会有不同的形状,称之为显现字符。因为不同的显现字符在Unicode中没有单独的编码,所以文字显示时从名义字符转显现字符需要文字引擎,并依靠上下文进行处理。
音节是构成蒙古文单词的最大单元。音节可以由单独的元音、元音+辅音、辅音+元音、辅音+元音+辅音等多种形式构成。图1为蒙古文词、音节、显现字符、名义字符、Unicode编码的示意图。
图1 蒙古文构成元素
图1所示文字由2个音节构成,2个音节都由3个字符构成,形式为辅音+元音+辅音。名义字符出现在词的不同位置具有不同的显现形式,整词由6个编码表示。在手写识别中,最小建模单元的选择至关重要。由于蒙古语构词灵活,所以词的数量非常巨大,整词作为建模对象对于实用系统几乎不可能。我们把由单元音、单辅音、辅音+元音构成的所有组合,以及它们在词首、词中、词尾和独立出现时的不同变体构成的集合定义为蒙古文字母表。按8个元音、26个辅音、4个位置计算,字母表中至少应该包括942个字母。同一个字母在同一个位置也有不同的变体。最终我们确定了1 171个字母。对于上下文关联模型,字母数量也非常巨大,且字母表中有相同形状的字母。
3 蒙古文字素集合
蒙古文属于黏着语,构词灵活,词汇量非常巨大。由于词汇量大,手写识别无法对整词建模,因此必须采用基于分割的识别方式。在大词汇量连续语音识别中,采用音素作为最小的建模单位,类似地在大词汇量手写识别中,我们定义字素为最小的建模单位。本节主要研究字素的选择方法,最终给出了两套字素集合。
3.1 形同字母消除
通过相关性筛选后获得的字素集合中有481个图像,但其中还有很多相似图像。由于长度和位置上的偏差相关性会变得很小,所以算法1无法消除全部类似图片。
3.2 字素排序
为了便于查找相同或相近的图像,提出了基于HMM模型的图像排序思想。首先,对每个字素图像做分帧和特征提取处理,然后把图像变成序列;其次,利用序列数据为每个字素建立HMM建模;最后,计算各个序列在各个HMM模型中的生成概率并排序。
如图2所示的帧,从上到下,每帧4×24大小,帧重叠长度2个像素(图中没有表示重叠效果)。由于原始数据各维度之间的相关性很大,所以用稀疏编码器[12]进行了维度压缩和解相关处理。稀疏编码器输入层有96个神经元,隐含层有24个神经元,输出层也有96个神经元。稀疏编码器属于无监督学习的神经网络,通过训练使输入数据为X时输出也为X,则隐含层的输出即可看作是输入数据的特征。在训练数据量为20万帧、稀疏参数sparsity Param=0.2、稀疏权值beta=1、权值惩罚量lambda=6.7000e-006时,获得较好的效果。
HMM模型对连续变化的随机过程有较好的建模能力。文中定义了如图3所示具有三状态的HMM模型,其中每个状态可以自转移,也可以转移到下一个或下下一个状态。
图2 图形分帧图3 HMM结构
算法2每次需要选择一个基准字素,然后把与基准字素相近的其他字素排序到最前面,以便人工筛查。通过该方法可以提高寻找相似字素的准确率。图4显示了一次排序的效果,从中可以看出与第一个相似的图像都排到了最前面。
图4 基元排序效果
3.3 字素集合
最终我们选出了378个字素,将其定义为长字素集合,如图5所示。长字素中涵盖了蒙古文构词的所有元素,任意词都可以由长字素的串联表达。长字素集合的数量还是比较大,如果做上下文相关建模,模型数量可能会非常庞大。为了进一步减少字素数量,我们对长字素进行了人工分解,定义出了短字素集合,如图6所示。短字素中只有50个元素,但可以串联表达出任意一个长字素。
图5 长字素集合
图6 短字素集合
4 词转字素序列算法
HMM模型训练时,为了省去烦琐的字素边界标注,把整个词序列作为输入数据,但同时需要另一个辅助信息,即词与字素序列对应关系。人工生成对应关系是一项非常耗时的工作,因此下面介绍一种自动生成的算法。长字素来自于字母表,把每个字母映射到长字素上获得“字母长字素映射表”。一个长字素可以由多个短字素串联构成,把每个长字素映射到短字素序列上获得“长短字素映射表”。“字母长字素映射表”按两级排序,第一级按字母的属性(独立、词首、词中、词尾)排序,第二级按字母编码长度的倒序排序。每个字母都有唯一的位置属性: 独立、词首、词中或词尾。长度倒序排序的目的是优先匹配长字母。算法3给出了伪代码描述的算法。
5 实验
为了验证长短字素集合在手写识别中的效果,我们搭建了基于小规模手写字库的蒙古文手写识别系统。系统利用HMM为字素建模,并用字典和语言模型构建了解码网络。整个系统在小规模手写数据上进行了训练,并在测试集上进行了长短字素的性能比较。实验中我们使用HTK实现了HMM训练和解码功能。
5.1 数据准备
实验用小规模手写字库的文字来自于小学一年级课本,共包括939个单词。我们为每个单词采集了30人次的手写文本。书写团队由50人组成。书写者在A4纸的固定位置书写蒙古文。最后所有的纸张被扫描成图片,并经过一系列预处理后生成宽度48像素,高度自适应的手写字库。共采集到了28 484个有效手写样本,其中80%作为训练数据,20%当作测试数据。
我们利用4×48大小的滑动窗口对每个文字图片做了分帧处理,其中帧重叠长度为2像素。由于原始帧各个维度之间相关性过大,所以不利于直接训练HMM模型。我们利用稀疏编码器对每个原始帧做了解相关和降维处理。最终每个文字图片变成了32维特征序列,并被转换成了HTK格式文件。其中训练用数据文件输出到trainfeature目录中,共有22 787个文件;测试用数据文件输出到testfeature目录中,共有5 697个文件;为了方便使用蒙古文,在实验中,蒙古文采用ASCII码表示,且ASCII码和Unicode编码间可以相互转换。训练数据和测试数据的标注文本分别记录在trainprompts.txt和testprompts.txt文件中。这两个文件也需要手动生成。
利用HTK实现语音识别时需要发音词典,即记录单词和音素序列对应关系的文件。同理,手写识别时也需要单词和字素序列对应的文件,这里我们叫做“构成词典”。构成词典通过算法3可以自动生成。由于我们要比较长短字素性能,所以要生成两套构成词典。本实验的任务目标是每次只识别一个单词,即每次只输入一个手写图片。所以这里我们使用了1-gram语言模型。词汇集大小固定为939个单词。任务语法信息记录到gram.txt文件中。内容为:
$WORD = hele | biqig | ... | degegur;( [ $WORD ] )
准备好上述文件之后,其他的一些重要文件可以通过HTK命令或脚本自动生成。例如HTK用任务语法文件net.slf可以由gram.txt文件通过HParse命令转换获得。文字级标注文件trainwords.mlf可以由trainprompts.txt通过prompts2mlf脚本转换获得。字典文件dict.txt和单字素列表文件monophones.txt可以由 “生成字典”通过HDMan命令获得。字素级标注文件可以由字典文件和文字级标注文件通过HLEd命令获得。
每个字素用7状态(2个不发射)left-right结构HMM描述。每个状态可以自转移,也可转移到下一个状态。每个状态观察数据分布用混合高斯分布(GMM)描述,混合数定为5。初始HMM定义采用HTK格式描述并保存到proto.txt。GMM的均值和方差用全部训练数据进行初始化。
5.2 模型训练及解码
利用HERest命令对所有HMM模型进行参数估计,并把参数重建后的HMM模型输出到 model rain1 目录中。再用HERest对model rain1中的HMM进行再次参数估计,并输出到model rain2目录中。同理再重复一次,获得最终的单字素HMM模型,输出到model rain3目录中。其中HERest的参数“-t” 被设置为“250.0 150.0 1000.0”。
为了得到三字素模型,需要准备三字素级标注文件。它可通过单字素级标注文件使用HLEd命令增加参数“WB sil; TC;DE sil”获得。三字素HMM定义文件可以在单字素模型基础上通过共享一些状态或转移概率获得。三字素通常用“A-B+C”形式表示,意为特指出现在A后C前的字素B。这里我们并没有使用复杂的决策树,而采用简单的一种共享策略。所有类似“*-B+*”三字素的HMM共享转移概率矩阵。有了三字素HMM模型后,同单字素训练一样用HERest命令做3次参数估计,最终的模型输出到model rain7目录中。
HMM模型、字典和语言模型逐层合并后构成庞大的解码网络。HVite命令可以在解码网络上根据输入利用“token”传递算法查找最优解码路径。解码结果与正确结果通过HResults命令计算出识别准确率。
5.3 实验结果及讨论
我们分别使用Unicode编码、长基元和短基元构建了单字素和三字素系统,识别准确率如表1所示。其中“N”是数据集中全部单词数、“D”是错误识别单词中属于“删除错误”个数、“S”是错误识别单词中属于“替换错误”个数、“I”是错误识别单词中属于“插入错误”个数。ACC代表准确率,利用式(2)计算。
表1 实验结果
单Unicode系统在测试集上的准确率只有12.90%,远远低于基于字素的系统,主要原因就是Unicode不表示显现字符,系统对不同形状建模困难。长短单字素系统在训练集和测试集上准确率几乎一致,且识别率比较低,说明单字素的建模能力有限,且蒙古文字素之间的关联性比较严重。这与蒙古文的实际情况比较吻合。但在单字素系统中,短字素模型的准确率在训练集和测试集上都比长字素模型提高了将近8%。三字素模型普遍优于单字素模型,其中长字素模型在训练集和测试集上分别提高了46.57%和11.43%,短字素模型在训练集和测试集上分别提高了38.27%和21.98%。在训练集上长、短三字素模型的准确率几乎一致,但在测试集上短字素模型比长字素模型提高了19.82%,说明在上下文关联建模中短字素集合有更好的建模能力。其原因在于短字素集合数量较少,三字素数量也比较少,因此可以得到充分的训练。在短字素集合中,各个字素独立性强,而在长字素集合中,字素间还有很多相似部分。三Unicode系统的性能比单Unicode系统有了非常大的提升,主要原因是利用三Unicode系统后根据上下文已经能确定部分显现字符,因此系统的建模能力也有所提升,但在测试集上的识别率还是比短字素低14.2%。
6 结束语
在基于HMM模型的手写识别系统中 “构成词典”是非常重要的辅助信息。通过本文定义的字素和词转字素序列算法可以自动生成“构成词典”,这可以节省大量的人力劳动,同时保证信息的正确性。文中定义了两套字素集合,实验结果表明短字素集合有更好的性能。文中我们在小规模字库上单独利用HMM模型实现了基于分割的蒙古文手写识别系统,在后续研究中我们将致力于大词汇量和HMM+深度神经网络混合模型的蒙古文手写识别研究。
[1] 金连文, 钟卓耀, 杨钊,等. 深度学习在手写汉字识别中的应用综述[J]. 自动化学报, 2016, 42(8):1125-1141.
[2] 吴伟.联机手写蒙古文字识别技术的研究与实现[D].呼和浩特: 内蒙古大学硕士学位论文,2005.
[3] 白文荣.联机手写蒙古文字识别技术的研究[D].呼和 浩特: 内蒙古大学硕士学位论文,2007.
[4] 魏宏喜.印刷体蒙古文字识别中关键技术的研究[D].呼和浩特: 内蒙古大学硕士学位论文,2006.
[5] Su T H, Zhang T W, Guan D J, et al. Off-line recognition of realistic Chinese handwriting using segmentation-free strategy[J]. Pattern Recognition, 2009, 42(1):167-182.
[6] El-Hajj R, Likforman-Sulem L, Mokbel C. Arabic handwriting recognition using baseline dependant features and hidden Markov modeling[C]//Proceedings of the Eighth International Conference on Document Analysis and Recognition, 2005:893-897.
[7] Al-Hajj R, Mokbel C, Likforman-Sulem L. Combination of HMM-based classifiers for the recognition of Arabic handwritten words[C]//Proceedings of the 12th International Conference on Document Analysis and Recognition. IEEE Computer Society, 2007:959-963.
[8] 马志强, 张泽广, 闫瑞,等. 基于N-Gram模型的蒙古语文本语种识别算法的研究[J]. 中文信息学报, 2016, 30(1):133-139.
[9] Espana-Boquera S, Castro-Bleda M J, Gorbe-Moya J, et al. Improving offline handwritten text recognition with hybrid HMM/ANN Models[J]. IEEE Transactions on Pattern Analysis amp; Machine Intelligence, 2011, 33(4):767-79.
[10] Graves A, Schmidhuber J. Offline handwriting recognition with multidimensional recurrent neural networks[C]//Proceedings of the Conference on Neural Information Processing Systems, Vancouver, British Columbia, Canada, December. DBLP, 2012:545-552.
[11] 王震, 刘汇丹, 吴健. 新标准体系下蒙古文变形显现模型的设计与实现[J]. 中文信息学报, 2013, 27(1):108-114.
[12] Baldi P, Guyon G, Dror V, et al. Autoencoders, unsupervised learning, and deep architectures editor: I [J]. Journal of Machine Learning Research, 2012.
范道尔吉(1980—),博士研究生,讲师,主要研究领域为人工智能,模式识别与蒙古文信息处理。
E-mail:fandaoerji@126.com
高光来(1964—),教授,主要研究领域为人工智能,模式识别与蒙古文信息处理。
E-mail:csggl@imu.edu.cn
武慧娟(1981—),硕士,讲师,主要研究领域为模式识别,蒙古文信息处理。
E-mail:wuhj@imu.edu.cn
GraphemeSegmentationBasedMongolianHandwritingRecognition
FAN Daoerji1,GAO Guanglai1,WU Huijuan2
(1. College of Computer Science, Inner Mongolia University, Hohhot, Inner Mongolia 010021,China;2. College of Electronic Information Engineering, Inner Mongolia University, Hohhot, Inner Mongolia 010021,China)
Hidden Markov Models(HMM) has strong modeling capabilities for sequence data, and it is widely used in speech recognition and handwriting recognition task. HMM-based Mongolian handwriting recognizers require the data to be analyzed sequentially. According to Mongolian word formation and writing style, it is evident that a Mongolian word consists of grapheme seamless connected from top to down. The selection of grapheme and segmentation word to grapheme is a preliminary work for handwriting recognition with substantial effects on recognition accuracy. In this paper, according to knowledge of syllables and coding, we collect a Mongolian letters set of 1 171 letters. The long grapheme set which contain 378 grapheme is then extracted from letters set by correlation process and HMM based sorting method. The short grapheme set which contain 50 shapes is extracted from long grapheme set via decompose long grapheme by hands. We present an algorithm to decompose a word to grapheme by two layers mapping. Experimental results show that the short grapheme get better performance than long grapheme.
Mongolian; grapheme; HMM; handwriting recognition
1003-0077(2017)05-0074-07
TP391
A
2016-08-30定稿日期2017-03-27
内蒙古自治区自然科学基金(2016MS0603)