«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (9): 304-312  DOI: 10.19678/j.issn.1000-3428.0059118
0

引用本文  

闫茹, 孙永奇, 朱卫国, 等. 基于CNN与有限状态自动机的手写体大写金额识别[J]. 计算机工程, 2021, 47(9), 304-312. DOI: 10.19678/j.issn.1000-3428.0059118.
YAN Ru, SUN Yongqi, ZHU Weiguo, et al. Recognition of Handwritten Capitalized Chinese Currency Amounts Based on CNN and Finite State Automata[J]. Computer Engineering, 2021, 47(9), 304-312. DOI: 10.19678/j.issn.1000-3428.0059118.

基金项目

国家自然科学基金(61572005,61672086,61272004)

通信作者

孙永奇(通信作者), 教授

作者简介

闫茹(1994-), 女, 硕士研究生, 主研方向为图像处理、深度学习;
朱卫国, 博士研究生;
李宇霞, 硕士研究生

文章历史

收稿日期:2020-07-31
修回日期:2020-09-11
基于CNN与有限状态自动机的手写体大写金额识别
闫茹 , 孙永奇 , 朱卫国 , 李宇霞     
北京交通大学 计算机与信息技术学院, 北京 100044
摘要:手写票据识别是模式识别中的研究难点之一,手写体风格多样、票据背景复杂等原因导致手写票据识别的准确率不高。大写金额作为票据中最重要的部分,对其进行准确识别是手写票据自动识别的关键。对基于分割的手写体大写金额识别及处理问题进行研究,提出一种基于卷积神经网络(CNN)与有限状态自动机的手写体大写金额识别方法。在利用过分割和组合过分割项得到单字符后使用CNN对其进行识别。通过对字符进行分类、定义各类字符之间的逻辑关系构造用于语法检查的有限状态自动机,通过语法自动机在识别结果中选择符合语法规则的字符串,并在路径搜索中利用语法自动机优化搜索性能。在此基础上,运用语法自动机对模糊字符进行预测,以纠正CNN的识别错误。实验结果表明,该方法在对大写金额单字符和文本行进行识别时准确率分别高达98.2%与96.6%。
关键词卷积神经网络    有限状态自动机    手写票据识别    大写金额    光学字符识别    模式识别    
Recognition of Handwritten Capitalized Chinese Currency Amounts Based on CNN and Finite State Automata
YAN Ru , SUN Yongqi , ZHU Weiguo , LI Yuxia     
School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044, China
Abstract: The handwritten check recognition is a tough problem in pattern recognition.The challenge is that various handwriting styles and complex check backgrounds reduce the recognition accuracy.The capitalized Chinese currency amount is the most important part of a check, and its recognition is key to automatic processing of handwritten check images.This paper presents the study of segmentation-based recognition of handwritten capitalized Chinese currency amounts, and on this basis proposes a recognition method based on Convolutional Neural Network(CNN) and finite state automata.The method employs the over-segmented items and their combinations to obtain single characters, which are subsequently recognized by using CNN.Then the characters are categorized, and the logic relationships between them are defined to construct a finite state automaton for grammar detection.The automaton is used to select the grammatically correct strings from the recognition results, and the grammar automaton is used to optimize the performance of paths search.In addition, the grammar automaton is used to predict the fuzzy characters to correct the errors in the recognition results of CNN.The experimental results show that the accuracy of the proposed method achieves 98.2% for capitalized single characters, and 96.6% for text lines of currency amounts.
Key words: Convolutional Neural Network(CNN)    finite state automata    handwritten bank check recognition    capitalized Chinese currency amounts    optical character recognition    pattern recognition    

开放科学(资源服务)标志码(OSID):

0 概述

票据是银行、单位和个人办理支付结算和现金收付业务的重要依据,是记载经济业务和明确经济责任的一种书面证明。票据数量繁多且非常重要,操作人员稍有不慎便可能造成很大的经济损失,因此,利用光学字符识别(Optical Character Recognition,OCR)技术对票据进行自动识别具有重要意义。作为票据中最重要的部分,金额的识别尤为关键,不能出任何差错。目前,手写票据中大写金额部分的识别准确率达不到令人满意的效果,原因有两点:一是用户在书写时风格多样,字符内部、字符之间的空隙大小不均,字与字之间可能粘连严重;二是手写票据有一大部分是复写数据,存在字迹不清楚、笔画缺失且噪声难以完全去除的问题。此外,汉字文本行的识别涉及整条文本行图像的去噪、准确切分、单字识别以及路径最优化选择等多项复杂任务,每一部分都会影响最后的识别结果。因此,对手写票据中的大写金额进行准确识别是一个亟待解决的问题。

为提高大写金额的识别准确率,需要对初步的识别结果做进一步的检查调整。由于票据中大写金额的填写具有严格的语法要求,因此很适合使用有限状态自动机对识别结果进行检验,而且大写金额字符数量少、内容明确,适用于构造有限状态自动机。此外,使用有限状态自动机可以理清字符间的语法逻辑,快速而准确地拒绝有语法错误的字符串并定位到错误的字符位置。

