字符识别处理方法和装置与流程

文档序号:24288082发布日期:2021-03-17 00:35阅读:96来源:国知局
字符识别处理方法和装置与流程

本申请涉及深度学习技术领域、图像处理技术领域,尤其涉及一种字符识别处理方法和装置。



背景技术:

通常,字符识别是一种从图片中提取文本信息的方法,在金融,教育,审查,交通出行等众多关乎国计民生的领域都有着重大的应用需求。

相关技术中,在对字符识别时,基于字符在图片中的相对顺序对识别到的字符进行排列,比如,根据从左到右的顺序对识别得到的字符进行排序,然而,当多个字符并不是按照相对顺序排序时,显然会导致识别的字符序列是乱序的。



技术实现要素:

本申请提提供了一种用于对字符序列进行识别的字符识别处理方法和装置。

根据第一方面,提供了一种字符识别处理方法,包括:对样本图片集合中每张图片里的字符标注字符区域;标注与每个所述字符区域对应的字符类别和字符位置编码;根据所述标注字符区域的所述样本图片集合,以及与每个所述字符区域对应的字符类别和字符位置编码,训练预设的用于字符识别的神经网络模型。

根据第二方面,提供了一种字符识别处理装置,包括:第一标注模块,用于对样本图片集合中每张图片里的字符标注字符区域;第二标注模块,用于标注与每个所述字符区域对应的字符类别和字符位置编码;训练模块,用于根据所述标注字符区域的所述样本图片集合,以及与每个所述字符区域对应的字符类别和字符位置编码,训练预设的用于字符识别的神经网络模型。

根据第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的字符识别处理方法。

根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质所述计算机指令用于使所述计算机执行上述第一方面所述的字符识别处理方法。

根据第五方面,提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行上述第一方面所述的字符识别处理方法。

本申请提供的实施例,至少具有如下有益技术效果:

对样本图片集合中每张图片里的字符标注字符区域,标注与每个所述字符区域对应的字符类别和字符位置编码,进而,根据所述标注字符区域的所述样本图片集合,以及与每个所述字符区域对应的字符类别和字符位置编码,训练预设的用于字符识别的神经网络模型,以便于根据神经网络模型识别字符和字符顺序,由此,通过字符位置编码对字符进行排序得到字符相对顺序,最后基于排序组合字符得到最终结果,实现了字符识别的顺序排列。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是根据本申请第一实施例的样本图片的示意图;

图2是根据本申请第二实施例的字符识别处理方法的流程示意图;

图3是根据本申请第三实施例的样本图片的示意图;

图4是根据本申请第四实施例的样本图片的示意图;

图5是根据本申请第五实施例的语义分割图片示意图;

图6是根据本申请第六实施例的字符识别处理方法的流程示意图;

图7是根据本申请第七实施例的字符识别处理场景示意图;

图8是根据本申请第八实施例的字符识别处理装置的结构框图;

图9是根据本申请第九实施例的字符识别处理装置的结构框图;

图10是用来实现本申请实施例的字符识别处理的方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

针对上述背景技术中提到的,基于相对位置识别字符的顺序导致识别字符序列可能错误的问题,比如,如图1所示,对于字符“happy”若是按照其在图片中的相对顺序之别得到的字符序列为“hpapy”。

为了解决该技术问题,本申请提出了一种语义分割来识别字符,通过预测字符的位置编码来确定每个字符的在字符序列中的相对顺序。

具体而言,图2是根据本申请一个实施例的字符识别处理方法的流程图,如图2所示,该方法包括:

步骤201,对样本图片集合中每张图片里的字符标注字符区域。

其中,样本图片集合中包含了大量的样本图片,每个样本图片中包含多个字符,该字符包括但不限于英文、数字、文字等。

在本实施例中,对样本图片集合中的每张图片里的字符标注字符区域,其中,标注字符区域作为每个字符的包围盒确定字符所在区域。

需要说明的是,在不同的应用场景中,对样本图片集合中每张图片里的字符标注字符区域的方式不同,示例如下:

示例一:

获取每张图片里与每个字符相对应的字符框的位置坐标,该位置坐标可以包括每个字符中心点像素坐标、字符框的长和宽,其中,在本实施例中,确定的字符框的长和宽,可以根据每个字符最上方的像素点坐标、最下方的像素点坐标、最左像素点的像素坐标和最右像素点的像素点坐标限定。

