文本识别方法、装置、设备及介质与流程

文档序号:26349584发布日期:2021-08-20 20:22阅读:139来源:国知局
文本识别方法、装置、设备及介质与流程

本公开涉及人工智能领域,尤其涉及文本识别方法、装置、设备及介质。



背景技术:

文本识别技术作为人工智能领域的重要分支,已广泛应用于各领域。通常而言,文本识别技术主要是指从带有文本字符的图像(文本图像)中识别出字符序列的技术,发明人经研究发现,现有的文本识别技术的识别精度不高,容易出现字符错识别、漏识别等问题。



技术实现要素:

为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种文本识别方法、装置、设备及介质。

根据本公开的一方面,提供了一种文本识别方法,包括:获取待识别文本图像;将所述待识别文本图像输入至预先训练得到的文本识别模型;其中,所述文本识别模型包括特征编码器以及至少两个连续相连的特征解码器;通过所述特征编码器对所述待识别文本图像进行特征提取,得到文本字符特征;通过所述至少两个连续相连的特征解码器对所述文本字符特征进行多步迭代解析,得到文本识别结果。

根据本公开的另一方面,提供了一种文本识别装置,包括:图像获取模块,用于获取待识别文本图像;模型输入模块,用于将所述待识别文本图像输入至预先训练得到的文本识别模型;其中,所述文本识别模型包括特征编码器以及至少两个连续相连的特征解码器;特征提取模块,用于通过所述特征编码器对所述待识别文本图像进行特征提取,得到文本字符特征;迭代解析模块,用于通过所述至少两个连续相连的特征解码器对所述文本字符特征进行多步迭代解析,得到文本识别结果。

根据本公开的另一方面,提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述文本识别方法。

根据本公开的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述文本识别方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现上述文本识别方法。

本公开实施例中提供的上述技术方案,可以将获取到的待识别文本图像输入至预先训练得到的文本识别模型;该文本识别模型包括特征编码器以及至少两个连续相连的特征解码器;然后通过特征编码器对待识别文本图像进行特征提取,得到文本字符特征,以及通过至少两个连续相连的特征解码器对文本字符特征进行多步迭代解析,得到文本识别结果。上述方式可以对文本字符特征进行充分解析,能够改善相关技术中存在的字符漏识别、错识别等问题,可有效提升文本识别精度及可靠性。

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

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例提供的一种文本识别方法的流程示意图;

图2为本公开实施例提供的一种文本识别模型的结构示意图;

图3为本公开实施例提供的一种特征编码器的训练示意图;

图4为本公开实施例提供的一种文本识别模型的训练方法流程示意图;

图5为本公开实施例提供的一种文本识别装置的结构示意图;

图6为本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

本公开使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

考虑到相关技术中存在文本识别技术的识别精度不高,容易出现字符错识别、漏识别等问题,本公开实施例提供了一种文本识别方法、装置、设备及介质,可以进一步提高文本识别精度及可靠性,为便于理解,以下进行详细说明。

图1为本公开实施例提供的一种文本识别方法的流程示意图,该方法可以由文本识别装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法主要包括如下步骤s102~步骤s108:

步骤s102,获取待识别文本图像。待识别文本图像中包含有文本字符,本公开实施例对文本字符的种类不进行限制,诸如,该文本字符可以为中文,也可以是英文。

待识别文本图像可以是用户上传的文本图像,也可以是执行文本识别方法的电子设备直接通过摄像头采集的文本图像,在此不限制待识别文本图像的获取方式。

步骤s104,将待识别文本图像输入至预先训练得到的文本识别模型;其中,文本识别模型包括特征编码器以及至少两个连续相连的特征解码器。具体而言,特征编码器与至少两个连续相连的特征解码器中的首个特征解码器相连,且特征编码器以及特征解码器均可采用神经网络结构实现。

步骤s106,通过特征编码器对待识别文本图像进行特征提取,得到文本字符特征。

上述特征编码器又可称为特征提取器,可从文本图像中提取文本字符特征,其中,提取文本字符特征的步骤也可称之为图像编码步骤。

步骤s108,通过至少两个连续相连的特征解码器对文本字符特征进行多步迭代解析,得到文本识别结果。

特征提取器输出的文本字符特征可以直接输入给上述至少两个连续相连的特征解码器中的首个特征解码器,由首个特征解码器对文本字符特征进行解析,将解析结果输入给与其相连的下一个特征解码器,由下一个特征解码器再基于该解析结果进一步解析,然后再将自身得到的解析结果输入给下一个特征解码器……依次类推,直至最后一个特征解码器输出解析结果,并基于最后一个特征解码器的解析结果确定文本识别结果。通过多个连续相连的特征解码器对文本字符特征进行多步迭代解析的方式,可以对文本字符特征进行充分有效地解析,能够改善相关技术中存在的字符漏识别、错识别等问题,可有效提升文本识别精度。

