CN114581926A - 多行文本识别方法、装置、设备及介质 - Google Patents

多行文本识别方法、装置、设备及介质 Download PDF

Info

Publication number
CN114581926A
CN114581926A CN202210377461.5A CN202210377461A CN114581926A CN 114581926 A CN114581926 A CN 114581926A CN 202210377461 A CN202210377461 A CN 202210377461A CN 114581926 A CN114581926 A CN 114581926A
Authority
CN
China
Prior art keywords
line
decoding
network
text recognition
column
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210377461.5A
Other languages
English (en)
Inventor
秦勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Xingtong Technology Co ltd
Original Assignee
Shenzhen Xingtong Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Xingtong Technology Co ltd filed Critical Shenzhen Xingtong Technology Co ltd
Priority to CN202210377461.5A priority Critical patent/CN114581926A/zh
Publication of CN114581926A publication Critical patent/CN114581926A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Character Discrimination (AREA)
  • Character Input (AREA)

Abstract

本公开提供一种多行文本识别方法、装置、设备及介质,其中该方法包括:将待处理的多行文本图像输入至预先训练得到的多行文本识别模型;其中,所述多行文本识别模型包括特征提取网络和解码网络;通过所述特征提取网络对所述多行文本图像进行特征提取,得到携带有语义信息的图像特征;通过所述解码网络对所述图像特征进行多行解码得到第一解码结果,以及对所述图像特征进行多列解码得到第二解码结果,并根据所述第一解码结果和所述第二解码结果得到多行文本识别结果。上述方式能够直接对多行文本图像进行整体识别,可以有效提升多行文本识别效率。

Description

