基于CNN 图像识别与语义可靠性的路径搜索方法

2021-01-15 07:18李宇霞孙永奇朱卫国
计算机工程 2021年1期
关键词:后缀字符区间

李宇霞,孙永奇,闫 茹,朱卫国

(北京交通大学计算机与信息技术学院,北京 100044)

0 概述

票据是一种重要的资金交易凭证,其在购物、餐饮与交通等日常活动中大量使用。在记录资金交易时,票据中有单位名称、账号以及金额等重要信息,这些信息的准确存档对于银行的统计、结算等工作至关重要。由于票据信息录入是一项繁琐、重复且容易出错的工作[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 语言模型评估语义,在CASIAHWDB 数据集上的字符识别错误率达到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 所示。

图1 手写中文文本公司名识别流程Fig.1 Procedure of handwritten Chinese text recognition for company names

2.1 过分割算法

文献[4]中详细地描述了过分割算法,该算法主要包括连通区分析、连通区粗粒度合并与粘连笔画分割3 个步骤。首先,通过连通区分析可以初步得到汉字的笔画或部件。其次,根据相邻连通区的重叠度进行合并。最后,因为手写不规范而造成有些字符间会连笔,所以这些字符会出现在一个连通区中,即笔画粘连。为此,本文使用平均行高H与过分割项的宽、高信息检测粘连过分割项,并对其进行分割,从而得到最终过分割项。

对于每个粘连过分割项,需要检测每一列像素中横向笔画出现的次数。如果沿垂直方向切分,则横向笔画的像素特点是连续的黑色区域且该黑色区域的高度较小。当某一区域的横向笔画数量少于给定阈值时,则确定在该位置进行粘连笔画分割,最终可得到一系列过分割项。图2 举例说明了过分割算法的具体过程,其中,图2(c)中的竖线与汉字交叉的区域即为检测到可用于分割的横向笔画。

图2 过分割算法过程Fig.2 Process of over-segmentation algorithm

2.2 过分割项的组合及识别

由于过分割项通常只是汉字的一部分,如果要得到完整的汉字,则需要尝试组合连续的过分割项,并利用字符分类器对其进行识别。

2.2.1 分割项组合

根据过分割项的宽、高和面积等先验信息将其分为小型、中型和大型3 类。其中:小型对应汉字笔画中的点状或者细小部分,该形状通常是其他汉字的一部分,且不能作为完整的汉字单独出现;中型是细高状或中等大小的方形过分割项,可能是汉字的偏旁,也可能是单独构成的汉字;大型则是较大的方形过分割项,一般是汉字的主体部分,同时也有可能单独构成汉字。过分割项的宽度和高度分别表示为w和h,所有过分割项的最大宽度与最大高度分别表示为W与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 个分割项是中型。

图3 过分割项组合与识别结果示例Fig.3 Example of over-segmented items combination and recognition results

2.2.2 字符分类器

本文以10 层卷积神经网络作为字符分类器,包括7 个卷积层、7 个池化层和3 个全连接层,且网络结构如表1 所示。

表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种。用表示区间[i,j]中以第i个过分割项开始的第k种组合方式,1≤k≤n;用表示组合方式识别结果的最大置信度n},即所有中的最大值;Ps表示所有中的次大值。将合并项组合方式的可靠性按如下方法分为4 个等级:

4)不可靠:剩余的其他情形。

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个合并项的图像识别可靠性,而Rsem[i][j]是基于语义区间[i,j]的可靠性,因此在对其组合前根据rimg[i][k]按如下公式计算出区间[i,j]图像的识别可靠性Rimg[i][j]:

其中,rimg[s][k]为区间[i,j]中合并项的可靠性,Csum为该区间中可靠性大于0 的合并项总数。将2 种区间可靠性按如下公式加权组合得到区间[i,j]的最终可靠性Ry[i][j]:

其中,系数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]之间的位置。

图4 基于图像识别和语义可靠性的区间划分示例Fig.4 Examples of interval partition based on image recognition and semantic reliabilities

图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 所示。

图6 基于可靠性优先的路径搜索过程Fig.6 Process of path search based on reliability first

2.4 路径评估及纠正

路径搜索结束后将得到多条符合要求的完整路径。针对得到的完整路径,需要先通过路径评估找出最佳路径,再利用自然语言处理方法进行检错和纠错。

首先,由于公司名的半语义特征使得完全依靠语言模型来选择最佳路径得到的结果不理想。因此,本节在筛选完整路径时将综合考虑单个字的识别概率、宽度标准差以及LSTM 语义评估结果,并对三者归一化处理后加权得到最终评估结果。通过实验确定当平均识别概率、宽度标准差、语义评分的权重比为1∶2∶3 时,评估效果最佳。

其次,针对公司名的检错,以“北京天胜设备有限公司”为例,“天胜”是语义较弱的特殊字符,其余字符均含有较强的语义信息。依据该特点,可采用Jieba 工具对公司名进行分词。在分词结果中非特殊字符位置出现孤立字,则认为是识别错误或组合错误。对于以上两种错误,通过孤立字的位置以及连续长度进行区分。当孤立字不在地名后面时,如果连续孤立字长度为2,则认为是拼写错误;如果长度为3,则需对该区域重新进行过分割项组合与路径搜索,例如“涂料”被识别成“涂米斗”;如果长度超过3,则将其拆分成多种情况再进行上述方法处理。