为便于理解,本公开实施例提供了一种通过至少两个连续相连的特征解码器对文本字符特征进行多步迭代解析,得到文本识别结果的具体实施方式,包括如下步骤1和步骤2:

步骤1,通过至少两个连续相连的特征解码器对各自输入的目标特征进行依次解析,得到最后一个特征解码器的输出特征向量;其中,首个特征解码器输入的目标特征为文本字符特征;其余特征解码器输入的目标特征为前一个特征解码器的输出特征向量。示例性地,输出特征向量具体可以为字词向量,具体而言,是每个字词对应的字词向量。

步骤2,基于预先构建的词典,将最后一个图像特征解码器的输出特征向量转换为文本识别结果。

本公开实施例给出一种构建词典的方式:获取多个字符串,采用分词算法(诸如jieba分词算法)对字符串进行分词,得到多个字词,其中,每个字词都包含一个或多个字,然后将得到的所有字词进行去重处理,得到不包含重复字词的词典。在一些实施方式中,可以从网络上爬取大量文本字符串,以便于得到的词典能够尽可能多的包含各种字词,应用范围更广;在另一些实施方式中,可以从用于训练文本识别模型的文本图像样本中提取出字符串进行分词,以保证文本识别模型能够将文本图像样本中的字词都识别出来。词典可以指示出特征向量(字词向量)与字词之间的映射关系,可以在得到最后一个特征解码器的输出特征向量后,基于该映射关系找到原字词,从而将字词组合得到文本识别结果。

为了使文本识别模型的结构简单易于实现,本公开实施例提供了一种文本识别模型,该文本识别模型中包含两个连续向量的特征解码器,参见如图2所示的一种文本识别模型的结构示意图,示意出了特征编码器以及两个连续相连的特征解码器,其中,特征编码器的输入为待识别文本图像,输出为文本字符特征;第一个特征解码器的输入即为该文本字符特征,第一个特征解码器的输出为第一字词向量,第二特征解码器的输入为第一特征解码器输出的第一字词向量,第二特征解码器的输出为第二字词向量,然后第二字词向量经过词典解码,得到文本识别结果,该文本识别结果即为待识别文本图像中所包含的文本字符串。发明人经研究发现,当特征解码器为两个时就可以达到较高的文本识别精度,而且结构便于实现,可以较好地应用于各种文本识别场合,当然,如果特征解码器为两个以上时,会进一步提升文本识别精度以及可靠性,具体可以根据实际情况灵活设置特征解码器的数量,在此不进行限制。

为了能够得到较为可靠的文本识别模型,本公开实施例提供了一种文本识别模型的训练方法,具体可参照如下步骤a至步骤d:

步骤a,对预设的第一神经网络进行训练,得到首次训练好的特征编码器。第一神经网络模型也可以理解为未经训练的初始的特征编码器,具体可采用特征编码网络实现,在此不限制该网络结构。

步骤b,对预设的第二神经网络进行训练,得到首次训练好的特征解码器。第二神经网络模型也可以理解为未经训练的初始的特征解码器,具体可采用特征解码网络实现,在此不限制该网络结构。

步骤c,基于首次训练好的特征编码器以及至少两个连续相连的首次训练好的特征解码器构建初始的文本识别模型。

在一些实施方式中,可以直接采用首次训练好的特征编码器与至少两个连续相连的首次训练好的特征解码器构建文本识别模型;在另一些实施方式中,还可以对特征编码器和/或特征解码器进一步处理,诸如,对特征编码器和/或特征解码器的参数进一步调整,以进一步优化特征编码器和/或特征解码器的性能,然后再采用优化后的特征编码器和/或特征解码器构建文本识别模型。

步骤d,对初始的文本识别模型进行训练,得到训练好的文本识别模型。由于文本识别模型中的特征编码器和特征解码器都已分别预先训练过,因此在将特征编码器和特征解码器组合在一起构成文本识别模型后,可以对文本识别模型进行微调训练,适当调整文本识别模型的参数即可达到预期的文本识别效果,而且,各自预先训练好的特征编码器以及特征解码器结合在一起共同训练后,可以更好地相互配合,进一步提升文本识别精度和可靠性。

为便于理解,以下对上述四个步骤(步骤a~步骤d)分别进行阐述说明:

(一)特征编码器的训练方式:

上述步骤a,也即对预设的第一神经网络进行训练,得到首次训练好的特征编码器的步骤,可参照如下步骤a1至a2实现:

步骤a1,获取第一文本图像样本;其中,第一文本图像样本标注有文本字符信息,且第一文本图像样本的图像背景为单一色。应当注意的是,本公开实施例中所提及的获取第一文本图像样本的数量可以为多个。可以基于第一文本图像样本中包含的文本字符对第一文本图像样本进行标注,标注的文本字符信息也可以理解为第一文本图像样本携带的标签,主要用于对第一神经网络进行有监督训练。在实际应用中,可以首先获取原始文本图像样本,原始文本图像样本中通常都包含有背景信息和文字信息,不同的原始文本图像样本的文本字符不同,但是背景却可能相同也可能不同,较为杂乱,为了不使文本图像样本的背景信息对特征编码器对文本字符进行特征提取的过程造成干扰,本公开实施例可以从原始文本图像样本中提取出文本字符,然后基于提取的文本字符构建背景单一的第一文本图像样本。也即,第一文本图像样本与相应的原始文本图像样本上的文字内容相同,但是第一文本图像样本不再携带有原始文本图像样本上的背景信息,所有第一文本图像样本的图像背景均可统一为诸如白色等单一色,利用图像背景为单一色的第一文本图像样本进行网络训练,有助于使特征编码器能够更多的关注待识别文本图像的文字内容信息,尽量忽略待识别文本图像上的背景信息,从而更为有效地提取文本字符特征。

步骤a2,通过第一文本图像样本以及预先训练好的特征提取网络对预设的第一神经网络进行训练,得到首次训练好的特征编码器。实际应用中会预设损失函数,当预设的损失函数收敛时确定训练结束。

为了进一步提升特征编码器的特征提取效果,本公开实施例还选用了其它已经训练好的特征提取网络协助训练第一神经网络,其中,该特征提取网络诸如可以是vgg(visualgeometrygroup,超分辨率测试序列)模型,当然也可以是其它特征提取模型,在此不进行限制。在一些实施方式中,第一神经网络可以为生成式网络或者自编码网络,也即,给其输入的是文本图像,其输出的也是文本图像;具体实现时,第一神经网络包括第一编码器和第一解码器,第一编码器可用于对第一文本图像样本进行特征提取,然后将提取出的文本字符特征输入给第一解码器,由第一解码器对文本字符特征进行解码,以尽量还原第一文本图像样本,并输出解码后的文本图像。此时,在对第一神经网络进行首次训练之后,可以直接采用首次训练后的第一神经网络中的第一编码器作为首次训练好的特征编码器。

为了进一步提升特征编码器的特征提取能力,使特征编码器可以有效提取文本图像特征,上述步骤a2可参照如下步骤(1)~步骤(4)实现:

步骤(1),将第一文本图像样本输入给预设的第一神经网络模型,得到第一神经网络模型的输出文本图像以及第一损失函数值。第一损失函数值可以是基于输出文本图像与第一文本图像样本之间的差异确定。在一些实施方式中,第一损失函数值可以为l1损失函数值。

步骤(2),将输出文本图像以及第一文本图像样本分别输入给预先训练好的特征提取网络,得到特征提取网络针对输出文本图像提取的第一特征以及针对第一文本图像样本提取的第二特征。具体实施时,第一特征和第二特征可以是特征提取网络中相同特征映射层针对输出文本图像以及第一文本图像样本分别提取得到的特征。

步骤(3),基于第一特征和第二特征,得到第二损失函数值。第二损失函数值可以是基于第一特征和第二特征之间的差异确定。在一些实施方式中,第二损失函数值可以为感受野损失函数值。

步骤(4),基于第一损失函数值和第二损失函数值,对第一神经网络模型进行训练,得到首次训练好的特征编码器。在实际应用中,可以将第一损失函数值和第二损失函数值的加权值作为总损失函数值,当总损失函数值收敛时确定第一神经网络模型训练结束,基于训练结束时的第一神经网络模型得到首次训练好的特征编码器,诸如,将第一神经网络模型中的编码器作为本公开实施例要获取的首次训练好的特征编码器。

