文本行识别方法及装置、可读存储介质、电子设备
技术领域
本发明涉及计算机视觉技术领域,特别涉及一种文本行识别方法及装置、可读存储介质、电子设备。
背景技术
文本行识别,即将文本行图像输入训练好的神经网络模型,得到字符串输出。现有的训练用于文本行识别的神经网络模型的方法,是采用相互独立的随机文本行图像作为训练数据进行训练,并没有从训练数据采样策略层面进行考量,导致模型训练效果较差。
发明内容
本发明的目的在于提供一种文本行识别方法及装置、可读存储介质、电子设备,通过将包括样本、正样本、困难负样本、普通负样本的合成图像样本作为预设神经网络的训练样本,引入更多的监督信息,提升了模型(预设神经网络模型)训练效果。
为了实现上述发明目的,本发明实施例提供了以下技术方案:
一种文本行识别方法,包括:
将至少一张待检测文本行图像输入预设神经网络模型,得到所述预设神经网络模型输出的检测结果,所述检测结果为所述待检测文本行图像中的字符串;
其中,所述预设神经网络模型以合成图像样本作为训练样本训练得到的,一所述合成图像样本包括:样本、正样本困难负样本、普通负样本,所述样本为针对一目标文本行生成的目标文本行图像、所述正样本为与所述目标文本行图像的图像特征不同但全局语义特征相同的文本行图像,所述困难负样本为与所述目标文本行图像的图像特征相似但全局语义特征不同的文本行图像,所述普通负样本为与所述目标文本行图像的图像特征不相似且全局语义特征不同的文本行图像。
所述预设神经网络模型包括第一特征层、分割层、第二特征层和文字分类序列预测层;
所述第一特征层包括第一卷积神经网络,用于根据输入的训练样本,输出该训练样本的第一特征图;
所述分割层包括上采样卷积神经网络,用于将所述第一特征层输出的第一特征图作为输入,输出与所述第一特征图对应的字符位置预测掩码图;
所述第二特征层,用于将所述分割层输出的字符位置预测掩码图的尺寸变换到与其对应的第一特征图相同,并将尺寸变换后的字符位置预测掩码图和与其对应的第一特征图相乘,得到第二特征图;
所述文字分类序列预测层包括依次连接的第二卷积神经网络、第一双向长短记忆网络、第二双向长短记忆网络和全连接层,用于将所述第二特征层输出的第二特征图作为输入,输出所述训练样本中的字符串。
所述预设神经网络模型是通过如下方式进行训练的:
对所述第一特征层和分割层进行训练,采用均方误差MSE LOSS作为损失函数计算所述第二特征层中的第一分割损失;
在所述第一分割损失达到第一预设阈值后,再对文字分类序列预测层进行训练,采用连接时序分类损失CTC Loss作为损失函数得到文字分类损失;
在对文字分类序列预测层进行训练的同时,将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用三重损失Triplet Loss作为损失函数得到第一语义度量损失;
并在所述第一分割损失、文字分类损失和第一语义度量损失的和达到第二预设阈值时,对所述预设神经网络模型训练完成。
所述预设神经网络模型是通过如下方式进行训练的:
对所述第一特征层和分割层进行训练,采用均方误差MSE LOSS作为损失函数计算所述第二特征层中的第一分割损失;
在所述第一分割损失达到第一预设阈值后,再对文字分类序列预测层进行训练,采用连接时序分类损失CTC Loss作为损失函数得到文字分类损失;
在对文字分类序列预测层进行训练的同时,将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用三重损失Triplet Loss作为损失函数得到第一语义度量损失;
并在所述第一分割损失、文字分类损失和第一语义度量损失的和达到第三预设阈值后:还向所述第一特征层输入多个无标注的第一文本行图像和第二文本行图像,对所述第一特征层和分割层进行训练,采用均方误差MSE LOSS作为损失函数计算所述第一文本行图像和与其对应的第二文本行图像的字符位置预测掩码图的差异,将该差异记为第二分割损失,其中,所述第二文本行图像是对所述第一文本行图像进行随机图像增强得到的;并将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用均方误差MSE LOSS作为损失函数计算所述第一文本行图像和与其对应的第二文本行图像的全局语义特征的差异,将该差异记为第二语义度量损失;
并在所述第一分割损失、文字分类损失、第一语义度量损失、第二分割损失与第二语义度量损失的和达到第四预设阈值时,对所述预设神经网络模型训练完成。
所述至少一张待检测文本行图像为多张待检测文本行图像,所述将至少一张待检测文本行图像输入预设神经网络模型包括:
将所述多张待检测文本行图像绑定形成图像组batch;
将所述图像组batch输入所述预设神经网络模型以进行并行处理。
另一方面,本发明实施例还提供了一种文本行识别装置,包括:
检测模块,用于将至少一张待检测文本行图像输入预设神经网络模型,得到所述预设神经网络模型输出的检测结果,所述检测结果为所述待检测文本行图像中的字符串;
其中,所述预设神经网络模型以合成图像样本作为训练样本训练得到的,一所述合成图像样本包括:样本、正样本、困难负样本、普通负样本,所述样本为针对一目标文本行生成的目标文本行图像、所述正样本为与所述目标文本行图像的图像特征不同但全局语义特征相同的文本行图像,所述困难负样本为与所述目标文本行图像的图像特征相似但全局语义特征不同的文本行图像,所述普通负样本为与所述目标文本行图像的图像特征不相似且全局语义特征不同的文本行图像。
所述预设神经网络模型包括第一特征层、分割层、第二特征层和文字分类序列预测层;
所述第一特征层包括第一卷积神经网络,用于根据输入的训练样本,输出该训练样本的第一特征图;
所述分割层包括上采样卷积神经网络,用于将所述第一特征层输出的第一特征图作为输入,输出与所述第一特征图对应的字符位置预测掩码图;
所述第二特征层,用于将所述分割层输出的字符位置预测掩码图的尺寸变换到与其对应的第一特征图相同,并将尺寸变换后的字符位置预测掩码图和与其对应的第一特征图相乘,得到第二特征图;
所述文字分类序列预测层包括依次连接的第二卷积神经网络、第一双向长短记忆网络、第二双向长短记忆网络和全连接层,用于将所述第二特征层输出的第二特征图作为输入,输出所述训练样本中的字符串。
一种方案下,所述预设神经网络模型是通过如下方式进行训练的:
对所述第一特征层和分割层进行训练,采用均方误差MSE LOSS作为损失函数计算所述第二特征层中的第一分割损失;
在所述第一分割损失达到第一预设阈值后,再对文字分类序列预测层进行训练,采用连接时序分类损失CTC Loss作为损失函数得到文字分类损失;
在对文字分类序列预测层进行训练的同时,将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用三重损失Triplet Loss作为损失函数得到第一语义度量损失;
并在所述第一分割损失、文字分类损失和第一语义度量损失的和达到第二预设阈值时,对所述预设神经网络模型训练完成。
另一种方案下,所述预设神经网络模型是通过如下方式进行训练的:
对所述第一特征层和分割层进行训练,采用均方误差MSE LOSS作为损失函数计算所述第二特征层中的第一分割损失;
在所述第一分割损失达到第一预设阈值后,再对文字分类序列预测层进行训练,采用连接时序分类损失CTC Loss作为损失函数得到文字分类损失;
在对文字分类序列预测层进行训练的同时,将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用三重损失Triplet Loss作为损失函数得到第一语义度量损失;
并在所述第一分割损失、文字分类损失和第一语义度量损失的和达到第三预设阈值后:还向所述第一特征层输入多个无标注的第一文本行图像和第二文本行图像,对所述第一特征层和分割层进行训练,采用均方误差MSE LOSS作为损失函数计算所述第一文本行图像和与其对应的第二文本行图像的字符位置预测掩码图的差异,将该差异记为第二分割损失,其中,所述第二文本行图像是对所述第一文本行图像进行随机图像增强得到的;并将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用均方误差MSE LOSS作为损失函数计算所述第一文本行图像和与其对应的第二文本行图像的全局语义特征的差异,将该差异记为第二语义度量损失;
并在所述第一分割损失、文字分类损失、第一语义度量损失、第二分割损失与第二语义度量损失的和达到第四预设阈值时,对所述预设神经网络模型训练完成。
再一方面,本发明实施例同时提供了一种包括计算机可读指令的计算机可读存储介质,所述计算机可读指令在被执行时使处理器执行本发明实施例中所述方法中的操作。
再一方面,本发明实施例同时提供了一种电子设备,包括:存储器,存储程序指令;处理器,与所述存储器相连接,执行存储器中的程序指令,实现本发明实施例中所述方法中的步骤。
本发明提供的技术方案,通过将包括样本、正样本、困难负样本、普通负样本的合成图像样本作为预设神经网络的训练样本,使得该预设神经网络的训练样本为有关联的图像数据,从而引入更多的监督信息,相较于采用相互独立的随机文本行图像作为训练数据进行训练,提升了模型(预设神经网络模型)训练效果。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍, 应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种文本行识别方法的流程图。
图2为本发明实施例提供的一种样本的示意图。
图3为本发明实施例提供的一种正样本的示意图。
图4为本发明实施例提供的一种困难/普通负样本的示意图。
图5为本发明实施例提供的一种预设神经网络模型的网络结构图。
图6为本发明实施例提供的一种对图5中预设神经网络模型进行训练的方法原理图。
图7为本发明实施例提供的另一种对图5中预设神经网络模型进行训练的方法的部分原理图。
图8为本发明实施例提供的一种文本行识别装置的框图。
图9为本发明实施例中所述的电子设备的组成框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本实施例中提供的文本行识别方法,包括:
S10,将至少一张待检测文本行图像输入预设神经网络模型,得到所述预设神经网络模型输出的检测结果,所述检测结果为所述待检测文本行图像中的字符串。
其中,所述预设神经网络模型以合成图像样本作为训练样本训练得到的。一所述合成图像样本包括样本、正样本和困难负样本。或者,一所述合成图像样本包括样本、正样本和普通负样本。所述样本为针对一目标文本行生成的目标文本行图像。所述正样本为与所述目标文本行图像的图像特征不同但全局语义特征相同的文本行图像。所述困难负样本为与所述目标文本行图像的图像特征相似但全局语义特征不同的文本行图像。所述普通负样本为与所述目标文本行图像的图像特征不相似且全局语义特征不同的文本行图像。
其中,两张文本行图像的图像特征不同是指,两张文本行图像的背景不同、和/或字体字号不同、和/或文字间间隔不同等。两张文本行图像的图像特征相似是指,两张文本行图像的图像特征相同或近似。两张文本行图像的全局语义特征相同是指,两张文本行图像中包括的文字内容(字符串)相同。例如,如图2所示,针对“大风起兮云飞扬”这一目标文本行生成一目标文本行图像,将其作为样本,记为Img。针对图2中的样本Img,改变其背景颜色、和/或体字号不同、和/或文字间间隔,不改变文本行内容“大风起兮云飞扬”,得到图3中的正样本Img1+、Img2+、Img3+。针对图2中的样本Img,改变文本行内容“大风起兮云飞扬”,并对其背景颜色、和/或体字号不同、和/或文字间间隔进行调整、略微调整或不调整,得到图4中的普通/困难负样本Img1-、Img2-、Img3-。由于每一个样本Img都是基于一目标文本行生成的,那么对于不同的样本Img其全局语义特征不同,则两个样本Img可以互为困难负样本或普通负样本。
本发明提供的技术方案,通过将包括样本、正样本、困难负样本、普通负样本的合成图像样本作为预设神经网络的训练样本,使得该预设神经网络的训练样本为有关联的图像数据,从而引入更多的监督信息,相较于采用相互独立的随机文本行图像作为训练数据进行训练,提升了模型(预设神经网络模型)训练效果。
可选地,如图5所示,所述预设神经网络模型包括第一特征层10、分割层20、第二特征层30和文字分类序列预测层40。
所述第一特征层10包括第一卷积神经网络,用于根据输入的训练样本,输出该训练样本的第一特征图。
其中,所述训练样本是合成图像样本时,则所述第一特征层10用于根据输入的合成图像样本,输出该合成图像样本的三个第一特征图,所述三个第一特征图分别为该合成图像样本中样本对应的第一特征图、正样本对应的第一特征图、困难/普通负样本对应的第一特征图。
所述分割层20包括上采样卷积神经网络,用于将所述第一特征层10输出的第一特征图作为输入,输出与所述第一特征图对应的字符位置预测掩码图。
当所述第一特征层10的训练样本为合成图像样本时,所述分割层20的输入为所述第一特征层10输出的三个第一特征图,输出为与所述三个第一特征图一一对应的三个字符位置预测掩码图。在对第一特征层10和分割层20进行训练前,针对每一所述合成图像样本,需生成所述合成图像样本的字符位置掩码图像,所述合成图像样本的字符位置掩码图像包括:其样本的字符位置掩码图像(例如,如图2中mask_gt)、其正样本的字符位置掩码图像(例如,如图3中mask1+_gt、mask2+_gt和mask3+_gt)和其困难/普通负样本的字符位置掩码图像(例如,如图4中mask1-_gt、mask2-_gt和mask3-_gt)。在对第一特征层10和分割层20进行训练时,将所述合成图像样本和所述合成图像样本的字符位置掩码图像作为训练样本进行训练。
所述第二特征层30,用于将所述分割层20输出的字符位置预测掩码图的尺寸变换到与其对应的第一特征图相同,并将尺寸变换后的字符位置预测掩码图和与其对应的第一特征图相乘,得到第二特征图。
当所述第一特征层10的训练样本为合成图像样本时,所述分割层20的输出为与所述三个第一特征图一一对应的三个字符位置预测掩码图,所述第二特征层30将所述每个所述字符位置预测掩码图的尺寸变换到和与其对应的第一特征图相同,并将每个尺寸变换后的字符位置预测掩码图和与其对应的第一特征图相乘,得到三个第二特征图。
所述文字分类序列预测层40包括依次连接的第二卷积神经网络、第一双向长短记忆网络、第二双向长短记忆网络和全连接层,用于将所述第二特征层30输出的第二特征图作为输入,输出所述训练样本中的字符串。
当所述第一特征层10的训练样本为合成图像样本时,所述文字分类序列预测层40将所述第二特征层30输出的三个第二特征图作为输入,输出该合成图像样本中样本对应的字符串、正样本对应的字符串和普通/困难负样本对应的字符串。
对于文本行中含大量空白,噪音较多的文本行图像可以称其为脏数据。现有技术中,主流的文本识别方法在模型训练过程中加入这些脏数据,会严重减缓训练收敛速度且影响识别效果;但如果不加入,这些脏数据又是现实场景中客观存在的,那么模型的适用性会大打折扣,需舍弃这部分场景的效果。对于加入脏数据这个问题,现阶段只有依赖大量算力、暴力克服,但这往往需要投入大量的金钱购买算力。本发明通过上述技术方案,采用第二特征层30将每个所述字符位置预测掩码图的尺寸变换到和与其对应的第一特征图相同,并将每个尺寸变换后的字符位置预测掩码图和与其对应的第一特征图相乘,得到三个第二特征图,使用了分割层20输出的字符位置预测掩码图作为第一特征图上二维空间上的权重,使模型(预设神经网络)对文字(字符)在文本行图像中所处的空间位置更敏感,减小了脏数据对模型收敛速度和识别效果的影响,不用依赖大量算力的同时,提升了模型(预设神经网络)训练效果。
对于图5所示的预设神经网络模型,具体训练方式可以有多种。可选地,如图6所示,在一具体实施方式中,所述预设神经网络模型是通过如下方式进行训练的:
对所述第一特征层10和分割层20进行训练,采用均方误差MSE LOSS作为损失函数计算所述第二特征层30中的第一分割损失。
在所述第一分割损失达到第一预设阈值后,再对文字分类序列预测层40进行训练,采用连接时序分类损失CTC Loss作为损失函数得到文字分类损失。
其中,所述第一预设阈值根据用户需要灵活设定,当所述第一分割损失达到第一预设阈值时,所述分割层20收敛到一定程度(例如,所述分割层20输出的字符位置预测掩码图与实际的字符位置掩码图的重合度为70%)。
在对文字分类序列预测层40进行训练的同时,将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用三重损失Triplet Loss作为损失函数得到第一语义度量损失。
并在所述第一分割损失、文字分类损失和第一语义度量损失的和达到第二预设阈值时,对所述预设神经网络模型训练完成。
其中,第二预设阈值根据用户需要灵活设定,当所述第一分割损失、文字分类损失和第一语义度量损失的和达到第二预设阈值时,所述预设神经网络模型收敛(即,所述预设神经网络模型对文本行图像的识别效果达到用户预期)。
本发明通过上述技术方案,使得预设神经网络模型每一次迭代训练都考虑到了字符分割信息和全局语义信息,给训练过程提供了更多的监督信息,提升模型效果。
可选地,请结合参阅图6和图7,在另一具体实施方式中,所述预设神经网络模型是通过如下方式进行训练的:
对所述第一特征层10和分割层20进行训练,采用均方误差MSE LOSS作为损失函数计算所述第二特征层30中的第一分割损失。
在所述第一分割损失达到第一预设阈值后,再对文字分类序列预测层40进行训练,采用连接时序分类损失CTC Loss作为损失函数得到文字分类损失。
在对文字分类序列预测层40进行训练的同时,将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用三重损失Triplet Loss作为损失函数得到第一语义度量损失。
并在所述第一分割损失、文字分类损失和第一语义度量损失的和达到第三预设阈值后:还向所述第一特征层10输入多个无标注的第一文本行图像和第二文本行图像,对所述第一特征层10和分割层20进行训练,采用均方误差MSE LOSS作为损失函数计算所述第一文本行图像和与其对应的第二文本行图像的字符位置预测掩码图的差异,将该差异记为第二分割损失,其中,所述第二文本行图像是对所述第一文本行图像进行随机图像增强得到的;并将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用均方误差MSE LOSS作为损失函数计算所述第一文本行图像和与其对应的第二文本行图像的全局语义特征的差异,将该差异记为第二语义度量损失。其中,第三预设阈值根据用户需要灵活设定,当所述第一分割损失、文字分类损失和第一语义度量损失的和达到第三预设阈值时,所述预设神经网络模型具有一定的收敛(即,所述预设神经网络模型对文本行图像的识别效果达到一定效果,但还未达用户预期)。
并在所述第一分割损失、文字分类损失、第一语义度量损失、第二分割损失与第二语义度量损失的和达到第四预设阈值时,对所述预设神经网络模型训练完成。其中,第四预设阈值根据用户需要灵活设定,当所述第一分割损失、文字分类损失、第一语义度量损失、第二分割损失与第二语义度量损失的和达到第四预设阈值时,所述预设神经网络模型收敛(即,所述预设神经网络模型对文本行图像的识别效果达到用户预期)。
图6所示的训练方式为基于训练样本(即合成图像样本)对所述预设神经网络模型进行的有监督训练。图7所示的训练方式为基于无标注的第一文本行图像和第二文本行图像对所述预设神经网络模型进行的自监督训练。则,上述技术方案(结合图6和图7),对所述预设神经网络模型的训练过程可以描述为:先对所述预设神经网络进行有监督训练至一定收敛后(即所述第一分割损失、文字分类损失和第一语义度量损失的和达到第三预设阈值后),再对所述预设神经网络进行有监督训练和自监督训练,直到所述预设神经网络收敛(所述第一分割损失、文字分类损失、第一语义度量损失、第二分割损失与第二语义度量损失的和达到第四预设阈值),对所述预设神经网络模型训练完成。
本发明通过上述技术方案,加入无标注数据的自监督训练,通过对同一文本行图像加入不同噪声,然后约束他们的字符预测结果和全局语义特征相识度,提供了更多可训练的自监督信息,使模型对无标注的文本行图像识别效果更为鲁棒。
可选地,所述至少一张待检测文本行图像为多张待检测文本行图像,所述将至少一张待检测文本行图像输入预设神经网络模型包括:
将所述多张待检测文本行图像绑定形成图像组batch;
将所述图像组batch输入所述预设神经网络模型以进行并行处理。
通过上述技术方案,可以最大限度地利用预设神经网络模型所在服务器的GPU显存,降低IO所带来的开销,更高效率的利用服务器。在这里,可以理解为预设神经网络模型所在服务器可以使用单个GPU,并行地处理一整个batch的待检测文本行图像(但是期间不存在并行处理的服务器CPU开销,因为并行是在GPU显存中进行的)。在通过batch的输入之后,预设神经网络模型会将batch中的每一张待检测文本行图像并行地进行处理。
基于上述发明构思,本实施例中还提供了一种文本行识别装置。具体地,如图8所示,所述文本行识别装置包括:检测模块100。
检测模块100,用于将至少一张待检测文本行图像输入预设神经网络模型,得到所述预设神经网络模型输出的检测结果,所述检测结果为所述待检测文本行图像中的字符串;
其中,所述预设神经网络模型以合成图像样本作为训练样本训练得到的,一所述合成图像样本包括:样本、正样本、困难负样本、普通负样本,所述样本为针对一目标文本行生成的目标文本行图像、所述正样本为与所述目标文本行图像的图像特征不同但全局语义特征相同的文本行图像,所述困难负样本为与所述目标文本行图像的图像特征相似但全局语义特征不同的文本行图像,所述普通负样本为与所述目标文本行图像的图像特征不相似且全局语义特征不同的文本行图像。
本发明提供的技术方案,通过将包括样本、正样本、困难负样本、普通负样本的合成图像样本作为预设神经网络的训练样本,使得该预设神经网络的训练样本为有关联的图像数据,从而引入更多的监督信息,相较于采用相互独立的随机文本行图像作为训练数据进行训练,提升了模型(预设神经网络模型)训练效果。
请再次参阅图5,可选地,所述预设神经网络模型包括第一特征层10、分割层20、第二特征层30和文字分类序列预测层40。
所述第一特征层10包括第一卷积神经网络,用于根据输入的训练样本,输出该训练样本的第一特征图。
所述分割层20包括上采样卷积神经网络,用于将所述第一特征层10输出的第一特征图作为输入,输出与所述第一特征图对应的字符位置预测掩码图。
所述第二特征层30,用于将所述分割层20输出的字符位置预测掩码图的尺寸变换到与其对应的第一特征图相同,并将尺寸变换后的字符位置预测掩码图和与其对应的第一特征图相乘,得到第二特征图。
所述文字分类序列预测层40包括依次连接的第二卷积神经网络、第一双向长短记忆网络、第二双向长短记忆网络和全连接层,用于将所述第二特征层30输出的第二特征图作为输入,输出所述训练样本中的字符串。
假设文本行中含大量空白,噪音较多的文本行图像我们称其为脏数据。现有技术中,主流的文本识别方法在模型训练过程中加入这些脏数据,会严重减缓训练收敛速度且影响识别效果;但如果不加入,这些脏数据又是现实场景中客观存在的,那么模型的适用性会大打折扣,需舍弃这部分场景的效果。对于加入脏数据这个问题,现阶段只有依赖大量算力、暴力克服,但这往往需要投入大量的金钱购买算力。本发明通过上述技术方案,采用第二特征层30将每个所述字符位置预测掩码图的尺寸变换到和与其对应的第一特征图相同,并将每个尺寸变换后的字符位置预测掩码图和与其对应的第一特征图相乘,得到三个第二特征图,使用了分割层20输出的字符位置预测掩码图作为第一特征图上二维空间上的权重,使模型(预设神经网络)对文字(字符)在文本行图像中所处的空间位置更敏感,减小了脏数据对模型收敛速度和识别效果的影响,不用依赖大量算力的同时,提升了模型(预设神经网络)训练效果。
请再次参阅图6,可选地,在一具体实施方式中,所述预设神经网络模型是通过如下方式进行训练的:
对所述第一特征层10和分割层20进行训练,采用均方误差MSE LOSS作为损失函数计算所述第二特征层30中的第一分割损失。
在所述第一分割损失达到第一预设阈值后,再对文字分类序列预测层40进行训练,采用连接时序分类损失CTC Loss作为损失函数得到文字分类损失。
在对文字分类序列预测层40进行训练的同时,将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用三重损失Triplet Loss作为损失函数得到第一语义度量损失。
并在所述第一分割损失、文字分类损失和第一语义度量损失的和达到第二预设阈值时,对所述预设神经网络模型训练完成。
本发明通过上述技术方案,使得预设神经网络模型每一次迭代训练都考虑到了字符分割信息和全局语义信息,给训练过程提供了更多的监督信息,提升模型效果。
请再次参阅图6和图7,可选地,在另一具体实施方式中,所述预设神经网络模型是通过如下方式进行训练的:
对所述第一特征层10和分割层20进行训练,采用均方误差MSE LOSS作为损失函数计算所述第二特征层30中的第一分割损失。
在所述第一分割损失达到第一预设阈值后,再对文字分类序列预测层40进行训练,采用连接时序分类损失CTC Loss作为损失函数得到文字分类损失。
在对文字分类序列预测层40进行训练的同时,将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用三重损失Triplet Loss作为损失函数得到第一语义度量损失。
并在所述第一分割损失、文字分类损失和第一语义度量损失的和达到第三预设阈值后:还向所述第一特征层10输入多个无标注的第一文本行图像和第二文本行图像,对所述第一特征层10和分割层20进行训练,采用均方误差MSE LOSS作为损失函数计算所述第一文本行图像和与其对应的第二文本行图像的字符位置预测掩码图的差异,将该差异记为第二分割损失,其中,所述第二文本行图像是对所述第一文本行图像进行随机图像增强得到的;并将所述第一双向长短记忆网络输出的特征序列输入至第三双向长短记忆网络得到全局语义特征,采用均方误差MSE LOSS作为损失函数计算所述第一文本行图像和与其对应的第二文本行图像的全局语义特征的差异,将该差异记为第二语义度量损失。其中,第三预设阈值根据用户需要灵活设定,当所述第一分割损失、文字分类损失和第一语义度量损失的和达到第三预设阈值时,所述预设神经网络模型具有一定的收敛(即,所述预设神经网络模型对文本行图像的识别效果达到一定效果,但还未达用户预期)。
并在所述第一分割损失、文字分类损失、第一语义度量损失、第二分割损失与第二语义度量损失的和达到第四预设阈值时,对所述预设神经网络模型训练完成。其中,第四预设阈值根据用户需要灵活设定,当所述第一分割损失、文字分类损失、第一语义度量损失、第二分割损失与第二语义度量损失的和达到第四预设阈值时,所述预设神经网络模型收敛(即,所述预设神经网络模型对文本行图像的识别效果达到用户预期)。
图6所示的训练方式为基于训练样本(即合成图像样本)对所述预设神经网络模型进行的有监督训练。图7所示的训练方式为基于无标注的第一文本行图像和第二文本行图像对所述预设神经网络模型进行的自监督训练。则,上述技术方案(结合图6和图7),对所述预设神经网络模型的训练过程可以描述为:先对所述预设神经网络进行有监督训练至一定收敛后(即所述第一分割损失、文字分类损失和第一语义度量损失的和达到第三预设阈值后),再对所述预设神经网络进行有监督训练和自监督训练,直到所述预设神经网络收敛(所述第一分割损失、文字分类损失、第一语义度量损失、第二分割损失与第二语义度量损失的和达到第四预设阈值),对所述预设神经网络模型训练完成。
本发明通过上述技术方案,加入无标注数据的自监督训练,通过对同一文本行图像加入不同噪声,然后约束他们的字符预测结果和全局语义特征相识度,提供了更多可训练的自监督信息,使模型对无标注的文本行图像识别效果更为鲁棒。
可选地,所述至少一张待检测文本行图像为多张待检测文本行图像,所述将至少一张待检测文本行图像输入预设神经网络模型包括:将所述多张待检测文本行图像绑定形成图像组batch;将所述图像组batch输入所述预设神经网络模型以进行并行处理。
通过上述技术方案,可以最大限度地利用预设神经网络模型所在服务器的GPU显存,降低IO所带来的开销,更高效率的利用服务器。在这里,可以理解为预设神经网络模型所在服务器可以使用单个GPU,并行地处理一整个batch的待检测文本行图像(但是期间不存在并行处理的服务器CPU开销,因为并行是在GPU显存中进行的)。在通过batch的输入之后,预设神经网络模型会将batch中的每一张待检测文本行图像并行地进行处理。
如图9所示,本实施例同时提供了一种电子设备,该电子设备可以包括处理器51和存储器52,其中存储器52耦合至处理器51。值得注意的是,该图是示例性的,还可以使用其他类型的结构来补充或替代该结构,实现数据提取、图谱生成、通信或其他功能。
如图9所示,该电子设备还可以包括:输入单元53、显示单元54和电源55。值得注意的是,该电子设备也并不是必须要包括图9中显示的所有部件。此外,电子设备还可以包括图9中没有示出的部件,可以参考现有技术。
处理器51有时也称控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器51接收输入并控制电子设备的各个部件的操作。
其中,存储器52例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其他合适装置中的一种或多种,可存储上述处理器51的配置信息、处理器51执行的指令、记录的表格数据等信息。处理器51可以执行存储器52存储的程序,以实现信息存储或处理等。在一个实施例中,存储器52中还包括缓冲存储器,即缓冲器,以存储中间信息。
本发明实施例还提供一种计算机可读指令,其中当在电子设备中执行所述指令时,所述程序使得电子设备执行本发明方法所包含的操作步骤。
本发明实施例还提供一种存储有计算机可读指令的存储介质,其中所述计算机可读指令使得电子设备执行本发明方法所包含的操作步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的层,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成层及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述层的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个层或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。