多行文本识别方法、装置、设备及介质
技术领域
本公开涉及人工智能领域,尤其涉及多行文本识别方法、装置、设备及介质。
背景技术
文本识别技术作为人工智能领域的重要分支,已广泛应用于各领域。通常而言,文本识别技术主要是指从带有文本字符的图像(文本图像)中识别出字符序列的技术。现有的文本识别技术大多都是单行文本识别,即便对于包含有多个文本行的图像(多行文本图像)而言,也需要针对每行分别进行识别,较为低效。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种多行文本识别方法、装置、设备及介质。
根据本公开的一方面,提供了一种多行文本识别方法,包括:将待处理的多行文本图像输入至预先训练得到的多行文本识别模型;其中,所述多行文本识别模型包括特征提取网络和解码网络;通过所述特征提取网络对所述多行文本图像进行特征提取,得到携带有语义信息的图像特征;通过所述解码网络对所述图像特征进行多行解码得到第一解码结果,以及对所述图像特征进行多列解码得到第二解码结果,并根据所述第一解码结果和所述第二解码结果得到多行文本识别结果。
根据本公开的另一方面,提供了一种多行文本识别装置,包括:图像输入模块,用于将待处理的多行文本图像输入至预先训练得到的多行文本识别模型;其中,所述多行文本识别模型包括特征提取网络和解码网络;特征提取模块,用于通过所述特征提取网络对所述多行文本图像进行特征提取,得到携带有语义信息的图像特征;解码识别模块,用于通过所述解码网络对所述图像特征进行多行解码得到第一解码结果,以及对所述图像特征进行多列解码得到第二解码结果,并根据所述第一解码结果和所述第二解码结果得到多行文本识别结果。
根据本公开的另一方面,提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述多行文本识别方法。
根据本公开的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述多行文本识别方法。
本公开实施例中提供的上述技术方案,能够采用多行文本识别模型中的特征提取网络对多行文本图像进行特征提取,得到携带有语义信息的图像特征,并采用多行文本识别模型中的解码网络对图像特征分别进行行解码和列解码,并根据相应的两个解码结果得到多行文本识别结果。上述方式能够直接对多行文本图像进行整体识别,可以有效提升多行文本识别效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种多行文本识别方法的流程示意图;
图2为本公开实施例提供的一种多行文本识别模型的结构示意图;
图3为本公开实施例提供的一种多行文本识别模型的结构示意图;
图4为本公开实施例提供的一种多行文本识别模型的结构示意图;
图5为本公开实施例提供的一种多行文本识别装置的结构示意图;
图6为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本公开使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
对于包含有多个文本行的图像(多行文本图像)而言,相关技术大多采用的方式也是单行文本识别方式,也即需要逐行识别,将每行的字符识别结果组合形成多个文本行。发明人经研究发现,这种方式至少存在如下问题:1)针对多个文本行中的每行分别进行识别,较为繁琐低效。2)单行文本识别之前需要进行单行文本检测,根据文本行检测结果得到单行文本图像,然后再针对单行文本图像进行单行文本识别,在此基础上,包含有多个文本行的图像在识别之前需要检测得到多个单行文本框,因此所需的检测操作同样复杂低效。3)对于每个文本行而言,长宽比例较为极端,也会给文本识别所需的前置检测操作带来困难,在检测出现偏差时将会影响后续的文本识别精度。4)不同文本行之间的识别是独立的,难以利用彼此之间的有效信息。5)在多个文本行较为紧密(行间距较小)、多个文本行中存在倾斜、弯曲等情况时,都不利于采用单行文本识别,识别精度不高,可靠性较差。应当注意的是,发明人针对相关技术中的所存在的上述缺陷均是申请人在经过实践并仔细研究后得出的结果,因此,上述缺陷的发现过程以及在下文中本公开实施例针对上述缺陷所提出的解决方案,都应该被认定为申请人对本公开做出的贡献。
为了改善以上问题至少之一,本公开实施例提供了一种多行文本识别方法、装置、设备及介质,以下进行详细说明。
图1为本公开实施例提供的一种多行文本识别方法的流程示意图,该方法可以由多行文本识别装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法主要包括如下步骤S102~步骤S106:
步骤S102,将待处理的多行文本图像输入至预先训练得到的多行文本识别模型;其中,多行文本识别模型包括特征提取网络和解码网络。
在实际应用中,可以首先获取待处理的多行文本图像,然后将多行文本图像输入至多行文本识别模型。在一些具体的实施方式中,多行文本图像可以是包含有多个文本行的图像经过文本检测模型进行文本检测所得,其中,该文本检测模型用于从包含有多个文本行的图像中确定一个文本检测框,该文本检测框中包含有待识别的多个文本行,并基于文本检测框得到待识别的多行文本图像,诸如将文本检测框对应的图像区域抠取出来作为多行文本图像。
步骤S104,通过特征提取网络对多行文本图像进行特征提取,得到携带有语义信息的图像特征。本公开实施例对特征提取网络的网络结构不进行限制。特征提取网络可以对多行文本图像整体进行特征提取以及语义解析,得到携带有语义信息的图像特征。
步骤S106,通过解码网络对图像特征进行多行解码得到第一解码结果,以及对图像特征进行多列解码得到第二解码结果,并根据第一解码结果和第二解码结果得到多行文本识别结果。其中,上述第一解码结果即为行解码结果,第二解码结果即为列解码结果,解码网络可以通过不同的子网络分别对图像特征进行行解码和列解码,其中,多行解码即是以行作为基准进行特征解码,而多列解码即是以列作为基准进行特征解码。多行文本图像中的多个文本行都是由文本字符构成,理论上无论是以行为基准进行解码,还是以列为基准进行解码,最后的解码结果对应的文本字符串都能够还原真实的多行文本字符,而本公开实施例充分考虑到了多行文本可能并不规范,且解码过程中也可能存在解码偏差,因此同时进行行解码和列解码,再基于分别所得的解码结果综合进行多行文本识别,从而可有效保障文本识别精度。
另外,由于本公开实施例提供的上述方式能够直接对多行文本图像进行整体识别,可以有效提升多行文本识别效率。
在前述基础上,本公开实施例还提供了一种多行文本识别模型。参见图2所示的一种多行文本识别模型的结构示意图,示意出特征提取网络包括第一特征提取子网络和第二特征提取子网络,解码网络包括行解码子网络和列解码子网络。在图2的基础上,上述通过特征提取网络对多行文本图像进行特征提取,得到携带有语义信息的图像特征的步骤,包括:
通过第一特征提取子网络对多行文本图像进行浅层特征提取,得到第一特征向量;
通过第二特征提取子网络基于第一特征向量进行深层特征提取,得到第二特征向量;第二特征向量为携带有语义信息的图像特征。也即,第二特征提取子网络主要用于对第一特征向量进行强化,同时对其进行语义解析,以提取其中的语义信息,从而便于后续解码识别。另外,第二特征向量与第一特征向量的尺寸相同。其中,尺寸中的高参数为预设的最大可识别行数,尺寸中的宽参数为预设的每行可包含最大字符数。最大可识别行数和每行可包含最大字符数均可根据实际需求进行设置,在一些实施示例中,最大可识别行数大于或等于多行文本识别模型在训练过程中所采用的多个文本图像样本中所包含的最大行数,每行可包含最大字符数大于或等于多个文本图像样本中的行内最大字符数,以便于能够对不同的多行文本图像均能识别,对于行数或行内字符数较少的多行文本图像而言,可采用诸如空白或其它指定标识符进行填充。示例性的,在多个文本图像样本中,有的文本图像样本中的文本行是12行7列,有的文本图像样本中的文本行是7行10列等,有的文本图像样本中的文本行是6行15列等,假设所有文本图像样本中的最大行数为12,最大列数为15,则可以将12(或者大于12的某值)作为最大可识别行数,将15(或者大于15的某值)作为每行可包含最大字符数。应当注意的是,以上仅为示例性说明,不应当被视为限制。
另外,在图2的基础上,通过解码网络对图像特征进行多行解码得到第一解码结果,以及对图像特征进行多列解码得到第二解码结果的步骤,包括:通过行解码子网络对图像特征进行多行解码得到第一解码结果,以及通过列解码子网络对图像特征进行多列解码得到第二解码结果。也即,可通过解码网络中的不同子网络分别进行行解码和列解码。
在前述基础上,本公开实施例还提供了一种多行文本识别模型。参见图3所示的一种多行文本识别模型的结构示意图,在图2的基础上进一步示意出第一特征提取子网络包括残差网络,第二特征提取子网络包括基于注意力机制的编码器和双向LSTM网络,以下分别进行阐述说明:
对于第一特征提取子网络而言,为了使其能够在初始阶段便从多行文本图像中提取到有效特征,本公开实施例选用残差网络实现,残差网络的特点是容易优化,并且能够通过增加相当的深度来提高特征提取的准确率,残差网络内部的残差块使用了跨层跳跃连接,缓解了在深度神经网络中因增加深度带来的梯度消失问题。在一些实施方式中,残差网络可以采用Resnet实现,Resnet网络可以更为有效地解决网络层数加深后出现网络性能退化的问题,从而使得网络可以增加层数进行更加复杂的特征模式提取。Resnet网络的核心为残差块结构,残差块结构的主要特点是跨层跳跃连接,具体的,Resnet网络中包含多个残差块,一个残差块包括多个卷积层,其输入经过残差块之后的输出会与输入进行一次逐通道逐点相加操作,相当于输入有两个分支,一个经过残差块,一个直接快速绕过残差块,最后两个分支合并。Resnet网络根据卷积层数量有18、34、50、101和152等多种结构,可以根据实际需求而灵活选用。
在本公开实施例提供的一种具体的实施示例中,残差网络可以采用Resnet18网络实现,示例性地,Resnet18网络包含4个block块,每个block块包括若干卷积层,通过调节不同block块中卷积操作的滑动步幅长度,最终可得到高为col、宽为row、通道数为512的第一特征向量。其中,col为预设的最大可识别行数,row为预设的每行可包含最大字符数。
对于第二特征提取子网络而言,为了能够对上述第一特征向量进一步强化的同时提取语义信息,本公开实施例选用基于注意力机制的编码器实现,且基于注意力机制的编码器是基于Transformer编码器构建得到的。通过在特征编码过程中引入注意力机制可以合理分配计算资源,从中确定在文本识别过程中需要重点关注的图像特征,有助于获取更多有用的高价值信息,抑制无用信息,而且注意力机制还能够充分利用上下文信息,以便于后续能够得到更为准确有效的文本识别结果。
Transformer模型通常包括编码器和解码器,而本公开实施例主要采用Transformer编码器构建上述基于注意力机制的编码器,通常情况下,Transformer编码器包括6层编码器(也可称为包含6个基础模块一),每层编码器主要包括多头自注意力层、跳跃连接、层归一化和前馈神经网络等网络层。在一些实施方式中,可以直接采用Transformer编码器作为上述基于注意力机制的编码器,而为了达到更好的多行文本识别效果,上述基于注意力机制的编码器可以是将Transformer编码器中所包含的编码器数量进行缩减,且剔除每个编码器中的层归一化单元得到的,也即,本公开实施例对现有的Transformer编码器的结构进行修改调整,示例性的,将原有的6层编码器改为4层编码器,同时去掉每层编码器中的LayerNorm层(层归一化单元)。通过上述方式,有助于保证多行文本图像中的各个字符之间的特征差异性,无需过多平滑。
另外,Transformer编码器在进行编码过程中通常需要涉及到位置编码,在一种实施方式中,上述基于注意力机制的编码器可直接采用现有的Transformer编码器生成位置编码的方式实现,为了进一步提升多行文本识别精度,在本公开实施例中提出专为基于注意力机制的编码器(也即经结构调整后的Transformer编码器)额外生成位置编码的方式,具体的,第二特征提取子网络还包含与基于注意力机制的编码器相连的双向LSTM网络,且双向LSTM网络和基于注意力机制的编码器均与第一特征提取子网络相连;本公开实施例可以通过双向LSTM网络生成位置编码。现有Transformer编码器生成的位置编码都是固定的,对于输入不同的文本图像而言,位置编码也都是不变的,均为基于正余弦函数的位置硬编码,而本公开实施例额外借助双向LSTM网络可生成可变的位置编码,不同文本图像对应的位置编码不同,能够更有针对性,有助于进一步提升文本识别精度。
在前述基础上,通过第二特征提取子网络基于第一特征向量进行深层特征提取,得到第二特征向量的步骤,包括如下步骤(1)~步骤(2):
步骤(1),将第一特征向量输入至双向LSTM网络,得到双向LSTM网络输出的特征向量,并将双向LSTM网络输出的特征向量作为注意力机制的编码器的位置编码。其中,该位置编码与第一特征向量(也即与输入的待识别文本图像)直接相关,因此是可变的,不同文本图像对应的位置编码不同。在具体实现时,双向LSTM网络的每个时间步的输入为表示每个字符位置的one-hot向量,每个时间步的输出是一个高维向量(与编码器输入字符的编码维度一致),所有高维向量拼接在一起构成位置编码。
步骤(2),通过上述基于注意力机制的编码器根据位置编码和第一特征向量进行深层特征提取,得到第二特征向量。在一些具体的实施示例中,可以将位置编码与第一特征向量映射逐点相加,然后再将映射逐点相加后所得的特征向量输入至基于注意力机制的编码器进行深层特征提取,得到第二特征向量,示例性地,上述第二特征向量仍旧为维度为(col,row,512)的特征映射,与上述第一特征向量的尺寸相同。
通过上述方式,本公开实施例在对多行文本图像进行特征提取的过程中,可首先采用残差网络提取有效特征,然后再采用改进后的Transformer编码器(上述基于注意力机制的Transformer编码器)进一步对残差网络提取出的特征进行强化及语义解析,改进后的Transformer编码器能够突显字符差异,有助于后续提升文本识别精度,此外,改进后的Transformer编码器在特征提取中所用的位置编码是采用双向LSTM网络额外生成的,该位置编码与文本图像直接相关,使得特征提取具有针对性,能够进一步提升文本识别精度。
在前述基础上,本公开实施例还提供了一种多行文本识别模型。参见图4所示的一种多行文本识别模型的结构示意图,在图3的基础上进一步示意出解码网络包括第一CTC(Connectionist Temporal Classification,联结时序分类)解码器和第二CTC解码器。本公开实施例采用CTC解码器的原因在于CTC解码器的解码速度较快,且具有更好的对齐能力。其中,第一CTC解码器即为前述行解码子网络,第二CTC解码器即为前述列解码子网络。基于CTC解码的方式能够并行同时解码,解码速度较快,有助于提升识别速度。
在一些具体的实施方式中,第一CTC解码器和第二CTC解码器均包含多个并列的全连接层,且第一CTC解码器中的全连接层的数量为预设的最大可识别行数,也即,第一CTC解码器中包含有col个并列的全连接层,第二CTC解码器中的全连接层的数量为预设的每行可包含最大字符数,也即,第二CTC解码器中包含有row个并列的全连接层。
通过解码网络对图像特征进行多行解码得到第一解码结果,以及,对图像特征进行多列解码得到第二解码结果包括:通过第一CTC解码器对图像特征进行多行解码得到第一字符概率矩阵,将第一字符概率矩阵作为第一解码结果;通过第二CTC解码器对图像特征进行多列解码得到第二字符概率矩阵,将第二字符概率矩阵作为第二解码结果。CTC解码器对图像特征进行解码得到的是概率矩阵,其可表征多行文本中的每个字符属于字典中各字符的概率,其中,字典是预先构建的,在一些实施方式中,可以从用于训练多行文本识别模型的大量文本图像样本中提取出字符串进行分词,基于分词得到的各种字符组成字典,在文本图像样本数量较多时,其所包含的字符种类通常较为丰富全面,也即字典所包含的字符也通常较为丰富全面,有助于保证多行文本识别模型的文本识别准确性。在已知字符概率矩阵之后,即可根据字典找到原字符,将字符组合即可得到识别出的文本字符串。本公开实施例通过不同的CTC解码器以文本行及文本列两方向进行解码,第一CTC解码器的全连接层数量与预设的最大行数相同,从而能够以行作为基准进行多行解码,第二CTC解码器的全连接层数量与预设的最大列数(每行可包含的最大字符数)相同,从而能够以列作为基准进行多列解码。
如前所述,理论上无论是以行为基准进行解码,还是以列为基准进行解码,最后的解码结果(字符概率矩阵)对应的文本字符串都能够还原真实的多行文本字符,但本公开实施例充分考虑到了多行文本可能并不规范,且解码过程中也可能存在解码偏差,因此同时进行行解码和列解码,再基于分别所得的解码结果综合进行多行文本识别,从而可有效保障文本识别准确性。
本公开实施例提供了根据第一解码结果和第二解码结果得到多行文本识别结果的两种实施示例,以下阐述说明:
示例一:可以参照如下步骤a~b实现:
步骤a,将第一字符概率矩阵和第二字符概率矩阵按照指定方式进行融合,得到最终字符概率矩阵。也即,将第一字符概率矩阵和第二字符概率矩阵合并成为一个字符概率矩阵。
在一种具体的实施方式中,可以获取第一字符概率矩阵的第一权重以及第二字符概率矩阵的第二权重;然后根据第一权重和第二权重,对第一字符概率矩阵和第二字符概率矩阵进行逐点加权平均处理,得到最终字符概率矩阵。上述第一字符概率矩阵和第二字符概率矩阵均可以完全表达多行文本中每个字符的概率向量,上述逐点加权平均处理也即针对第一字符概率矩阵和第二字符概率矩阵中相应的点进行相加求加权平均的操作,两个矩阵中相应的点即为均表征多行文本中同一字符对应的概率向量。上述第一权重和第二权重的和值为1,各自的具体数值可以根据需求而自行设置,示例性地,基于文本行的表现特征,认为以行为基准进行解码所得的结果的准确性通常大于以列为基准进行解码所得的结果准确性,因此可以令第一权重大于第二权重,示例性地,第一权重取值为0.6,第二权重取值为0.4。
步骤b,根据最终字符概率矩阵得到多行文本识别结果。
在一种具体的实施方式中,可以通过贪心搜索算法或集束搜索算法对最终字符概率矩阵进行字符解码,得到多行文本图像中的文本字符串,并将文本字符串作为多行文本识别结果。
示例二:可以参照如下步骤A~B实现:
步骤A,对第一字符概率矩阵进行字符解码,得到第一字符串;以及,对第二字符概率矩阵进行字符解码,得到第二字符串。具体的,可以采用贪心搜索算法或集束搜索算法进行字符解码。第一字符串包含多行多列,第二字符串也包含多行多列。理论上第一字符串与第二字符串应该都等同于多行文本图像中多行文本字符,但在多行文本识别模型对多行文本图像进行识别的过程中难以达到百分百精准,尤其是在解码时,第一CTC解码器以行为基准进行行解码,第二CTC解码器以列为基准进行列解码,都会在不同程度上出现偏差,因此最后得到的第一字符概率矩阵和第二字符概率矩阵存在差异性,相应的,第一字符串和第二字符串存在差异性。
步骤B,从第一字符串和第二字符串中选取一个字符串作为纠错字符串,另一个字符串作为目标字符串。
步骤C,采用纠错字符串对目标字符串进行修正,得到最终字符串,并将最终字符串作为多行文本识别结果。也即,选取其中一个字符串作为基准,并采用另一个字符串对其进行修正。
在一些具体实施方式中,可以以第一字符串为目标字符串,第二字符串为纠错字符串;采用纠错字符串对目标字符串进行修正的步骤,包括:对于目标字符串中的每一列,判断该列内的字符与纠错字符串中相应列内的字符不一致的数量是否超过预设第一阈值;在超过预设第一阈值的情况下,采用纠错字符串中相应列整体替换该列。在该实施方式中,目标字符串即为以行为基准进行解码所得,在列方向上可能会存在一定偏差,可信度不如以列为基准进行解码所得的纠错字符串,因此对于目标字符串中的每列,在出现字符差异数量较多时,则可以基于纠错字符串对该列进行整体调整,上述第一阈值可以根据需求进行设置,在此不进行限制。此外,在实际应用中还可以采用不一致字符的数量占每列所包含的总字符数量的比例判别是否需要替换。
在另一些具体实施方式中,可以第一字符串为纠错字符串,第二字符串为目标字符串;采用纠错字符串对目标字符串进行修正的步骤,包括:对于目标字符串中的每一行,判断该行内的字符与纠错字符串中相应行内的字符不一致的数量是否超过预设第二阈值;在超过预设第二阈值的情况下,采用纠错字符串中相应行整体替换该行。该实施方式的原理与上述类似,在此不再赘述。
在实际应用中,可以根据需求灵活选用上述任一种实施方式,在此不进行限制。
本公开实施例给出了多行文本识别模型的训练方法,示例性地,多行文本识别模型按照如下步骤一和步骤二训练得到:
步骤一:获取文本图像样本;文本图像样本包含有多个文本行且携带有标注信息;其中,标注信息中包含有多个字符序列,多个字符序列与多个文本行一一对应,多个字符序列均为指定长度,指定长度的取值为多个字符序列的实际长度中的最大值;对于实际长度小于指定长度的字符序列,采用空白符进行填充。
为了使通过文本图像样本训练所得的多行文本图像识别模型能够识别多种特殊情况下的多行文本图像,文本图像样本中的多个文本行满足以下一种或多种情况:
1、多个文本行中至少存在行间距小于预设间距阈值的相邻文本行;也即,文本行彼此之间间距较近,多个文本行都较为紧凑密集。
2、多个文本行中至少存在行间距按照指定趋势变化的两个相邻文本行;指定趋势包括以下之一:逐渐缩小、逐渐增大、先缩小后增大、先增大后缩小;也即,两个相邻文本行并非一直保持平行,之间的间距并不一致,两个相邻文本行可能间距越来越小、越来越大或者先小后大、先大后小(诸如一个为水平行、一个为弯曲行)等。
3、多个文本行中存在水平文本行、倾斜文本行或弯曲文本行中的一种或多种文本行。可以理解的是,常见的文本行大多是水平的,示例性地,从左往右书写且在同一行上的字符大致都在一条直线上,该直线与水平方向几乎重合。倾斜文本行也即与水平方向具有一定倾斜角,示例性地,从左往右书写且在同一行上的字符大致都在一条直线上,但该直线与水平方向具有一定的夹角。弯曲文本行即为非直线状态,示例性地,从左往后书写,但是字符几乎不在同一条直线上,各字符的中心点连起来之后大致呈现一条曲线。
此外,文本图像样本还可以为模糊(清晰度低于预设清晰度阈值)、影印的文本图像等。
文本图像样本的数量通常为多个,在实际应用中可以收集大量的文本图像样本,每个文本图像样本都包含多个文本行,且至少有部分文本图像样本满足上述情况。然后人工进行样本标注,标注文本图像样本上的文本字符信息,也即进行整个字符标注。与现有文本识别技术中所采用的常规文本标注方式不同之处在于,本公开实施例在对样本进行标注时,由于每个文本图像样本都包含有多个文本行,因此标注的内容包含多个字符序列,每个字符序列是一行,每行的长度都是该文本图像样本中所有行中长度的最大值,如不够则用“空白符”进行标注,从而保证多个字符序列的长度一致,每行都是对齐的。
可以理解的是,虽然在诸如书本、广告牌等场景中出现的多个文本行大多较为规范,基本平行且间距合理,但是对于儿童、青少年的作业、卷面书写等场合,则会经常出现上述问题,在拍照判题等场景下,采用现有的文本识别技术则难以准确地进行文本识别。基于此,本公开实施例采用满足上述情况的多行文本图像进行模型训练,使得训练后的模型具有更强的鲁棒性和扛干扰能力,即便面对书写并不规范的多行文本图像,仍旧能够准确识别,保障识别精度。
步骤二:采用文本图像样本对初始模型进行训练,以得到多行文本识别模型。
在一些实施方式中,初始模型包括用于特征提取的第一神经网络和用于特征解码的第二神经网络,第二神经网络包含行CTC解码器和列CTC解码器;
采用文本图像样本对初始模型进行训练,以得到多行文本识别模型的步骤,可参照如下步骤S1~步骤S4执行:
步骤S1,通过第一神经网络对文本图像样本进行特征提取,得到携带有语义信息的样本图像特征。
在一种具体的实施方式中,可以通过第一神经网络对文本图像样本浅层特征提取,得到第一样本特征向量,并基于第一样本特征向量进行深层特征提取,得到携带有语义信息的样本图像特征。
步骤S2,通过行CTC解码器基于样本图像特征进行多行解码得到行解码结果,根据标注信息确定行解码结果对应的行CTC损失值;以及,通过列CTC解码器基于样本图像特征进行多列解码得到列解码结果,根据标注信息确定列解码结果对应的列CTC损失值。
基于多行文本的表现形式,列解码的难度通常会大于行解码的难度,且可靠性通常也低于行解码的可靠性,为此,在计算列CTC损失值时可以为列损失值的传递增加快捷通道。具体的,可以将样本图像特征输入至列CTC解码器进行多列解码,得到第一列解码结果,并根据标注信息确定第一列解码结果对应的第一列CTC损失值;以及,将第一样本特征向量输入至列CTC解码器进行多列解码,得到第二列解码结果,并根据标注信息确定第二列解码结果对应的第二列CTC损失值。上述方式中,不仅将样本图像特征输入至列CTC解码器进行解码以计算损失,还将第一样本特征向量(浅层特征提取所得的向量)输入至列CTC解码器进行解码再次计算损失,因此列CTC解码器对应两个损失值。
在一些具体实施方式中,假设第一CTC解码器包含有col个并列的全连接层,第二CTC解码器包含有row个并列的全连接层,第一CTC解码器在训练过程中可以针对每行都得到一个CTC损失值,则一共得到col个损失值,然后可基于col个损失值得到上述行CTC损失值,示例性地,可将col个损失值的平均值作为行CTC损失值,或者还可以根据col个损失值各自的大小从中选取最大的col损失值作为行CTC损失值等,本公开实施例对此不进行限制;第二CTC解码器在训练过程中可以针对每列都得到一个CTC损失值,则一共得到row个损失值,然后可基于row个损失值得到上述列CTC损失值,具体方式类似于行CTC损失值的确定方式。上述损失值均可体现出解码器的输出与标注信息之间的差异性。
步骤S3,根据行CTC损失值和列CTC损失值确定初始模型的第一总损失值。
可以将行CTC损失值和列CTC损失值进行加权平均,将加权平均值作为第一总损失值。在列CTC损失值包含有第一列CTC损失值和第二列CTC损失值时,则可以获取行CTC损失值对应的第一损失权重、第一列CTC损失值对应的第二损失权重、第二列CTC损失值对应的第三损失权重;根据行CTC损失值及其第一损失权重、第一列CTC损失值及其第二损失权重、第二列CTC损失值及其第三损失权重进行加权平均操作,将得到的第一加权平均值作为初始模型的第一总损失值。第一损失权重、第二损失权重和第三损失权重的和值为1,具体数值可以根据需求而自行设置,示例性地,第一损失权重为0.6,第二损失权重和第三损失权重均为0.2。
步骤S4,基于第一总损失值对初始模型进行第一阶段训练,直至第一总损失值符合第一预设条件时结束第一阶段训练,基于第一阶段训练后的初始模型得到多行文本识别模型。示例性地,第一预设条件为第一总损失值收敛、低于预设第一损失阈值。
在一些实施方式中,可以直接将第一阶段训练后的初始模型作为多行文本识别模型,在另一些实施方式中,还可以对第一阶段训练后的初始模型进行第二阶段训练,以期进一步优化模型参数,提升模型的识别精度。
示例性地,可以采用文本图像样本对第一阶段训练后的初始模型进行第二阶段训练,直至第二总损失值符合第二预设条件时结束第二阶段训练,将第二阶段训练结束时的初始模型作为多行文本识别模型;
具体的,第二总损失值的获取方式为:根据行CTC解码器在第二阶段训练过程中的行CTC损失值及其预设的第四损失权重、以及列CTC解码器在第二阶段训练过程中的第一列CTC损失值及其预设的第五损失权重,进行加权平均操作,将得到的第二加权平均值作为第二总损失值。第四损失权重和第五损失权重的和值为1,第四损失权重大于第五损失权重,具体可根据需求而灵活设置,示例性地,第四损失权重为0.8,第五损失权重为0.2。
第二阶段训练与第一阶段训练的唯一区别在于:第二阶段训练过程中取消了针对列CTC解码器的快捷通道,也即不再将第一样本特征向量输入至列CTC解码器进行多列解码得到第二列解码结果,而是仅将样本图像特征输入至列CTC解码器进行多列解码,得到第一列解码结果即可。然后直接采用行CTC解码器对应的行CTC损失值和列CTC解码器对应的第一列CTC损失值计算总损失值(第二总损失值),基于第二总损失值再次进行模型训练,调整模型参数,直至达到第二预设条件(第二总损失值收敛、低于预设第二损失阈值)时结束训练。
第二阶段训练结束时的行CTC解码器和列CTC解码器分别作为多行文本识别模型中的第一CTC解码器和第二CTC解码器,第二阶段训练结束时的第一神经网络作为多行文本识别模型中的特征提取网络。实质上,初始模型的网络结构与多行文本识别模型的网络结构完全相同,只是参数不同,将初始模型训练为多行文本识别模型的过程即为调整网络参数的过程,最终训练结束后得到的多行文本识别模型能够较为准确地识别出多行文本图像中的多个文本行的具体内容。
综上所述,本公开实施例提供的多行文本识别方法,具有如下优势至少之一:
(1)能够直接对多行文本图像进行整体识别,可以有效提升多行文本识别效率。
(2)由于是直接对多行文本图像进行整体识别,因此在前期也仅需要检测包含有多个文本行的一个文本框即可,能够极大简化前期所需的文本检测操作,提升文本检测效率。
(3)包含有多个文本行的一个文本框的长宽比较为适中,更利于检测并保证检测精度,有助于进一步保障文本识别精度。
(4)由于是直接针对多个文本行进行识别,因此能充分利用多个文本行之间的上下文信息,同时也会具有更强的抗干扰能力,有效保障文本识别精度。
(5)通过上述文本识别模型的网络结构以及训练方式,也有助于进一步提升文本识别精度和文本识别速度,与此同时还可以对诸如包含有倾斜文本、弯曲文本、密集文本行等特殊的多行文本图像进行较为准确的识别。
对应于前述多行文本识别方法,本公开实施例还提供了一种多行文本识别装置,图5为本公开实施例提供的一种多行文本识别装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图5所示,多行文本识别装置500包括:
图像输入模块502,用于将待处理的多行文本图像输入至预先训练得到的多行文本识别模型;其中,多行文本识别模型包括特征提取网络和解码网络;
特征提取模块504,用于通过特征提取网络对多行文本图像进行特征提取,得到携带有语义信息的图像特征;
解码识别模块506,用于通过解码网络对图像特征进行多行解码得到第一解码结果,以及对图像特征进行多列解码得到第二解码结果,并根据第一解码结果和第二解码结果得到多行文本识别结果。
本公开实施例提供的上述装置能够直接对多行文本图像进行整体识别,可以有效提升多行文本识别效率。
在一些实施方式中,所述特征提取网络包括第一特征提取子网络和第二特征提取子网络;特征提取模块504具体用于:通过所述第一特征提取子网络对所述多行文本图像进行浅层特征提取,得到第一特征向量;通过所述第二特征提取子网络基于所述第一特征向量进行深层特征提取,得到第二特征向量;所述第二特征向量为携带有语义信息的图像特征,且所述第二特征向量与所述第一特征向量的尺寸相同。
在一些实施方式中,所述尺寸中的高参数为预设的最大可识别行数,所述尺寸中的宽参数为预设的每行可包含最大字符数。
在一些实施方式中,所述第二特征提取子网络包括基于注意力机制的编码器,且所述基于注意力机制的编码器是基于Transformer编码器构建得到的。
在一些实施方式中,所述基于注意力机制的编码器是将所述Transformer编码器中所包含的编码器数量进行缩减,且剔除每个所述编码器中的层归一化单元得到的。
在一些实施方式中,所述第二特征提取子网络还包含与所述基于注意力机制的编码器相连的双向LSTM网络,且所述双向LSTM网络和所述基于注意力机制的编码器均与所述第一特征提取子网络相连;特征提取模块504具体用于:将所述第一特征向量输入至所述双向LSTM网络,得到所述双向LSTM网络输出的特征向量,并将所述双向LSTM网络输出的特征向量作为所述注意力机制的编码器的位置编码;通过所述注意力机制的编码器基于所述位置编码和所述第一特征向量进行深层特征提取,得到第二特征向量。
在一些实施方式中,所述第一特征提取子网络包括残差网络。
在一些实施方式中,所述解码网络包括第一CTC解码器和第二CTC解码器;所述第一CTC解码器和所述第二CTC解码器均包含多个并列的全连接层,且所述第一CTC解码器中的全连接层的数量为预设的最大可识别行数,所述第二CTC解码器中的全连接层的数量为预设的每行可包含最大字符数;解码识别模块506具体用于:通过所述第一CTC解码器对所述图像特征进行多行解码得到第一字符概率矩阵,将所述第一字符概率矩阵作为第一解码结果;通过所述第二CTC解码器对所述图像特征进行多列解码得到第二字符概率矩阵,将所述第二字符概率矩阵作为第二解码结果。
在一些实施方式中,解码识别模块506具体用于:将所述第一字符概率矩阵和所述第二字符概率矩阵按照指定方式进行融合,得到最终字符概率矩阵;根据所述最终字符概率矩阵得到多行文本识别结果。
在一些实施方式中,解码识别模块506具体用于:获取所述第一字符概率矩阵的第一权重以及所述第二字符概率矩阵的第二权重;根据所述第一权重和所述第二权重,对所述第一字符概率矩阵和所述第二字符概率矩阵进行逐点加权平均处理,得到最终字符概率矩阵。
在一些实施方式中,解码识别模块506具体用于:通过贪心搜索算法或集束搜索算法对所述最终字符概率矩阵进行字符解码,得到所述多行文本图像中的文本字符串,并将所述文本字符串作为多行文本识别结果。
在一些实施方式中,解码识别模块506具体用于:对所述第一字符概率矩阵进行字符解码,得到第一字符串;以及,对所述第二字符概率矩阵进行字符解码,得到第二字符串;从所述第一字符串和所述第二字符串中选取一个字符串作为纠错字符串,另一个字符串作为目标字符串;采用所述纠错字符串对所述目标字符串进行修正,得到最终字符串,并将所述最终字符串作为多行文本识别结果。
在一些实施方式中,所述第一字符串为目标字符串,所述第二字符串为纠错字符串;解码识别模块506具体用于:对于所述目标字符串中的每一列,判断该列内的字符与所述纠错字符串中相应列内的字符不一致的数量是否超过预设第一阈值;在超过所述预设第一阈值的情况下,采用所述纠错字符串中相应列整体替换该列。
在一些实施方式中,所述第一字符串为纠错字符串,所述第二字符串为目标字符串;解码识别模块506具体用于:对于所述目标字符串中的每一行,判断该行内的字符与所述纠错字符串中相应行内的字符不一致的数量是否超过预设第二阈值;在超过所述预设第二阈值的情况下,采用所述纠错字符串中相应行整体替换该行。
在一些实施方式中,所述装置还包括模型训练模块,用于:获取文本图像样本;所述文本图像样本包含有多个文本行且携带有标注信息;其中,所述标注信息中包含有多个字符序列,多个所述字符序列与多个所述文本行一一对应,多个所述字符序列均为指定长度,所述指定长度的取值为多个所述字符序列的实际长度中的最大值;对于实际长度小于所述指定长度的字符序列,采用空白符进行填充;采用所述文本图像样本对初始模型进行训练,以得到多行文本识别模型。
在一些实施方式中,所述文本图像样本中的多个文本行满足以下一种或多种情况:
所述多个文本行中至少存在行间距小于预设间距阈值的相邻文本行;
所述多个文本行中至少存在行间距按照指定趋势变化的两个相邻文本行;所述指定趋势包括以下之一:逐渐缩小、逐渐增大、先缩小后增大、先增大后缩小;
所述多个文本行中存在水平文本行、倾斜文本行或弯曲文本行中的一种或多种文本行。
在一些实施方式中,所述初始模型包括用于特征提取的第一神经网络和用于特征解码的第二神经网络,所述第二神经网络包含行CTC解码器和列CTC解码器;
模型训练模块具体用于:通过所述第一神经网络对所述文本图像样本进行特征提取,得到携带有语义信息的样本图像特征;通过所述行CTC解码器基于所述样本图像特征进行多行解码得到行解码结果,根据所述标注信息确定所述行解码结果对应的行CTC损失值;以及,通过所述列CTC解码器基于所述样本图像特征进行多列解码得到列解码结果,根据所述标注信息确定所述列解码结果对应的列CTC损失值;根据所述行CTC损失值和所述列CTC损失值确定所述初始模型的第一总损失值;基于所述第一总损失值对所述初始模型进行第一阶段训练,直至所述第一总损失值符合第一预设条件时结束第一阶段训练,基于第一阶段训练后的初始模型得到多行文本识别模型。
在一些实施方式中,模型训练模块具体用于:通过所述第一神经网络对所述文本图像样本浅层特征提取,得到第一样本特征向量,并基于所述第一样本特征向量进行深层特征提取,得到携带有语义信息的样本图像特征;
在一些实施方式中,模型训练模块具体用于:将所述样本图像特征输入至所述列CTC解码器进行多列解码,得到第一列解码结果,并根据所述标注信息确定所述第一列解码结果对应的第一列CTC损失值;以及,将所述第一样本特征向量输入至所述列CTC解码器进行多列解码,得到第二列解码结果,并根据所述标注信息确定所述第二列解码结果对应的第二列CTC损失值。
在一些实施方式中,模型训练模块具体用于:获取所述行CTC损失值对应的第一损失权重、所述第一列CTC损失值对应的第二损失权重、所述第二列CTC损失值对应的第三损失权重;根据所述行CTC损失值及其第一损失权重、所述第一列CTC损失值及其第二损失权重、所述第二列CTC损失值及其第三损失权重进行加权平均操作,将得到的第一加权平均值作为所述初始模型的第一总损失值。
在一些实施方式中,模型训练模块具体用于:采用所述文本图像样本对第一阶段训练后的初始模型进行第二阶段训练,直至第二总损失值符合第二预设条件时结束第二阶段训练,将第二阶段训练结束时的初始模型作为多行文本识别模型;其中,第二阶段训练结束时的所述行CTC解码器和所述列CTC解码器分别作为所述多行文本识别模型中的第一CTC解码器和第二CTC解码器,第二阶段训练结束时的所述第一神经网络作为所述多行文本识别模型中的特征提取网络;并且,所述第二总损失值的获取方式为:根据所述行CTC解码器在第二阶段训练过程中的行CTC损失值及其预设的第四损失权重、以及所述列CTC解码器在第二阶段训练过程中的第一列CTC损失值及其预设的第五损失权重,进行加权平均操作,将得到的第二加权平均值作为所述第二总损失值。
本公开实施例所提供的多行文本识别装置可执行本公开任意实施例所提供的多行文本识别方法,具备执行方法相应的功能模块和有益效果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置实施例的具体工作过程,可以参考方法实施例中的对应过程,在此不再赘述。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。
本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的多行文本识别方法。所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
参考图6,现将描述可以作为本公开的服务器或客户端的电子设备600的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,电子设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元606加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
电子设备600中的多个部件连接至I/O接口605,包括:输入单元606、输出单元607、存储单元608以及通信单元609。输入单元606可以是能向电子设备600输入信息的任何类型的设备,输入单元606可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元607可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元608可以包括但不限于磁盘、光盘。通信单元609允许电子设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理。例如,在一些实施例中,多行文本识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到电子设备600上。在一些实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行多行文本识别方法。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (23)