在一些实施示例中,第一神经网络可以为生成式模型或自编码器,可选地,第一神经网络可以为vae(variationalautoencoder,变分自编码器)模型,特征编码器可直接选用首次训练好的vae模型的编码器。vae模型是一种重要的生成式模型,可将输入内容通过编码器进行编码,然后将编码结果输入给解码器,解码器针对编码结果进行解码,以还原输入内容。诸如,将图像输入给vae模型,vae模型可输出与输入图像极为相近的还原图像,vae模型的输出图像与输入图像越接近,说明vae模型的编码器提取图像特征的能力越强,能够有效的实现图像特征提取。其中,vae模型的编码器可以将输入数据(诸如输入的文本图像)进行编码,得到的编码结果可以是某种分布的参数,也可以是特征图,诸如在本公开实施例中,vae模型的编码器可以将输入的文本图像进行图像特征提取,得到特征图,该特征图可以理解为文本字符特征的表现形式。相比于其它的生成式模型,vae模型的训练更稳定,而且速度更快。vae模型可参照相关技术实现,在此不进行限制,在一种具体的实施示例中,vae模型包括一个编码器和一个解码器,该编码器包括8个卷积层,解码器包括8个反卷积层。当然,以上仅为一种示例,不应当被视为限制,实际应用中还可以根据需求而灵活设置卷积层和反卷积层的数量。

为便于理解,本公开实施例提供了如图3所示的一种特征编码器的训练示意图,在该图中以第一神经网络为vae模型,特征提取网络为vgg模型为例进行说明,如图3所示,首先将第一文本图像样本输入给vae模型,得到vae模型的输出文本图像以及l1损失函数值(前述第一损失函数值);然后将输出文本图像以及第一文本图像样本分别输入给预先训练好的vgg模型,得到vgg模型针对输出文本图像提取的第一特征以及针对第一文本图像样本提取的第二特征,基于第一特征和第二特征可得到感受野损失函数值,然后可基于l1损失函数值以及感受野损失函数值对vae模型进行训练,诸如计算l1损失函数值以及感2受野损失函数值的加权值,将加权值作为总损失函数值,在总损失函数值收敛时确定训练结束,然后选取训练结束时的vae模型中的编码器作为首次训练得到的特征编码器。

进一步,为了提升特征编码器的特征提取能力,使特征编码器能够更加有效地从文本图像中提取文本字符特征,还可以对首次训练好的特征编码器进行再次训练,进一步调整特征编码器的参数,以提升特征编码器的特征提取性能。

(二)特征解码器的训练方式:

步骤b,也即对预设的第二神经网络进行训练,得到首次训练好的特征解码器的步骤,可参照如下步骤b1至b3实现:

步骤b1,获取字符串样本。

应当注意的是,本公开实施例中所提及的获取字符串样本的数量可以为多个。在一些实施方式中,可以先收集大量文本图像样本,然后从文本图像样本中提取出字符串,将提取出的字符串作为获取到的字符串样本。在另一些实施方式中,可以直接获取网络上公开共享的字符串训练集。在另一些实施方式中,可以从网络上爬取大量小说的文字内容信息,然后将小说中的每个句子作为一个字符串样本。本公开实施例对字符串样本的获取方式在此不进行限制。

步骤b2,采用预设方式对字符串样本进行篡改处理,得到字符串样本对应的多个篡改字符串;其中,预设方式包括以下方式中的一种或多种:掩盖部分字符、删减部分字符、增添部分字符、调整字符顺序。

掩盖部分字符的方式可以是:按照一定比例随机将字符串样本中的部分文本字符进行掩盖,诸如随机掩盖字符串样本中的几个字词,但是该方式仅是掩盖原有字词,整个字符串样本的长度保持不变,也即字符数量不变。而删减部分字符的方式可以是:按照一定比例随机将字符串样本中的部分文本字符进行删减,该方式会缩短字符串样本的长度;增添部分字符的方式可以是:按照一定比例随机在字符串样本中额外插入部分文本字符,该方式会增加字符串样本的长度;调整字符顺序的方式可以是:随机调整字符串样本中部分字符的顺序,也即改变部分字符在字符串样本中的位置。

在实际应用中,可以根据需求而灵活选用上述预设方式中的一种或多种对字符串样本进行篡改处理,每种方式都可以得到一个或多个相应的篡改字符串。诸如,在采用掩盖部分字符的方式对一个字符串进行篡改处理时,通过随机改变字符串中的字符掩盖位置和/或字符掩盖数量,就可以得到多个掩盖后的篡改字符串。

步骤b3,为每个篡改字符串标注与其对应的字符串样本,并采用标注后的篡改字符串对预设的第二神经网络进行训练,得到首次训练好的特征解码器。在实际应用中,可以预设损失函数,在预设的该损失函数收敛时,确定训练结束,可以将训练结束时的第二神经网络作为首次训练好的特征解码器。在一种具体的实施示例中,该损失函数可以为交叉熵损失函数。

