掌桥专利:专业的专利平台
掌桥专利
首页

一种文本行图片的识别方法、装置和设备

文献发布时间:2023-06-19 12:13:22


一种文本行图片的识别方法、装置和设备

技术领域

本申请涉及图像处理技术领域,特别是涉及一种文本行图片的识别方法、装置和设备。

背景技术

光学字符识别(英文:Optical Character Recognition,简称:OCR)技术,能够识别图片中的文字信息。其中,Transformer模型作为OCR技术的一种实现方式,识别效果较好。

Transformer模型仅对固定尺寸(如固定长度或固定宽度)的图片中的文字信息进行识别,因此,需要将待识别图片缩放到满足该固定尺寸,才可以采用该Transformer模型识别缩放后的图片中的文字信息。但是,将待识别图片缩放为固定尺寸的图片,很可能严重压缩了该待识别图片的分辨率,例如,对于包括较长文本的图片,将该图片强行压缩到固定宽度的情况,一定程度上影响识别结果。

基于此,亟待提供一种能够合理处理待识别图片的方法,克服Transformer模型仅支持对固定尺寸的图片进行识别的问题。

发明内容

本申请实施例提供了一种文本行图片的识别方法、装置和设备,能够合理对待识别图片进行处理,从而使得Transformer模型能够准确的识别图片中的文字信息,提高基于Transformer模型的OCR技术的识别效果。

第一方面,本申请实施例提供了一种文本行图片的识别方法,包括:

将多张待识别文本行图片等比例缩放到预设高度,获得多张缩放后的文本行图片;

将所述多张缩放后的文本行图片的宽度填充到预设宽度,获得多张填充后的文本行图片,所述预设宽度为所述多张缩放后的文本行图片的最大宽度;

分别对所述多张填充后的文本行图片进行文本识别,获得所述多张待识别文本行图片对应的多个文本行。

作为一个示例,所述分别对所述多张填充后的文本行图片进行文本识别,获得所述多张待识别文本行图片对应的多个文本行,包括:

利用Transformer模型对每张所述填充后的文本行图片进行解码,依次获得所述填充后的文本行图片中的文本行中的各个文字;

当满足预设条件时,结束对该填充后的文本行图片的解码,获得该填充后的文本行图片对应的文本行,其中,所述预设条件包括:检测到文本结束符或对所述该填充后的文本行图片的解码次数达到解码次数阈值。

其中,所述解码次数阈值根据所述预设宽度设定。

作为一个示例,在所述将所述多张缩放后的文本行图片的宽度填充到预设宽度之前,所述方法还包括:

依据所述多张缩放后的文本行图片的宽度,将所述多张缩放后的文本行图片分别归入不同的桶,其中,每个桶中的缩放后的文本行图片的宽度满足该桶对应的预设宽度范围,不同桶的预设宽度范围不同;

为每个桶设置对应的预设宽度,所述预设宽度为该桶中的缩放后的文本行图片的最大宽度。

作为一个示例,所述将所述多张缩放后的文本行图片的宽度填充到预设宽度,包括:

将所述多张缩放的文本行图片的宽度填充到缩放后的文本行图片所在的桶对应的预设宽度。

作为一个示例,所述多张待识别文本行图片为横向文本行图片。

作为一个示例,所述方法还包括:

检测多张初始文本行图片的宽高比,确定所述多张初始文本行图片中的纵向文本行图片;

对所述多张初始文本行图片中的纵向文本行图片进行预处理,得到所述多张待识别文本行图片,所述多张待识别文本行图片的宽高比均满足横向文本行图片的宽高比。

第二方面,本申请实施例还提供了一种文本行图片的识别装置,该装置可以包括:缩放单元、填充单元和识别单元。其中:

缩放单元,用于将多张待识别文本行图片等比例缩放到预设高度,获得多张缩放后的文本行图片;

填充单元,用于将所述多张缩放后的文本行图片的宽度填充到预设宽度,获得多张填充后的文本行图片,所述预设宽度为所述多张缩放后的文本行图片的最大宽度;

识别单元,用于分别对所述多张填充后的文本行图片进行文本识别,获得所述多张待识别文本行图片对应的多个文本行。

作为一个示例,所述识别单元,包括:

解码子单元,用于利用Transformer模型对每张所述填充后的文本行图片进行解码,依次获得所述填充后的文本行图片中的文本行中的各个文字;

获得子单元,用于当满足预设条件时,结束对该填充后的文本行图片的解码,获得该填充后的文本行图片对应的文本行,其中,所述预设条件包括:检测到文本结束符或对所述该填充后的文本行图片的解码次数达到解码次数阈值。

其中,所述解码次数阈值根据所述预设宽度设定。

作为一个示例,该装置还包括:

归类单元,用于在所述将所述多张缩放后的文本行图片的宽度填充到预设宽度之前,依据所述多张缩放后的文本行图片的宽度,将所述多张缩放后的文本行图片分别归入不同的桶,其中,每个桶中的缩放后的文本行图片的宽度满足该桶对应的预设宽度范围,不同桶的预设宽度范围不同;

设置单元,用于为每个桶设置对应的预设宽度,所述预设宽度为该桶中的缩放后的文本行图片的最大宽度。

作为一个示例,所述填充单元,具体用于:

将所述多张缩放的文本行图片的宽度填充到缩放后的文本行图片所在的桶对应的预设宽度。

作为一个示例,所述多张待识别文本行图片为横向文本行图片。

作为一个示例,所述装置还包括:检测单元和预处理单元。其中:

检测单元,用于检测多张初始文本行图片的宽高比,确定所述多张初始文本行图片中的纵向文本行图片;

预处理单元,用于对所述多张初始文本行图片中的纵向文本行图片进行预处理,得到所述多张待识别文本行图片,所述多张待识别文本行图片的宽高比均满足横向文本行图片的宽高比。

第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括:处理器和存储器;

所述存储器,用于存储指令或计算机程序;

所述处理器,用于执行所述存储器中的所述指令或计算机程序,以使得所述电子设备执行上述第一方面提供的方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面提供的方法。

由此可见,本申请实施例具有如下有益效果:

本申请实施例提供了一种文本行图片的识别方法,该方法利用基于Transformer模型的OCR技术对待识别的目标图片中的文本进行识别时,先将多张待识别文本行图片等比例缩放到预设高度,获得多张缩放后的文本行图片;再将所述多张缩放后的文本行图片的宽度填充到预设宽度,获得多张填充后的文本行图片,所述预设宽度为所述多张缩放后的文本行图片的最大宽度;最后,分别对所述多张填充后的文本行图片进行文本识别,获得所述多张待识别文本行图片对应的多个文本行。可见,通过本申请实施例提供的方法,考虑到以高度为基准进行缩放不会严重压缩文本行图片的分辨率,对宽度的压缩可以忽略,所以,先将多个文本行图片缩放到预设的高度,然后以宽度最大的文本行图片的宽度为基准对其他文本行图片进行宽度填充,得到宽度和高度均相同的文本行图片,使得处理后所得的多个尺寸相同的文本行图片符合了Transformer模型的处理要求,克服了目前Transformer模型仅支持对固定尺寸的图片进行识别,导致部分文本行图片的分辨率被严重压缩造成识别效果不佳的问题,实现了合理对待识别图片的处理,从而使得Transformer模型能够准确的识别图片中的文字信息,提高基于Transformer模型的OCR技术的识别效果。

附图说明

图1为本申请实施例提供的一种Transformer模型的结构示意图;

图2为本申请实施例提供的一种文本行图片的识别方法的流程示意图;

图3为本申请实施例中目标图片的一示例的示意图;

图4为本申请实施例中图3经过S101后获得的文本行图片的示意图;

图5为本申请实施例中图4经过S102后获得的文本行图片的示意图;

图6为本申请实施例中对图5中一文本行图片执行S103的过程示意图;

图7为本申请实施例提供的另一种文本行图片的识别方法的流程示意图;

图8为本申请实施例提供的文本行图片的识别方法的一示例的示意图;

图9为本申请实施例中一种文本行图片的识别装置的结构示意图;

图10为本申请实施例中一种电子设备的结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,并非对本申请的限定。另外,还需要说明的是,为便于描述,附图中仅示出了与本申请相关的部分,并非全部结构。

OCR技术,目前主要有两种思路:连接主义时间分类(英文:ConnectionistTemporal Classification,简称:CTC)模型和注意力(英文:attention)模型,均可以用于识别图片中的文字信息。通常,CTC模型采用的算法可以是卷积循环神经网络(英文:Convolutional Recurrent Neural Network,简称:CRNN),attention模型采用的算法可以是Transformer模型。在本申请实施例中,针对OCR技术中识别效果较好的Transformer模型提出。

目前,Transformer模型仅对固定宽度的文本行图片中的文字信息进行识别,因此,Transformer模型通常先将待识别的文本行图片经过若干卷积神经网络(英文:Convolutional Neural Network,简称:CNN)缩放到满足该Transformer模型所支持的固定宽度,才可以识别缩放后的文本行图片中的文字信息。但是,将待识别文本行图片缩放为固定宽度的文本行图片,很可能严重压缩了该待识别文本行图片的分辨率,尤其对于包括较长文本的文本行图片,将该文本行图片强行压缩到固定宽度时很可能导致该文本行图片中的文本显示模糊,一定程度上影响识别结果。

基于此,本申请实施例提供了一种文本行图片的识别方法,执行该方法的文本行图片的识别装置,在利用基于Transformer模型的OCR技术对待识别的目标图片中的文本进行识别时,先将多张待识别文本行图片等比例缩放到预设高度,获得多张缩放后的文本行图片;再将所述多张缩放后的文本行图片的宽度填充到预设宽度,获得多张填充后的文本行图片,所述预设宽度为所述多张缩放后的文本行图片的最大宽度;最后,分别对所述多张填充后的文本行图片进行文本识别,获得所述多张待识别文本行图片对应的多个文本行。

可见,该方法中,考虑到以高度为基准进行缩放不会严重压缩文本行图片的分辨率,对宽度的压缩可以忽略,所以,先将多个文本行图片缩放到预设的高度,然后以宽度最大的文本行图片的宽度为基准对其他文本行图片进行宽度填充,得到宽度和高度均相同的文本行图片,使得处理后所得的多个尺寸相同的文本行图片符合了Transformer模型的处理要求,克服了目前Transformer模型仅支持对固定尺寸的图片进行识别,导致部分文本行图片的分辨率被严重压缩造成识别效果不佳的问题,实现了合理对待识别图片的处理,从而使得Transformer模型能够准确的识别图片中的文字信息,提高基于Transformer模型的OCR技术的识别效果。

Transformer模型的结构如图1所示,通常包括CNN 110、编码器(英文:Encoder)120和解码器(英文:Decoder)130,其中,Decoder 130可以通过全连接层(英文:linear)131连接损失层(英文:softmax)132。其中,CNN 110主要可以包括:卷积层、池化层(英文:pooling)、全连接层和损失层等。该Transformer模型的输入为文本行图片,输出为该文本行图片对应的文本。需要说明的是,本申请实施例中提及的文本行图片,例如可以是对包括文本的一张完整图片(即目标图片)进行文本检测后切割得到包括至少一行文本的图片。

需要说明的是,实施本申请实施例的主体可以为具有本申请实施例提供的文本行图片的识别功能的装置,该装置可以承载于终端,该终端可以是现有的、正在研发的或将来研发的、能够通过任何形式的有线和/或无线连接相互交互的任何用户设备,包括但不限于:现有的、正在研发的或将来研发的智能可穿戴设备、智能手机、非智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等。其中,实施本申请实施例的装置也可以包括如图1所示的Transformer模型。

为便于理解本申请实施例提供的文本行图片的识别方法的具体实现,下面将结合附图进行说明。

需要说明的是,下文的实施例中以执行主体为图1所示的Transformer模型为例进行说明。

参见图2,该图为本申请实施例提供的一种文本行图片的识别方法流程示意图,如果需要对目标图片进行识别,则,可以执行本申请实施例提供的该方法。如图2所示,该方法可以包括下述S101~S103:

S101,将多张待识别文本行图片等比例缩放到预设高度,获得多张缩放后的文本行图片。

可以理解的是,本申请实施例提供的方法中,在S101之前,还可以包括对一张完整图片的检测和切割得到多张待识别的文本行图片的过程,由于该过程不涉及本申请实施例的改进点,所以不进行详述。为了方便描述,本申请实施例以多张待识别的文本行图片中的第一文本行图片和第二文本行图片为例进行介绍,对于切割得到的其他文本行图片中的文字信息的识别过程,可以参见该方法中的相关描述。

具体实现时,假设预设高度为H,而第一文本行图片的高度和宽度分别为h1和w1,第二文本行图片的高度和宽度分别为h2和w2,那么,经过S101之后得到的缩放后的文本行图片可以包括第三文本行图片和第四文本行图片,其中,第三文本行图片为将第一文本行图片等比例缩放到高度H时对应的文本行图片,该第三文本行图片的高度和宽度分别为H和(w1*H÷h1);同理,第四文本行图片为将第二文本行图片等比例缩放到高度H时对应的文本行图片,该第四文本行图片的高度和宽度分别为H和(w2*H÷h2)。

需要说明的是,本申请实施例中的文本行图片是指横向文本行图片,所以,在S101之前,该方法还可以包括:检测多张待识别的文本行图片的宽高比,然后,根据所述各文本行图片的宽高比,确定各文本行图片是否为横向文本行图片。作为一个示例,根据所述各文本行图片的宽高比确定各文本行图片是否为横向文本行图片,可以是该文本行图片的识别装置中预设宽高比阈值(如1),判断各文本行图片的宽高比是否大于或等于该预设宽高比阈值,如果是,则,确定该文本行图片为横向文本行图片,否则,确定该文本行图片为纵向文本行图片。

其中,各文本行图片包括第一文本行图片和第二文本行图片,一种情况下,如果根据第一文本行图片和第二文本行图片的宽高比,确定第一文本行图片和第二文本行图片均为横向文本行图片,则,可以直接将该第一文本行图片和第二文本行图片作为S101中待识别的文本行图片;另一种情况下,如果根据第一文本行图片和第二文本行图片的宽高比,确定第一文本行图片和第二文本行图片中存在纵向文本行图片,则,可以将纵向的文本行图片进行预处理(如旋转90度),使得预处理后的文本行图片满足横向文本行图片的宽高比,从而,将预处理后所获得的横向文本行图片作为S101中的待识别的文本行图片。

例如,假设目标图片中包括图3所示的第一文本行图片“天时地利”和第二文本行图片“盖士人读书”,预设宽高比阈值为1,第一文本行图片的宽度和高度分别为12和48,第二文本行图片的宽度和高度分别为120和24,那么,通过计算得到第一文本行图片的宽高比为(12÷48)=0.25,第二文本行图片的宽高比为(120÷24)=5;通过计算所得的宽高比和预设宽高比阈值的比较,确定第二文本行图片为横向文本行图片,第一文本行图片为纵向文本行图片。那么,执行S101之前,需要对第一文本行图片进行预处理,如将第一文本行图片顺时针旋转90度,并将预处理后的第一文本行图片作为S101中的第一文本行图片,以执行本申请实施例提供的方法。

图3所示的第一文本行图片和第二文本行图片,假设预设高度为24,那么,经过S101获得的缩放后的第三文本行图片和第四文本行图片可以参见图4,其中,第三文本行图片的高度和宽度分别为24和96,第四文本行图片的高度和宽度分别为24和120。

如此,经过S101获得了高度相等的多张缩放后的文本行图片,例如包括第三文本行图片和第四文本行图片,为后续执行S102和S103提供了数据基础。

S102,将所述多张缩放后的文本行图片的宽度填充到预设宽度,获得多张填充后的文本行图片,所述预设宽度为所述多张缩放后的文本行图片的最大宽度。

经过S101获得的缩放后的本行图片均为横向文本行图片,高度相等,宽度可以相等也可以不相等。为了使得Transformer模型处理的多张文本行图片的宽度和高度均相同,需要执行S102,即,以S101获得的文本行图片中宽度最大的文本行图片的宽度为基准,对其他文本行图片进行宽度填充,使得所有的文本行图片均达到该文本行图片的宽度。预设宽度,为缩放后的文本行图片中的最大宽度,也等于填充后的文本行图片的宽度。

一种情况下,如果第三文本行图片和第四文本行图片宽度也相等,那么,该方法可以不执行S102,或者,S102中对第三文本行图片或第四文本行图片填充的宽度为0。

另一种情况下,如果第三文本行图片和第四文本行图片宽度不相等,如:第四文本行图片的宽度大于第三文本行图片的宽度,那么,该方法中,可以确定第四文本行图片的宽度为预设宽度,对第三文本行图片进行宽度填充得到第五文本行图片,使得第五文本行图片的宽度等于预设宽度。其中,对第三文本行图片进行宽度填充,例如可以是在第三文本行图片的右侧填充,也可以是在第三文本行图片的左侧填充。宽度填充的内容可以采用空白区域,也可以其他区别于文本行图片的内容。需要说明的是,填充的位置以及填充的内容在本申请实施例中均不进行限定,只要能够使得填充后的文本行图片的宽度均相等并且等于预设宽度即可。

例如,对于图4所示的第三文本行图片和第四文本行图片,执行S102获得的第五文本行图片的高度和宽度分别为24和120,符合Transformer模型进行识别的第五文本行图片和第四文本行图片,可以参见图5所示。

如此,经过S101和S102获得了高度和宽度均相等的多张填充后的文本行图片,例如包括第五文本行图片和第四文本行图片,为后续执行S103做好了准备。

S103,分别对所述多张填充后的文本行图片进行文本识别,获得所述多张待识别文本行图片对应的多个文本行。

具体实现时,将多张填充后的文本行图片分别输入Transformer模型,该Transformer模型的输出分别为各待识别文本行图片对应的文本行。例如,将第四文本行图片输入Transformer模型,该Transformer模型的输出为该第四文本行图片对应的第一文本行。同理,将第五文本行图片输入Transformer模型,该Transformer模型的输出为该第五文本行图片对应的第二文本行。

可以理解的是,Transformer模型需要将输入的多张缩放后的文本行图片分别经过CNN、编码器和解码器,从而获得多个文本行。对于Transformer模型中的解码器,采用的是自动循环的模式,每次仅能够解码出一个文字,且之前解码出的文字作为下次解码的输入。以第四文本行图片“盖世人读书”为例,Transformer模型对该第四文本行图片的解码过程如图6所示,可以包括:S11,Transformer模型检测该第四文本行图片的起始符(例如可以表示为),并将起始符输入解码器,得到文字“盖”;S12,将“盖”输入解码器,得到文字“盖世”;S13,将“盖世”输入解码器得到文字“盖世人”;S14,将“盖世人”输入解码器,得到文字“盖世人读”;S15,将“盖世人读”输入解码器,得到文字“盖士人读书”;S16,将“盖士人读书”输入解码器,得到字符“盖士人读书”,其中,为结束符,从而,结束对该第四文本行图片的识别,得到第一文本“盖士人读书”。

需要说明的是,本申请实施例中,为了防止Transformer模型的自动循环无限进行,该方法还可以包括:设置Transformer模型的解码次数阈值,即,限制该Transformer模型对一个文本行图片进行解码的循环次数,一旦对该文本行图片的解码次数达到该预设的解码次数阈值,则,停止对该文本那图片继续解码。

在一些实现方式中,为了克服Transformer模型中设置固定不变的解码次数阈值,可能导致某些较长的文本行图片无法被完全解码的问题,本申请实施例提出针对不同的文本行图片设置不同的解码次数阈值,该合理的解码次数阈值不仅能够保证对该文本行图片的完全解码,还能够在Transformer模型未合理检测到结束符时不至于作太多无用的解码操作,浪费处理资源。如此,S103中根据Transformer模型对任意一张填充后的文本行图片进行识别,获得对应文本行,可以包括:利用Transformer模型对该填充后的文本行图片进行解码,依次获得该文本行中的各个文字信息;当满足预设条件时,结束对该填充后的文本行图片的解码,获得对应的文本行,其中,预设条件包括:检测到文本结束符或对该填充后的文本行图片的解码次数达到所述解码次数阈值。例如,根据Transformer模型对所述第五文本行图片进行识别,获得所述第五文本行图片中的第二文本行,可以包括:利用所述Transformer模型对所述第五文本行图片进行解码,依次获得所述第二文本行中的各个文字信息;当满足预设条件时,结束对所述第五文本行图片的解码,获得所述第二文本行,其中,预设条件包括:检测到文本结束符或对所述第五文本行图片的解码次数达到所述解码次数阈值。

作为一个示例,预设的解码次数阈值可以依据预设宽度进行设置,例如可以设置为填充后的文本行图片的预设宽度和下采样倍数的商,假设第四文本行图片和第五文本行图片的宽度均为120,下采样倍数为4,那么,解码次数阈值可以设置为(120÷4)=30。这样,Transformer模型分别对第四文本行图片和第五文本行图片进行识别时,当检测到识别结果中包括结束符,或者,当解码次数达到30,则,停止对第四文本行图片和第五文本行图片的识别,获得第一文本行和第二文本行。其中,文本行图片在Transformer模型中经过CNN时执行下采样的操作,下采样倍数可以指在下采样操作后该文本行图片和下采样操作前该文本行图片的空间尺寸的倍数。

例如,对于图5所示的第四文本行图片和第五文本行图片执行S103后,获得的第一文本行可以是“盖世人读书”,第二文本行可以是“天时地利”。