1.一种多行文本识别方法,包括:
将待处理的多行文本图像输入至预先训练得到的多行文本识别模型;其中,所述多行文本识别模型包括特征提取网络和解码网络;
通过所述特征提取网络对所述多行文本图像进行特征提取,得到携带有语义信息的图像特征;
通过所述解码网络对所述图像特征进行多行解码得到第一解码结果,以及对所述图像特征进行多列解码得到第二解码结果,并根据所述第一解码结果和所述第二解码结果得到多行文本识别结果。
2.如权利要求1所述的多行文本识别方法,其中,所述特征提取网络包括第一特征提取子网络和第二特征提取子网络;
通过所述特征提取网络对所述多行文本图像进行特征提取,得到携带有语义信息的图像特征的步骤,包括:
通过所述第一特征提取子网络对所述多行文本图像进行浅层特征提取,得到第一特征向量;
通过所述第二特征提取子网络基于所述第一特征向量进行深层特征提取,得到第二特征向量;所述第二特征向量为携带有语义信息的图像特征,且所述第二特征向量与所述第一特征向量的尺寸相同。
3.如权利要求2所述的多行文本识别方法,其中,所述尺寸中的高参数为预设的最大可识别行数,所述尺寸中的宽参数为预设的每行可包含最大字符数。
4.如权利要求2所述的多行文本识别方法,其中,所述第二特征提取子网络包括基于注意力机制的编码器,且所述基于注意力机制的编码器是基于Transformer编码器构建得到的。
5.如权利要求4所述的多行文本识别方法,其中,所述基于注意力机制的编码器是将所述Transformer编码器中所包含的编码器数量进行缩减,且剔除每个所述编码器中的层归一化单元得到的。
6.如权利要求4所述的多行文本识别方法,其中,所述第二特征提取子网络还包含与所述基于注意力机制的编码器相连的双向LSTM网络,且所述双向LSTM网络和所述基于注意力机制的编码器均与所述第一特征提取子网络相连;
通过所述第二特征提取子网络基于所述第一特征向量进行深层特征提取,得到第二特征向量的步骤,包括:
将所述第一特征向量输入至所述双向LSTM网络,得到所述双向LSTM网络输出的特征向量,并将所述双向LSTM网络输出的特征向量作为所述基于注意力机制的编码器的位置编码;
通过所述基于注意力机制的编码器根据所述位置编码和所述第一特征向量进行深层特征提取,得到第二特征向量。
7.如权利要求2所述的多行文本识别方法,其中,所述第一特征提取子网络包括残差网络。
8.如权利要求1至7任一项所述的多行文本识别方法,其中,所述解码网络包括第一CTC解码器和第二CTC解码器;所述第一CTC解码器和所述第二CTC解码器均包含多个并列的全连接层,且所述第一CTC解码器中的全连接层的数量为预设的最大可识别行数,所述第二CTC解码器中的全连接层的数量为预设的每行可包含最大字符数;
通过所述解码网络对所述图像特征进行多行解码得到第一解码结果,以及,对所述图像特征进行多列解码得到第二解码结果包括:
通过所述第一CTC解码器对所述图像特征进行多行解码得到第一字符概率矩阵,将所述第一字符概率矩阵作为第一解码结果;
通过所述第二CTC解码器对所述图像特征进行多列解码得到第二字符概率矩阵,将所述第二字符概率矩阵作为第二解码结果。
9.如权利要求8所述的多行文本识别方法,其中,根据所述第一解码结果和所述第二解码结果得到多行文本识别结果的步骤,包括:
将所述第一字符概率矩阵和所述第二字符概率矩阵按照指定方式进行融合,得到最终字符概率矩阵;
根据所述最终字符概率矩阵得到多行文本识别结果。
10.如权利要求9所述的多行文本识别方法,其中,将所述第一字符概率矩阵和所述第二字符概率矩阵按照指定方式进行融合,得到最终字符概率矩阵的步骤,包括:
获取所述第一字符概率矩阵的第一权重以及所述第二字符概率矩阵的第二权重;
根据所述第一权重和所述第二权重,对所述第一字符概率矩阵和所述第二字符概率矩阵进行逐点加权平均处理,得到最终字符概率矩阵。
11.如权利要求9所述的多行文本识别方法,其中,根据所述最终字符概率矩阵得到多行文本识别结果的步骤,包括:
通过贪心搜索算法或集束搜索算法对所述最终字符概率矩阵进行字符解码,得到所述多行文本图像中的文本字符串,并将所述文本字符串作为多行文本识别结果。
12.如权利要求8所述的多行文本识别方法,其中,根据所述第一解码结果和所述第二解码结果得到多行文本识别结果的步骤,包括:
对所述第一字符概率矩阵进行字符解码,得到第一字符串;以及,对所述第二字符概率矩阵进行字符解码,得到第二字符串;
从所述第一字符串和所述第二字符串中选取一个字符串作为纠错字符串,另一个字符串作为目标字符串;
采用所述纠错字符串对所述目标字符串进行修正,得到最终字符串,并将所述最终字符串作为多行文本识别结果。
13.如权利要求12所述的多行文本识别方法,其中,所述第一字符串为目标字符串,所述第二字符串为纠错字符串;采用所述纠错字符串对所述目标字符串进行修正的步骤,包括:
对于所述目标字符串中的每一列,判断该列内的字符与所述纠错字符串中相应列内的字符不一致的数量是否超过预设第一阈值;
在超过所述预设第一阈值的情况下,采用所述纠错字符串中相应列整体替换该列。
14.如权利要求12所述的多行文本识别方法,其中,所述第一字符串为纠错字符串,所述第二字符串为目标字符串;采用所述纠错字符串对所述目标字符串进行修正的步骤,包括:
对于所述目标字符串中的每一行,判断该行内的字符与所述纠错字符串中相应行内的字符不一致的数量是否超过预设第二阈值;
在超过所述预设第二阈值的情况下,采用所述纠错字符串中相应行整体替换该行。
15.如权利要求8所述的多行文本识别方法,其中,所述多行文本识别模型按照如下步骤训练得到:
获取文本图像样本;所述文本图像样本包含有多个文本行且携带有标注信息;其中,所述标注信息中包含有多个字符序列,多个所述字符序列与多个所述文本行一一对应,多个所述字符序列均为指定长度,所述指定长度的取值为多个所述字符序列的实际长度中的最大值;对于实际长度小于所述指定长度的字符序列,采用空白符进行填充;
采用所述文本图像样本对初始模型进行训练,以得到多行文本识别模型。
16.如权利要求15所述的多行文本识别方法,其中,所述文本图像样本中的多个文本行满足以下一种或多种情况:
所述多个文本行中至少存在行间距小于预设间距阈值的相邻文本行;
所述多个文本行中至少存在行间距按照指定趋势变化的两个相邻文本行;所述指定趋势包括以下之一:逐渐缩小、逐渐增大、先缩小后增大、先增大后缩小;
所述多个文本行中存在水平文本行、倾斜文本行或弯曲文本行中的一种或多种文本行。
17.如权利要求15所述的多行文本识别方法,其中,所述初始模型包括用于特征提取的第一神经网络和用于特征解码的第二神经网络,所述第二神经网络包含行CTC解码器和列CTC解码器;
采用所述文本图像样本对初始模型进行训练,以得到多行文本识别模型的步骤,包括:
通过所述第一神经网络对所述文本图像样本进行特征提取,得到携带有语义信息的样本图像特征;
通过所述行CTC解码器基于所述样本图像特征进行多行解码得到行解码结果,根据所述标注信息确定所述行解码结果对应的行CTC损失值;以及,通过所述列CTC解码器基于所述样本图像特征进行多列解码得到列解码结果,根据所述标注信息确定所述列解码结果对应的列CTC损失值;
根据所述行CTC损失值和所述列CTC损失值确定所述初始模型的第一总损失值;
基于所述第一总损失值对所述初始模型进行第一阶段训练,直至所述第一总损失值符合第一预设条件时结束第一阶段训练,基于第一阶段训练后的初始模型得到多行文本识别模型。
18.如权利要求17所述的多行文本识别方法,其中,通过所述第一神经网络对所述文本图像样本进行特征提取,得到携带有语义信息的样本图像特征的步骤,包括:
通过所述第一神经网络对所述文本图像样本浅层特征提取,得到第一样本特征向量,并基于所述第一样本特征向量进行深层特征提取,得到携带有语义信息的样本图像特征;
通过所述列CTC解码器基于所述样本图像特征进行多列解码,得到列解码结果,并根据所述标注信息确定所述列解码结果对应的列CTC损失值的步骤,包括:
将所述样本图像特征输入至所述列CTC解码器进行多列解码,得到第一列解码结果,并根据所述标注信息确定所述第一列解码结果对应的第一列CTC损失值;以及,
将所述第一样本特征向量输入至所述列CTC解码器进行多列解码,得到第二列解码结果,并根据所述标注信息确定所述第二列解码结果对应的第二列CTC损失值。
19.如权利要求18所述的多行文本识别方法,其中,根据所述行CTC损失值和所述列CTC损失值确定所述初始模型的第一总损失值的步骤,包括:
获取所述行CTC损失值对应的第一损失权重、所述第一列CTC损失值对应的第二损失权重、所述第二列CTC损失值对应的第三损失权重;
根据所述行CTC损失值及其第一损失权重、所述第一列CTC损失值及其第二损失权重、所述第二列CTC损失值及其第三损失权重进行加权平均操作,将得到的第一加权平均值作为所述初始模型的第一总损失值。
20.如权利要求19所述的多行文本识别方法,其中,基于第一阶段训练后的初始模型得到多行文本识别模型的步骤,包括:
采用所述文本图像样本对第一阶段训练后的初始模型进行第二阶段训练,直至第二总损失值符合第二预设条件时结束第二阶段训练,将第二阶段训练结束时的初始模型作为多行文本识别模型;其中,第二阶段训练结束时的所述行CTC解码器和所述列CTC解码器分别作为所述多行文本识别模型中的第一CTC解码器和第二CTC解码器,第二阶段训练结束时的所述第一神经网络作为所述多行文本识别模型中的特征提取网络;
并且,所述第二总损失值的获取方式为:根据所述行CTC解码器在第二阶段训练过程中的行CTC损失值及其预设的第四损失权重、以及所述列CTC解码器在第二阶段训练过程中的第一列CTC损失值及其预设的第五损失权重,进行加权平均操作,将得到的第二加权平均值作为所述第二总损失值。
21.一种多行文本识别装置,包括:
图像输入模块,用于将待处理的多行文本图像输入至预先训练得到的多行文本识别模型;其中,所述多行文本识别模型包括特征提取网络和解码网络;
特征提取模块,用于通过所述特征提取网络对所述多行文本图像进行特征提取,得到携带有语义信息的图像特征;
解码识别模块,用于通过所述解码网络对所述图像特征进行多行解码得到第一解码结果,以及对所述图像特征进行多列解码得到第二解码结果,并根据所述第一解码结果和所述第二解码结果得到多行文本识别结果。
22.一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-20中任一项所述的多行文本识别方法。
23.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-20中任一项所述的多行文本识别方法。
CN202210377461.5A 2022-04-11 2022-04-11 多行文本识别方法、装置、设备及介质 Pending CN114581926A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210377461.5A CN114581926A (zh) 2022-04-11 2022-04-11 多行文本识别方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210377461.5A CN114581926A (zh) 2022-04-11 2022-04-11 多行文本识别方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114581926A true CN114581926A (zh) 2022-06-03