可以理解的是,字符串样本的数量为多个,每个字符串样本都经过上述方式处理后得到相应的多个篡改字符串。然后可以为每个篡改字符串标注与其对应的字符串样本(也即,篡改之前的字符串样本),采用标注后的篡改字符串对预设的第二神经网络进行有监督训练,得到首次训练好的特征解码器。通过这种方式进行训练所得的特征解码器,具有更强的鲁棒性以及解析能力,诸如,字符串样本“你是谁”按照上述方式进行篡改,得到多个篡改字符串:“你是”(随机删除了“谁”)、“你是谁呀”(额外增添了“呀”)、“是你谁”(“你”和“是”的位置互换),通过上述篡改字符串对特征编码器进行训练后,该特征解码器不仅对字符串“你是谁”进行解码还原,可输出“你是谁”,而且对字符串“你是”进行解码还原,还可以输出“你是谁”,以及对字符串“你是谁呀”、“是你谁”等进行解码还原,都可以输出“你是谁”。上述训练方式所得的特征解码器对于诸如漏字符、多字符、字符顺序错误等多种情况都可以解析得到准确结果,采用多个上述特征解码器对文本字符特征进行多步迭代解析,可以充分有效地提升特征解析能力,得到准确的文本识别结果,有助于进一步保障文本识别精度和可靠性。

在一些实施示例中,特征解码器包括transformer模型。transformer模型通常包括编码器和解码器,在一些实施方式中,transformer模型中的编码器包括多个基础模块一,每个基础模块一主要包括多头自注意力层、跳跃连接、层归一化和前馈神经网络等网络层,解码器包括多个基础模块二,基础模块二与基础模块一的不同之处在于:基础模块二包括两层多头自注意力层,在一种具体的实施示例中,transformer模型包括6个基础模块一和6个基础模块二,此外,还可以根据实际需求灵活设置基础模块一和基础模块二的数量,在此不进行限制。transformer模型的具体工作原理可参照相关技术实现,在此不再赘述,另外,在将transformer模型应用在本公开实施例提供的文本识别场景中,上述基础模块二中的多头自注意力层无需添加mask掩膜,原因在于transformer模型的输出可以是一次性直接输出,不用再看上下文(字符串中本身携带有上下文信息),也即,输出的是整个字符串,而非是单独的字词。而在诸如机器翻译任务等相关场景中使用的transformer模型需要添加mask掩膜的原因是:虽然输入的是字符串,但解码器每次解码的是一个字词,同时前面解码出来的词会是后面解码的输入,也即,对字符串后面的字词进行解码时会参考前面的字词,但不参考之后的字词,所以需要将之后的字词进行mask掩膜。诸如,在机器翻译任务中,transformer模型需要将“你是谁”翻译为“<s>whoareyou<e>”,<s>和<e>是设定的起止符,编码器会将“你是谁”一次编码,但是解码器却是每次解码一个词,且解码器在解码前面的词(比如“are”)不能看到后面的词(比如“you”),只能看到再之前解码出来的词(比如who),此时就需要借助掩膜把“you”挡住。

transformer模型的模型结构能够较好的用于seq2seq任务(一个序列映射到另一个序列的任务),且该模型结构有助于提升文本识别精度,具有良好的性能,因此可选用transformer模型作为本公开实施例中的特征解码器,借助transformer模型达到较好的文字解析效果。

(三)文本识别模型的初始构建方式:

在一些实施方式中,上述步骤c,也即基于首次训练好的特征编码器以及至少两个连续相连的首次训练好的特征解码器构建初始的文本识别模型的步骤,可以是直接采用首次训练好的特征编码器与至少两个连续相连的首次训练好的特征解码器构成初始的文本识别模型。

在一些实施方式中,还可以再次对首次训练好的特征编码器进行参数调整,从而进一步提升特征编码器的特征提取能力,以便进一步提升文本识别模型的识别准确性和可靠性,上述步骤c,可参照如下步骤c1至c3实现:

步骤c1,获取第二文本图像样本;其中,第二文本图像样本标注有文本字符信息。应当注意的是,本公开实施例中所提及的获取第二文本图像样本的数量可以为多个。可以基于第二文本图像样本中包含的文本字符对第二文本图像样本进行标注,标注的文本字符信息也可以理解为第二文本图像样本携带的标签,主要用于对首次训练好的特征编码器再次进行有监督训练。在一些实施方式中,上述第二文本图像样本可以是与首次训练特征编码器时采用的第一文本图像样本一一对应,具体而言,第二文本图像样本所包含的文本字符内容和第一文本图像样本所包含的文本字符内容相同,只是第二文本图像样本仍旧携带有背景信息,图像背景可能并非是单一色,也即,第二文本图像样本可以为背景未处理的原始文本图像,而第一文本图像样本是基于该原始文本图像中的文本字符内容重新构建的图像背景单一的文本图像样本。

步骤c2,利用第二文本图像样本对首次训练好的特征编码器的网络参数进行微调。由于特征编码器已经首次训练好,已能够有效提取文本图像特征,因此本步骤只需对其参数进一步微调优化即可。诸如,采用其它神经网络与特征编码器进行联合训练,然后特征编码器与其它神经网络的参数按照一定比例进行交替迭代更新,诸如,假设其它神经网络的参数更新1000次,特征编码器的参数更新1次,以此来实现特征编码器的参数微调。

在一些实施方式中,可以首先采用首次训练好的特征编码器构建crnn(convolutionalrecurrentneuralnetwork,卷积循环神经网络)模型;其中,crnn模型包括cnn(convolutionalneuralnetwork)卷积神经网络层和rnn(recurrentneuralnetwork)循环神经网络层,且cnn网络层包括首次训练好的特征编码器;具体实现时,可以直接将首次训练好的特征编码器作为crnn模型中的cnn网络层,还可以选用两层双向lstm(longshort-termmemory,长短期记忆)网络作为rnn网络层;然后利用第二文本图像样本以及ctc(connectionisttemporalclassification,连接时序分类)损失函数对crnn模型进行训练,且在训练过程中,rnn网络层的参数更新次数与cnn网络层的参数更新次数呈预设比例,比例大于预设阈值;该阈值可自行设置,诸如可以为100、500等。示例性地,rnn网络层的参数更新1000次,而cnn网络层的参数更新1次。在ctc损失函数收敛时结束训练,将训练后的crnn模型中的特征编码器作为参数微调后的特征编码器。

在上述crnn模型中,除了cnn网络层和rnn网络层,还可以包括翻译层;crnn模型主要用于解决基于图像的序列识别问题,其中,cnn网络层用于从文本图像中提取特征,rnn网络层用于对cnn网络层提取的特征进行序列预测,翻译层用于将rnn网络层输出的序列翻译为字符串。通过将首次训练好的特征编码器作为crnn模型中的cnn网络层,利用整个crnn模型进行文本识别训练,训练结束后的特征编码器的参数得以进一步优化。由于特征编码器在之前已经训练过,因此特征编码器在作为crnn模型中的一部分进行训练时,可以减少特征编码器的参数更新次数,对特征编码器的参数进行微调优化即可。

步骤c3,采用参数微调后的特征编码器以及至少两个连续相连的首次训练好的特征解码器构建初始的文本识别模型。

在一些实施方式中,可以直接令参数微调后的特征编码器与至少两个连续相连的首次训练好的特征解码器构成初始的文本识别模型;在另一种实施方式中,还可以对首次训练好的特征解码器进一步优化参数,采用参数微调后的特征编码器以及至少两个连续相连的参数优化后的特征解码器构成初始的文本识别模型。

(四)文本识别模型的训练方式:

上述步骤d,也即,对初始的文本识别模型进行训练,得到训练好的文本识别模型的步骤,可以参照如下步骤d1和d2实现:

步骤d1,获取第三文本图像样本;其中,第三文本图像样本标注有文本字符信息。本公开实施例中所提及的获取第三文本图像样本的数量可以为多个。可以基于第三文本图像样本中包含的文本字符对第三文本图像样本进行标注,标注的文本字符信息也可以理解为第三文本图像样本携带的标签,主要用于对初始的文本识别模型进行有监督训练。在一些实施方式中,第三文本图像样本可直接选用前述第二文本图像样本(也即用于对首次训练好的特征编码器的网络参数进行微调的图像样本)实现,具体实施时,可以从前述多个第二文本图像样本中抽取少量的文本图像样本作为第三文本图像样本,从而采用第三文本图像样本对文本识别模型的参数进行微调。

步骤d2,利用第三文本图像样本以及交叉熵损失函数对初始的文本识别模型进行训练,直至交叉熵损失函数收敛时得到训练好的文本识别模型。

本公开实施例提供的上述文本识别模型的结构包括特征编码器以及至少两个连续相连的特征解码器,而特征编码器以及特征解码器之前均已各自训练,分别具有较高的特征提取能力以及特征解析能力,结合在一起构成初始的文本识别模型后,通过第三文本图像样本对其进一步训练,可进一步提升文本识别模型的文本识别精度和可靠性。

基于以上内容,本公开实施例提供了一种文本识别模型的训练方法(也可称之为构建方法或者生成方法),参见图4所示的一种文本识别模型的训练方法流程示意图,主要包括如下步骤s402~步骤s416:

步骤s402,收集多个文本图像样本,将收集到的文本图像样本的尺寸均统一为预设尺寸,得到第一训练样本集;其中,每个文本图像样本均标注有文本字符信息。该第一训练样本集中的文本图像样本相当于前述第二文本图像样本。此外,还可以将文本图像样本标注的文本字符信息进行分词,得到词典。该词典可用于后续的文本识别过程。

步骤s404,从网络上爬取多个文本内容,将文本内容中的每个句子分别作为一个字符串样本,得到第二训练样本集。诸如,从网络上爬取大量小说,将小说中的每个句子作为字符串样本。

步骤s406,利用第一训练样本集中标注的文本字符信息,构建一组背景单一的文本图像样本,得到第三训练样本集;其中,第三训练样本集中的文本图像样本与第一训练样本集中的文本图像样本一一对应,且第三训练样本集中的文本图像样本也都标注有文本字符信息。具体而言,第三训练样本集中的文本图像样本与第一训练样本集中的文本图像样本所包含的文字内容相同,但是背景不同,第一训练样本集中的文本图像样本中携带有背景信息,背景较为杂乱,而第三训练样本集中的文本图像样本中的背景颜色统一(诸如均为白色)。另外,第三训练样本集中的文本图像样本相当于前述第一文本图像样本。

步骤s408,采用第三训练样本集以及已训练好的vgg特征提取网络对预设的初始vae模型进行训练,得到训练好的vae模型。示例性地,该图像特征提取器即为前述特征编码器。vae模型包括一个编码器和一个解码器,该编码器包括8个卷积层,该解码器包括8个反卷积层。vae模型的具体训练方式可参照前述相关内容,在此不再赘述。训练好的图像特征提取器具有较强的特征提取能力,而且可以更多的关注文本图像中的文本字符信息,并尽可能忽略文本图像中的背景信息。

步骤s410,采用上述训练好的vae模型作为crnn模型的cnn网络层,采用两层双向lstm作为crnn模型的rnn网络层,并采用第一训练样本集和ctc损失函数对构建的crnn模型进行训练,以优化vae模型的参数。在训练过程中,rnn网络层的参数更新次数与cnn网络层的参数更新次数的比值大于预设阈值,该预设阈值诸如可以为100、1000等预设值,在此不进行限定;当ctc损失函数收敛时,训练结束。该步骤的目的在于进一步优化vae模型的参数,后续直接采用参数优化后的vae模型即可。

步骤s412,将第二训练样本集中的字符串进行篡改,采用篡改后的字符串对预设的初始transformer模型进行训练,得到训练好的transformer模型。

步骤s414,采用参数优化后的vae模型中的编码器作为文本识别模型的图像特征提取器,采用训练好的transformer模型作为文本识别模型的特征解码器,得到初始的文本识别模型。

步骤s416,采用第一训练样本集中的部分文本图像样本对初始的文本识别模型进行微调训练,得到训练好的文本识别模型。微调训练也即指采用少量的文本图像样本对初始的文本识别模型进行训练,对模型参数进行微调的过程。

上述文本识别模型的训练方法中,图像特征提取器选用特征提取性能较好的vae模型的编码器实现,并且对vae模型进行了充分训练以及参数调优,使得图像特征提取器可以充分有效地提取文本字符特征,特征解码器选用能够较好应用于seq2seq任务(一个序列映射到另一个序列的任务)的transformer模型,而且采用篡改字符串训练所得的特征解码器能够对多/漏字符等问题字符串也可以解析得到准确字符串,文本识别模型通过多个依次相连的特征解码器还可以进行多次迭代解析,具有更强的特征解析能力。

综上,通过上述训练所得的文本识别模型进行文本识别,可以充分提升文本识别精度和可靠性。

对应于前述文本识别方法,本公开实施例还提供了一种文本识别装置,图5为本公开实施例提供的一种文本识别装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图5所示,文本识别装置500包括:

图像获取模块502,用于获取待识别文本图像;

模型输入模块504,用于将待识别文本图像输入至预先训练得到的文本识别模型;其中,文本识别模型包括特征编码器以及至少两个连续相连的特征解码器;

特征提取模块506,用于通过特征编码器对待识别文本图像进行特征提取,得到文本字符特征;

迭代解析模块508,用于通过至少两个连续相连的特征解码器对文本字符特征进行多步迭代解析,得到文本识别结果。

本公开实施例提供的上述文本识别装置可以对文本字符特征进行充分解析,能够改善相关技术中存在的字符漏识别、错识别等问题,可有效提升文本识别精度。