需要说明的是,为了确保识别出的文字信息与多张待识别的文本行图片在所属的完整图片中文字信息的顺序一致,每个待识别的文本行图片还可以携带标识或序号,用于指示其在完整图片中的位置。这样,在完整图片中包括多个待识别的文本行图片时,通过该方法获得多个待识别的文本行图片对应的文本行后,还可以通过多个待识别的文本行图片的标识或序号,对各待识别的文本行图片对应的文本行进行排序,获得该完成图片中的完整文本。例如,假设完整图片仅包括图3所示的第一文本行图片和第二文本行图片,第一文本行图片的编号为1,第二文本行图片的编号为2,那么,该目标图片中的完整文本可以为:第二文本行+第一文本行,即,“天时地利”+“盖世人读书”。

可见,通过本申请实施例提供的方法,考虑到以高度为基准进行缩放不会严重压缩文本行图片的分辨率,对宽度的压缩可以忽略,所以,先将多个文本行图片缩放到预设的高度,然后以宽度最大的文本行图片为基准对其他文本行图片进行宽度填充,得到宽度和高度均相同的文本行图片,使得处理后所得的多个尺寸相同的文本行图片符合了Transformer模型的处理要求,克服了目前Transformer模型仅支持对固定尺寸的图片进行识别,导致部分文本行图片的分辨率被严重压缩造成识别效果不佳的问题,实现了合理对待识别图片的处理,从而使得Transformer模型能够准确的识别图片中的文字信息,提高基于Transformer模型的OCR技术的识别效果。而且,该方法中针对不同的文本行图片设置不同的解码次数阈值,使得基于Transformer模型进行文本行图片识别的技术更加成熟,提高了文本行图片识别的成功率。

考虑到一张完整图片中的多个待识别的文本行图片可能宽度方差会比较大,例如,完整图片中检测并切割出10张待识别的文本行图片,等比例缩放到预设宽度后,有9张文本行图片的宽度为50,1张文本行图片的宽度为1000,那么,如果将9张宽度为50的文本行图片的宽度都填充到1000,如此,会对该文本行图片的计算显存造成了极大的浪费。基于此,本申请实施例还提出了将文本行图片进行分桶的操作。为多个桶中每个桶预设不同的宽度范围(不同桶的宽度范围互斥),每个桶对高度等于预设高度的文本行图片且宽度在该预设范围的文本行图片进行处理,即,每个桶内的文本行图片执行上述S102和S103,汇总多个桶识别所得的结果,获得完整图片对应的完整文本。

参见图7,该图为本申请实施例提供的另一种文本行图片的识别方法流程示意图。如果需要对完整图片进行识别,则,可以执行本申请实施例提供的该方法。如图7所示,该方法可以包括下述S201~S204:

S201,将多张待识别文本行图片等比例缩放到预设高度,获得多张缩放后的文本行图片。

以完整图片中包括第一文本行图片、第二文本行图片、第六文本行图片和第八文本行图片为例,S101可以将目标图片中的第一文本行图片、第二文本行图片、第六文本行图片和第八文本行图片等比例缩放到预设高度,得到第三文本行图片、第四文本行图片、第七文本行图片和第九文本行图片,其中,第三文本行图片、第四文本行图片、第七文本行图片和第九文本行图片的高度均相等,等于预设高度。

需要说明的是,S201中对各文本行图片进行等比例缩放的实现方式以及达到的效果可以参见图2所示的方法中S101的相关描述。

S202,依据所述多张缩放后的文本行图片的宽度,将所述多张缩放后的文本行图片分别归入不同的桶,其中,每个桶中的缩放后的文本行图片的宽度满足该桶对应的预设宽度范围,不同桶的预设宽度范围不同。

以多张缩放后的文本行图片包括上述第三文本行图片、第四文本行图片、第七文本行图片和第九文本行图片,假设第三文本行图片和第四文本行图片的宽度满足第一桶的第一预设宽度范围,第七文本行图片和第九文本行图片的宽度满足第二桶的第二预设宽度范围,那么,根据S202可以将第三文本行图片和第四文本行图片放入第一桶,将第七文本行图片和第九文本行图片放入第二桶。

本申请实施例中,以预设两个桶为例进行说明,针对不同的应用场景,还可以划分更多的桶,实现方式可以参见本申请实施例。

例如,参见图8,第一桶的预设宽度范围(即第一预设宽度范围)为(0,120],第二桶的预设宽度范围(即第二预设宽度范围)为(121,240],经过S201后的第三文本行图片和第四文本行图片如图4所示,第七文本行图片“有恒则断无不成之事”和第九文本行图片“我们都是好孩子”,那么,第三文本行图片、第四文本行图片、第七文本行图片和第九文本行图片的宽度依次为:96、120、216和168。如此,由于96和120属于了第一预设宽度范围(0,120],所以,将第三文本行图片和第四文本行图片放入第一桶;同理,由于216和168属于第二预设宽度范围(121,240],所以,将第七文本行图片和第九文本行图片放入第二桶。

S203,为每个桶设置对应的预设宽度,所述预设宽度为该桶中的缩放后的文本行图片的最大宽度。

以第一桶中包括第三文本行图片和第四文本行图片,第二桶中包括第七文本行图片和第九文本行图片为例,假设第四文本行图片的宽度大于第三文本行图片的宽度,那么,第一桶的预设宽度设置为第四文本行图片的宽度。假设第七文本行图片的宽度大于第九文本行图片的宽度,那么,第二桶的预设宽度设置为第七文本行图片的宽度。

经过S202的分桶处理,S204中可以针对每个桶中的文本行图片,仅考虑本桶中各文本行图片的最大宽度,进行合理的预设宽度设置。

S204,将每个桶中的多张缩放后的文本行图片宽度填充到该桶对应的预设宽度,获得多张填充后的文本行图片。

假设第一桶的预设宽度设置为第四文本行图片的宽度,从而,对第三文本行图片进行宽度填充得到第五文本行图片,其中,第五文本行图片和第四文本行图片的宽度相同。假设第二桶的预设宽度设置为第七文本行图片的宽度,对第九文本行图片进行宽度填充得到第十文本行图片,其中,第十文本行图片和第七文本行图片的宽度相同。

例如,仍然参见图8,填充后第五文本行图片和第四文本行图片的宽度均为120,第十文本行图片和第七文本行图片的宽度均为216。

需要说明的是,S204中对各桶中的文本行图片宽度填充的实现方式以及达到的效果可以参见图2所示的方法中S102的相关描述。

S205,对于每个桶中的多张填充后的文本行图片进行文本识别,获得多个文本行。

例如,Transformer模型可以分别对第四文本行图片、第五文本行图片、第七文本行图片和第十文本行图片进行识别,获得第四文本行图片中的第一文本行、第五文本行图片中的第二文本行、第七文本行图片对应的第三文本行和第十文本行图片对应的第四文本行,该完整图片包括第一文本行、第二文本行、第三文本行和第四文本行。

例如,仍然参见图8,经过S204之后,获得的第一文本行可以是“盖世人读书”,第二文本行可以是“天时地利”,第三文本行可以是“有恒则断无不成之事”,第四文本行可以是“我们都是好孩子”。如果完整图片中,第一文本行图片的编号为1,第二文本行图片的编号为3,第六文本行图片的编号为2,第八文本行图片的编号为4,那么,该完整图片中的完整文本可以为:第二文本行+第三文本行+第一文本行+第四文本行,即,“天时地利”+“有恒则断无不成之事”+“盖世人读书”+“我们都是好孩子”。

需要说明的是,S205中对各桶中的文本行图片的识别的实现方式以及达到的效果可以参见图2所示的方法中S103的相关描述。

需要说明的是,为了使得设置的解码次数阈值更加合理,可以为不同的桶针对性的设置该桶对应的解码次数阈值。作为一个示例,每个桶的解码次数阈值可以为该桶的预设宽度和下采样倍数的商,例如,第一桶的解码次数阈值=(120÷4)=30,第二桶的解码次数阈值=(216÷4)=54。作为另一个示例,每个桶的解码次数阈值可以为该桶对应的预设宽度范围的最大值和下采样倍数的商,例如,第一桶的解码次数阈值=(120÷4)=30,第二桶的解码次数阈值=(240÷4)=60。

具体实现时,对完整图片的识别过程可以包括:S21,根据Transformer模型分别对第四文本行图片和第五文本行图片进行识别,获得第四文本行图片中的第一文本行、第五文本行图片中的第二文本行;S22,根据Transformer模型分别对第七文本行图片和第十文本行图片进行识别,获得第七文本行图片对应的第三文本行和第十文本行图片对应的第四文本行。其中,S21执行时,可以设置解码次数阈值为第一桶对应的解码次数阈值,如设置解码次数阈值为30;S22执行时,可以设置解码次数阈值为第二桶对应的解码次数阈值,如设置解码次数阈值为54或60。其中,可以先执行S21再执行S22,也可以先执行S22再执行S21。也就是说,在完成一个桶中的文本行图片的识别后,对下一个桶的文本行图片进行识别之前,可以更新Transformer模型中的解码次数阈值,更新后的解码次数阈值与接下来处理的桶对应。

可见,通过本申请实施例提供的方法,先将多个文本行图片缩放到预设的高度,并基于缩放后的文本行图片的宽度和多个桶的预设宽度范围的匹配关系,将多张缩放后的文本行图片归入不同的桶,每个桶设置对应的预设宽度,以该桶的预设宽度为基准对该桶中的多张缩放后的文本行图片进行宽度填充,使得每个桶中处理后所得的多个尺寸相同的文本行图片符合了Transformer模型的处理要求,不仅克服了目前Transformer模型仅支持对固定尺寸的图片进行识别,导致部分文本行图片的分辨率被严重压缩造成识别效果不佳的问题,实现了合理对待识别图片的处理,从而使得Transformer模型能够准确的识别图片中的文字信息,提高基于Transformer模型的OCR技术的识别效果。而且,有效的减少在文本行图片识别的过程中对计算显存资源的占用,提高了识别效率。此外,该方法中针对不同的桶设置不同的解码次数阈值,使得基于Transformer模型进行文本行图片识别的技术更加合理,提高了文本行图片识别的成功率。

相应的,本申请实施例还提供了一种文本行图片的识别装置900,如图9所示。该装置900可以包括:缩放单元901、填充单元902和识别单元903。其中:

缩放单元901,用于将多张待识别文本行图片等比例缩放到预设高度,获得多张缩放后的文本行图片;

填充单元902,用于将所述多张缩放后的文本行图片的宽度填充到预设宽度,获得多张填充后的文本行图片,所述预设宽度为所述多张缩放后的文本行图片的最大宽度;

识别单元903,用于分别对所述多张填充后的文本行图片进行文本识别,获得所述多张待识别文本行图片对应的多个文本行。

作为一个示例,所述识别单元903,包括:

解码子单元,用于利用Transformer模型对每张所述填充后的文本行图片进行解码,依次获得所述填充后的文本行图片中的文本行中的各个文字;

获得子单元,用于当满足预设条件时,结束对该填充后的文本行图片的解码,获得该填充后的文本行图片对应的文本行,其中,所述预设条件包括:检测到文本结束符或对所述该填充后的文本行图片的解码次数达到解码次数阈值。

其中,所述解码次数阈值根据所述预设宽度设定。

作为一个示例,该装置900还包括:

归类单元,用于在所述将所述多张缩放后的文本行图片的宽度填充到预设宽度之前,依据所述多张缩放后的文本行图片的宽度,将所述多张缩放后的文本行图片分别归入不同的桶,其中,每个桶中的缩放后的文本行图片的宽度满足该桶对应的预设宽度范围,不同桶的预设宽度范围不同;

设置单元,用于为每个桶设置对应的预设宽度,所述预设宽度为该桶中的缩放后的文本行图片的最大宽度。

作为一个示例,所述填充单元902,具体用于:

将所述多张缩放的文本行图片的宽度填充到缩放后的文本行图片所在的桶对应的预设宽度。

作为一个示例,所述多张待识别文本行图片为横向文本行图片。

作为一个示例,所述装置900还包括:检测单元和预处理单元。其中:

检测单元,用于检测多张初始文本行图片的宽高比,确定所述多张初始文本行图片中的纵向文本行图片;

预处理单元,用于对所述多张初始文本行图片中的纵向文本行图片进行预处理,得到所述多张待识别文本行图片,所述多张待识别文本行图片的宽高比均满足横向文本行图片的宽高比。

需要说明的是,该装置900与上述图2以及图7所示的方法对应,该装置900的实现方式以及达到的效果,可以参见上述图2以及图7所示的实施例的相关描述。

此外,本申请实施例还提供了一种电子设备1000,如图10所示。该电子设备1000包括:处理器1001和存储器1002;其中:

所述存储器1002,用于存储指令或计算机程序;

所述处理器1001,用于执行所述存储器1002中的所述指令或计算机程序,以使得所述电子设备执行上述图2以及图7所示的实施例提供的方法。

此外,本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述图2以及图7所示的实施例提供的方法。

本申请实施例中提到的“第一文本行图片”、“第一文本行”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

相关技术
  • 一种文本行图片的识别方法、装置和设备
  • 一种文本行字符识别方法、装置、介质和电子设备
技术分类

06120113211440