本发明涉及图像识别技术领域,特别是涉及一种文本序列识别方法和装置。
背景技术:
文本行识别以识别由字符串组成的文本行为目标,一直是模式识别领域的活跃课题。目前,在高分辨率的文档图像中识别出文本行,已经得到了较好的解决。但是,低质量文档图像中的文本行识别却仍然没有较好的解决方案。
目前,对于各种文档图像的文本行识别,可通过字符识别得分和语言模型得分对识别出的可能的文本行字符串进行打分,将得分最高的文本行字符串作为识别结果。然而,低质量文档图像中会存在字符粘连的情况,这种情况下文本行识别结果准确性会降低很多。
技术实现要素:
基于此,有必要针对将存在字符粘连情况的低质量文档图像进行文本序列识别准确性低的问题,提供一种文本序列识别方法和装置。
一种文本序列识别方法,所述方法包括:
从文档图像中分割出文本序列图像;
获取对所述文本序列图像进行字符过切分处理的候选切分点和相应的切分点置信度;
根据所述候选切分点确定可选的切分字符图像组合;
根据对所述切分图像组合中的切分字符图像进行字符识别的字符识别得分和相应的切分点置信度融合得到的识别置信度,从所述可选的切分字符图像组合中选择识别置信度最大的切分字符图像组合;
将所述识别置信度最大的切分字符图像组合的字符识别结果输出。
一种文本序列识别装置,所述装置包括:
文本序列图像分割模块,用于从文档图像中分割出文本序列图像;
字符过切分处理模块,用于获取对所述文本序列图像进行字符过切分处理的候选切分点和相应的切分点置信度;
识别模块,用于根据所述候选切分点确定可选的切分字符图像组合;根据对所述切分图像组合中的切分字符图像进行字符识别的字符识别得分和相应的切分点置信度融合得到的识别置信度,从所述可选的切分字符图像组合中选择识别置信度最大的切分字符图像组合;将所述识别置信度最大的切分字符图像组合的字符识别结果输出。
上述文本序列识别方法和装置,从文档图像中分割出文本序列图像后,获取对文本序列图像进行字符过切分处理的候选切分点以及切分点置信度,这样利用候选切分点可以构造出各种可选的切分字符图像组合,以尽可能覆盖文本序列图像真实的切分图像组合。在可选的切分字符图像组合中,利用字符识别得分和切分点置信度融合得到的识别置信度来选择最优的切分字符图像组合。这样识别置信度可以综合反映字符识别结果的可信程度以及相应的切分字符图像组合的切分方式的可信程度,从而可以依据文本序列中字符本身的形态特征进行文本序列识别,不仅对存在字符粘连情况的低质量文档图像识别准确性有很大提升,而且对于高质量文档图像识别准确性也有保证。
附图说明
图1为一个实施例中电子设备的内部结构示意图;
图2为一个实施例中文本序列识别方法的流程示意图;
图3为一个实施例中根据对切分图像组合中的切分字符图像进行字符识别的字符识别得分和相应的切分点置信度融合得到的识别置信度,从可选的切分字符图像组合中选择识别置信度最大的切分字符图像组合的步骤的流程示意图;
图4为一个实施例中对文本序列图像进行极性判断及处理的步骤的流程示意图;
图5为一个实施例中文本序列识别方法的流程示意图;
图6为一个实施例中生成模拟的字符图像样本集的步骤的流程示意图;
图7为另一个实施例中生成模拟的字符图像样本集的步骤的流程示意图;
图8为一个实施例中将每个纯净字符图像与从背景图像集中随机选择的与纯净字符图像尺寸匹配的背景图像叠加,获得字符图像样本集的步骤的流程示意图;
图9为一个实例中生成的“我”字的字符图像样本示例;
图10为一个实施例中文本序列识别装置的结构框图;
图11为另一个实施例中文本序列识别装置的结构框图;
图12为再一个实施例中文本序列识别装置的结构框图;
图13为一个实施例中字符图像样本生成模块的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1,在一个实施例中,提供了一种电子设备,包括通过系统总线连接的处理器、非易失性存储介质和内存储器。其中处理器具有计算功能和控制电子设备工作的功能,该处理器被配置为执行一种文本序列识别方法,包括:从文档图像中分割出文本序列图像;获取对文本序列图像进行字符过切分处理的候选切分点和相应的切分点置信度;根据候选切分点确定可选的切分字符图像组合;根据对切分图像组合中的切分字符图像进行字符识别的字符识别得分和相应的切分点置信度融合得到的识别置信度,从可选的切分字符图像组合中选择识别置信度最大的切分字符图像组合;将识别置信度最大的切分字符图像组合的字符识别结果输出。非易失性存储介质可以是磁存储介质、光存储介质或者闪存式存储介质,非易失性存储介质存储有操作系统和文本序列识别装置,该文本序列识别装置用于实现一种文本序列识别方法。内存储器用于提供运行环境。
如图2所示,在一个实施例中,提供了一种文本序列识别方法,本实施例以该方法应用于上述图1中的电子设备来举例说明。该方法具体包括如下步骤:
步骤202,从文档图像中分割出文本序列图像。
具体地,文本序列是多于一个的字符按顺序构成的字符串,根据文档图像排版的不同,文本序列可以是文本行或者文本列。文档图像是一个或多个文本序列按照特定的排布特征组合形成的图像,比如扫描或拍摄文档获得的文档图像。文本序列图像则是包括文本序列的图像。文档图像中不同的文本序列之间存在规律的排布特征,比如不同的文本行之间存在空隙,利用这种排布特征可以将不同的文本序列图像从文档图像中分割出。
在一个实施例中,电子设备可采用像素值投影方式将从文档图像中分割出的文本序列图像进行边界定位,以确定文本序列图像精确的四周边界。具体地,电子设备可将文本序列图像的像素值逐行累加,根据逐行累加的像素值的跃变点确定左边界和右边界,还可将文本序列图像的像素值逐列累加,根据逐列累加的像素值的跃变点确定上边界和下边界。本实施例中,通过文本序列分割,可确定文本序列图像中文字区域精确的上下左右边界,使得后续识别时,不至于将过多的背景区域囊括进来。
在一个实施例中,电子设备可将四周边界分别向外扩张预设像素数量,形成文本序列图像新的四周边界。预设像素数量小于文本序列之间相隔的像素数量。比如可将上述获得的左边界、右边界、上边界和下边界分别向外扩张3个像素,形成新的四周边界。在确定了精确的四周边界后,考虑到相邻字符间存在空隙,这里将精确的四周边界向外扩张预设像素数量,可使得文本序列图像中切分出的字符图像更加适于字符识别。
步骤204,获取对文本序列图像进行字符过切分处理的候选切分点和相应的切分点置信度。
对于低质量的文档图像中的文本序列图像,由于笔画模糊,相邻字符粘连时有发生,难以直接从文本序列图像中切分出准确的字符,或多或少会存在误差。比如,将一个左右结构的汉字切分为两个不同的字符;或者,将两个相邻的汉字中,左边汉字的右半部分和右边汉字的左半部分没切分开,导致它们组 成一个错误的字符。
字符过切分处理是一种针对这些情况采取的高召回率低准确率的切分方案。字符过切分处理对文本序列图像进行亚字符级切割,是解决字符间距小和字符粘连的有效策略。具体地,电子设备可将文本序列图像二值化,并将二值化后的文本序列图像投影到文本阅读方向上,将局部低点或者局部高点作为候选切分点。其中取局部低点还是局部高点决定于文本序列图像二值化后背景区域的像素值,若背景区域的像素值是较高的像素值,则是取局部高点;若背景区域的像素值是较低的像素值,则是取局部低点。
切分点是指从字符序列图像中将不同的字符图像切分开来的位置,而候选切分点则是文本序列图像中所有可能的切分点,候选切分点的数量多于切分点的实际数量。切分点置信度与候选切分点一一对应,是表示相应的候选切分点是真实的切分点的可信程度。切分点置信度越高,表示相应的候选切分点是真实切分点的可能性越高。
电子设备具体可在获取候选切分点时,获取相应的局部低点或者局部高点的值,并根据局部低点或者局部高点的值计算出相应的切分点置信度。若是局部低点,可将局部低点的值或者将局部低点的值归一化到[0,1]范围内的值后输入到自变量与因变量负相关的函数,输出切分点置信度。若是局部高点,则可将局部高点的值或者将局部高点的值归一化到[0,1]范围内的值直接作为切分点置信度,也可将局部高点的值或者归一化到[0,1]范围内的值输入到自变量与因变量正相关的函数,输出切分点置信度。
步骤206,根据候选切分点确定可选的切分字符图像组合。
其中,可选的切分字符图像组合,是指按照各种可能的候选切分点组合方式切分出的字符图像的组合。基于汉字的结构特征,可过滤掉连续跨越的候选切分点的数量超过预定义数量的候选切分点组合方式。预定义数量比如3或4。比如一共有6个候选切分点,则在确定可选的切分字符图像组合时就可以过滤掉只有第一个候选切分点和最后一个候选切分点这种跨越了4个候选切分点的候选切分点组合方式。
比如假设字符序列为“我的”,那么该字符序列对应的候选切分点可以是2 个,分别是“我”字与“的”字之间的候选切分点a,以及“的”字中间的候选切分点b。那么按照候选切分点a和b的不同组合,可以确定可选的切分字符图像组合为:“我|的”、“我|白|勺”、“我白|勺”以及“我的”。其中“|”用于分隔不同的切分字符图像。这样可选的切分字符图像组合覆盖了真实的切分字符图像组合“我|的”。
步骤208,根据对切分图像组合中的切分字符图像进行字符识别的字符识别得分和相应的切分点置信度融合得到的识别置信度,从可选的切分字符图像组合中选择识别置信度最大的切分字符图像组合。
在一个实施例中,电子设备可遍历所有可选的切分字符图像组合,对于遍历的切分字符图像组合中的每个切分字符图像进行字符识别,获得字符识别得分,并获得遍历的切分字符图像组合采用的候选切分点的切分点置信度,将获得的字符识别得分和获得的切分点置信度进行加权求和或者加权求平均值等方式进行融合,得到遍历的切分字符图像组合的识别置信度。进而电子设备从所有可选的切分字符图像组合中筛选出最大的识别置信度对应的切分字符图像组合。
在一个实施例中,电子设备可将所有可选的切分字符图像组合构建成篱笆网络,该篱笆网络中的每条路径表示一种切分字符图像组合,电子设备采用维特比解码算法,以对切分图像组合中的切分字符图像进行字符识别的字符识别得分和相应的切分点置信度融合得到的识别置信度为识别线索,从篱笆网络中搜索使得识别置信度最大的路径。本实施例中采用维特比解码算法,不需要遍历所有可选的切分字符图像组合,可以极大地提高识别效率。在搜索路径时可选择cyk(cocke–younger–kasamialgorithm)算法,在在解码搜索路径的扩展过程中不需要回溯,可减少搜索识别的冗余操作,提高文本行识别的效率。在其它实施例中,电子设备也可以采用其它解决最小路径问题的优化算法,从所有可选的切分字符图像组合中找出使得识别置信度最大的切分字符图像组合。
步骤210,将识别置信度最大的切分字符图像组合的字符识别结果输出。
具体地,电子设备对切分字符图像组合中的切分字符图像进行字符识别时,获得字符识别结果以及相应的字符识别得分。将该字符识别结果顺序输出,便 获得文本序列识别结果。
上述文本序列识别方法,从文档图像中分割出文本序列图像后,获取对文本序列图像进行字符过切分处理的候选切分点以及切分点置信度,这样利用候选切分点可以构造出各种可选的切分字符图像组合,以尽可能覆盖文本序列图像真实的切分图像组合。在可选的切分字符图像组合中,利用字符识别得分和切分点置信度融合得到的识别置信度来选择最优的切分字符图像组合。这样识别置信度可以综合反映字符识别结果的可信程度以及相应的切分字符图像组合的切分方式的可信程度,从而可以依据文本序列中字符本身的形态特征进行文本序列识别,不仅对存在字符粘连情况的低质量文档图像识别准确性有很大提升,而且对于高质量文档图像识别准确性也有保证。
在一个实施例中,步骤208具体包括:根据对切分图像组合中的切分字符图像进行字符识别的字符识别得分、相应的语言模型得分以及相应的切分点置信度融合获得的识别置信度,从可选的切分字符图像组合中选择识别置信度最大的切分字符图像组合。
其中,语言模型(languagemodel)是根据语言客观事实而建立的数学建模,是一种对应关系,将一个字符序列输入语言模型,该语言模型输出的语言模型得分表示输入的字符序列是自然语言的可能性,语言模型得分越高,输入的字符序列是自然语言的可能性越大。语言模型可采用n-gram(n元)语言模型、svm(支持向量机)语言模型或者其它基于神经网络的语言模型。
具体地,电子设备可遍历所有可选的切分字符图像组合,对于遍历的切分字符图像组合中的每个切分字符图像进行字符识别,获得字符识别得分;将遍历的切分字符图像组合中识别出的字符序列输入语言模型获得语言模型得分;并获得遍历的切分字符图像组合采用的候选切分点的切分点置信度;将获得的字符识别得分、语言模型得分以及切分点置信度进行融合,得到遍历的切分字符图像组合的识别置信度。进而电子设备从所有可选的切分字符图像组合中筛选出最大的识别置信度对应的切分字符图像组合。
电子设备也可以将所有可选的切分字符图像组合构建成篱笆网络,采用维特比解码算法,以对切分图像组合中的切分字符图像进行字符识别的字符识别 得分、将识别出的字符序列输入语言模型获得的语言模型得分和相应的切分点置信度融合得到的识别置信度为识别线索,从篱笆网络中搜索使得识别置信度最大的路径。
本实施例中,在从可选的切分字符图像组合中选择最优的切分字符图像组合时,不仅考虑了字符识别得分和切分点置信度,还考虑了语言模型得分,增强了文本行识别结果的鲁棒性。
如图3所示,在一个实施例中,步骤208具体包括如下步骤:
步骤302,根据对切分图像组合中的切分字符图像进行字符识别的字符识别得分和相应的切分点置信度融合得到的识别置信度,从可选的切分字符图像组合中选择识别置信度最大的预设数量的切分字符图像组合。
具体地,电子设备可通过遍历所有可选的切分图像组合计算识别置信度,从而筛选出置信度最大的预设数量的切分字符图像组合,也可以通过维特比解码算法从篱笆网络中搜索使得识别置信度最大的预设数量的路径。预设数量比如10。计算识别置信度时还可以考虑语言模型得分。选择识别置信度最大的预设数量的切分字符图像组合,是指选择的预设数量的切分字符图像组合对应的识别置信度,均大于其它未选择的切分字符图像组合对应的识别置信度。
步骤304,获取预设数量的切分字符图像组合各自的字符占位一致性得分。
其中,字符占位一致性得分是指表示相应的切分字符图像组合中识别出的各个字符大小一致性程度的量化值,对于文本行来说,字符占位一致性主要是指字符宽度一致性。切分字符图像组合各自的字符占位一致性得分,可通过计算相应的切分字符图像组合的字符占位大小的标准差或者方差来表示字符占位一致性得分。
步骤306,将字符占位一致性得分与相应切分字符图像组合的识别置信度融合,获得融合后的识别置信度。
具体地,电子设备可采用加权求和或者加权求平均等融合方式,将预设数量的切分字符图像组合中的每种切分字符图像组合的字符占位一致性得分融合到相应的识别置信度中,获得每种切分字符图像组合的融合后的识别置信度。
步骤308,选择融合后的识别置信度最大的切分字符图像组合。
具体地,电子设备可将融合后的识别置信度按照降序排序,从而筛选出融合后的识别置信度中最大的值,并选择该最大的融合后的识别置信度对应的切分字符图像组合。
本实施例中,将字符占位一致性得分融合到识别置信度中,使得融合后的识别置信度不仅可以衡量单个字符的识别准确性和切分字符方式的可信程度,还可以衡量字符在排布时的占位大小的一致程度,从而可以进一步提升文本行识别的识别精度。
在一个实施例中,从可选的切分字符图像组合中选择切分字符图像组合所依据的识别置信度,是对切分图像组合中的切分字符图像进行字符识别的字符识别得分、相应的语言模型得分以及相应的切分点置信度融合获得的。
在一个实施例中,字符识别通过字符识别模型进行,字符识别模型根据字符图像样本集训练获得。
具体地,字符识别模型是一种将字符图片映射到相应的字符的函数关系。根据字符图像样本集训练字符识别模型,就是利用已知映射到的字符的字符图像样本集,调整字符识别模型内部的参数,使得字符识别模型能够预测新的字符图像所映射到的字符,以达到从含有字符的图像中识别出相应字符的效果。字符识别模型可采用svm(支持向量机)或者各种神经网络。
在一个实施例中,字符识别模型采用卷积神经网络(cnn)。随着深度学习的兴起,基于gpu(graphicsprocessingunit,图形处理器)实现的cnn模型在处理很多非常具有挑战性的视觉任务中逐渐展示出巨大的潜力,例如图像分类或者手写体字符识别等。区别于传统的字符识别方法,cnn是一种端到端的学习方法,cnn直接接受字符图像的像素输入,输入层神经元个数也因此等于归一化后字符图像的像素个数。cnn输入数据后先进行若干层的局部特征提取和池化处理,然后中间层进行全连接的全局特征变换,最后输出层以任务的目标为输出。在本实施例中,输出层所包括的神经元个数与字符图像样本集中的字符总数相等,每个神经元对应一个字符。
在一个实施例中,字符识别通过字符识别模型进行,字符识别模型是根据字符图像样本集对已训练的用于识别图像的卷积神经网络的参数进行迭代调整 获得的。
鉴于业界已存在多个面向大规模视觉分类、性能优越的cnn模型,例如vgg网络(vggnet,一种图像分类模型)和google(谷歌)网络。vgg网络和google网络均是已训练的用于识别卷积神经网络,本实施例中基于vgg网络和海量字符图像样本集进行精调,获得经过训练的字符识别模型。
具体地,vgg网络包括8个部分:5个卷积组,2个全连接图像特征层,1个全连接分类层。根据5个卷积组中每个卷积组的不同配置,卷积层可设置在8-16之间。为尽可能优化字符识别的效果,本实施例采用了最深的19层模型,即16个卷积层加上2个全连接图像特征层和1个全连接分类层。本实施例中在vgg网络基础上增加用于输入字符图像样本集的输入层以及用于输出字符识别结果的输出层,构成字符识别模型。
由于vgg网络训练时采用的是自然图像,而字符图像与自然图像存在较大的区别。本实施例通过对vgg网络的隐含层权重进行精调来解决二者的数据不匹配问题。具体地,用vgg网络的参数作为初始值,将字符图像样本集输入vgg网络,以最小化识别误差为目标,对vgg网络的隐层参数进行有监督优化和迭代更新,直至达到最小化误差目标,或是网络迭代更新到指定次数为止。
本实施例中,利用已训练的用于识别图像的卷积神经网络强大的学习和表示能力进行字符大数据学习,所生成字符识别模型较采用传统方法得到的字符识别模型性能更优。
在一个实施例中,字符识别通过字符识别模型进行,字符识别模型根据字符图像样本集训练获得,且字符图像样本集中的字符图像样本被二值化后边缘的像素行中表示字符的第一像素值占比低于预设比例。
具体地,字符图像样本集中的字符图像样本经过二值化后,表示字符的都是第一像素值,比如白色;表示背景的都是第二像素值,此时称字符图像样本集中所有字符图像样本的极性是相同的。
二值化后的字符图像样本的边缘是二值化后的字符图像样本边界上指定行数的像素行或者指定列数的像素列。若文本序列为文本行,则二值化后的字符图像样本的边缘可以是最顶部以及最底部的像素行。考虑到字符图像样本边缘 属于字符的颜色应当较少,因此边缘的像素行中表示字符的第一像素值占比低于预设比例。
参照图4,步骤204之前还包括对文本序列图像进行极性判断及处理的步骤,具体包括以下步骤:
步骤402,将文本序列图像进行二值化处理。
具体地,电子设备可采用固定阈值二值化算法或者自适应阈值二值化算法,将文本序列图像中高于阈值和低于阈值的像素值分别置为预设的两种像素值中的一种,这两种像素值分别是第一像素值和第二像素值。
步骤404,统计二值化后的文本序列图像边缘的像素行中的第二像素值占比。
步骤406,若第二像素值占比低于预设比例,则将文本序列图像进行像素值翻转。
具体地,电子设备为了判断文本序列图像与字符图像样本集中的字符图像样本的极性是否相同,统计二值化后的文本序列图像边缘的像素行中的第二像素值占比是否低于预设比例。若第二像素值占比低于预设比例,说明文本序列图像与字符图像样本集中的字符图像样本的极性是不同的,需要将文本序列图像进行像素值翻转,从而改变文本序列图像的极性。其中将文本序列图像进行像素值翻转时,具体可遍历文本序列图像的每一像素值,并将遍历的像素值置为255与遍历的像素值的差。若第二像素值占等于或者大于预设比例,说明说明文本序列图像与字符图像样本集中的字符图像样本的极性是相同的,则无需改变极性,直接进行后续步骤。
本实施例中,增加了极性判断的步骤,在文本序列图像的极性与字符图像样本的极性不相同时,可以通过极性翻转来使得文本序列图像的极性与字符图像样本的极性一致,这样训练时不需要准备不同极性的训练样本,可以减少训练样本集的规模,提高训练效率。
参照图5,在一个实施例中,电子设备在从文档图像中分割出文本序列图像后,对文本序列图像的边界进行精确调整,从而判断文本序列图像的极性与字符图像样本的极性是否一致,若不一致则进行极性翻转,进而获取对文本序列 图像进行字符过切分处理的候选切分点和相应的切分点置信度。电子设备根据候选切分点确定可选的切分字符图像组合,以构建篱笆网络,基于字符识别得分、语言模型得分以及切分置信度的多个搜索线索,从篱笆网络中搜索最优的预设数量的路径,进而利用字符占位一致性得分进行路径评价,最终根据路径评价结果获得最终的识别结果。其中篱笆网络是维特比算法中为搜索路径而建立的有向图。
参照图6和图7,在一个实施例中,该文本序列识别方法还包括生成模拟的字符图像样本集的步骤,具体包括如下步骤:
步骤602,确定字符集。
其中,字符集包括可见的各种单字符,主要包括汉字、标点符号、数字和英文字母等。字符集是字符识别模型可识别的字符的集合,也是字符图像样本集中的字符图像样本中所包含的字符的集合。
由于完整中文字符集包含数万个字符,但大多数在日常生活中都很少被用到,本实施例中电子设备仅选择全部中文字符中一个较为常用的子集进行分析。具体地,对于汉字,电子设备直接选择gb2312-1字符集,这一字符集包含3755个最常用的汉字。此外,电子设备还选择了26个中文标点符号。对于英文标点符号、数字和字母,选取ascii码表中的94个可显示字符,包括10个数字,26个英文字母和58个符号。因此,本实施例中字符集最终由3875个字符组成。字符集中,中文字符和中文标点符号是全角字符,94个ascii码表字符则是半角字符。
步骤604,对于字符集中的每个字符生成差异化的纯净字符图像。
具体地,电子设备对于字符集中的每种字符,生成差异化的多种纯净字符图像。纯净字符图像中字符和背景采用不同的单纯颜色,比如字符采用白色,背景采用黑色。
在一个实施例中,步骤604包括:对于字符集中的每个字符,生成不同字体、不同大小以及不同粗细的纯净字符图像。
具体地,本实施例中对于字符集中的每个字符采用了常用且具有差异性的字体,避免将非常相似的字体重复选择。比如宋体、仿宋、新宋体、华文仿宋 以及宋体方正超大字符集就是非常相似的字体。电子设备对于字符集中的汉字和中文标点符号等全角字符,可选择宋体、黑体、楷书、隶书、幼圆、华文彩云、华文新魏、华文琥珀、华文行楷、方正舒体以及方正姚体这11种全角字体;对于英文字符这样的半角字符,则选择了arial、verdana、georgia、timesnewroman、trebuchetms、couriernew、impact、comicsansms、cambria、calibri以及rockwellextrabold这11种半角字体。这22种字体涵盖了移动互联网社交平台上中英文字符字体出现的绝大部分情况。
由于图像中字符有大小之分,本实施例中选择字符大小的方式为直接抽取多个不同大小的纯净字符来生成不同大小的字符,而不是先选择一个固定大小的字符,然后通过缩放生成其它大小的字符的方式。具体地,从16*16、20*20、24*24、28*28和32*32五种大小尺度中选定一种。选择不同大小的字符去生成字符图像,与通过插值的方法将固定尺寸的字符缩放成其他尺寸字符的方式相比,能更好的保持图像的边缘细节信息。
对于上述所有字体和大小的字符,本实施例选择了200磅、400磅和600磅三种粗细级别。这是因为实际情况中,往往会给字符选择不同程度的加粗以让字符呈现出不同的视觉效果。此外,不同粗细的字符在对抵抗背景的干扰方面的能力是不同的,而且随着字符加粗程度的加深,字符内部笔画之间的粘连会加重。字符粗细上的差别在视觉上非常显著,选择不同粗细的字符增加了样本的覆盖性,从而有助于提高文本行识别的鲁棒性。
通过上述三种在字体、字符大小和字符粗细上的选择,对于字符集中的每一个字符,都可以生成11*5*3=165个不同的字符。
步骤606,将每个纯净字符图像与从背景图像集中随机选择的与纯净字符图像尺寸匹配的背景图像叠加,获得字符图像样本集。
具体地,对于每个纯净字符图像,电子设备可从背景图像集中随机选择一个背景图像,从背景图像中截取一个与纯净字符图像尺寸匹配的背景图像,进而将该纯净字符图像与随机截取的背景图像叠加,获得相应的字符图像样本,最终获得字符图像样本集。或者,若背景图像集中的每个背景图像均与纯净字符图像的尺寸匹配,则可直接将纯净字符图像与从背景图像集中随机选择的背 景图像叠加,获得字符图像样本集。叠加后获得的字符图像样本保留纯净字符图像中的字符以及相应背景图像中的背景。
字符识别通常被视为一个监督学习问题,为每个字符收集字符图像样本,进而提取特征进行模型学习是必需的步骤。以往的方案中,一般是收集真实环境下的字符图像样本,并进行人工标注,而字符图像样本集的规模是庞大的,人工标注耗时过多,影响了训练字符识别模型的效率。而在本实施例中,确定字符集后再按照字符集来生成字符图像样本集,无需人工标注;而每个字符形成差异化的字符图像再与背景图像叠加,可以模拟出真实环境下可能出现的字符图像样本,因此可以在保证识别性能的情况下提高训练字符识别模型的效率。
如图8所示,在一个实施例中,步骤606具体包括如下步骤:
步骤802,将每个纯净字符图像中的字符像素值重置为从预设字符像素值区间中随机选择的像素值。
具体地,对于每个纯净字符图像,电子设备可从纯净字符图像中提取出表示字符的字符区域,该字符区域中的像素值用来表示字符,称为字符像素值。电子设备可根据高斯分布,从预设字符像素值区间[128,255]中随机选择一个像素值,将字符区域中的每一个字符像素值重置为该随机选择的像素值。预设字符像素值区间是字符像素值允许的取值范围,预设字符像素值区间可以一定程度上保证生成的字符图像样本的极性是一致的。为了模拟多样性,每个字符可采用多个不同颜色的像素值分别进行字符像素值的重置,比如每个字符可考虑3种不同的颜色变换。
步骤804,将重置字符像素值后的纯净字符图像按照预设偏移范围进行随机偏移后,与从背景图像集中随机选择的与纯净字符图像尺寸匹配的背景图像叠加,且叠加后的图像中划分出的多个不相交区块之间的差异度小于预设阈值。
由于实际环境中,字符并非固定出现在背景图像的中间位置,通常存在一定的偏移。本实施例中在进行图像叠加时,在预设偏移范围内按照高斯分布随机抽取一个二元组(x,y),按照该二元组(x,y)将重置字符像素值后的纯净字符图像偏移后,与从背景图像集中随机选择的与纯净字符图像尺寸匹配的背景图像 叠加。叠加时具体将纯净字符图像的背景像素值替换为相应的背景图像中对应位置处的像素值。
其中
纯净字符图像与背景图像叠加过程中,可能出现字符像素值与背景像素值比较接近,或者选择了复杂背景图像,导致字符难以识别的问题。本实施例中,为解决该问题,将叠加后的图像中划分出多个不相交的区块,比如划分出8*8大小且不相交的区块,然后计算多个不相交的区块之间的差异度是否大于等于预设阈值。若差异度大于等于预设阈值,说明背景图像过于复杂,则将叠加后的图像丢弃并从背景图像集中重新选择背景图像进行叠加。若差异度小于预设阈值,则保留叠加后的图像。这是按照清晰度进行过滤的步骤。若连续丢弃的次数达到预定义值,比如达到10次,则不再为该纯净字符图像生成字符图像样本。
差异度是反映不相交的区块之间差异程度的量化值,差异度越大表示区块之间的差异越大。差异度可通过像素值均值差法来计算,具体计算每个区块的像素值方差,然后根据每个区块的像素值方差计算所有区块的平均方差,将该平均方差作为区块之间的差异度。
在一个实施例中,在步骤804之后、步骤806之前,还包括:按照多种噪声强度和/或多种噪声添加处理次数对叠加后的图像进行噪声添加处理。噪声添加处理包括添加点状或线状噪声,还可以包括高斯滤波处理。具体地,电子设备可对叠加后的图像进行2到5次、强度不一的高斯滤波处理,其中具体的高斯滤波处理次数和强度可根据均匀分布随机选择。通过噪声添加处理可进一步 模拟出真实环境下的字符图像样本,而高斯滤波处理使得字符图像样本中字符和背景之间的边界平滑,消除了字符边界突兀的现象,并模拟出图像压缩产生的细节失真效果。
步骤806,将叠加后的图像形成字符图像样本集。
具体地,电子设备将每个叠加后的图像作为字符图像样本添加到字符图像样本集中,并在字符图像样本集中记录字符图像样本与字符的对应关系。电子设备还可以将叠加后的图像归一化为固定大小的字符图像样本,以形成字符图像样本集合。
本实施例中,通过随机偏移模拟出真实环境下的字符位置,并在字符图像样本集中保留背景不太复杂的字符图像样本,可以模拟出接近真实而且具有良好字符区分性的字符图像样本,节省时间,而且能够保障字符识别精度。
如图7所示,通过确定字符集、纯净字符图像提取以及低质量字符图像样本生成的步骤,生成的字符图像样本可以模拟出真实环境下低质量的文档图像中的字符图像,节省了人力成本。参照图9,示出了“我”字的各种字符图像样本,这些字符图像样本具有分辨率低、笔画模糊、笔画中含有噪声等低质量字符图像的常见特性,这在一定程度上佐证了本发明所提出生成模拟的字符图像样本集的步骤的有效性。可以理解的是,上述对字符可能存在的各种变化进行了比较完整的考虑,是一种通用的字符图像样本集创建方案。在特定的应用场合下,比如字体较少、颜色相对单一的应用情况,可以相应调整所选择的字符的字体、大小、粗细、颜色变换、清晰度过滤以及噪声添加处理中的参数,以便模拟出更具针对性的字符图像样本集。
如图10所示,在一个实施例中,提供了一种文本序列识别装置1000,包括:文本序列图像分割模块1001、字符过切分处理模块1002和识别模块1003。
文本序列图像分割模块1001,用于从文档图像中分割出文本序列图像。
字符过切分处理模块1002,用于获取对文本序列图像进行字符过切分处理的候选切分点和相应的切分点置信度。
识别模块1003,用于根据候选切分点确定可选的切分字符图像组合;根据 对切分图像组合中的切分字符图像进行字符识别的字符识别得分和相应的切分点置信度融合得到的识别置信度,从可选的切分字符图像组合中选择识别置信度最大的切分字符图像组合;将识别置信度最大的切分字符图像组合的字符识别结果输出。
上述文本序列识别装置1000,从文档图像中分割出文本序列图像后,获取对文本序列图像进行字符过切分处理的候选切分点以及切分点置信度,这样利用候选切分点可以构造出各种可选的切分字符图像组合,以尽可能覆盖文本序列图像真实的切分图像组合。在可选的切分字符图像组合中,利用字符识别得分和切分点置信度融合得到的识别置信度来选择最优的切分字符图像组合。这样识别置信度可以综合反映字符识别结果的可信程度以及相应的切分字符图像组合的切分方式的可信程度,从而可以依据文本序列中字符本身的形态特征进行文本序列识别,不仅对存在字符粘连情况的低质量文档图像识别准确性有很大提升,而且对于高质量文档图像识别准确性也有保证。
在一个实施例中,识别模块1003具体用于根据对切分图像组合中的切分字符图像进行字符识别的字符识别得分、相应的语言模型得分以及相应的切分点置信度融合获得的识别置信度,从可选的切分字符图像组合中选择识别置信度最大的切分字符图像组合。
本实施例中,在从可选的切分字符图像组合中选择最优的切分字符图像组合时,不仅考虑了字符识别得分和切分点置信度,还考虑了语言模型得分,增强了文本行识别结果的鲁棒性。
在一个实施例中,识别模块1003具体用于根据对切分图像组合中的切分字符图像进行字符识别的字符识别得分和相应的切分点置信度融合得到的识别置信度,从可选的切分字符图像组合中选择识别置信度最大的预设数量的切分字符图像组合;获取预设数量的切分字符图像组合各自的字符占位一致性得分;将字符占位一致性得分与相应切分字符图像组合的识别置信度融合,获得融合后的识别置信度;选择融合后的识别置信度最大的切分字符图像组合。
本实施例中,将字符占位一致性得分融合到识别置信度中,使得融合后的识别置信度不仅可以衡量单个字符的识别准确性和切分字符方式的可信程度, 还可以衡量字符在排布时的占位大小的一致程度,从而可以进一步提升文本行识别的识别精度。
在一个实施例中,从可选的切分字符图像组合中选择切分字符图像组合所依据的识别置信度,是对切分图像组合中的切分字符图像进行字符识别的字符识别得分、相应的语言模型得分以及相应的切分点置信度融合获得的。
在一个实施例中,字符识别通过字符识别模型进行,字符识别模型根据字符图像样本集训练获得,且字符图像样本集中的字符图像样本被二值化后边缘的像素行中表示字符的第一像素值占比低于预设比例。
如图11所示,文本序列识别装置1000还包括:极性判别及处理模块1004,用于将文本序列图像进行二值化处理;统计二值化后的文本序列图像边缘的像素行中的第二像素值占比;若第二像素值占比低于预设比例,则将文本序列图像进行像素值翻转。
本实施例中,增加了极性判断的步骤,在文本序列图像的极性与字符图像样本的极性不相同时,可以通过极性翻转来使得文本序列图像的极性与字符图像样本的极性一致,这样训练时不需要准备不同极性的训练样本,可以减少训练样本集的规模,提高训练效率。
在一个实施例中,字符识别通过字符识别模型进行,字符识别模型是根据字符图像样本集对已训练的用于识别图像的卷积神经网络的参数进行迭代调整获得的。
本实施例中,利用已训练的用于识别图像的卷积神经网络强大的学习和表示能力进行字符大数据学习,所生成字符识别模型较采用传统方法得到的字符识别模型性能更优。
在一个实施例中,字符识别通过字符识别模型进行,字符识别模型是根据字符图像样本集训练获得的。参照图12,文本序列识别装置1000还包括:字符集确定模块1005、纯净字符图像生成模块1006和字符图像样本生成模块1007。
字符集确定模块1005用于确定字符集。
纯净字符图像生成模块1006用于对于字符集中的每个字符生成差异化的纯净字符图像。
字符图像样本生成模块1007用于将每个纯净字符图像与从背景图像集中随机选择的与纯净字符图像尺寸匹配的背景图像叠加,获得字符图像样本集。
本实施例中,确定字符集后再按照字符集来生成字符图像样本集,无需人工标注;而每个字符形成差异化的字符图像再与背景图像叠加,可以模拟出真实环境下可能出现的字符图像样本,因此可以在保证识别性能的情况下提高训练字符识别模型的效率。
在一个实施例中,纯净字符图像生成模块1006具体用于对于字符集中的每个字符,生成不同字体、不同大小以及不同粗细的纯净字符图像。
在一个实施例中,如图13所示,字符图像样本生成模块1007包括颜色变换模块1007a、字符与背景图像叠加模块1007b、噪声处理模块1007c和字符图像样本集输出模块1007d。
颜色变换模块1007a,用于将每个纯净字符图像中的字符像素值重置为从预设字符像素值区间中随机选择的像素值。
字符与背景图像叠加模块1007b,用于将重置字符像素值后的纯净字符图像按照预设偏移范围进行随机偏移后,与从背景图像集中随机选择的与纯净字符图像尺寸匹配的背景图像叠加,且叠加后的图像中划分出的多个不相交区块之间的差异度小于预设阈值。
噪声处理模块1007c,用于按照多种噪声强度和/或多种噪声添加处理次数对叠加后的图像进行噪声添加处理。
字符图像样本集输出模块1007d,用于将经过噪声添加处理的叠加后的图像形成字符图像样本集。
本实施例中,通过随机偏移模拟出真实环境下的字符位置,并在字符图像样本集中保留背景不太复杂的字符图像样本,可以模拟出接近真实而且具有良好字符区分性的字符图像样本,节省时间,而且能够保障字符识别精度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流 程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。