Family

ID=81779441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210377461.5A Pending CN114581926A (zh) 2022-04-11 2022-04-11 多行文本识别方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114581926A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116311271A (zh) * 2023-03-22 2023-06-23 北京百度网讯科技有限公司 文本图像的处理方法及装置
CN117351324A (zh) * 2023-12-04 2024-01-05 支付宝(杭州)信息技术有限公司 通过神经网络模型进行文档图像处理的方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116311271A (zh) * 2023-03-22 2023-06-23 北京百度网讯科技有限公司 文本图像的处理方法及装置
CN116311271B (zh) * 2023-03-22 2023-12-26 北京百度网讯科技有限公司 文本图像的处理方法及装置
CN117351324A (zh) * 2023-12-04 2024-01-05 支付宝(杭州)信息技术有限公司 通过神经网络模型进行文档图像处理的方法及装置
CN117351324B (zh) * 2023-12-04 2024-03-01 支付宝(杭州)信息技术有限公司 通过神经网络模型进行文档图像处理的方法及装置

Similar Documents

Publication Publication Date Title
CN114372477B (zh) 文本识别模型的训练方法、文本识别方法及装置
US10380996B2 (en) Method and apparatus for correcting speech recognition result, device and computer-readable storage medium
CN113283427B (zh) 文本识别方法、装置、设备及介质
CN110163181B (zh) 手语识别方法及装置
CN114581926A (zh) 多行文本识别方法、装置、设备及介质
CN112016315B (zh) 模型训练、文本识别方法及装置、电子设备、存储介质
CN113255652B (zh) 文本修正方法、装置、设备及介质
CN112528637B (zh) 文本处理模型训练方法、装置、计算机设备和存储介质
CN113254654B (zh) 模型训练、文本识别方法、装置、设备和介质
CN113205160B (zh) 模型训练、文本识别方法、装置、电子设备和介质
CN112559800B (zh) 用于处理视频的方法、装置、电子设备、介质和产品
CN114022882B (zh) 文本识别模型训练、文本识别方法、装置、设备及介质
CN113159010A (zh) 视频分类方法、装置、设备和存储介质
CN113590761A (zh) 文本处理模型的训练方法、文本处理方法及相关设备
CN111241496B (zh) 确定小程序特征向量的方法、装置和电子设备
US20220358955A1 (en) Method for detecting voice, method for training, and electronic devices
CN114495102A (zh) 文本识别方法、文本识别网络的训练方法及装置
CN113688955B (zh) 文本识别方法、装置、设备及介质
CN113743101A (zh) 文本纠错方法、装置、电子设备和计算机存储介质
CN114973229A (zh) 文本识别模型训练、文本识别方法、装置、设备及介质
CN114639096A (zh) 文本识别方法、装置、电子设备和存储介质
CN114861635A (zh) 一种中文拼写纠错方法、装置、设备及存储介质
CN113762459A (zh) 一种模型训练方法、文本生成方法、装置、介质及设备
CN116561298A (zh) 基于人工智能的标题生成方法、装置、设备及存储介质
CN110851597A (zh) 一种基于同类实体替换的语句标注的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination