票据是一种重要的资金交易凭证,其在购物、餐饮与交通等日常活动中大量使用。在记录资金交易时,票据中有单位名称、账号以及金额等重要信息,这些信息的准确存档对于银行的统计、结算等工作至关重要。由于票据信息录入是一项繁琐、重复且容易出错的工作[1],因此,票据的频繁使用给财务人员的工作带来巨大挑战。光学字符识别(Optical Character Recognition,OCR)技术在票据中的使用不仅能有效提高工作效率,而且可减轻财务人员的劳动强度。
票据中包括汉字和数字,汉字可分为印刷体和手写体两大类。相比数字与印刷体汉字,手写体汉字的识别难度主要体现在以下3个方面:一是汉字的字符集远大于数字集合且结构复杂,二是与印刷体汉字相比,手写体汉字风格多变且不规范,使得单个字符的识别难度大幅增加,三是手写体汉字书写时可能出现重叠和粘连等情况,导致汉字分割难度较大。此外,实际票据都含有复杂背景,采用图像处理方法去除背景后经常出现字符模糊不清的情况。因此,本文主要对识别票据上的手写公司名技术进行深入研究,采用基于过分割、组合和路径搜索的识别框架,并在识别后采用多种字形相似度结合的方法对其进行纠错,且在纠错过程中利用语言模型LSTM进行语义评估,以提高出现模糊字符时的手写公司名识别准确率。
1 相关工作关于手写汉字文本识别(Handwritten Chinese Text Recognition,HCTR)的研究中,目前主要有两大主流方法:基于过分割、组合和路径搜索的方法以及基于深度学习的不分割方法[2]。前者先对文本进行过分割、组合,再利用字符分类器进行识别,并采用语言模型来搜索路径[3]。然而,基于深度学习的方法不分割文本,而是直接利用神经网络进行识别。
关于过分割的文本识别方法,文献[4]提出一种识别日语邮件地址的算法,该算法采用过分割、组合方式,利用字符分类器进行识别,在路径搜索过程中使用数据库检索和Trie前缀树实现实时识别,使得字符识别准确率达到83.68%。文献[5]通过在生成字符识别候选项后加入词候选项,利用词的合法性进一步筛选,并在路径搜索过程中使用字符级别与词级别混合的语言模型进行剪枝的动态编程搜索,该方法在HIT-HW数据集上的识别准确率达到77.84%。文献[6]通过将图像识别概率、几何信息与语义相整合以提高手写文本识别性能,该方法在路径搜索阶段使用集束搜索(Beam Search)方式,且在CASIA-HWDB[7]数据集上的字符识别准确率达到91.39%。文献[8]采用与文献[6]相同的系统框架,并对比了神经网络语言模型(NNLMs)和BLMs语言模型的性能,且在大型语料上训练字符级别的3-gram、4-gram和5-gram模型。研究结果表明,在CASIA-HWDB数据集上,NNLMs模型和BLMs语言模型表现相当,且可通过插值NNLMs和BLMs的混合模型显著提高其识别性能。文献[9]提出一种新的文本识别框架,在过分割后未直接进行组合,而是重新调整在行中心线上方或下方的过分割项的高度并使之穿过中心线。接下来,使用异构CNN对所有组合项进行识别,再结合CNN识别结果和语言模型进行动态路径搜索。文献[10]提出一种基于半马尔可夫条件随机场(semi-CRFs)的手写文本识别方法,通过在格子上定义semi-CRFs直接估计分割-识别假设的后验概率,其中字符识别、几何和语义信息均被定义为特征函数。文献[11]提出使用3个不同CNN模型分别替换传统的字符分类器、过分割与几何模型,并使用循环神经网络(Recurrent Neural Network,RNN)语言模型对搜索路径进行语义评估,该算法在CASIA-HWDB数据集上的字符识别准确率达到95.95%。
随着深度学习的不断发展,端到端的识别方法得到广泛应用。比如,文献[12]将LSTM-RNN和CTC(Connectionist Temporal Classification)训练框架应用于大类别(3 755类)中文文本的识别研究中,提出一种多维LSTM循环神经网络与CTC相结合的算法,并用于端到端的手写中文文本识别。由于LSTM提取的长期依赖关系存在计算耗时较长等问题,文献[13]提出使用残差块代替循环结构来利用上下文信息,这是因为中文文本行识别可以基于邻居区域而非整个上下文信息,且从邻域中提取的信息仅是对目标字符区域中提取信息的补充。
近年来,基于隐马尔可夫模型(Hidden Markov Model,HMM)的深度神经网络(Deep Neural Network,DNN)被广泛应用于HCTR,且在ICDAR-2013竞赛数据集上获得良好的性能。文献[14]在HMM基础上引入DNN,通过卷积结构自动学习手写文本图像的特征,以取代DNN-HMM中的手工梯度特征,并使用高阶N-gram语言模型评估语义,在CASIA-HWDB数据集上的字符识别错误率达到4.07%。因为基于HMM的方法中每个字符都需使用统一且固定数量的隐藏状态进行建模,然而汉字的词汇量较大,所以需要很多的存储和计算资源。为解决该问题,文献[15]提出简单的DNN-HMM模型,利用汉字间的相似性度量生成关联状态池,并通过关联状态的数据共享和减少状态类间的混淆来提高识别精度,使得字符识别错误率降低6.2%。
在基于过分割、组合和路径搜索的文本识别方法中,为提高识别准确率,通常采用自然语言的方法对结果进行后处理,并基于语言模型对其进行纠正。文献[16]使用字符级别的N-gram模型进行检错,若某个字的概率低于阈值,则认为该字为错误字符。接下来,将对基于拼音和字形的相似度进行纠错。其中,在字形相似度度量方面,文献[17]提出一种扩展的仓颉(Cangjie)码计算字形相似度,该相似度是在Cangjie码的基础上加入汉字组件布局。文献[18]提出一种基于N-gram语言模型和结巴(Jieba)中文分词[19]的方法进行检错与纠错,通过判断连续孤立字检错,利用字符间的拼音、字形相似度和N-gram评估语义进行纠错,该方法在检错和纠错上均取得显著效果。
2 基于区间可靠性的公司名识别本文方法可分为过分割、组合及字符分类器识别、路径搜索、语言模型评估与字符检错纠错4个步骤。
步骤1 过分割是将图像过度分割成字符的基本组成元素,并称这些元素为过分割项。
步骤2 组合及识别是对可能属于同一个字符的过分割项进行合并,利用字符分类器对合并后的候选项进行识别,从而得到合并识别项。然后,根据所有合并识别项识别结果的可靠性以及局部区间的语义可靠性,得到所有局部区间的可靠性。
步骤3 路径搜索是根据局部区间的可靠性进行路径扩展,并利用剪枝策略对扩展过程中的路径进行过滤。
步骤4 采用语言模型评估所有候选路径,并对评分最高的识别结果进行验证与纠错。
采用自然语言处理方法对字符进行检错与纠错,手写中文文本公司名识别流程如图 1所示。
![]() |
Download:
|
图 1 手写中文文本公司名识别流程 Fig. 1 Procedure of handwritten Chinese text recognition for company names |
文献[4]中详细地描述了过分割算法,该算法主要包括连通区分析、连通区粗粒度合并与粘连笔画分割3个步骤。首先,通过连通区分析可以初步得到汉字的笔画或部件。其次,根据相邻连通区的重叠度进行合并。最后,因为手写不规范而造成有些字符间会连笔,所以这些字符会出现在一个连通区中,即笔画粘连。为此,本文使用平均行高H与过分割项的宽、高信息检测粘连过分割项,并对其进行分割,从而得到最终过分割项。
对于每个粘连过分割项,需要检测每一列像素中横向笔画出现的次数。如果沿垂直方向切分,则横向笔画的像素特点是连续的黑色区域且该黑色区域的高度较小。当某一区域的横向笔画数量少于给定阈值时,则确定在该位置进行粘连笔画分割,最终可得到一系列过分割项。图 2举例说明了过分割算法的具体过程,其中,图 2(c)中的竖线与汉字交叉的区域即为检测到可用于分割的横向笔画。
![]() |
Download:
|
图 2 过分割算法过程 Fig. 2 Process of over-segmentation algorithm |
由于过分割项通常只是汉字的一部分,如果要得到完整的汉字,则需要尝试组合连续的过分割项,并利用字符分类器对其进行识别。
2.2.1 分割项组合根据过分割项的宽、高和面积等先验信息将其分为小型、中型和大型3类。其中:小型对应汉字笔画中的点状或者细小部分,该形状通常是其他汉字的一部分,且不能作为完整的汉字单独出现;中型是细高状或中等大小的方形过分割项,可能是汉字的偏旁,也可能是单独构成的汉字;大型则是较大的方形过分割项,一般是汉字的主体部分,同时也有可能单独构成汉字。过分割项的宽度和高度分别表示为w和h,所有过分割项的最大宽度与最大高度分别表示为W与H。如果过分割项的w < W/θ1且h < H/θ2,则将其定义为小型;否则,若h/w > θ3,则将其定义为中型;若以上条件均不满足,但w < θ4×H,则也将其定义为中型;其余情形均被定义为大型,且参数θ1、θ2、θ3和θ4值均由实验来确定。
根据汉字的结构特点,本文进行如下规定:
1)连续2个大型项不允许组合。
2)当组合一个大型项后,不再连续组合大型或中型项。
3)每个过分割项至多组合3个中型项。
4)小型项总是与其他项相组合。
5)若合并项宽度大于设定阈值,则不组合。
一个合并项至多保留前n个识别结果Rk(k=1,2,…,n),且用概率的形式表示。为降低空间复杂度并加快处理速度,在保证至少有一个识别结果的前提下,后面的识别结果Rk(k > 1)若不满足Rk > R1/3且Rk > T,则将会被过滤掉,其中,T为设定阈值。
每个合并识别项都可用五元组(I,C,P,S,E)表示。其中,I是合并项的图像信息,C是字符分类器的识别结果,P对应于C中每一个识别结果的概率,S和E分别是构成该合并项的起始、结束过分割项的位置信息。图 2(d)中部分过分割项(第8项~第13项)的组合方式以及识别结果可以形式化描述为图 3所示,展示了上述五元组的后4个元素(C,P,S,E),如(实,0.99,8,8)。此外,(8,中型)表示第8个分割项是中型。
![]() |
Download:
|
图 3 过分割项组合与识别结果示例 Fig. 3 Example of over-segmented items combination and recognition results |
本文以10层卷积神经网络作为字符分类器,包括7个卷积层、7个池化层和3个全连接层,且网络结构如表 1所示。
![]() |
下载CSV 表 1 本文网络结构类型及参数设置 Table 1 Type and parameter setting of the network structure in this paper |
将原始图像大小调整为96×96并作为网络输入,所有卷积层都使用3×3的小卷积核,步长为1。该网络结构与文献[20]提出的VGGNet相似,不同之处是,本文网络结构在每个卷积层后都增加了最大池化层,池化窗口大小为3×3,步长为2。同时,为加快收敛速度,本文网络结构在每个卷积层和池化层间加入批归一化(Batch Normalization,BN)层与Scale层,减少Dropout的使用。文献[21]表明,含有参数的ReLU(Parameteric Rectified Linear Unit,PReLU)激活函数在ImageNet model A中的训练效果优于ReLU,因此本文使用PReLU替换VGGNet中的ReLU,且参数设置为默认值0.25。在3个全连接层中,第一个全连接层FC1使用BN和Scale代替原来的Dropout,第二个全连接层FC2同时使用BN、Scale和Dropout。为了使模型学习到更多的特征,并保证原始图像在网络输入层调整大小后前景字符仍然保持原始形状,在输入网络结构之前,本文需要对原始图像进行二值化、背景填充等预处理。
2.3 路径搜索每个过分割项在尝试组合后都有一种或多种组合情况,且每种组合情况还会有一个或多个识别结果。本节将对首尾相连的合并识别项进行路径搜索,并使用语言模型评估语义,最终得到合理的路径。在路径搜索阶段,如果使用穷举法,则时间复杂度为指数级,将导致计算量过大,因此需要边剪枝、边搜索。为此,本文提出一种可靠性优先的集束搜索(Reliable First Beam Search,RFBS)方法,在搜索过程中不断对路径进行评估和剪枝,以抑制搜索空间增长过快。本文没有采用传统的从前到后的搜索方式,而是先通过合并项识别的可靠性与区间局部语义的可靠性来确定各个区间的可靠性,并在搜索过程中优先考虑当前最可靠的区间。其中,所使用的区间用过分割项的序号来表示,例如[1, 5]区间是指从第1个过分割项到第5个过分割项。
公司名的结构一般遵循“地名+特殊字符+行业+固定后缀”,比如在“宁夏天胜空调设备有限公司”中,“宁夏”是地名,“天胜”是特殊字符,“空调设备”是行业,“有限公司”是后缀。根据该结构特点,本文利用地名和固定后缀的先验知识在路径搜索前推断识别错误的项,并在搜索后对路径中有语义的行业信息进行进一步验证与纠错。
2.3.1 前后缀推断在公司名中,地名一般包括“北京”“上海”等,固定后缀一般是“有限公司”“有限责任公司”等。根据这些先验知识可推断字符分类器对于地名和后缀识别失败的合并项,从而提升后续搜索过程的准确率。在进行推断时,本文主要考虑以下3个因素:字符位置,地名语料或后缀集合与字形相似度,本节使用的字形相似度将在2.4节中详细分析。
在推断前缀的地名时,因为多数地名只有2个字,所以本文主要考虑地名有2个字的情形。先建立地名语料库,令地名集合为L,地名第一个字的集合为L1,第二个字的集合为L2,L1与L2之间的映射关系分别为f1:L1→L2和f2:L2→L1。f1(x)={y|(x,y)∈L,x∈L1,y∈L2},例如f1(南)={京,昌,宁};f2(y)={x|(x,y)∈L,x∈L1,y∈L2},例如f2(京)={北,南}。在接下来的识别过程中,结合f1(R1)值对识别结果的正确性进行判断,如果判断出识别结果不正确,则需要结合字形相似度决定选择f1(Rj)中哪一个元素进行替换,且替换时还需计算Rj+1与f1(Rj)中所有字的相似度,并选择相似度最高的元素进行替换。同理,如果R1的识别结果不正确,则利用f2函数进行纠正。
针对后缀推断,本文主要是推断出“公司”“有限公司”“有限责任公司”三类公司名后缀。当确定最后一个字为“司”时,则可对“公司”“有限公司”“有限责任公司”后缀进行区分。因为上述3种后缀的重要区分在于路径的倒数第三个字符,所以主要考虑“公”所在区间的前一个合并项识别结果。如果该结果中元素与“限”“任”的字形相似度均小于阈值,则该公司名的后缀为“公司”;否则,判断其与“限”或“任”哪一个字形相似度更高,从而确定是“有限公司”还是“有限责任公司”。
2.3.2 基于图像识别的可靠性分析基于图像识别的可靠性分析是根据每个合并项的识别结果分析该合并项组合方式的可靠性。由于合并项是由过分割项组合而成,对于区间[i,j],以第i个过分割项开始的组合方式有多种,不妨假设共有n种。用Ci,jk表示区间[i,j]中以第i个过分割项开始的第k种组合方式,1≤k≤n;用P(Ci,jk)表示组合方式识别结果的最大置信度,Pm=max{P(Ci, jk)|1≤k≤n},即所有P(Ci, jk)中的最大值;Ps表示所有P(Ci,jk)中的次大值。将合并项组合方式的可靠性按如下方法分为4个等级:
1)非常可靠:P(Ci, jk)≥T1且Pm-Ps≥t。
2)较可靠:P(Ci, jk)≥T1且Pm-Ps < t。
3)可靠:P(Ci, jk) < T1,但其所有的相邻前后合并项的Pm均高于T2,其中,所有相邻前合并项是指以第i-1个过分割项结束的合并项,所有相邻后合并项是指以第i+k个过分割项开始的合并项。
4)不可靠:剩余的其他情形。
实验对上述4个等级分别给Ci,jk的可靠性赋值为4、3、2、1。此外,阈值T1、T2和t通过参数优化实验确定为0.95、0.7、0.2,并用rimg[i][k]保存合并项的图像识别可靠性。
2.3.3 基于语义的区间可靠性分析基于语义的可靠性分析是利用语言模型对区间内的搜索路径进行评估。常用的语言模型包括基于统计的二元文法(Bi-gram)和神经网络语言模型。本文选择Bi-gram的主要原因是:对于公司名的局部区间仅需分析很短的字符串,不需要考虑较长的上下文信息;为了实现动态剪枝,在语义分析时会频繁调用语言模型,然而Bi-gram模型的算法复杂度较低。
定义过分割项集合为O,区间的最大长度为lm=α×|O|。对于每个长度不大于lm的区间[i,j],取出该区间中所有合并项的识别结果并进行路径搜索,再根据搜索结果按如下方式确定区间[i,j]的语义可靠性:
1)路径不存在或路径唯一且长度为1,则该区间的可靠性为0。
2)对于[i,j]中长度大于1的单条或多条路径,利用Bi-gram进行语义评估时,选择最佳评估结果作为该区间的可靠性。
在第3节实验中,阈值α通过汉字结构特点、带语义词的特点和参数优化实验确定为0.4。利用矩阵Rsem保存所有区间基于语义的可靠性,Rsem[i][j]表示区间[i,j]的语义可靠性。为了将语义可靠性与图像识别的可靠性组合使用,本文将其归一化到[0,4]。
2.3.4 可靠性优先的集束搜索本节将结合图像识别的可靠性和语义可靠性给出区间的最终可靠性。由于rimg[i][k]是区间[i,j]中以第i个过分割项开始的第k个合并项Ci,jk的图像识别可靠性,而Rsem[i][j]是基于语义区间[i,j]的可靠性,因此在对其组合前根据rimg[i][k]按如下公式计算出区间[i,j]图像的识别可靠性Rimg[i][j]:
$ {\mathit{\boldsymbol{R}}_{{\rm{img}}}}\left[ i \right]\left[ j \right] = \frac{{\mathop \sum \limits_{s = i}^j \mathop \sum \limits_{k = 1}^n {r_{{\rm{img}}}}\left[ s \right]\left[ k \right]}}{{{C_{{\rm{sum}}}}}} $ | (1) |
其中,rimg[s][k]为区间[i,j]中合并项Ci,jk的可靠性,Csum为该区间中可靠性大于0的合并项总数。将2种区间可靠性按如下公式加权组合得到区间[i,j]的最终可靠性Ry[i][j]:
$ {\mathit{\boldsymbol{R}}_y}\left[ i \right]\left[ j \right] = p \times {\mathit{\boldsymbol{R}}_{{\rm{img}}}}\left[ i \right]\left[ j \right] + \left( {1 + p} \right) \times {\mathit{\boldsymbol{R}}_{{\rm{sem}}}}\left[ i \right]\left[ j \right] $ | (2) |
其中,系数p通过优化实验后确定为0.33,即图像识别可靠性和语义可靠性的权重比约为1:2。
图 4为按加权可靠性划分的区间示例,(0-2,3.02)中0-2代表区间[0, 2],3.02代表该区间的可靠性。可靠区间优先是在搜索过程优先处理可靠的部分,再处理不可靠的部分。在划分区间时,很可能出现区间边界将一个完整汉字拆分成两个部分的情况,如图 4(b)所示,区间[5,11]与[12,13]将汉字“设”拆成两部分。为解决该问题,本文引入滑动边界的概念,即在原始区间的起始和结束边界进行一定范围的左右滑动,以保证过分割项的正确组合。根据汉字的结构特点将边界滑动范围设定为[-2, 2]。例如,图 5中区间的边界中心是[5,11],在进行局部路径(LocPaths)搜索时,左边界可以是[3,7]之间的位置,右边界可以是[9,13]之间的位置。
![]() |
Download:
|
图 4 基于图像识别和语义可靠性的区间划分示例 Fig. 4 Examples of interval partition based on image recognition and semantic reliabilities |
![]() |
Download:
|
图 5 滑动边界示例 Fig. 5 Example of sliding boundary |
本文在引入滑动边界后,将会导致该区间内局部路径增多,甚至导致路径数量呈指数级增长。因此,在扩展之前采用Bi-gram对该区间的局部路径剪枝,并针对不同可靠性的区间动态设定剪枝阈值。同样,区间与区间组合时也会存在路径数量过多的问题,由于这种情况下扩展路径较长,因此采用LSTM[22]进行剪枝。LSTM是基于TensorFlow框架搭建的一个三层单向RNN结构,网络输入序列X={x0,x1,…,xm},输出序列Y={y1,y2,…,ym,ym+1}(xi、yi对应时刻ti的字符)。网络中每个隐藏状态的输入为上一时刻的输出状态hi-1和当前时刻的输入xi,该隐藏状态的输出hi继续作为下一时刻隐藏状态的输入,通过前向计算使得序列中每一时刻字符出现的概率依赖于前面所有字符。在训练时,所有公司名序列长度必须一致,隐藏层的神经元个数为300,初始学习率设为0.001,利用交叉熵计算Y={y1,y2,…,ym,ym+1}与真值序列X′={x1,x2,…,xm,xm+1}的损失函数并进行反向传播。
此外,本文还需解决区间的重叠问题。任何路径都可用一个五元组(s,Sc,Ec,Sf,Ef)表示,其中,s是字符串,Sc、Ec是该区间的原始边界位置,Sf、Ef则是边界滑动后的实际边界位置。当在已有区间的扩展路径(ExpPaths)上扩展LocPaths时,为避免路径重叠需要遵循以下2个原则:
1)LocPaths的Sc、Ec与ExpPaths中已有区间的Sf、Ef不能重叠。
2)如果LocPaths的Sc、Ec与ExpPaths中某个区间的Sc、Ec位置相邻,则必须保证该LocPaths与ExpPaths之间没有空隙。
综合上述方法,基于可靠性优先的路径搜索过程如图 6所示。
![]() |
Download:
|
图 6 基于可靠性优先的路径搜索过程 Fig. 6 Process of path search based on reliability first |
路径搜索结束后将得到多条符合要求的完整路径。针对得到的完整路径,需要先通过路径评估找出最佳路径,再利用自然语言处理方法进行检错和纠错。
首先,由于公司名的半语义特征使得完全依靠语言模型来选择最佳路径得到的结果不理想。因此,本节在筛选完整路径时将综合考虑单个字的识别概率、宽度标准差以及LSTM语义评估结果,并对三者归一化处理后加权得到最终评估结果。通过实验确定当平均识别概率、宽度标准差、语义评分的权重比为1:2:3时,评估效果最佳。
其次,针对公司名的检错,以“北京天胜设备有限公司”为例,“天胜”是语义较弱的特殊字符,其余字符均含有较强的语义信息。依据该特点,可采用Jieba工具对公司名进行分词。在分词结果中非特殊字符位置出现孤立字,则认为是识别错误或组合错误。对于以上两种错误,通过孤立字的位置以及连续长度进行区分。当孤立字不在地名后面时,如果连续孤立字长度为2,则认为是拼写错误;如果长度为3,则需对该区域重新进行过分割项组合与路径搜索,例如“涂料”被识别成“涂米斗”;如果长度超过3,则将其拆分成多种情况再进行上述方法处理。
最后,是关于公司名的纠错。针对拼写错误,常见的错误类型包括相似拼音、相似形状与相似语义。在OCR中,识别错误基本都是形状相似的拼写错误。文献[18]中的纠正形状相似拼写错误的方法会导致候选项区分度不显著,难以选择。针对这种情况,本文在该方法基础上加入汉字的部件相似度,该汉字部件库来自文献[23]。汉字是由一个或多个部件构成,如“智”由“矢”“口”“日”构成。因此,本文的相似度计算方法如式(3)所示:
$ $\begin{array}{l} {S_{w\left( {x, y} \right)}} = {w_1} \times {S_{sj\left( {x, y} \right)}} + {w_2} \times {S_{sn\left( {x, y} \right)}} + \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {w_3} \times {S_{{\rm{img}}\left( {x, y} \right)}} + {w_4} \times {S_{{\rm{com}}\left( {x, y} \right)}} \end{array}$ $ | (3) |
其中,Ssj(x,y)、Ssn(x,y)、Simg(x,y)和Scom(x,y)分别为四角码、笔画数量、字体图像和部件相似度,且其计算方法分别为:
$ {S_{sj}} = \frac{{{\rm{Edit}}\left( {{J_x}, {J_y}} \right)}}{4} $ | (4) |
$ {S_{sn\left( {x, y} \right)}} = \frac{{\left| {{N_x} - {N_y}} \right|}}{{{N_x} + {N_y}}} \times 2 $ | (5) |
$ {S_{{\rm{img}}\left( {x, y} \right)}} = \frac{{{\rm{Size}}\left( {{I_x} \cap {I_y}} \right)}}{{{\rm{Size}}\left( {{I_x} \cup {I_y}} \right)}} $ | (6) |
$ {S_{{\rm{com}}\left( {x, y} \right)}} = \frac{{{\rm{Size}}\left( {{C_x} \cap {C_y}} \right)}}{{{\rm{Size}}\left( {{C_x}} \right) + {\rm{Size}}\left( {{C_y}} \right)}} \times 2 $ | (7) |
其中:Edit(a,b)为文本a与b的编辑距离;Jx、Nx、Ix、Cx分别为字符x的四角码、笔画数量、字体图像与部件集合;Size(C)为集合C的大小。
4种相似度按式(3)加权得到总相似度Sw(x,y),权重参数w1、w2、w3、w4分别设为0.2、0.2、0.3、0.3。通过相似度得到的候选项需要加入原始路径相应位置进行语言模型评估。
3 实验验证与分析本节将通过消融实验验证本文所提方法的有效性。先介绍实验使用的数据集与评价指标,再验证本文方法对公司名的识别准确率和字符纠错效果。
3.1 数据集与评价指标实验数据集可分为公司名语料库和单字符数据集2种,前者是用于训练LSTM、Bi-gram和文本纠错模型的公司名语料,后者用于训练CNN模型。因为目前没有专门用于票据识别的语料库,所以通过网络爬虫构建包含75万条的公司名语料库。单字符数据集使用中科院的手写汉字数据集CASIA-HWDB1.0-1.3,该数据集包含1 020个作者书写的7 200多种汉字,且有3 755个汉字是GB 2312-80定义的一级汉字。实验实际抽取了5 546个汉字,包括全部一级汉字和部分二级汉字,且每个汉字约有1 000张图像。在这1 020个作者中,816个作者的手写汉字作为CNN模型训练集,204个作者的手写汉字作为测试集。本文系统使用的测试样本来自模拟票据中裁剪的只包含公司名的400张图像数据。
在识别实验中,以所有测试样本的字符识别准确率(Character Recognition Accuracy,CRA)和整条识别准确率(Line Recognition Accuracy,LRA)为评估标准。CRA表示识别正确的字符数占总字符数的比例,LRA表示图像中所有字符均识别正确的样本条数占所有测试样本数量的比例。一般情况下,CRA高于LRA。
关于字符纠错实验,本文对从公司名识别结果中选取的300条存在错误汉字的数据进行纠正。用E表示检测出错误汉字的总量,E1表示其中真正的错误汉字的数量,E2表示其中被误检为错误汉字的数量,D1表示真正错误的汉字被正确纠正的数量,D2表示误检错误汉字被错误纠正的数量,则定义rate1=D1/E1,rate2=D2/E2为字符纠错方法的评价指标。rate1越高说明该方法对错误汉字的纠错性能越好,rate2越低说明该方法的鲁棒性越强。
为验证本文所提纠错方法的鲁棒性,本文从ICDAR 2013[24]竞赛数据集中随机抽取图像组合成4 000条公司名。通过对图像增加高斯噪声和均值滤波进行模糊处理,其中,高斯分布的均值和标准差参数分别为3、0.4,均值滤波的核大小为3×3。实验在对处理后的公司名图像进行识别时,对比分析前后缀推断以及纠错方法的有效性。
3.2 实验结果与分析本节实验分为以下2个部分:第一部分是横向对比传统搜索与可靠性优先搜索对识别结果的影响以及分析前后缀推断策略对识别效果的提升,研究纵向分析语言模型对剪枝策略以及可靠区间搜索的影响;第二部分是对比汉字部件相似度以及语言模型对纠正公司名识别错误的效果。
3.2.1 第一部分实验分析结果表 2为不同搜索方法的识别准确率对比。从表 2可以看出:集束搜索方法的CRA和LRA均低于可靠区间优先搜索策略,这是因为集束搜索是单向搜索,当遇到较长或者较混乱的不可靠区间时,会对语言模型产生一定干扰,导致错误区间后面的部分受到较大影响;相比集束搜索方法,基于图像识别的可靠性优先方法的CRA提高2.11个百分点,这表明可靠性优先策略的有效性;由于手写体不规范,CNN的分类结果并不是正确结果,仅依靠图像可靠性存在一定的局限性。相比集束搜索方法,基于语义的可靠性优先方法的CRA和LRA分别提高3.4、4.32个百分点,且比基于图像识别的可靠性优先方法也有所提高,这表明在保留多种组合方式以及CNN的前n种识别结果的情况下,语言模型能够准确评估所有路径的语义,找到能够代表区间可靠性的最佳路径;将图像识别和语义的可靠性相结合的本文方法RFBS的识别准确率最高,且当两者的权重比为1:2时达到最佳识别效果。
![]() |
下载CSV 表 2 不同搜索方法识别准确率对比 Table 2 Comparison of recognition accuracy of different search methods |
表 3为前后缀推断对识别准确率的影响。从表 3可以看出,加入前后缀推断后,CRA和LRA分别提高6.04、22.46个百分点,LRA的提高幅度较大,这说明在整条识别错误结果中,至少1/3的错误来源于前后缀字符,且是由CNN识别错误导致的。
![]() |
下载CSV 表 3 前后缀推断对识别准确率的影响 Table 3 Effect of pre-suffixes on the recognition accuracy |
字符纠错使用的词表来自公司名语料库。通过rate1和rate2验证部件相似度在纠错中的效果,并对比分析基于公司名语料训练的LSTM和Bi-gram对纠错结果的影响。
表 4为不同字符相似度对纠错结果的影响。从表 4可以看出:去除拼音相似度(Spy)后的rate1有所提高,然而rate2降低,这说明拼音特征不适合OCR纠错;第三种组合方式是在第二种组合三种相似度的基础上加入部件相似度,使得rate1提高了8.49个百分点,rate2降低了1.38个百分点。因此,第三种方法能够将真正错误的字符正确纠正过来,且不会纠正误检字符,从而保证方法的鲁棒性;OCR产生的错误字符除了形似导致的识别错误外,还有一部分来源于过分割后的组合错误,从而导致部分汉字缺少偏旁部首,但仍然是完整的汉字。对于这种情况,加入部件相似度(Scom)后可减少候选项的干扰,提高缺少偏旁部首的汉字与完整汉字之间的相似度。
![]() |
下载CSV 表 4 3种字符相似度组合对纠错结果的影响 Table 4 Effect of three character similarity combinations on the error correction results |
表 5为相似度结合字符级别的N-gram、词级别的N-gram和LSTM语言模型对纠错结果的影响。其中,SSIC为Ssj、Ssn、Simg与Scom的相似度组合。从表 5可以看出:基于词级别的N-gram的纠错效果明显高于基于字符级别的N-gram,这是因为在公司名中大部分是专属名词且多数是以词为单位拼接,如果拆分成字,则评估时很难得到正确的语义;相比词级别的N-gram,使用LSTM的rate1提高5.34个百分点,rate2降低1.76个百分点,这是因为LSTM从全局角度考虑每个字在整条公司名中的语义,弥补了N-gram仅考虑局部语义的不足。
![]() |
下载CSV 表 5 3种语言模型对纠错结果的影响 Table 5 Effect of three language models on the error correction results |
表 6为字符纠错方法对公司名识别准确率的影响。从表 6可以看出,加入字符纠错后,CRA和LRA分别提高1.23、8.46个百分点,LRA提高幅度较大,这说明本文所提纠错方法可有效正确纠正语义较强的字符。
![]() |
下载CSV 表 6 字符纠错方法对识别准确率的影响 Table 6 Effect of character error correction methods on recognition accuracy |
表 7为ICDAR 2013组合公司名图像经过模糊处理后,前后缀推断和SSIC方法对识别结果的影响。可以看出:文献[25]提出的GSLRE方法在原始图像上的识别准确率较高,但经过模糊处理后,CRA和LRA分别下降11.22、38.01个百分点;在加入前后缀推断和纠错方法后,CRA和LRA分别提高7.58、28.34个百分点,从而验证了本文所提前后缀推断和纠错方法的有效性。
![]() |
下载CSV 表 7 纠错方法对识别准确率的影响 Table 7 Effect of error correction methods on recognition accuracy |
由于票据背景复杂以及手写体不规范,导致传统的从前向后路径搜索方法对票据的识别效果较差,因此本文提出一种基于CNN图像识别与语义可靠性的路径搜索RFBS方法,以提高出现模糊字符时的手写公司名识别准确率,且与传统集束搜索方法相比,该方法的CRA和LRA均有大幅提高。此外,本文根据公司名的结构特点提出前后缀推断策略,该策略能够有效解决CNN在识别公司名时出现前后缀识别错误的问题。为解决手写体不规范导致的识别错误与组合错误问题,本文结合公司名特点提出一种检错与纠错方法,该方法通过Jieba分词对孤立字的判断进行检错,对组合错误重新进行过分割项组合、路径搜索,并采用改进后的字形相似度方法对识别错误进行纠正,以提高公司名识别准确率。虽然本文所提纠错方法可有效纠正公司名中语义较强的前后缀及行业信息,但是其对语义较弱的特殊字符纠错效果还有待提高。因此,下一步将采用深度学习技术继续对纠错方法进行改进,以提高其对语义较弱特殊字符的纠错效果。
[1] |
HAN Mengdi, CAO Yudong, DU Gang. Recognition algorithms on bank bills image with BP network[J]. Information & Communications, 2016(9): 157-159. (in Chinese) 韩梦迪, 曹玉东, 杜刚. 基于BP神经网络的银行票据识别[J]. 信息通信, 2016(9): 157-159. DOI:10.3969/j.issn.1673-1131.2016.09.079 |
[2] |
WANG Z R, DU J, WANG W C, et al. A comprehensive study of hybrid neural network hidden Markov model for offline handwritten Chinese text recognition[J]. International Journal on Document Analysis and Recognition, 2018, 21(4): 241-251. DOI:10.1007/s10032-018-0307-0 |
[3] |
FU Qiang, DING Xiaoqing, LIU Tong, et al.A novel segmentation and recognition algorithm for Chinese handwritten address character strings[C]//Proceedings of ICPR'06.Washington D.C., USA: IEEE Press, 2006: 974-977.
|
[4] |
LIU C L, KOGA M, FUJISAWA H. Lexicon-driven segmentation and recognition of handwritten character strings for Japanese address reading[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(11): 1425-1437. DOI:10.1109/TPAMI.2002.1046151 |
[5] |
WANG Qiufeng, YIN Fei, LIU Chenglin.Integrating language model in handwritten Chinese text recognition[C]//Proceedings of the 10th International Conference on Document Analysis and Recognition.Washington D.C., USA: IEEE Press, 2009: 1036-1040.
|
[6] |
WANG Qiufeng, YIN Fei, LIU Chenglin. Handwritten Chinese text recognition by integrating multiple contexts[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(8): 1469-1481. DOI:10.1109/TPAMI.2011.264 |
[7] |
LIU Chenglin, YIN Fei, WANG Dahan, et al.CASIA online and offline Chinese handwriting databases[C]//Proceedings of 2011 International Conference on Document Analysis and Recognition.Washington D.C., USA: IEEE Press, 2011: 37-41.
|
[8] |
WU Yichao, YIN Fei, LIU Chenglin.Evaluation of neural network language models in handwritten Chinese text recognition[C]//Proceedings of the 13th International Conference on Document Analysis and Recognition.Washington D.C., USA: IEEE Press, 2015: 166-170.
|
[9] |
WANG Song, CHEN Li, XU Liang, et al.Deep knowledge training and heterogeneous CNN for handwritten Chinese text recognition[C]//Proceedings of the 15th International Conference on Frontiers in Handwriting Recognition.Washington D.C., USA: IEEE Press, 2016: 84-89.
|
[10] |
ZHOU X D, WANG D H, TIAN F, et al. Handwritten Chinese/Japanese text recognition using semi-Markov conditional random fields[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(10): 2413-2426. DOI:10.1109/TPAMI.2013.49 |
[11] |
WU Yichao, YIN Fei, LIU Chenglin. Improving handwritten Chinese text recognition using neural network language models and convolutional neural network shape models[J]. Pattern Recognition, 2017, 65: 251-264. DOI:10.1016/j.patcog.2016.12.026 |
[12] |
MESSINA R, LOURADOUR J.Segmentation-free handwritten Chinese text recognition with LSTM-RNN[C]//Proceedings of the 13th International Conference on Document Analysis and Recognition.Washington D.C., USA: IEEE Press, 2015: 171-175.
|
[13] |
LI Hongzhu, WANG Weiqiang, LV Ke. N-FTRN:neighborhoods based fully convolutional network for Chinese text line recognition[J]. Multimedia Tools and Applications, 2019, 78(16): 22249-22268. DOI:10.1007/s11042-019-7410-1 |
[14] |
WANG Zirui, DU Jun, HU Jinshui, et al.Deep convolutional neural network based hidden Markov model for offline handwritten Chinese text recognition[C]//Proceedings of the 4th IAPR Asian Conference on Pattern Recognition.Washington D.C., USA: IEEE Press, 2017: 816-821.
|
[15] |
WANG Wenchao, DU Jun, WANG Zirui.Parsimonious HMMs for offline handwritten Chinese text recognition[C]//Proceedings of the 16th International Conference on Frontiers in Handwriting Recognition.Washington D.C., USA: IEEE Press, 2018: 145-150.
|
[16] |
YU Junjie, LI Zhenghua.Chinese spelling error detection and correction based on language model, pronunciation, and shape[EB/OL].[2019-11-08].https://www.aclweb.org/anthology/W14-6835.pdf.
|
[17] |
LIU C L, LAI M H, TIEN K W, et al. Visually and phonologically similar characters in incorrect Chinese words[J]. ACM Transactions on Asian Language Information Processing, 2011, 10(2): 1-39. |
[18] |
LIU Hanwen.A Chinese word correction approach[EB/OL].[2019-11-08].https://github.com/liu-hanwen/ChineseCorrector/blob/master/Report.pdf.
|
[19] |
SUN Junyi."Jieba" Chinese word segmentation tool[EB/OL].[2019-11-08].https://github.com/fxsjy/jieba.
|
[20] |
SIMONYAN K, ZISSERMAN A.Very deep convolutional networks for large-scale image recognition[EB/OL].[2019-11-08].https://arxiv.org/abs/1409.1556.
|
[21] |
HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al.Delving deep into rectifiers: surpassing human-level performance on ImageNet classification[C]//Proceedings of 2015 IEEE International Conference on Computer Vision.Washington D.C., USA: IEEE Press, 2015: 1026-1034.
|
[22] |
HIT-COMPUTER.Implement character-level language models for text generation based-on LSTM[EB/OL].[2019-11-08].https://github.com/hit-computer/char-rnn-tf.
|
[23] |
YU Jinxing, JIAN Xun, XIN Hao, et al.Joint embeddings of Chinese words, characters, and fine-grained subcharacter components[C]//Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing, Copenhagen, Denmark.Stroudsburg, USA: Association for Computational Linguistics, 2017: 286-291.
|
[24] |
YIN Fei, WANG Qiufeng, ZHANG Xuyao, et al.ICDAR 2013 Chinese handwriting recognition competition[EB/OL].[2019-11-08].http://www.nlpr.ia.ac.cn/2013papers/gjhy/gh66.pdf.
|
[25] |
XIAO Xuefeng, JIN Lianwen, YANG Yafeng, et al. Building fast and compact convolutional neural networks for offline handwritten Chinese character recognition[J]. Pattern Recognition, 2017, 72: 72-81. DOI:10.1016/j.patcog.2017.06.032 |