进而,根据预设的收缩比率和位置坐标对字符框进行收缩处理,以便于区分不同字符区域,避免将两个相同的相邻字符认为是一个字符识别,根据缩放后的字符框位置坐标标注字符区域。

在本实施例中,预设的收缩比率可以是根据实验数据设置的,也可以是根据相邻字符的距离设置的,比如,可以确定预设的收缩比率对应的标准距离,确定图片中每两个相邻字符的中心像素点的距离,若是该距离大于标准距离,则计算该距离与标准距离的差值,若是该差值大于预设距离阈值,则表明没有误识别的风险,从而,将预设的收缩比率调整为1,若是该距离小于标准距离,则计算标准距离与该距离的差值,根据该差值确定收缩比率的增大值,其中,差值和增大值成正比关系,进而,在预设的收缩比率上增加该增大值,以确定当前字符框(可以是相邻的2个字符框的任一个)的收缩比率。

举例而言,当样本图片如图3所示,为了保证字符以连通域的形式分离开,对于每一个字符框(cx,cy,w,h,其中cx,cy表示字符框中心点坐标,w,h表示字符框的宽和高),我们将字符框基于字符框收缩得到(cx,cy,w*r,h*r,其中r为收缩比率)。

示例二:

在本示例中,预先根据深度学习技术训练得到语义识别模型,根据该语义识别模型识别样本图片集合中每个图片中每个像素点对应的字符类别的概率,选取概率值最大的字符类别为对应像素点的字符类别,进而,将所有属于相同字符类别的像素点组成的连通区域确定为一个字符区域。

在本实施例中,字符区域标注可以为记录字符框像素位置或者是采用线条在图片中标注等。

步骤202,标注与每个字符区域对应的字符类别和字符位置编码。

在本实施例中,为了进一步识别出每个字符的位置,标注与每个字符区域对应的字符类别和字符位置编码,其中,基于字符位置编码可以确定多个字符的顺序信息。

需要说明的是,字符位置编码可以是任意可以推导出字符顺序的信息,下面结合示例说明如下:

示例一:

获取预设的字符串长度阈值,获取每个字符区域的位置索引值,该索引值可以为任意体现字符在图片中的相对位置的信息,比如,根据模型的识别能力预先确定可预测的字符串字符串长度阈值为l,对于每一个字符,其位置索引图为其在图片中的相对顺序i,按照预设算法对字符串长度阈值和位置索引值进行计算,根据计算结果标注每个字符区域对应的所述字符位置编码其字符位置编码,比如,预设算法为:pi=1-i/l。其中,pi为字符位置编码,i为字符在图片中的相对顺序。举例而言,当样本图片为如图4所示,则第一个字符“t”的字符位置编码为p1=1-1/l。从而,最终可以根据pi的大小关系确定字符顺序。

另外,上述预设算法也可以包括计算位置索引值和字符串长度阈值的比值,或者,位置索引值和字符串长度阈值的乘积值等。

当然,当样本图片中的字符是乱序时,上述pi的大小关系可能并不对应于字符顺序由小到大,比如,当样本图片包含的字符为“ttex”,则学习得到的是p2对应的顺序位于p3和p4之后。

示例二:

在本实施中,识别每个样本图片中每个顺序的字符特征和字符语义的特征的距离,将字符的特征与整个字符序列的语义特征的距离一级对应的顺序作为字符位置编码,其中,顺序可以理解为相对顺序。

从而,结合语义和顺序两个维度共同确定字符的位置编码,提高了字符顺序确定的准确性。

其中,字符类别可以理解为具体的字符,比如是“a”还是“b”等。在本申请的一个实施例中,可以对每个样本图片进行语义识别,比如,预先根据深度学习技术训练得到深度学习模型,根据该深度学习模型可以针对每个输入的样本图片识别得到每个样本图片的属于每个字符类别的概率,根据该概率可以得到多张语义分割图片。

举例而言,参照图5,当一张样本图片出现的字符类别为5个,分别为“a、b、c、d、e”,则可以识别得到样本图片的5张语义分割图片,第1张语义分割图片表示所有像素点属于“a”的概率,…,第5张语义分割图片表示所有像素点属于“e”的概率,其中图5中每个黑色原点代表每个像素点和在对应字符类别的概率值。