在一些实施方式中,迭代解析模块508具体用于:通过所述至少两个连续相连的特征解码器对各自输入的目标特征进行依次解析,得到最后一个所述特征解码器的输出特征向量;其中,首个所述特征解码器输入的目标特征为所述文本字符特征;其余所述特征解码器输入的目标特征为前一个所述特征解码器的输出特征向量;基于预先构建的词典,将最后一个所述图像特征解码器的输出特征向量转换为文本识别结果。

在一些实施方式中,上述装置还包括模型训练模块,包括:

编码器训练单元,用于对预设的第一神经网络进行训练,得到首次训练好的特征编码器;

解码器训练单元,用于对预设的第二神经网络进行训练,得到首次训练好的特征解码器;

初始模型构建单元,用于基于所述首次训练好的特征编码器以及至少两个连续相连的所述首次训练好的特征解码器构建初始的文本识别模型;

模型训练单元,用于对所述初始的文本识别模型进行训练,得到训练好的文本识别模型。

在一些实施方式中,编码器训练单元具体用于:获取第一文本图像样本;其中,所述第一文本图像样本标注有文本字符信息,且所述第一文本图像样本的图像背景为单一色;通过所述第一文本图像样本以及预先训练好的特征提取网络对预设的第一神经网络进行训练,得到首次训练好的特征编码器。

在一些实施方式中,编码器训练单元具体用于:将所述第一文本图像样本输入给预设的第一神经网络模型,得到所述第一神经网络模型的输出文本图像以及第一损失函数值;将所述输出文本图像以及所述第一文本图像样本分别输入给预先训练好的特征提取网络,得到所述特征提取网络针对所述输出文本图像提取的第一特征以及针对所述第一文本图像样本提取的第二特征;基于所述第一特征和所述第二特征,得到第二损失函数值;基于所述第一损失函数值和所述第二损失函数值,对所述第一神经网络模型进行训练,得到首次训练好的特征编码器。

在一些实施方式中,初始模型构建单元具体用于:获取第二文本图像样本;其中,所述第二文本图像样本标注有文本字符信息;利用所述第二文本图像样本对所述首次训练好的特征编码器的网络参数进行微调;采用参数微调后的所述特征编码器以及至少两个连续相连的所述首次训练好的特征解码器构建初始的文本识别模型。

在一些实施方式中,初始模型构建单元具体用于:采用所述首次训练好的特征编码器构建crnn模型;其中,所述crnn模型包括cnn网络层和rnn网络层,且所述cnn网络层包括所述首次训练好的特征编码器;利用所述第二文本图像样本以及ctc损失函数对所述crnn模型进行训练,且在训练过程中,所述rnn网络层的参数更新次数与所述cnn网络层的参数更新次数呈预设比例,所述比例大于预设阈值;在所述ctc损失函数收敛时结束训练,将训练后的所述crnn模型中的特征编码器作为参数微调后的所述特征编码器。

在一些实施方式中,所述特征编码器包括vae模型中的编码器。

在一些实施方式中,解码器训练单元,具体用于:获取字符串样本;采用预设方式对所述字符串样本进行篡改处理,得到所述字符串样本对应的多个篡改字符串;其中,所述预设方式包括以下方式中的一种或多种:掩盖部分字符、删减部分字符、增添部分字符、调整字符顺序;为每个所述篡改字符串标注与其对应的字符串样本,并采用标注后的所述篡改字符串对预设的第二神经网络进行训练,得到首次训练好的特征解码器。

在一些实施方式中,所述特征解码器包括transformer模型。

在一些实施方式中,模型训练单元,具体用于:获取第三文本图像样本;其中,所述第三文本图像样本标注有文本字符信息;利用所述第三文本图像样本以及交叉熵损失函数对所述初始的文本识别模型进行训练,直至所述交叉熵损失函数收敛时得到训练好的文本识别模型。

本公开实施例所提供的文本识别装置可执行本公开任意实施例所提供的文本识别方法,具备执行方法相应的功能模块和有益效果。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置实施例的具体工作过程,可以参考方法实施例中的对应过程,在此不再赘述。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。

本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。

本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的文本识别方法。所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

参考图6,现将描述可以作为本公开的服务器或客户端的电子设备600的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图6所示,电子设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元606加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram603中,还可存储设备600操作所需的各种程序和数据。计算单元601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

电子设备600中的多个部件连接至i/o接口605,包括:输入单元606、输出单元607、存储单元606以及通信单元609。输入单元606可以是能向电子设备600输入信息的任何类型的设备,输入单元606可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元607可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元604可以包括但不限于磁盘、光盘。通信单元609允许电子设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙tm设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。

计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理。例如,在一些实施例中,文本识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom602和/或通信单元609而被载入和/或安装到电子设备600上。在一些实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文本识别方法。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

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

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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