本文建立一种基于卷积神经网络(Convolutional Neural Network,CNN)和有限状态自动机的手写体大写金额识别模型。在利用卷积神经网络对单个字符进行识别后,使用有限状态自动机检查大写金额的语法,在票据识别结果的多条路径中选择更加准确且符合语法规则的字符串。在路径搜索过程中,结合语法自动机的前缀判断功能优化搜索性能,对不必要的搜索路径进行剪枝以提高搜索的速度和精度。同时,利用语法自动机对模型识别不出的模糊字符进行预测以提高识别准确率。

1 相关研究 1.1 手写体大写金额识别

近年来,有很多学者致力于中文票据识别研究[1-2],包括票据中手写小写金额识别[3]以及大写金额处理和识别[4]。文献[5]提出一种偏旁识别器,使用字符宽度模型来确定分割线的预测位置。文献[6]提出一种基于隐马尔可夫模型的中国法定金额识别方法,在训练阶段,从滑动窗口中提取梯度特征,用单字符图像训练字符HMM;在识别阶段,利用句子HMM对文本行图像进行分割,句子HMM由字符HMM根据严格的语言模型构造。文献[7]使用笔画序列信息和中文字符的八方向特征进行在线手写汉字识别。文献[8]将文字表示为几何图形,同时保留空间结构和时间顺序,使用空间图卷积网络对字符图进行分类。文献[9]使用深度学习自动编码器提取孤立大写金额汉字字符的特征,以提高字符识别准确率。文献[10]提出一种大写金额语法检查器,通过列举不符合正确语法的静态规则并结合动态判断来拒绝错误的识别结果。

尽管上述对手写体大写金额识别的研究取得了很大的进展,但识别准确率仍然有待提高。传统的基于过分割、组合、识别、路径选择和校验的识别方法已经被证实可以很好地应用于手写字符串识别任务[11-13]。近期,有学者提出不需要分割字符的端到端的序列识别方法[14-15],这些方法对于规范的印刷体文本具有较好的性能,但是对于复杂背景下的手写字符串识别还未能达到很好的效果。

本文采用基于分割的框架对手写票据中的大写金额进行识别。利用过分割和组合过分割项来得到单字符,使用卷积神经网络对单字符进行识别,在此基础上,构建语法自动机用于在路径搜索中选择符合语法规则的识别结果,并在后续处理中对模糊字符进行预测。

1.2 有限状态自动机

美国语言学家乔姆斯基等人建立了形式文法和自动机之间的联系[16],使得自动机可以有效地表达各种语法规则。由于确定性的自动机在算法执行速度上与输入字符串的长度呈线性关系,且空间复杂度较低,所以被广泛应用于自然语言处理领域中的语法规则建模任务[17-18]。文献[19]使用有限状态自动机将单词切分为音节,根据音节将文本转换为声音。有限状态自动机是具有离散输入、输出系统的一种数学模型,它定义了有限个内部状态和状态之间的转移函数。自动机按序接收输入信号,该信号在内部状态之间发生转移,不符合自动机转移条件的输入将被拒绝,符合规则的输入最终会转移至输出状态,表明该输入通过了检验。在实际应用中,自动机的状态可能数以万计,而且自动机的规模也是逐渐变大的,因此,会存在多余的状态或多余的转换弧,这些多余的状态和转换弧不仅降低了计算速度,而且浪费了存储空间,需要对有限状态自动机进行最小化,使其没有多余的状态,并且不存在2个状态相互等价的情况[20]

2 票据识别

票据中手写体大写金额的识别主要包括:1)票据预处理及文本定位;2)字符图像过分割、组合过分割项并识别;3)路径搜索和校验。

2.1 票据预处理及文本定位

手写票据图像是通过扫描仪获得的RGB三通道图像。为了方便对图像进行处理并降低计算量,需要对图像进行灰度化处理。票据的尺寸、文本布局和扫描方式不一致,会造成大写金额在票据中的位置有所差异。因此,本文首先使用能在复杂背景下对水平文本进行检测的CTPN算法[21],对大写金额进行定位。在文本定位之后,通过如下步骤作去噪处理:

1)使用Mask匀光法[22]结合红色(R)通道去除方法来去除图像中的红线,再将其转成灰度图像。

2)使用自适应阈值方法(OTSU)获得阈值,将大于该阈值的像素灰度值设置为255,其余像素灰度值保持不变。

3)采用联通区分析方法对上下位置的小联通区进行去噪处理。

大写金额定位后预处理前后的图像如图 1所示。

Download:
图 1 票据预处理效果 Fig. 1 Effect of bank check preprocessing
2.2 过分割与组合过分割

手写汉字书写随意、风格多样,文本行字符之间粘连严重,如图 2所示。因此,需要先采用过分割的方式进行文本行切分,过分割算法将文本行图像尽可能分开,分割得到的每一个图像可能是单个字符或者字符的一部分,这些图像被称为过分割项。

Download:
图 2 粘连文本行 Fig. 2 Sticky text lines

本文采用的分割算法主要分为以下3个步骤:

1)通过联通区分析将文本图像按照笔画或者部件进行分割。

2)根据联通区域的重叠度进行初合并,调整合并结果,去除重复区域[23]

3)检测粘连笔画并对粘连项进行分割,通过计算过分割项的高度以及文本行高设定合适的宽高比阈值,高于阈值的项被认为可能存在粘连。对于潜在的粘连,沿着水平方向遍历,通过统计垂直方向上连续像素点的个数,再结合笔画宽度阈值和位置信息找到笔画为“-”的区域并进行过分割处理。

在单个字符识别前还需要对上述过分割项进行组合,使用的组合方法为:对过分割项的合并采用遍历方式,从第一个过分割项开始,依次与其后的过分割项进行合并,并记录开始和结束的位置。汉字“捌”由4个部件组成,是大写金额汉字中部件数目最多的文字,因此,定义单个字符的最大合并过分割项Cmax=4。由于有些字符不需要合并4个过分割项,因此合并时需要对过分割项进行类型判断,动态调整合并项的数目。本文根据过分割项的宽度h、高度w以及过分割项的最大宽度Wmax、图像的行高Hline,将过分割项划分为3类:

1)第一类C1。若过分割项的w < Wmax/Tth1h < Hline/Tth2,则将其定义为小型。该类可以是单个瘦长型字符,也可以是字符中的单个部件,或者是部件的附属部分。

2)第二类C2。若过分割项的h/w > Tth3w/Hline > Tth4,则将其定义为中型,该类可以是单个字符,也可以是单个字符中的主要部件。

3)第三类C3。除第一类和第二类,其余情况则将过分割项定义为大型,该类为单个字符。

在上述分类过程中,阈值Tth1Tth2Tth3Tth4通过大量的优化实验来确定,票据识别中阈值的取值分别为Tth1=3,Tth2=4,Tth3=1.2,Tth4=0.6。在合并的过程中,当组合了一个C3后,不再连续组合C3C2;每个过分割项最多组合3个C2C1总是与其他项组合,如果合并项宽度大于设定的阈值,则不组合。根据上述规则便可得到待识别的合并项。

2.3 字符识别

基于深度学习直接从原始数据中学习判别式特征以进行字符分类的方法已经取得了较好的效果,因此,本文使用深度卷积神经网络来训练字符分类器。

本文采用8层的卷积网络,其包含5个卷积层和3个全连接层,卷积层均采用3×3的卷积核,卷积步长为1,padding为1。所有卷积层后连接一个空间最大池化层MaxPooling以降低特征维度,同时保证图像的平移不变性,增强分类的鲁棒性。池化窗口为2×2,步长为2。为了加快收敛的速度并增强分类效果,在卷积层后均加入BatchNorm层。在全连接层后接Dropout层来增强模型的泛化性能。使用ReLUs作为除最后一个全连接层外的所有卷积层和全连接层的激活函数,最后一层使用Softmax来进行分类,网络的输入为单通道的64×64灰度图。为了便于计算,设置图像背景的灰度级为0,前景的灰度级为[1, 255]。CNN的配置信息如表 1所示。

下载CSV 表 1 CNN网络结构及其参数 Table 1 CNN network structure and its parameters
3 大写金额语法自动机

使用有限状态自动机检验大写金额语法时主要解决以下2个关键问题:

1)根据大写金额语法规则对字符进行分类,通过定义合理的状态构造有限状态自动机。

2)根据构造的有限状态自动机,设计大写金额字符串的匹配算法。

3.1 大写金额语法规则

大写金额的主要语法规则如下[24]

1)中文大写金额的数字字符应该使用规范的字符,如壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元(圆)、角、分、零、整(正)等字样。

2)中文大写金额数字到“元”为止的,在“元”之后写“整”(或“正”)字;到“角”为止的,在“角”之后可以写也可以不写“整”(或“正”)字;大写金额数字有“分”的,“分”后面不写“整”(或“正”)字。

3)如果大写金额对应的阿拉伯数字金额中有“0”,则大写金额应该符合汉语语言规律和金额数字构成规范:

(1)阿拉伯数字中间有“0”时,中文大写金额要写“零”字,如¥1 409.50,应写成人民币壹仟肆佰零玖元伍角(整)。

(2)阿拉伯数字中间有连续多个“0”时,中文大写金额中间可以只写一个“零”字,如¥6 007.14,应写成人民币陆仟零柒元壹角肆分。

(3)阿拉伯数字万位(元位)是“0”,或者数字中间有连续多个“0”且万位(元位)也是“0”,但千位(角位)不是“0”时,中文大写金额中可以只写一个“零”字,也可以不写。如¥107 001.53,应写成人民币壹拾万零柒仟零壹元伍角叁分,或者写成人民币壹拾万柒仟零壹元伍角叁分。又如¥1 680.32,应写成人民币壹仟陆佰捌拾元零叁角贰分,或者写成人民币壹仟陆佰捌拾元叁角贰分。

(4)阿拉伯数字角位是“0”而分位不是“0”时,对应的大写金额“元”字后面应写“零”字。如¥16 409.02,应写成人民币壹万陆仟肆佰零玖元零贰分。

3.2 有限状态自动机构造

大写金额字符组合具有多样性,如果将单个字符作为有限状态自动机的状态,自动机将变得很大,而且由于多个状态具有相同的状态转移关系,使得状态之间的转换变得冗余且复杂。因此,通过对字符进行分类可以得到最小化的有限状态自动机,同时准确分类也有助于简化字符组合的复杂度从而使得字符间的逻辑关系更加清晰。本文根据每个字符在金额中的意义将输入字符集合划分为以下5类(括号内为集合名称):

1)数字类(Number):壹,贰,叁,肆,伍,陆,柒,捌,玖。

2)数字单位类(Unit):拾,佰,仟,万。

3)金额单位类(Amount):元,圆,角,分。

4)零类(Zero):零。

5)结束字符类(Only):正,整。

以类别名称的首字母作为状态名称来表示自动机所处的状态,则上述集合对应的自动机状态分别为N、U、A、Z和O。通过分析大写金额的结构可以看出,在“元(圆)”之前的金额表示是由数字字符和数字单位字符组成的,而在“元(圆)”之后则不会用到数字单位字符。因此,为了更加清晰地表达自动机状态之间的逻辑关系,将Number类和Zero类进一步划分为以下3类:

1)N类。由于首字符缺乏上下文信息,因此将第一个数字字符归为该类。例如,对于字符串“伍角叁分”或者“伍拾元”,当自动机读取第一个字符“伍”时,由于没有足够的信息将其分类,因此自动机进入N状态。

2)N1(N2)类。在“元(圆)”之前(后)且不是首字符的数字类字符归为该类。

3)Z1(Z2)类。在“元(圆)”之前(后)的零类字符归为该类。

用于大写金额语法检查的有限状态自动机M定义为一个有序五元组:

$ M = \{ Q,\sum ,\delta ,{q_0},F\} $

其中:Q={S,N,U,Z1,Z2,N1,A,N2,O}是自动机所有状态的集合;={壹,贰,叁,肆,伍,陆,柒,捌,玖,拾,佰,仟,万,亿,元,圆,角,分,零,整,正}为所有输入字符的集合;δ为状态转移函数,Q×Qq0 = S是自动机的初始状态,q0QF={A,O}是所有终止状态的集合,FQ

有限状态机的状态流程为图 3所示的有向图,可以看出,其具有有限个状态节点,并且每个节点代表一个状态,每条有向边代表状态的转移方向。有向边上方标注的集合名称是状态转移时需要的字符类型,即外界对自动机的输入,自动机通过读取相应的集合元素来推动状态的转移。

Download:
图 3 状态转换示意图 Fig. 3 Schematic diagram of state transition

对于被检查的字符串,有限状态自动机依次读取其中的字符,依据匹配算法进行状态转移。每次读入一个字符发生一次状态转移,转移方向由当前所处状态和读入的字符共同决定。例如,对于U=δ(N,Unit),在自动机处在N状态时,当读入Unit字符集合中的一个单位字符时,自动机由N状态转移至U状态,发生一次状态转移。当自动机到达某个状态时表示该自动机接受了在此之前读入的所有字符组合成的字符串,而没有被接受的字符串表示不符合语法规则。因此,如果一个大写金额字符串可以从状态机的开始状态经过若干个中间状态后到达最终状态,则该字符串有效,否则无效。由于大写金额可以以“角”“分”和“整(正)”结尾,因此当字符串进入A状态时需要判断是否结束。A状态既可以作为结束状态,也可以在还有字符读入时根据转移函数转移至下一状态。

以上为有限状态自动机的执行过程,但实际应用过程中的情况要复杂很多。数字单位和金额单位中的字符具有紧密的上下文关系,例如,“叁拾”符合语法规则,但“叁拾伍佰元整”则不符合语法规则,这种类型的规则需要结合上文信息才能表示,本文将其称为动态规则。通过在自动机的状态内部添加动态约束,可以实现对大写金额语法规则的合理判断。

3.3 自动机动态约束

为了使自动机最小化,本文在设计状态时合并了自动机中的等价状态。其中,数字状态的9个数字字符是完全等价的,逻辑关系可以统一表示,因此,状态内部不需要进行约束。对于数字单位Unit和金额单位Account集合中的字符,需要结合语法信息在状态内部添加动态规则进行约束。本文根据单位状态发生转换时读入的字符将约束分为4类,分别为数字类一般约束、数字类特殊约束、零类一般约束和零类特殊约束。为了方便对动态规则进行建模,定义以下符号:

1)unit_all={万,仟,佰,拾,元,角,分},其包含数字单位Unit和金额单位Account集合中的元素。Uindex表示unit_all中各个字符对应的状态,0≤index≤6。例如,U0表示集合中的“万”字对应的自动机状态,U3表示集合中“拾”字对应的自动机状态。

2)wan_used表示在自动机读过的字符串中“万”字出现过。

3)unit_wan_used表示数字单位集合Unit中的任意一个字符与“万”字符的组合是否出现过,例如,“拾万”或“佰万”等。对于“元”字符,同样定义unit_yuan_used来表示类似的信息。

4)mn分别表示当前单位状态下标以及下一单位状态的下标,且0≤m < 6,0 < n≤6。

4种约束具体如下:

1)数字类一般约束描述为:

if m ≠ 3 then

$ {\mathrm{U}}_{\mathrm{n}}=\mathrm{f}({\mathrm{U}}_{\mathrm{m}}, \mathrm{n}\mathrm{u}\mathrm{m}\mathrm{b}\mathrm{e}\mathrm{r}) $

$ \mathrm{n}-\mathrm{m}=1 $

endif

该约束是针对数字构造的一般规则,其中,f为动态约束函数。用index表示unit_all中的状态,其控制单位的移动。当且仅当读取一个数字字符时,数字单位向后移动一位,即index++。因此,该约束条件主要针对没有发生单位向前跃变的情形。当自动机读取字符串中数字字符的下一位单位字符时,如果单位字符与index指向的单位相同,则判定为正确的语法;否则,自动机返回false标志,表示该字符串被自动机拒绝,结束判断。但当m=3时,对于合法的字符串“伍仟肆佰叁拾壹万”,在Um=“拾”且读入Number集合中的“壹”字符时,数字单位状态U中index由3变为0(Un=“万”),发生了单位的跃变,这时就需要对其做特殊约束。

2)数字类特殊约束描述为:

if m = 3 then

if wan_used = false then

$ {\mathrm{U}}_{0} \ \mathrm{o}\mathrm{r} \ {\mathrm{U}}_{\mathrm{n}}=\mathrm{f}({\mathrm{U}}_{\mathrm{m}}, \mathrm{n}\mathrm{u}\mathrm{m}\mathrm{b}\mathrm{e}\mathrm{r}) $

$ \mathrm{n}-\mathrm{m}=1 $

else

$ {\mathrm{U}}_{\mathrm{n}}=\mathrm{f}({\mathrm{U}}_{\mathrm{m}}, \mathrm{n}\mathrm{u}\mathrm{m}\mathrm{b}\mathrm{e}\mathrm{r}) $

$ \mathrm{n}-\mathrm{m}=1 $

endif

endif

m=3(Um=“拾”)时,由于“万”字符影响可能会发生单位的向前跃变,因此此约束条件取决于“万”字符是否出现过。当“万”字符出现过时,表明“万”字段的数字已经处理完成,下一步按数字类一般约束(没有发生跃变)处理即可,例如,当自动机已经读到字符串“壹万壹仟壹佰壹拾”的“拾”时,m=3,在读入Number集合中的数字时,状态只能转移至n=4,即下一个单位字符只能为“元”;当“万”字符没有出现过时,可能是该字符串的金额没有超过一万,也可能前面的数字单位是“万”字段的字符,对于前者,例如“壹仟壹佰壹拾壹元”,则不发生跃变,对于后者,如“壹仟壹佰壹拾壹万”,则发生跃变,这些都符合语法规则,需要根据接下来读入的数字单位做相应选择。

3)零类一般约束描述为:

if m ≠ 0 & & m ≠ 4 then

$ {\mathrm{U}}_{\mathrm{n}}=\mathrm{f}({\mathrm{U}}_{\mathrm{m}}, \mathrm{z}\mathrm{e}\mathrm{r}\mathrm{o}) $

$ \mathrm{n}-\mathrm{m}\ge 1 $

endif

该约束条件主要针对3.1节中第3条规则的第2条,当阿拉伯数字中间有连续多个“0”时,大写金额可以只写一个“零”。因此,结合数字构造规则,在读入字符“零”时,index至少需要向右移动一个单位,也可以移动多个单位,即n-m≥1。在读入下一个单位字符时,如果该单位满足此条件,则判定为语法正确,index根据读入的字符进行相应赋值;否则,自动机返回false,结束判断。当大写金额字符串为多个“零”时,index按照“零”的个数进行移位。

4)零类特殊约束描述为:

if m = 0 || m = 4 then

if(m = 0 & & unit_wan_used = true)||

(m = 4 & & unit_yuan_used = true)then

$ {\mathrm{U}}_{\mathrm{n}}=\mathrm{f}({\mathrm{U}}_{\mathrm{m}}, \mathrm{z}\mathrm{e}\mathrm{r}\mathrm{o}) $

$ \mathrm{n}-\mathrm{m}\ge 0 $

else

$ {\mathrm{U}}_{\mathrm{n}}=\mathrm{f}({\mathrm{U}}_{\mathrm{m}}, \mathrm{z}\mathrm{e}\mathrm{r}\mathrm{o}) $

$ \mathrm{n}-\mathrm{m}\ge 1 $

endif

endif

该约束条件主要针对3.1节中第3条规则的第3条,其主要取决于数字单位与“万”或者“元”字符是否组合出现过。例如,对于“万”位,当unit_wan_used=true并且千位不为“零”时,该组合单位后面可以加“零”也可以不加“零”。在自动机中当读入字符“零”时,单位可以向后移动一位或者不移动。当读入下一个字符时,满足此条件则判定为语法正确;否则,自动机返回false,结束判断。对于“元”位的处理也与上述过程相同。

在添加动态约束后,完整的自动机状态转换示意图如图 4所示。根据以上描述的算法可以实现大写金额文本语法的准确检查。

Download:
图 4 改进的状态转换示意图 Fig. 4 Schematic diagram of improved state transition
3.4 自动机与路径搜索

复写在票据上的大写金额字体在去噪之后更加不清晰,如图 5所示,其中一些字符可能被分成3个以上的分割项,每个过分割项在尝试组合之后都存在一种或多种组合情况,每种组合情况还会有一个或多个识别结果。所有识别项都可以用四元组{CPSE}表示,其中,C为字符分类结果,P为置信度,SE分别为合并项的开始和结束位置。本文对首尾相连的识别项进行路径搜索,并将设计的语法自动机应用到动态搜索过程中,以提高路径搜索的精度和速度。

Download:
图 5 笔画缺失的文本行 Fig. 5 Text lines with missing stroke

在路径搜索的过程中,将当前路径中的字符构成的字符串称为前缀字符串。前文所设计的自动机校验算法是针对完整字符串的,不能到达终止状态时该字符串被认为不符合语法规则。由于前缀字符串不是完整的字符串,因此需要对自动机进行适当调整以满足语法检验的需求。首先,调整自动机的每个状态,使其可以接受标志字符T,并可以由该状态直接进入终止状态;然后,在路径搜索过程中的前缀字符串后面添加判断标志T。具体搜索步骤如下:

1)将每个合并项的识别结果按置信度P由高到低排序,当最大置信度高于阈值T时,保留前n项作为候选集;否则,认为该合并项的识别结果均不可靠,以模糊字符“卍”代替。接着,从S=0的合并项开始集束搜索,设置搜索宽度sw=3。

2)利用自动机的前缀语法检查功能对搜索到的路径进行判断。当前缀字符串符合语法规则时,记录结束位置E,并继续对开始位置为S=E+1的合并项进行搜索;否则,增加搜索宽度,即sw=sw+1。当所有的以S为开始的合并项都不符合语法规则时,将该位置的识别结果以模糊字符“卍”(C=“卍”)替代,继续进行搜索。

3)当结束位置E为最后一个合并项的结束位置时,即完成路径搜索。由于整个过程按照置信度优先搜索,因此以第一条符合语法规则的路径作为最后的识别结果。

当搜索路径中的模糊字符“卍”的个数大于3时,或者出现2个连续的模糊字符,就认为组合或识别结果不可靠,该搜索路径被剪枝。对模糊字符在规定范围内的字符串,暂不使用语法自动机对其进行检查。在模糊字符被预测出之后将路径归为候选路径,模糊字符预测的详细过程在3.5节中进行介绍。

3.5 自动机与模糊字符预测

对于一些笔画缺失或者噪声去除效果不好的字符图像,卷积神经网络很难给出正确的识别结果,这类字符在路径搜索中以模糊字符“卍”替代。由于大写金额无论是数字单位还是金额单位都有规则的序位关系,因此可以利用自动机对这类模糊字符进行预测。

自动机每一次的字符读取都有确定的转移状态,当字符串中有单个模糊字符时,模糊字符必然出现在前一状态的下一个转移状态中。这时,就可以将下一状态的字符集作为该模糊字符的候选集。以字符串“壹仟零叁卍陆仟叁卍捌拾元整”为例,当自动机读到第一个“卍”字时,自动机处于N1状态,从自动机的状态转换图可以看出该状态的下一状态只能是M和U 2种情况。当下一状态为M时,“元”作为该模糊字符的预测候选项;当下一状态为U时,由于“仟”和“零”字符的出现,根据数字类一般约束可知,此时index=3,预测候选项为“拾”。同时,由于wan_used=false,根据数字类特殊约束可知,“万”也是预测候选项。因此,第一个“卍”字符有3个候选项{“元”,“拾”,“万”},形成3条候选路径。自动机继续读取到字符“仟”时,语法自动机就会把包含预测值“元”和“拾”的路径剪枝,最终得到唯一的候选项“万”,从而完成一次准确的预测。同理,第二个模糊字符将被准确预测为“佰”。最终,语法自动机将返回所有模糊字符的预测结果。

4 实验结果与分析

本文进行2个实验:一为验证自动机语法检查和模糊字符预测2种算法性能的实验,使用的数据为大写金额字符串;二为这2种算法在手写票据大写金额识别任务中的应用实验,使用的数据为手写票据。

4.1 实验数据及评价指标

本文从中科院手写汉字数据集CASIA-HWDB1.0-1.2[25]中挑出21类字符集进行卷积神经网络训练。其中,训练集每类包含800张由不同作者手写的单字符图片,实验采用的测试数据是人工标注的2 600张手写票据。

实验中针对不同的应用场景采用不同的评价指标。在单独的模糊字符预测实验中,使用单字符预测准确率(Character Prediction Accuracy,CPA)和字符串预测准确率(String Prediction Accuracy,SPA)作为评价指标。在识别票据中的大写金额图像文本时,采用单字符识别准确率(Character Recognition Accuracy,CRA)和整条文本识别准确率(Line Recognition Accuracy,LRA)作为评价指标。CRA按照识别结果和标注值的编辑距离进行计算。

4.2 自动机语法检查和模糊字符预测结果

为了评估有限状态自动机的语法检查效果,使用2 000条大写金额字符串进行实验,其中的1 000条具有语法错误。实验结果表明,语法检查自动机对正确字符串的接受率和错误字符串的拒绝率均为100%,即语法自动机可以对识别结果进行非常可靠的语法检查。

在模糊字符预测实验中,使用2 600条手写票据中大写金额部分的label作为测试数据来评估预测效果。其中,1 300条文本随机使用模糊字符“卍”替代标注字符串中的1个字符,剩下的1 300条随机使用2个模糊字符“卍”替代标注字符串中的2个字符,替换位置为非数字位,由于数字位的9个字符不具备上下文语义,因此本文仅评估非数字位的预测效果。自动机对模糊字符的预测结果如表 2所示。

下载CSV 表 2 模糊字符预测结果 Table 2 Fuzzy characters prediction results 

从实验结果可以看出,当字符串中仅有1个模糊字符时,自动机的预测准确率可以达到99.5%;当字符串中有2个位置的模糊字符时,自动机的预测准确率下降至96.0%。由于大写金额语法的灵活性,同一模糊字符处可能存在多种符合要求的预测结果,因此自动机的字符预测率很难达到100%。但是,作为识别的后处理步骤,基于自动机的模糊字符预测可以改善部分模型识别错误的情况,进而提高票据中大写金额的识别准确率。

4.3 票据识别结果

为进一步验证自动机模糊字符预测的重要性,本节将进行2个消融实验,对2 600张手写票据的大写部分进行识别。实验1为识别后没有进行模糊字符预测,实验2为识别后再进行模糊字符预测。2个实验的结果如表 3所示。

下载CSV 表 3 模糊字符预测对票据识别的影响 Table 3 Influence of fuzzy characters prediction on bank checks recognition 

从实验结果可以看出,将语法自动机应用于票据中大写金额的识别任务时,字符识别准确率可达95.3%,文本行的识别准确率达到91.4%,该结果也验证了在路径搜索中结合前缀语法检测自动机可以提高搜索的精度和速度。在加入模糊字符预测的操作之后,单字符的识别准确率达到98.2%,相比实验1提升了2.9个百分点;整条文本的识别准确率达到96.6%,相比实验1提升了5.2个百分点。实验结果表明,在大写金额的后续处理步骤中使用语法自动机对模糊字符进行预测,可以有效提升识别准确率。

5 结束语

本文采用基于分割的框架对手写票据中的大写金额进行识别。通过对字符进行分类、定义类与类之间的逻辑关系,构造出可以用于语法检查的有限状态自动机。利用语法自动机在识别结果中选择出符合语法规则的字符串。在路径搜索阶段采用束搜索的策略,通过前缀语法检查对搜索路径进行剪枝,以避免路径呈指数级增长的问题,从而提高搜索速度。针对复写票据不清晰、笔画缺失导致卷积神经网络字符识别不正确或置信度低的问题,提出一种模糊字符预测算法。实验结果表明,结合语法自动机校验和模糊字符预测对单字符进行识别时准确率高达98.2%,对整条文本进行识别时准确率达到96.6%。但是,本文自动机的模糊字符预测仅针对具有上下文关系的非数字位,对于无上下文关系的数字位还无法进行预测。因此,下一步将使用语法自动机定位模糊字符,根据偏旁部首或部件信息进行位置纠正,以实现数字位的模糊字符预测。

参考文献
[1]
HUANG L L, LI S T, LI L M. Extraction of filled-in items from Chinese bank check using support vector machines[C]//Proceedings of the 4th International Symposium on Neural Networks: Advances in Neural Networks. Berlin, Germany: Springer, 2007: 407-415.
[2]
WANG S, MA F, XIA S W. A Chinese bank check recognition system based on the fault tolerant technique[C]//Proceedings of the 4th International Conference on Document Analysis and Recognition. Berlin, Germany: Springer, 1997: 1038-1042.
[3]
DONG L, CHEN Y. A prototype system of courtesy amount recognition for Chinese bank checks[C]//Proceedings of IAPR International Workshop on Document Analysis Systems. Washington D.C., USA: IEEE Press, 2012: 53-57.
[4]
TANG H S, AUGUSTIN E, SUEN C Y, et al. Recognition of unconstrained legal amounts handwritten on Chinese bank checks[C]//Proceedings of the 17th International Conference on Pattern Recognition. Washington D.C., USA: IEEE Press, 2004: 610-613.
[5]
LOU Z, YANG J Y, JIN Z. Recognition and checkout of legal amounts on Chinese bank cheques[C]//Proceedings of International Conference on Wavelet Analysis & Pattern Recognition. Washington D.C., USA: IEEE Press, 2008: 35-39.
[6]
CHI B Y, CHEN Y B. Chinese handwritten legal amount recognition with HMM-based approach[C]//Proceedings of International Conference on Document Analysis and Recognition. Washington D.C., USA: IEEE Press, 2013: 778-782.
[7]
LIU X, HU B T, CHEN Q C, et al. Stroke sequence-dependent deep convolutional neural network for online handwritten Chinese character recognition[EB/OL]. [2020-06-05]. https://arxiv.org/pdf/1610.04057.pdf.
[8]
GAN J, WANG W Q, LU K. Characters as graphs: recognizing online handwritten Chinese characters via spatial graph convolutional network[EB/OL]. [2020-06-05]. https://arxiv.org/pdf/2004.09412.pdf.
[9]
MENG W, CHEN Y, WANG X. Recognition of handwritten characters in Chinese legal amounts by stacked autoencoders[C]//Proceedings of International Conference on Pattern Recognition. Washington D.C., USA: IEEE Press, 2014: 12-36.
[10]
YU M L, KWOK P C K, LEUNG C H, et al. Segmentation and recognition of Chinese bank check amounts[J]. International Journal on Document Analysis and Recognition, 2001, 3(4): 207-217. DOI:10.1007/PL00013562
[11]
ZHANG X Y, BENGIO Y, LIU C L. Online and offline handwritten Chinese character recognition: a comprehensive study and new benchmark[EB/OL]. [2020-06-05]. https://arxiv.org/pdf/1606.05763.pdf.
[12]
WANG Q F, YIN F, LIU C L. Integrating language model in handwritten Chinese text recognition[EB/OL]. [2020-06-05]. http://www.cvc.uab.es/icdar2009/papers/3725b036.pdf.
[13]
WU Y C, YIN F, LIU C L. Evaluation of neural network language models in handwritten Chinese text recognition[EB/OL]. [2020-06-05]. https://ieeexplore.ieee.org/document/7333745.
[14]
SHI B, XIANG B, CONG Y. An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016, 39(11): 2298-2304.
[15]
MESSINA R, LOURADOUR J. Segmentation-free handwritten Chinese text recognition with LSTM-RNN[C]//Proceedings of International Conference on Document Analysis and Recognition. Washington D.C., USA: IEEE Press, 2015: 171-175.
[16]
CHOMSKY N. Three models for the description of language[J]. IRE Transactions on Information Theory, 1956, 2(3): 113-124. DOI:10.1109/TIT.1956.1056813
[17]
XIA W J, HUAQUE C R. Automatic translation between Arabic numerals and Tibetan numerals based on finite state automata[J]. Computer Engineering and Science, 2018, 40(3): 550-554. (in Chinese)
夏吾吉, 华却才让. 基于有限状态自动机阿拉伯数字与藏文数词自动翻译[J]. 计算机工程与科学, 2018, 40(3): 550-554. DOI:10.3969/j.issn.1007-130X.2018.03.022
[18]
GREGHI J G, MARTINS E. Semi-automatic generation of extended finite state machines from natural language standard documents[C]//Proceedings of IEEE International Conference on Dependable Systems and Networks Workshops. Washington D.C., USA: IEEE Press, 2015: 45-50.
[19]
RACHMAN F H, QUDSIYAH, SOLIHIN F. Finite state automata approach for text to speech translation system in Indonesian-Madurese language[J]. Journal of Physics: Conference Series, 2020, 1569(2): 022091. DOI:10.1088/1742-6596/1569/2/022091/pdf
[20]
SUN Y Q, LI Y P, WANG H Y, et al. Parallel processing of minimization algorithm for determination finite automata[J]. Computer Science, 2008, 35(1): 298-300. (in Chinese)
孙玉强, 李玉萍, 王海燕, 等. 确定有限自动机最小化算法的并行处理[J]. 计算机科学, 2008, 35(1): 298-300. DOI:10.3969/j.issn.1002-137X.2008.01.084
[21]
TIAN Z, HUANG W L, HE T, et al. Detecting text in natural image with connectionist text proposal network[C]//Proceedings of European Conference on Computer Vision. Berlin, Germany: Springer, 2016: 56-75.
[22]
HAN Y T. Research on key technology of color consistency processing for digital ortho map mosaicing[D]. Wuhan: Wuhan University, 2014. (in Chinese)
韩宇韬. 数字正射影像镶嵌中色彩一致性处理的若干问题研究[D]. 武汉: 武汉大学, 2014.
[23]
LIU C L, YIN F, WANG D H, et al. CASIA online and offline Chinese handwriting databases[C]//Proceedings of International Conference on Document Analysis and Recognition. Washington D.C., USA: IEEE Press, 2011: 37-41.
[24]
Order No. 98 of the ministry of finance of the people's republic of China. Accounting basic work specification[EB/OL]. [2020-06-05]. http://tfs.mof.gov.cn/zhengwuxinxi/caizhengbuling/201903/t20190315_3193919.html. (in Chinese)
中华人民共和国财政部令第98号. 会计基础工作规范[EB/OL]. [2020-06-05]. http://tfs.mof.gov.cn/zhengwuxinxi/caizhengbuling/201903/t20190315_3193919.html.
[25]
WANG Q F, YIN F, LIU C L. Handwritten Chinese text recognition by integrating multiple contexts[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 34(8): 1469-1481.