文本识别模型的训练方法、文本识别方法、装置及设备与流程

文档序号:30619450发布日期:2022-07-02 02:03阅读:88来源:国知局
文本识别模型的训练方法、文本识别方法、装置及设备与流程

1.本公开涉及人工智能领域,尤其涉及文本识别模型的训练方法、文本识别方法、装置及设备。


背景技术:

2.文本识别技术主要是指从带有文本字符的图像(文本图像)中识别出字符序列的技术,其作为人工智能领域的重要分支,已广泛应用于各领域。现有技术所采用的文本识别模型大多仅能有效识别清晰文本图像,而实际应用场景中存在大量低质文本图像,诸如很多待识别文本图像都是分辨率低、拍照不对焦的模糊文本图像,倘若直接将低质文本图像输入给文本识别模型,则无法直接得到正确的识别结果。对于此,现有技术采用的方式大多仅是将低质文本图像通过额外的超分网络进行恢复,以提升图像画质,然后再将得到的清晰文本图像输入至已有的文本识别模型进行识别,另外,这种方式通常还需要预先判别待识别图像是否低质,以便进一步判别是否需要将待识别图像恢复为清晰文本图像,不仅繁琐复杂,而且文本识别效率较低。


技术实现要素:

3.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种文本识别模型的训练方法、文本识别方法、装置及设备。
4.根据本公开的一方面,提供了一种文本识别模型的训练方法,其中,所述文本识别模型包括特征提取网络和编解码网络,所述方法包括:获取训练样本对;所述训练样本对包含文本内容一致的清晰文本图像和低质文本图像,且所述训练样本对携带有所述文本内容的字符序列标签;将所述训练样本对输入至所述特征提取网络,得到所述特征提取网络输出的所述清晰文本图像对应的第一全局特征,以及所述低质文本图像对应的第二全局特征;将所述第一全局特征和所述第二全局特征输入至所述编解码网络,得到所述编解码网络输出的文本识别结果,基于所述文本识别结果与所述字符序列标签得到文本识别损失;将所述第一全局特征和所述第二全局特征输入至预设的判别器,得到所述判别器输出的特征来源判别结果,基于所述特征来源判别结果得到来源判别损失;基于所述文本识别损失调整所述编解码网络的参数,基于所述来源判别损失调整所述判别器的参数,以及基于所述文本识别损失和所述来源判别损失共同调整所述特征提取网络的参数,直至所述文本识别损失和所述来源判别损失符合预设条件时停止训练,得到训练好的文本识别模型。
5.根据本公开的另一方面,提供了一种文本识别方法,包括:获取待识别的目标文本图像;将所述目标文本图像输入至预先训练得到的文本识别模型;其中,所述文本识别模型是采用本公开提供的训练方法训练得到的;通过所述文本识别模型对所述目标文本图像进行处理,得到所述目标文本图像的文本识别结果。
6.根据本公开的另一方面,提供了一种文本识别模型的训练装置,其中,所述文本识别模型包括特征提取网络和编解码网络,所述装置包括:样本获取模块,用于获取训练样本
对;所述训练样本对包含文本内容一致的清晰文本图像和低质文本图像,且所述训练样本对携带有所述文本内容的字符序列标签;特征提取模块,用于将所述训练样本对输入至所述特征提取网络,得到所述特征提取网络输出的所述清晰文本图像对应的第一全局特征,以及所述低质文本图像对应的第二全局特征;文本识别模块,用于将所述第一全局特征和所述第二全局特征输入至所述编解码网络,得到所述编解码网络输出的文本识别结果,基于所述文本识别结果与所述字符序列标签得到文本识别损失;来源判别模块,用于将所述第一全局特征和所述第二全局特征输入至预设的判别器,得到所述判别器输出的特征来源判别结果,基于所述特征来源判别结果得到来源判别损失;参数调整模块,用于基于所述文本识别损失调整所述编解码网络的参数,基于所述来源判别损失调整所述判别器的参数,以及基于所述文本识别损失和所述来源判别损失共同调整所述特征提取网络的参数,直至所述文本识别损失和所述来源判别损失符合预设条件时停止训练,得到训练好的文本识别模型。
7.根据本公开的另一方面,提供了一种文本识别装置,包括:图像获取模块,用于获取待识别的目标文本图像;模型输入模块,用于将所述目标文本图像输入至预先训练得到的文本识别模型;其中,所述文本识别模型是采用本公开提供的训练方法训练得到的;图像处理模块,用于通过所述文本识别模型对所述目标文本图像进行处理,得到所述目标文本图像的文本识别结果。
8.根据本公开的另一方面,提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述文本识别模型的训练方法,或者执行上述文本识别方法。
9.根据本公开的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一项所述的文本识别模型的训练方法,或者执行上述文本识别方法。
10.本公开实施例中提供的上述技术方案,可以直接采用文本内容一致的清晰文本图像和低质文本图像对文本识别模型中的特征提取网络和编解码网络进行训练,且借助判别器进行辅助训练,通过特征提取网络对清晰文本图像和低质文本图像分别提取全局特征,基于编解码网络针对全局特征进行识别所得的文本识别损失调整编解码网络的参数、基于判别器针对全局特征进行来源判别所得的来源判别损失调整判别器的参数,同时基于文本识别损失和来源判别损失共同调整特征提取网络的参数,最后所得的文本识别模型无论针对清晰文本图像还是低质文本图像,均具有较好的识别能力,无需额外判别待识别图像是否低质,只需将待识别图像直接输入至训练所得的文本识别模型即可得到文本识别结果,非常便捷高效。
11.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
13.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
14.图1为本公开实施例提供的一种文本识别模型的训练方法的流程示意图;图2为本公开实施例提供的一种模型训练示意图;图3为本公开实施例提供的一种文本识别模型的结构示意图;图4为本公开实施例提供的一种文本识别方法的流程示意图;图5为本公开实施例提供的一种文本识别模型的训练装置的结构框图;图6为本公开实施例提供的一种文本识别装置的结构框图;图7为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
15.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
16.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
17.本公开使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
18.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
19.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
20.主流的文本识别方法包括往往利用大量的合成数据(诸如synth90k和synthtext等样本集)训练文本识别模型,这些合成数据基本都是清晰文本图像。然而,实际应用场景中存在大量的低质文本,诸如,因拍照设备分辨率不佳、拍摄未对焦/抖动、拍摄光线较暗、打印设备性能不佳等各种因素导致所需识别的文本图像较为模糊低质,基于清晰文本图像训练所得的文本识别模型难以直接针对低质文本图像进行识别。目前,识别低质文本的方式大多采用两阶段识别方法,即先将低质图像通过超分网络进行恢复,再将获得的超分图像输入进文本识别模型进行识别。然而,这类方法主要存在以下问题:其一,两阶段方法并非端到端,也即无法直接给模型输入低质文本图像并得到模型输出的文本识别结果,流程较为复杂;其二,由于只有低质文本图像才能使用两阶段方法进行识别,因此需要预先对输入图像进行判别是否为低质图像。由上述问题可知,两阶段的低质文本识别方法在实际应
用中并不是最高效和有用的,使用起来繁琐复杂。
21.为改善上述问题,本公开实施例提供了一种文本识别模型的训练方法、文本识别方法、装置及设备,为便于理解,以下进行阐述说明。
22.首先,本公开实施例提供了一种文本识别模型,该文本识别模型包括依次连接的特征提取网络和编解码网络,在此基础上,本公开实施例提供了一种文本识别模型的训练方法,图1为本公开实施例提供的一种文本识别模型的训练方法的流程示意图,该方法可以由文本识别模型的训练装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中,如图1所示,该方法主要包括如下步骤s102~步骤s110:步骤s102,获取训练样本对;训练样本对包含文本内容一致的清晰文本图像和低质文本图像,且训练样本对携带有文本内容的字符序列标签。
23.训练样本对的数量为多个,对于每个训练样本对而言,其所包含的清晰文本图像和低质文本图像的文本内容一致,其中,低质文本图像即为图像质量低的文本图像,具体而言,诸如模糊文本图像、暗光文本图像、出现诸如摩尔纹等现象的文本图像均属于低质文本图像。在获取训练样本对的具体实现方式中,可以对清晰文本图像进行低质处理(也即,将清晰文本图像转换为低质文本图像的处理方式),即可便捷得到低质文本图像。不同的训练样本对中的清晰文本图像可以相同也可以不同,对于同一清晰文本图像而言,通过采用不同的低质处理方式,或者,采用相同的低质处理方式但是参数不同,都可以得到多个低质文本图像,从而组成多个训练样本对。通过上述方式,可以方便快捷地获取数量较多的训练样本对。
24.步骤s104,将训练样本对输入至特征提取网络,得到特征提取网络输出的清晰文本图像对应的第一全局特征,以及低质文本图像对应的第二全局特征。
25.特征提取网络可用于提取图像的全局特征,使得文本识别模型能够基于整幅图像的全局特征进行识别,也即在全局域的基础上进行文本识别,以便后续能够更为准确可靠地得到文本识别结果。特征提取网络可以分别针对训练样本对中的清晰文本图像和低质文本图像进行识别,并得到各自的全局特征。本公开实施例对特征提取网络的具体实现方式不进行限制,可根据实际情况灵活选用可提取全局特征的网络作为特征提取网络。
26.步骤s106,将第一全局特征和第二全局特征输入至编解码网络,得到编解码网络输出的文本识别结果,基于文本识别结果与字符序列标签得到文本识别损失。
27.具体实现时,编解码网络会针对第一全局特征和第二全局特征分别进行编解码,以得到各自对应的文本识别结果,也即,文本识别结果包括清晰文本图像对应的第一文本识别结果,以及低质文本图像对应的第二文本识别结果;之后可根据文本识别结果以及训练样本对携带的字符序列标签计算文本识别损失,文本识别损失用于表征文本识别模型的识别结果与真实的文本内容的差异性,以此为依据来调整模型参数(也即对模型进行训练),以期望文本识别模型最后能输出与真实文本内容的差异较小的文本识别结果,也即输出较为准确的文本识别结果。
28.在一种具体的实施示例中,可以首先基于第一文本识别结果、字符序列标签和预设的交叉熵损失函数,得到第一识别损失;基于第二文本识别结果、字符序列标签和交叉熵损失函数,得到第二识别损失;根据第一识别损失和第二识别损失,得到文本识别损失。诸如,可以将第一识别损失和第二识别损失加权求和,得到文本识别损失,第一识别损失和第
二识别损失的权重可根据实际情况灵活设置,示例性地,可以设置第一识别损失和第二识别损失的权重相同。
29.步骤s108,将第一全局特征和第二全局特征输入至预设的判别器,得到判别器输出的特征来源判别结果,基于特征来源判别结果得到来源判别损失。
30.为了能够训练得到既可直接识别清晰文本图像又可直接识别低质文本图像的文本识别模型,本公开实施例采用判别器对文本识别模型进行辅助训练,将第一全局特征和第二全局特征作为判别器的输入内容,通过判别器对输入内容的来源进行判别,也即令判别器判别输入内容到底来源于清晰文本图像还是低质文本图像,直至判别器无法准确判别出输入内容的来源时,则说明特征提取网络针对清晰文本图像及低质文本图像提取出的全局特征相近。具体而言,可以令清晰文本图像对应源域,低质文本图像对应目标域,判别器可以基于输入内容进行分类,得到其属于源域与目标域的分类概率。通过来源判别损失来调整判别器及文本识别模型的参数,利用判别器来缩小文本识别模型针对源域与目标域进行特征提取时所得的特征分布的域偏移,使得两个领域特征分布基本一致,在训练结束时,判别器已无法区分输入内容属于源域还是目标域,实现源域和目标域的知识迁移,此时的文本识别模型针对清晰文本图像和低质文本图像提取的特征分布基本是一致的,即便对于低质文本图像,文本识别模型中的特征提取网络也可以提取出清晰文本图像相应的特征,从而便于文本识别模型的编解码网络针对提取出的特征进行识别,得到准确的文本识别结果。
31.在本公开实施例中,采用对抗训练的方式实现文本识别模型的全局域适应。在一些具体的实施示例中,可以基于特征来源判别结果和预设的对抗损失函数,得到来源判别损失。
32.步骤s110,基于文本识别损失调整编解码网络的参数,基于来源判别损失调整判别器的参数,以及基于文本识别损失和来源判别损失共同调整特征提取网络的参数,直至文本识别损失和来源判别损失符合预设条件时停止训练,得到训练好的文本识别模型。
33.在一些具体的实施示例中,可以获取文本识别损失对应的第一权重以及来源判别损失对应的第二权重;基于第一权重和第二权重,对文本识别损失和来源判别损失进行加权处理,得到总损失函数;在总损失函数收敛至预设阈值时停止训练,且停止训练时的判别器无法区分第一全局特征和第二全局特征的来源。将训练结束时的特征提取网络及编解码网络即构成训练好的文本识别模型。训练好的文本识别模型针对低质文本图像也可以提取出与清晰文本图像基本一致的特征分布,并进行准确识别,整体实现基于全局域适应的文本识别,对清晰文本图像和低质文本图像都具有较好的识别能力。
34.综上,本公开实施例中提供的上述技术方案,可以直接采用文本内容一致的清晰文本图像和低质文本图像对文本识别模型中的特征提取网络和编解码网络进行训练,且借助判别器进行辅助训练,通过特征提取网络对清晰文本图像和低质文本图像分别提取全局特征,基于编解码网络针对全局特征进行识别所得的文本识别损失调整编解码网络的参数、基于判别器针对全局特征进行来源判别所得的来源判别损失调整判别器的参数,同时基于文本识别损失和来源判别损失共同调整特征提取网络的参数,最后所得的文本识别模型无论针对清晰文本图像还是低质文本图像,均具有较好的识别能力,无需额外判别待识别图像是否低质,只需将待识别图像直接输入至训练所得的文本识别模型即可得到文本识
别结果,非常便捷高效。
35.为了能够便捷地获取到训练样本对,得到文本内容一致的清晰文本图像和低质文本图像,本公开实施例提供了获取训练样本对的实施方式,可以首先获取清晰文本图像,然后对清晰文本图像进行低质处理,得到低质文本图像。在实际应用中,可以将清晰文本图像输入至预设的低质处理模块,采用无监督方式生成清晰文本图像对应的低质文本图像,从而组成训练样本对。也即,在最初训练时无需直接获取成对的清晰-模糊样本对,而是仅获取清晰文本图像即可,然后将清晰文本图像输入至低质处理模块,自动生成相应的低质文本图像,组成训练样本对,由此也可节约大量的图像获取及数据标记工作,非常简单便捷。
36.本公开实施例进一步提供了对清晰文本图像进行低质处理的具体实施方式,示例性地,可以将清晰文本图像划分为多个区域图像;对于每个区域图像,均采用从多种预设的低质处理算法中随机选取的一种目标算法对该区域图像进行处理。低质处理算法包括模糊增强算法、暗光增强算法和摩尔纹添加算法中的一种或多种。其中,模糊增强算法也可包含多种,诸如模糊增强算法包括:高斯模糊算法、采样算法、均值模糊算法、径向模糊算法、运动模糊算法、像素重排算法、像素复制算法、cutout算法(诸如随机选择固定大小的正方形区域,并均填充为零)、噪声添加算法(诸如椒盐噪声和随机高斯噪声)、弹性形变算法(诸如对像素进行扭曲操作)中的一种或多种,通过模糊增强算法得到模糊文本图像,以便于文本识别模型可以针对各种类型的模糊文本图像都具有较好的识别效果。本公开实施例提供了一种暗光增强算法的实施方式:对于正常曝光图像的每个通道使用gamma变换进行调整来生成暗光图像,并且在图像中可添加峰值为200的泊松分布噪声,以此来生成暗光文本图像,以便于文本识别模型可以针对用户在较暗环境下拍摄得到的文本图像也具有较好的识别效果。另外,摩尔纹添加算法是指在图像上添加摩尔纹的算法,本公开实施例对具体实现方式不进行限制,通过摩尔纹添加算法生成带有摩尔纹的文本图像,以便于文本识别模型可以针对带有摩尔纹的文本图像(诸如部分扫描图片、对着数字屏幕拍照所得的图片等)也具有较好的识别效果。
37.通过上述方式,可以得到多种不同形式的低质文本图像,采用多种不同形式的低质文本图像对文本识别模型进行训练,使训练得到的文本识别模型鲁棒性更强,针对不同类型的低质文本图像都具有较好的识别效果。
38.进一步,本公开实施例还提供了一种低质处理算法,具体的,对清晰文本图像进行低质处理的步骤,包括:从清晰文本图像中随机选择多个指定大小的窗口(诸如2*2或3*3大小);对于每个窗口,将该窗口内的像素值进行重新排列,或者,从该窗口中的所有像素值中选取目标像素值,并将该窗口的所有像素值均统一变换为目标像素值;也即,将窗口内的所有像素值均统一复制为窗口中的某一个像素值。通过上述方式生成的模糊文本图像,更接近于现有因分辨率低/对焦异常/晕染等情况出现的常见的模糊文本图像,基于此训练得到的文本识别模型对于大多模糊文本图像都具有较好的识别能力。此外,在实际应用中,也可以在清晰文本图像中的某个区域采用上述像素重排/复制算法,在清晰文本图像的其它区域采用其它类型的低质处理算法,对于一幅清晰文本图像可以采用多种低质处理算法进行处理,以便于尽可能多的呈现出不同类型的低质效果,使得最后训练得到的文本识别模型有能力针对任何效果的低质文本图像处理得到准确的识别结果。
39.在前述基础上,为便于理解,可参见图2所示的一种模型训练示意图,示意出了低
质处理模块、特征提取网络、编码器、解码器以及判别器。其中,编码器和解码器共同构成上述编解码网络。在实际训练文本识别模型的过程中,无需预先准备成对的清晰-模糊训练样本对,而是只需将清晰文本图像i
hr
(训练样本)输入至低质处理模块,低质处理模块即可以无监督方式自动生成相应的低质文本图像i
lr
,从而组成训练样本对,非常方便快捷。其中,清晰文本图像对应源域,模糊文本图像对应目标域,清晰文本图像i
hr
和低质文本图像i
lr
都输入至特征提取网络中,通过特征提取网络提取全局特征,并将提取的全局特征(清晰文本图像对应的第一全局特征,低质文本图像对应的第二全局特征)分别输入至判别器以及编码器中,编码器经过对第一全局特征和第二全局特征进行编码后再分别输入至解码器中进行解析,得到解码器输出的清晰文本图像对应的第一文本识别结果p
src
以及低质文本图像对应的第二文本识别结果p
tgt
,基于第一文本识别结果p
src
和第二文本识别结果p
tgt
以及预先标注的训练样本对应的字符序列标签,即可得到文本识别损失ly。另外,判别器可以针对第一全局特征和第二全局特征进行域分类,得到输入特征属于源域还是目标域的分类概率,也即,判别器可以对输入的特征进行来源判别,判别其来自于清晰文本图像还是来自于低质文本图像,根据特征来源判别结果与真实来源得到来源判别损失ld。之后可基于ly和ld共同对特征提取网络、编码器、解码器以及判别器的参数进行调整,直至ly和ld构成的总损失收敛至预设阈值时停止训练,此时的判别器已无法正常判别出特征提取网络提取的特征的所属来源,也即,特征提取网络针对清晰文本图像和低质文本图像提取的特征分布是基本一致的,即便对于低质文本图像,也可以提取出清晰文本图像相应的特征,较好实现了源域和目标域的知识迁移,无论是清晰文本图像还是低质文本图像,编码器和解码器都可以基于特征提取网络输出的特征进行识别,得到准确的文本识别结果。应当注意的是,最后训练所得的文本识别模型仅包含特征提取网络和编解码网络(编码器和解码器),不会再包含判别器和低质处理模块,判别器仅是用于辅助训练,低质处理模块仅是用于辅助生成训练样本对。
40.本公开实施例给出了文本识别损失ly的一种实施方式,示例性的,可以基于交叉熵损失确定,文本识别损失ly可以按照如下公式表征:其中,y
t
表示字符序列中的第t个字符,t表示字符序列长度。
41.另外,本公开实施例提供的判别器可基于生成对抗损失进行训练,但不同于一般的生成对抗网络中使用的交替训练方法,本公开实施例通过梯度反转层实现判别器和文本识别模型的联合训练,具体实现时,判别器网络包括梯度反转层、全连接层和二分类层,梯度反转层在网络前传时不作任何变换,在网络反传时将梯度取反后再传递至特征提取网络中,以下关于采用判别器对文本识别模型进行对抗训练的过程进行具体阐述:首先,对于判别器而言,以最小化判别误差(也即ld)为目标,更新判别器,使得判别器可以更好地区分源域与目标域。示例性地,判别器参数可按照如下公式进行更新;其中,是判别器参数,μ是学习率。该公式可表征通过调整使得ld最小化。
42.然后,编码器和解码器的参数通过识别损失(也即ly)反传梯度进行更新,示例性
地,编码器和解码器的参数可以按照如下公式进行更新:其中,是编码器和解码器的参数。该公式可表征通过调整使得ly最小化。
43.之后,来自判别器的梯度通过梯度反转层使得梯度往判别器损失增大的方向更新,因此特征提取网络提取到的特征可以迷惑判别器,使其无法分辨源域与目标域。特征提取网络的参数通过对抗损失(也即来源判别损失)和文本识别损失共同更新,示例性地,特征提取网络的参数可按照如下公式进行更新;其中,是特征提取网络的参数,判别器梯度的系数为,在训练过程中由0到1递增,其形式可表示如下:其中,是设定系数,随着训练批次的增加可由0至1递增,p也为系数,示例性地,可以根据实际情况设置其数值,诸如,设置p=10。
44.在上述基础上,判别器对应的损失可参照如下公式表示:ld=-e[log(d(f
src
))]
‑ꢀ
e[log(1-d(f
tgt
))]其中,f
src
即对应源域特征,f
tgt
即对应目标域,e表示求取期望,d表示求取方差。
[0045]
在已知ly和ld后,图2所示的整个网络结构的总损失可以采用ly和ld加权的方式得到,示例性的,总损失l
total
=ly+0.1ld。另外,该加权方式仅为示例,在实际应用中,可以为ly和ld分别选择其它权重系数,在此不进行限制。
[0046]
在一些实施方式中,本公开实施例进一步提供了一种文本识别模型的具体实施方式,参见图3所示的一种文本识别模型的结构示意图,示意出特征提取网络包括cnn网络(convolutional neural networks,卷积神经网络),编解码网络包括用于编码的双向lstm(long short-term memory,长短期记忆)网络,以及用于解码的基于注意力机制的lstm网络。也即,编码器可采用双向lstm网络实现,解码器可采用基于注意力机制的lstm网络实现。文本识别模型的输入为待识别文本图像,文本识别模型的输出为文本识别结果。文本识别模型即为基于全局域适应的文本识别模型,无论是清晰文本图像还是低质文本图像都具有较好的识别效果。
[0047]
在实际应用中,特征提取网络可以采用卷积神经网络实现,具体而言,特征提取网络可以包括多个网络块(block结构),每个网络块都包含有多个卷积层。cnn网络可采用类 vgg网络结构,将其中的卷积模块改为 1x1 和 3x3 结构的叠加,以此增强 cnn网络的特征提取能力。cnn网络的输入图像大小为 32x100, 首先经过一个 3x3 的卷积(可称为block0),其步长为 1,填充为 0,所得特征图的大小不变,然后经过 5 个 block结构(可称为block1~block5), 每个 block 为重复的 1x1 卷积和 3x3 卷积,5个block结构的重复次数以此为 3、4、6、6、3。在每个 block 的末尾进行通道数的增加和特征图的下采样,经过5个block结构之后,特征图的通道数增加到 256, 高度经过 5 次下采样降低为 1,宽度经
过 2 次下采样,降低为 25, 最终的特征图大小为 1x25。之后可将大小为 1x25的特征图输入给编码器,编码器可以包括2个双向lstm单元,每个双向lstm单元都可以包含256个隐藏元,之后将bilstm2输出的特征图继续输入给解码器,解码器可以包含2个基于注意力机制的lstm单元,每个基于注意力机制的lstm单元都可以包括256个注意力单元以及256个隐藏元,根据最后一个基于注意力机制的lstm单元输出的结果即可得到文本识别结果。应当说明的是,上述文本识别模型的结构是发明人通过大量研究以及多次实验所得的网络结构,采用上述结构可以达到较好的文本识别结果。但不应当将上述结构视为限制,在实际应用中还可以灵活调整网络结构及参数。
[0048]
综上所述,本公开实施例提供的上述文本识别模型的训练方法,所得到的文本识别模型无论针对清晰文本图像还是低质文本图像,均具有较好的识别能力,无需额外判别待识别图像是否低质,只需将待识别图像直接输入至训练所得的文本识别模型即可得到文本识别结果,非常便捷高效。
[0049]
在前述基础上,本公开实施例提供了一种文本识别方法,该方法诸如可以采用手机、电脑、服务器、机器人等具有图像处理能力的电子设备实现,参见图4所示的一种文本识别方法的流程示意图,主要包括如下步骤s402~步骤s406:步骤s402,获取待识别的目标文本图像。该目标文本图像可以是清晰文本图像,也可以是低质文本图像,在此不进行限制。在实际应用中,目标文本图像可以是用户拍摄所得的文本图像,诸如用户拍照并上传的文本图像,也可以是用户从已有的图像库中选取的待识别的文本图像,本公开实施例对文本图像的获取方式不进行限定。
[0050]
步骤s404,将目标文本图像输入至预先训练得到的文本识别模型;其中,文本识别模型是采用本公开实施例采用的上述训练方法得到的,在此不再赘述。
[0051]
步骤s406,通过文本识别模型对目标文本图像进行处理,得到目标文本图像的文本识别结果。文本识别模型包括特征提取网络和编解码网络,通过特征提取网络提取目标文本图像的全局特征,通过编解码网络对全局特征进行解析,可得到最后的文本识别结果。
[0052]
通过上述方式,无需额外判别待识别图像是否低质,只需将待识别图像直接输入至训练所得的文本识别模型即可得到文本识别结果,非常便捷高效。
[0053]
对应于前述文本识别模型的训练方法,本公开实施例提供了一种文本识别模型的训练装置,其中,文本识别模型包括特征提取网络和编解码网络,参见图5所示的一种文本识别模型的训练装置的结构框图,文本识别模型的训练装置500包括:样本获取模块502,用于获取训练样本对;训练样本对包含文本内容一致的清晰文本图像和低质文本图像,且训练样本对携带有文本内容的字符序列标签;特征提取模块504,将训练样本对输入至特征提取网络,得到特征提取网络输出的清晰文本图像对应的第一全局特征,以及低质文本图像对应的第二全局特征;文本识别模块506,将第一全局特征和第二全局特征输入至编解码网络,得到编解码网络输出的文本识别结果,基于文本识别结果与字符序列标签得到文本识别损失;来源判别模块508,将第一全局特征和第二全局特征输入至预设的判别器,得到判别器输出的特征来源判别结果,基于特征来源判别结果得到来源判别损失;参数调整模块510,基于文本识别损失调整编解码网络的参数,基于来源判别损失调整判别器的参数,以及基于文本识别损失和来源判别损失共同调整特征提取网络的参
数,直至文本识别损失和来源判别损失符合预设条件时停止训练,得到训练好的文本识别模型。
[0054]
本公开实施例提供的上述装置无需额外判别待识别图像是否低质,只需将待识别图像直接输入至训练所得的文本识别模型即可得到文本识别结果,非常便捷高效。
[0055]
在一些实施方式中,样本获取模块502具体用于:获取清晰文本图像;对所述清晰文本图像进行低质处理,得到低质文本图像。
[0056]
在一些实施方式中,样本获取模块502具体用于:将所述清晰文本图像划分为多个区域图像;对于每个所述区域图像,均采用从多种预设的低质处理算法中随机选取的一种目标算法对该区域图像进行处理。
[0057]
在一些实施方式中,所述低质处理算法包括模糊增强算法、暗光增强算法和摩尔纹添加算法中的一种或多种。
[0058]
在一些实施方式中,样本获取模块502具体用于:从所述清晰文本图像中随机选择多个指定大小的窗口;对于每个窗口,将该窗口内的像素值进行重新排列,或者,从该窗口中的所有像素值中选取目标像素值,并将该窗口的所有像素值均统一变换为所述目标像素值。
[0059]
在一些实施方式中,所述编解码网络包括用于编码的双向lstm网络,以及用于解码的基于注意力机制的lstm网络。
[0060]
在一些实施方式中,所述判别器网络包括梯度反转层、全连接层和二分类层。
[0061]
在一些实施方式中,所述文本识别结果包括所述清晰文本图像对应的第一文本识别结果,以及所述低质文本图像对应的第二文本识别结果;文本识别模块506具体用于:基于所述第一文本识别结果、所述字符序列标签和预设的交叉熵损失函数,得到第一识别损失;基于所述第二文本识别结果、所述字符序列标签和所述交叉熵损失函数,得到第二识别损失;根据所述第一识别损失和所述第二识别损失,得到文本识别损失。
[0062]
在一些实施方式中,来源判别模块508具体用于:基于所述特征来源判别结果和预设的对抗损失函数,得到来源判别损失。
[0063]
在一些实施方式中,参数调整模块510具体用于:获取所述文本识别损失对应的第一权重以及所述来源判别损失对应的第二权重;基于所述第一权重和所述第二权重,对所述文本识别损失和所述来源判别损失进行加权处理,得到总损失函数;在所述总损失函数收敛至预设阈值时停止训练,且停止训练时的所述判别器无法区分所述第一全局特征和所述第二全局特征的来源。
[0064]
本公开实施例所提供的文本识别模型的训练装置可执行本公开任意实施例所提供的文本识别模型的训练方法,具备执行方法相应的功能模块和有益效果。
[0065]
对应于前述文本识别方法,本公开实施例提供了一种文本识别装置,参见图6所示的一种文本识别装置的结构框图,文本识别装置600包括:图像获取模块602,用于获取待识别的目标文本图像;模型输入模块604,用于将目标文本图像输入至预先训练得到的文本识别模型;其中,文本识别模型是采用上述任一项的训练方法得到的;图像处理模块606,用于通过文本识别模型对目标文本图像进行处理,得到目标文本图像的文本识别结果。
[0066]
通过上述装置,无需额外判别待识别图像是否低质,只需将待识别图像直接输入至训练所得的文本识别模型即可得到文本识别结果,非常便捷高效。
[0067]
本公开实施例所提供的文本识别装置可执行本公开任意实施例所提供的文本识别方法,具备执行方法相应的功能模块和有益效果。
[0068]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置实施例的具体工作过程,可以参考方法实施例中的对应过程,在此不再赘述。
[0069]
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0070]
本公开实施例提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,程序包括指令,指令在由处理器执行时使处理器执行上述文本识别模型的训练方法,或者执行上述文本识别方法。
[0071]
本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
[0072]
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
[0073]
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0074]
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的文本识别模型的训练方法或者文本识别方法。所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0075]
参考图7,现将描述可以作为本公开的服务器或客户端的电子设备700的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0076]
如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(rom)
702中的计算机程序或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
[0077]
电子设备700中的多个部件连接至i/o接口705,包括:输入单元706、输出单元707、存储单元708以及通信单元709。输入单元706可以是能向电子设备700输入信息的任何类型的设备,输入单元706可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元707可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元708可以包括但不限于磁盘、光盘。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙tm设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。
[0078]
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理。例如,在一些实施例中,文本识别模型的训练方法或者文本识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到电子设备700上。在一些实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文本识别模型的训练方法或者文本识别方法。
[0079]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0080]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0081]
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何
信号。
[0082]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0083]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0084]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
[0085]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0086]
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1