最后,是关于公司名的纠错。针对拼写错误,常见的错误类型包括相似拼音、相似形状与相似语义。在OCR 中,识别错误基本都是形状相似的拼写错误。文献[18]中的纠正形状相似拼写错误的方法会导致候选项区分度不显著,难以选择。针对这种情况,本文在该方法基础上加入汉字的部件相似度,该汉字部件库来自文献[23]。汉字是由一个或多个部件构成,如“智”由“矢”“口”“日”构成。因此,本文的相似度计算方法如式(3)所示:

其中,Ssj(x,y)、Ssn(x,y)、Simg(x,y)和Scom(x,y)分别为四角码、笔画数量、字体图像和部件相似度,且其计算方法分别为:

其中: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 万条的公司名语料库。单字符数据集使用中科院的手写汉字数据集CASIAHWDB1.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时达到最佳识别效果。

表2 不同搜索方法识别准确率对比Table 2 Comparison of recognition accuracy of different search methods %

表3 为前后缀推断对识别准确率的影响。从表3 可以看出,加入前后缀推断后,CRA 和LRA 分别提高6.04、22.46 个百分点,LRA 的提高幅度较大,这说明在整条识别错误结果中,至少1/3 的错误来源于前后缀字符,且是由CNN 识别错误导致的。

表3 前后缀推断对识别准确率的影响Table 3 Effect of pre-suffixes on the recognition accuracy %

3.2.2 字符纠错方法效果

字符纠错使用的词表来自公司名语料库。通过rate1和rate2验证部件相似度在纠错中的效果,并对比分析基于公司名语料训练的LSTM 和Bi-gram 对纠错结果的影响。

表4 为不同字符相似度对纠错结果的影响。从表4 可以看出:去除拼音相似度(Spy)后的rate1有所提高,然而rate2降低,这说明拼音特征不适合OCR 纠错;第三种组合方式是在第二种组合三种相似度的基础上加入部件相似度,使得rate1提高了8.49 个百分点,rate2降低了1.38 个百分点。因此,第三种方法能够将真正错误的字符正确纠正过来,且不会纠正误检字符,从而保证方法的鲁棒性;OCR 产生的错误字符除了形似导致的识别错误外,还有一部分来源于过分割后的组合错误,从而导致部分汉字缺少偏旁部首,但仍然是完整的汉字。对于这种情况,加入部件相似度(Scom)后可减少候选项的干扰,提高缺少偏旁部首的汉字与完整汉字之间的相似度。

表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 从全局角度考虑每个字在整条公司名中的语义,弥补了Ngram 仅考虑局部语义的不足。

表5 3 种语言模型对纠错结果的影响Table 5 Effect of three language models on the error correction results %

表6 为字符纠错方法对公司名识别准确率的影响。从表6 可以看出,加入字符纠错后,CRA 和LRA分别提高1.23、8.46 个百分点,LRA 提高幅度较大,这说明本文所提纠错方法可有效正确纠正语义较强的字符。

表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 个百分点,从而验证了本文所提前后缀推断和纠错方法的有效性。

表7 纠错方法对识别准确率的影响Table 7 Effect of error correction methods on recognition accuracy %

4 结束语

由于票据背景复杂以及手写体不规范,导致传统的从前向后路径搜索方法对票据的识别效果较差,因此本文提出一种基于CNN 图像识别与语义可靠性的路径搜索RFBS 方法,以提高出现模糊字符时的手写公司名识别准确率,且与传统集束搜索方法相比,该方法的CRA 和LRA 均有大幅提高。此外,本文根据公司名的结构特点提出前后缀推断策略,该策略能够有效解决CNN 在识别公司名时出现前后缀识别错误的问题。为解决手写体不规范导致的识别错误与组合错误问题,本文结合公司名特点提出一种检错与纠错方法,该方法通过Jieba 分词对孤立字的判断进行检错,对组合错误重新进行过分割项组合、路径搜索,并采用改进后的字形相似度方法对识别错误进行纠正,以提高公司名识别准确率。虽然本文所提纠错方法可有效纠正公司名中语义较强的前后缀及行业信息,但是其对语义较弱的特殊字符纠错效果还有待提高。因此,下一步将采用深度学习技术继续对纠错方法进行改进,以提高其对语义较弱特殊字符的纠错效果。

猜你喜欢
后缀字符区间
你学会“区间测速”了吗
字符代表几
一种USB接口字符液晶控制器设计
全球经济将继续处于低速增长区间
HBM电子称与西门子S7-200系列PLC自由口通讯
消失的殖民村庄和神秘字符
河北霸州方言后缀“乎”的研究
TalKaholic话痨
区间对象族的可镇定性分析
说“迪烈子”——关于辽金元时期族名后缀问题