进而,识别每个样本图片的字符区域中所有像素点的属于每个字符类别的概率均值,将该概率均值的最大值作为该字符区域的字符类别,并为每个字符区域中的像素点赋值为字符区域中字符类别预设的索引值,以实现对每个字符区域对应的字符类别的标注,其中,索引值可以为任意形式,比如,索引值为ci,ci∈[0,c],其中0表示背景类,c为字符类别总数。

在本实施例中,也可以根据属于同一个图像特征的像素点组成的连通域的形状特征来确定字符类别等。

步骤203,根据标注字符区域的样本图片集合,以及与每个字符区域对应的字符类别和字符位置编码,训练预设的用于字符识别的神经网络模型。

在本实施中,根据标注字符区域的样本图片集合,以及与每个字符区域对应的字符类别和字符位置编码,训练预设的用于字符识别的神经网络模型,该神经网络模型可以根据字符区域识别字符,根据字符位置编码确定每个字符对应的顺序。其中,可以根据深度学习技术训练神经网络模型,该神经网络模型可以为全卷积网络(fullyconvolutionalnetworks,fcn)。

当然,在训练用于字符识别的神经网络模型时,还可以使用分类损失函数来优化,即根据神经网络模型输入的样本图片的字符类别和字符位置编码,与标注的字符类别和字符位置编码比较,计算损失值,当损失值大于预设阈值时,则调整模型的系数,直至该损失值小于预设阈值。理论上诸如l2loss,l1losssmoothl1loss等回归损失函数都可以用于作为损失函数。

综上,本申请实施例的字符识别处理方法,对样本图片集合中每张图片里的字符标注字符区域,标注与每个字符区域对应的字符类别和字符位置编码,进而,根据标注字符区域的样本图片集合,以及与每个字符区域对应的字符类别和字符位置编码,训练预设的用于字符识别的神经网络模型。由此,通过字符位置编码对字符进行排序得到字符相对顺序,最后基于排序组合字符得到最终结果,实现了字符识别的顺序排列。

在训练得到神经网络模型后,在测试时给定一幅图片,可以通过神经网络模型得到字符分割预测图和字符位置编码预测图,基于字符位置编码图得到预测的字符和字符的位置编码,通过字符位置编码对字符进行排序得到字符相对顺序,最后基于排序组合字符得到最终结果。

在本申请的一个实施例中,如图6所示,该方法还包括:

步骤601,获取待识别的目标图片。

其中,目标图片包含多个字符。

步骤602,根据神经网络模型对目标图片进行处理,获取预测字符以及与每个预测字符对应的字符位置编码。

由于神经网络模型预先学习得到图片和预测字符以及与每个预测字符对应的字符位置编码的对应关系,因此,可以根据神经网络模型对目标图片进行处理,获取预测字符以及与每个预测字符对应的字符位置编码。

在实际执行过程中,由于目标图片无法获知其字符区域,因此,神经网络模型通过语义分割确定字符区域。

在本申请的一个实施例中,通过神经网络模型对目标图片中的每一个字符做分割,得到语义分割图。具体做法为输入一幅图片,得到(c+1)个与输入图片大小相同的分割图,其中c为字符类别的总数,额外的一张图代表背景图,该背景图中包含了每个像素点属于背景的概率和属于字符的概率。每张分割图代表原图上每个像素点在对应类别上的概率。

进一步的,通过神经网络模型对背景图二值化,可以得到字符二值图。

其中,字符二值图的每个字符连通域可以看作字符区域,进而,通过字符二值图,计算连通域可以得到每个字符的位置。对于每一个连通域,通过计算每张语义分割图上当前连通域像素点的属于对应字符类别的概率均值,可以得到当前连通域每个字符的概率值,将概率值最大值对应的字符类别作为对应连通区域内的字符类别。

在本实施例中,通过神经网络模型识别每个连通域的位置索引值,根据位置索引值得到对应的字符位置编码。

步骤603,根据与每个预测字符对应的字符位置编码对预测字符进行排序,生成目标字符。

在本实施例中,由于字符位置编码可以推理出字符顺序,因此,可以根据与每个预测字符对应的字符位置编码对预测字符进行排序,生成目标字符。

举例而言,当目标图片如图7所示,则获取该图7所示的c+1张语义分割图(图中仅示出一张,其中,通过颜色表示对应像素点的字符类别和概率值),根据背景图得到二值化图像,基于二值化图像计算每个连通域内与每张语义分割图对应的字符类别下的像素概率均值,根据该概率均值,可以确定每个连通域内的字符,进而,根据连通域的位置索引值,比如,图7中的“h”的位置索引为“1”等,结合字符串长度阈值计算每个字符类别的字符位置编码,从而,根据与每个预测字符对应的字符位置编码对预测字符进行排序,生成目标字符“hello”。

综上,本申请实施例的字符识别处理方法,获取待识别的目标图片,根据神经网络模型对目标图片进行处理,获取预测字符以及与每个预测字符对应的字符位置编码,进而,根据与每个预测字符对应的字符位置编码对预测字符进行排序,生成目标字符。由此,对每一个字符预测一个字符位置编码,通过字符位置编码确定字符的相对顺序,从而将字符组合起来,提高了字符串确定的准确性。

为了实现上述实施例,本申请还提出了一种字符识别处理装置。图8是根据本申请一个实施例的字符识别处理装置的结构示意图,如图8所示,该字符识别处理装置包括:第一标注模块810、第二标注模块820、训练模块830,其中,

第一标注模块810,用于对样本图片集合中每张图片里的字符标注字符区域;

第二标注模块820,用于标注与每个字符区域对应的字符类别和字符位置编码;

训练模块830,用于根据标注字符区域的样本图片集合,以及与每个字符区域对应的字符类别和字符位置编码,训练预设的用于字符识别的神经网络模型。

在本申请的一个实施例中,第一标注模块810,具体用于:

获取所述每张图片里与每个字符相对应的字符框的位置坐标;

根据预设的收缩比率和所述位置坐标对所述字符框进行收缩处理,根据缩放后的字符框位置坐标标注所述字符区域。

在本申请的一个实施例中,第二标注模块820,具体用于:

为每个所述字符区域中的像素点赋值为所述字符区域中字符类别预设的索引值。

在本申请的一个实施例中,第二标注模块820,具体用于:获取预设的字符串长度阈值;

获取每个所述字符区域的位置索引值;

按照预设算法对所述字符串长度阈值和所述位置索引值进行计算,根据计算结果标注每个所述字符区域对应的所述字符位置编码。

需要说明的是,前述对字符识别处理方法的解释说明,也适用于本申请实施例的字符识别处理装置,其实现原理和技术效果与本申请类似,在此不再赘述。

根据本申请的实施例,如图9所示,该字符识别处理装置包括:第一标注模块910、第二标注模块920、训练模块930、第一获取模块940、第二获取模块950、排序模块960,其中,第一标注模块910、第二标注模块920、训练模块930与上述第一标注模块810、第二标注模块820、训练模块830的功能相同,在此不再赘述。

第一获取模块940,用于获取待识别的目标图片;

第二获取模块950,用于根据所述神经网络模型对所述目标图片进行处理,获取预测字符以及与每个所述预测字符对应的字符位置编码;

排序模块960,用于根据与每个所述预测字符对应的字符位置编码对所述预测字符进行排序,生成目标字符。

需要说明的是,前述对字符识别处理方法的解释说明,也适用于本申请实施例的字符识别处理装置,其实现原理和技术效果与本申请类似,在此不再赘述。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图10所示,是根据本申请实施例的字符识别处理的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图10所示,该电子设备包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器1001为例。

存储器1002即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的字符识别处理的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的字符识别处理的方法。

存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的字符识别处理的方法对应的程序指令/模块。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的字符识别处理的方法。

存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据字符识别处理的电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至字符识别处理的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

字符识别处理的方法的电子设备还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,图10中以通过总线连接为例。

输入装置1003可接收输入的数字或字符信息,以及产生与字符识别处理的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtualprivateserver",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以为分布式系统的服务器,或者是,结合了区块链的服务器。

为了实现上述实施例,本申请还提出了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行上述实施例所描述的字符识别处理方法。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1