模型、模型的训练方法和装置、字符序列的识别和装置与流程

文档序号:26759374发布日期:2021-09-25 05:18阅读:135来源:国知局
模型、模型的训练方法和装置、字符序列的识别和装置与流程

1.本技术涉及人工智能领域中的图像处理技术,特别是指一种模型、模型的训练方法和装置、字符序列的识别和装置、服务器、计算设备、计算机可读存储介质、计算机程序产品。


背景技术:

2.基于图像的文字识别,是指对含有字符的图像中的字符形状识别为文字的过程。图像的获取方式可以通过电子设备,例如扫描仪、数码相机或摄像头、手机拍照的方式,也可以是直接接收图像文件的方式等。
3.传统的文字识别技术为光学字符识别(optical character recognition,ocr),随着人工智能技术的发展,通过深度学习模型(或称深度神经网络)对图像中的文字识别的技术得以发展。深度神经网络通常随着网络的复杂度的提高而提高精度,但同时会带来运行效率的降低。
4.在基于深度神经网络进行图像中文字的识别时,如何能有较高的识别精度,且有较高的运行效率,是有待解决的技术问题。


技术实现要素:

5.鉴于现有技术的以上问题,本技术提供一种模型、模型的训练方法和装置、字符序列的识别和装置、服务器、计算设备、计算机可读存储介质、计算机程序产品,使用本技术的模型进行字符序列识别时,可以保持相对高的运行效率,且有较高的识别精度。
6.为达到上述目的,本技术第一方面提供了一种识别模型,包括:编码模块,用于根据输入的数据获得上下文特征;第一解码模块,用于根据上下文特征获得识别的字符序列,其中,第一解码模块包括:字符位置预测模块,用于根据上下文特征获得特征图,特征图反映了字符序列中的字符的位置信息;第一序列处理模块,用于根据上下文特征和特征图获得字符序列。
7.由上,该识别模型,采用特征图与上下文特征预测识别的字符序列,未使用基于串行的注意力的解码器,因此具有较高的运行效率。并且,其中的字符位置预测模块可以基于使用串行的注意力的解码器采用知识蒸馏方式进行训练,可以具有较高的识别精度。
8.作为第一方面的一种可能的实现方式,字符位置预测模块包括:级联的下采样的卷积层、全连接层和上采样的卷积层。
9.由上,字符位置预测模块的编码部分与解码部分的外层使用cnn层,内层使用全连接层连接编码部分与解码部分,原因是外层的编码、解码网络分别用于提取和生成局部信息,内层的全连接网络用于提取和生成全局的信息,如果在内层继续使用cnn,则需要多层cnn以提供足够大的全局感受野,而使用全连接层可以很轻松的获得全局感受野,且由于内层特征尺寸小,全连接层带来的参数量也不会很大,因此,本技术实施例提供的字符位置预测模块的结构具有运行效率比较高的特点。
10.作为第一方面的一种可能的实现方式,第一解码模块还包括基于并行的注意力模块,用于根据特征图和上下文特征信息获得更新的特征图;第一序列处理模块具体用于根据上下文特征和更新的特征图获得字符序列。
11.由上,通过基于并行的注意力模块,对字符位置预测模块输出的特征图进行处理,实现细化特征图,以提高特征图反映字符序列中的字符的位置信息的精确性。
12.作为第一方面的一种可能的实现方式,第一解码模块具体包括级联的两个或两个以上的基于并行的注意力模块。
13.由上,级联的基于并行的注意力模块越多,即网络结构的层数越多,对特征图的逐层细化约精确,处理后的特征图反映字符序列中的字符的位置信息的精确性就越高。
14.作为第一方面的一种可能的实现方式,基于并行的注意力模块前还级联有第二序列处理模块,所述第二序列处理模块用于将要输入至所述基于并行的注意力模块的所述特征图进行处理。
15.由上,通过增加若干第二序列处理模块,可以增加网络的层数(或称为增加网络的深度),从而使训练出的网络的对序列的识别的精度更高。
16.作为第一方面的一种可能的实现方式,编码模块前还级联有图像校正模块,用于将输入的图像的数据进行校正。
17.由上,该图像校正模块可以采用具有空间变换不变性的神经网络实现,通过图像校正,便于后续模块的处理,提高了对图像中字符的识别准确率。
18.本技术第二方面提供了一种模型的训练方法,模型为由上述第一方面提供的任一识别模型构成的第一识别模型,训练方法包括:训练第二识别模型,第二识别模型包括级联的编码模块与基于串行注意力的序列解码器;冻结编码模块与基于串行注意力的序列解码器的网络参数;利用第二识别模型基于知识蒸馏训练第一识别模型。
19.由上,通过上述训练方式来训练第一识别模型,实现了对第一识别模型的字符位置预测模块的训练,由于使用基于串行注意力的序列解码器的第二识别模型训练第一识别模型,使得第一识别模型具有与传统基于串行注意力序列解码器基本相当的序列识别精度,并且,由于第一识别模型未使用基于串行注意力的序列解码器,第一识别模型可以保持较高的运行效率。
20.作为第二方面的一种可能的实现方式,利用第二识别模型基于知识蒸馏训练第一识别模型包括:对特征图进行知识蒸馏获得第一参数;对基于串行注意力的序列解码器所形成的注意力矩阵进行知识蒸馏获得第二参数;基于第一参数与第二参数之间的差异训练第一识别模型。
21.由上,特征图反映了字符序列中的字符的位置信息,注意力矩阵也可以反映预测的字符序列中的字符的位置信息,因此可以采用上述知识蒸馏来训练第一识别模型。其中,知识蒸馏获得的第一参数、第二参数,与该特征图或注意力矩阵中的各元素,或部分元素的分布相关。这些元素的值例如可以是在设定的某阈值范围内的值,又如在另一些实施例中,可以是对特征图矩阵采用池化方式取得的部分元素的值,该池化方式可以是最大值方式或均值方式。在一些可能实现的方式中,这些参数可以直接为这些元素值,也可以是将这些元素值通过某系数加权计算后的值,例如是通过蒸馏过程中使用的温度值t进行加权计算后的值,也可以是各元素进行归一化后的值,也可以是各元素进行加权后归一化后的值。
22.作为第二方面的一种可能的实现方式,对特征图进行知识蒸馏获得第一参数具体包括:对利用基于并行的注意力模块获得更新的特征图进行知识蒸馏获得第一参数。
23.由上,当第一识别模型包含级联的多个基于并行的注意力模块时,这些基于并行的注意力模块会对特征图进行逐步的细化,因此,对第一特征图进行蒸馏获得第一参数时,可以替换为对某细化后的特征图进行蒸馏,其中,可以是对最后一个基于并行的注意力模块细化后的特征图进行蒸馏。
24.作为第二方面的一种可能的实现方式,获得的第一参数、第二参数与字符序列中的字符的位置信息有关。
25.由上,由于特征图反映了字符序列中的字符的位置信息,注意力矩阵也可以反映预测的字符序列中的字符的位置信息,因此可以使得获得的第一参数、第二参数与字符序列中的字符的位置信息有关。
26.作为第二方面的一种可能的实现方式,利用第二识别模型基于知识蒸馏训练第一识别模型包括:对第一识别模型输出的字符序列进行知识蒸馏获得第三参数;对第二识别模型输出的字符序列进行知识蒸馏获得第四参数;基于第三参数与第四参数之间的差异训练第一识别模型。
27.由上,可以实现进行字符内容预测信息的蒸馏,其中,所蒸馏得到的第三参数、第四参数可以是与字符序列对应的编码向量相关、也可以是对应各个编码向量的置信度值相关、也可以是序列在序列集中的概率分布等相关。
28.作为第二方面的一种可能的实现方式,获得的第三参数、第四参数与字符序列中的字符在字符集中的概率分布有关。
29.由上,第三参数可以采用的一种方式是与第一识别模型输出的序列在序列集中的概率分布有关,例如,每个序列在序列集中的概率分布可以为该输出序列的logits值,logits是神经网络中进入softmax前的概率,反映了每个字符在整个字符集中的概率分布(probability distribution),通常logits对应全连接层的输出(该全连接层后连接softmax层)。
30.作为第二方面的一种可能的实现方式,还包括:基于样本数据训练第一识别模型;作为第二方面的一种可能的实现方式,第一识别模型、第二识别模型还分别包括级联在编码模块前的图像校正模块;训练第二识别模型还包括训练图像校正模块;冻结(freez)网络参数还包括冻结图像校正模块的网络参数。
31.由上,可以实现在训练时,一并对图像校正模块的训练。
32.本技术第三方面提供了一种模型的训练装置,模型为由上述第一方面提供的任一识别模型构成的第一识别模型,训练装置包括:训练模块,用于训练第二识别模型,第二识别模型包括级联的编码模块与基于串行注意力的序列解码器;配置模块,用于冻结编码模块与基于串行注意力的序列解码器的网络参数;训练模块还用于利用第二识别模型基于知识蒸馏训练第一识别模型。
33.作为第三方面的一种可能的实现方式,训练模块具体用于:对特征图进行知识蒸馏获得第一参数;对基于串行注意力的序列解码器所形成的注意力矩阵进行知识蒸馏获得第二参数;基于第一参数与第二参数之间的差异训练第一识别模型。
34.作为第三方面的一种可能的实现方式,对特征图进行知识蒸馏获得第一参数具体
包括:对利用基于并行的注意力模块获得更新的特征图进行知识蒸馏。
35.作为第三方面的一种可能的实现方式,获得的第一参数、第二参数与字符序列中的字符的位置信息有关。
36.作为第三方面的一种可能的实现方式,训练模块具体用于:对第一识别模型输出的字符序列进行知识蒸馏获得第三参数;对第二识别模型输出的字符序列进行知识蒸馏获得第四参数;基于第三参数与第四参数之间的差异训练第一识别模型。
37.作为第三方面的一种可能的实现方式,第三参数、第四参数与字符序列中的字符在字符集中的概率分布有关。
38.作为第三方面的一种可能的实现方式,训练模块还用于基于样本数据训练第一识别模型。
39.作为第三方面的一种可能的实现方式,第一识别模型、第二识别模型还分别包括级联在编码模块前的图像校正模块;训练模块还用于训练图像校正模块;配置模块还用于冻结图像校正模块的网络参数。
40.本技术第四方面提供了一种字符序列的识别方法,识别方法包括:获取输入的数据;利用编码模块根据数据获得上下文特征;利用字符位置预测模块根据上下文特征获得特征图,所述特征图反映了所述字符序列中的字符的位置信息;利用第一序列处理模块根据上下文特征和特征图获得字符序列。在一些可能的实现方式中,具体可以利用第一方面提供的任一项识别模型进行该字符序列的识别。
41.本技术第五方面提供了一种字符序列的识别装置,识别装置包括:获取模块,用于获取输入的数据;识别模块,用于利用编码模块根据数据获得上下文特征、利用字符位置预测模块根据上下文特征获得特征图、以及利用第一序列处理模块根据上下文特征和特征图获得字符序列,所述特征图反映了所述字符序列中的字符的位置信息。在一些可能的实现方式中,具体可以利用第一方面提供的任一项识别模型进行该字符序列的识别。
42.由上,可以实现利用上述识别模型识别图像中的字符序列。
43.本技术第六方面提供了一种服务器,包括:处理器,存储器;其中,存储器用于存储程序指令,程序指令当被处理器执行时使得服务器实现本技术第二方面提供的任一项方法,或者,实现本技术第四方面提供的方法。
44.本技术第七方面提供了一种计算设备,包括:处理器,存储器;其中,存储器用于存储程序指令,程序指令当被处理器执行时使得计算设备实现本技术第二方面提供的任一项方法,或者,程序指令当被处理器执行时使得计算设备实现本技术第四方面提供的方法。
45.本技术第八方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令当被计算机执行时使得计算机实现本技术第二方面提供的任一项方法,或者,程序指令当被计算机执行时使得计算机实现本技术第四方面提供的方法。
46.本技术第九方面提供了一种包含指令的计算机程序产品,计算机程序产品中存储有指令,当其在计算机上运行时,使得计算机实现本技术第二方面提供的任一项方法,或者,实现本技术第四方面提供的方法。
附图说明
47.图1a是本技术实施例提供的识别模型的示意图;
48.图1b是本技术实施例提供的编码模块的示意图;
49.图1c是本技术实施例提供的图像编码模块的一具体实施方式的示意图;
50.图1d是本技术实施例提供的序列编码模块的一具体实施方式的示意图;
51.图1e是本技术实施例提供的编码模块的一具体实施方式的示意图;
52.图1f是本技术实施例提供的图像校正模块的一具体实施方式的示意图;
53.图2a是本技术实施例提供的训练第一识别模块的构架示意图;
54.图2b是本技术实施例提供的识别模型训练方法的流程图;
55.图2c是图2a的一个具体实施方式的示意图;
56.图2d是本技术实施例提供的基于串行的注意力机制的原理示意图;
57.图2e是本技术实施例提供的基于知识蒸馏训练第一识别模型的流程图;
58.图2f是本技术另一实施例提供的基于知识蒸馏训练第一识别模型的流程图;
59.图3是本技术实施例提供的模型的训练装置的示意图;
60.图4a是本技术实施例提供的一种文本识别方法的流程图;
61.图4b是本技术实施例提供的一种文本识别装置的示意图;
62.图5是本技术实施例提供的对图像中的文字的识别的运行实验数据示意图;
63.图6是本技术实施例提供的一种计算设备的结构性示意性图;
64.图7是本技术实施例提供的一种服务器的结构性示意性图。
65.应理解,上述结构示意图中,各框图的尺寸和形态仅供参考,不应构成对本技术实施例的排他性的解读。结构示意图所呈现的各框图间的相对位置和包含关系,仅为示意性地表示各框图间的结构关联,而非限制本技术实施例的物理连接方式。
具体实施方式
66.下面结合附图并举实施例,对本技术提供的技术方案作进一步说明。应理解,本技术实施例中提供的系统结构和业务场景主要是为了说明本技术的技术方案的可能的实施方式,不应被解读为对本技术的技术方案的唯一限定。本领域普通技术人员可知,随着系统结构的演进和新业务场景的出现,本技术提供的技术方案对类似技术问题同样适用。
67.应理解,本技术实施例提供的字符序列识别的方案,包括模型、模型的训练方法和装置、字符序列的识别和装置、服务器、计算设备、计算机可读存储介质、计算机程序产品。由于这些技术方案解决问题的原理相同或相似,在如下具体实施例的介绍中,某些重复之处可能不再赘述,但应视为这些具体实施例之间已有相互引用,可以相互结合。
68.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
69.在对图像中文字的进行识别时,一种技术方案是采用具有柔性矫正功能的注意力机制场景文本识别器(an attentional scene text recognizer withflexible rectification,aster)。该技术方案的基本原理是:输入的包含文本的图像经过图像矫正模块(图像矫正模块可以采用stn网络)进行矫正,矫正后的图像经过卷积神经网络进行图像特征序列的提取,提取的图像特征序列经过序列模型(sequence modeling)进行序列编
码(encoding),序列编码后的特征经过传统的基于串行注意力(attention)的序列解码器进行序列解码(decoding),输出图像中的各字符。传统的基于串行注意力的序列解码器例如基于注意力的循环神经网络(recurrent neural network,rnn)或基于注意力的长短期记忆网络(long short term memory,lstm)、双向长短期记忆网络(bi

directional long short term memory,bi

lstm)等。
70.上述技术方案采用了传统的基于串行注意力的序列解码器,解码过程采用了自回归方式,即:解码当前字符时,需要依赖前一个字符的信息。对于该技术方案,解码器的计算复杂度随字符串长度增加而增加,因此会造成较长的解码时延。
71.另一种对图像中文字的识别技术方案,是基于语义推理网络的精确的场景文本识别(towards accurate scene text recognition with semantic reasoning networks)。该技术方案使用了基于并行注意力的序列解码器,可以同时预测所有的字符。该技术方案的基本原理是:输入的包含文本的图像经过骨干网(backbone network)编码得到图像特征序列,图像特征序列经过基于并行注意力的序列解码器同时预测所有的字符的特征,字符特征经过全局语义推理模块(global semantic reasoning module,gsrm)进行语义建模得到语义特征,字符特征与语义特征在融合模块(fusion)融合,输出图像中的各字符。
72.该技术方案采用了基于并行注意力的序列解码器,可以同时预测所有的字符,解码器的计算复杂度不随字符串长度增加而增加,时延低。但基于并行注意力的序列解码器,由于不依赖前一个字符信息,故精度通常低于传统的基于串行注意力的序列解码器。由于其精度不理想,故加入了大量的后处理(例如加入语义推理模块、融合模块进行后处理),导致整个模型体积巨大,运行效率低。
73.本技术实施例提供了一种改进的字符序列识别的方案,所使用的模型为编码器、解码器结构,其中,解码器中的字符位置预测模块可基于知识蒸馏的方式从基于串行注意力的序列解码器中萃取的知识进行训练,从而在模型尺寸限制的情况下,提升了识别的精度。并且,应用于对图像中文字的识别时,由于不需要使用大量的后处理,因此相对运行效率较高。
74.本技术实施例提供的字符序列识别的方案,可以应用于输入为图像、输出为多个序列的场景。例如应用之一为:对图像中文本识别的任意应用场景,如,针对所接收的、或拍摄得到的包含文字的图片,如身份证、银行卡、车牌、路牌、书本、海报等的图片,对所包含的文字进行文本识别的应用场景。再例如使用增强现实(augmented reality,ar)技术识别图像中文字并进行即时翻译的应用场景。例如应用之二为:对图像中的文本识别出文字,并进一步进行语音播放的场景。例如应用之三为:对图像中的乐谱识别的应用场景,如对图像中的乐谱的五线谱的识别,或者识别后并通过声音播放对应的音乐的场景等。
75.本技术实施例提供的字符序列识别的方案,也可以不限于输入的内容为图片。例如翻译场景:输入为字符串、输出为译文字符串的应用场景。又如输入为获得的语音的波形文件、识别为字符串的场景。
76.为了进一步了解本技术,下面参照附图,对本技术各个实施例进行详细说明。
77.【本技术实施例提供的一种识别模型】
78.如图1a示出了本技术实施例提供的一种识别模型,用于识别字符序列。该识别模型包括编码模块100和第一解码模块200。其中,编码模块100用于根据输入的数据获得上下
文特征。第一解码模块200用于根据所述上下文特征获得识别的字符序列。其中,所述第一解码模块200包括字符位置预测模块210和第一序列处理模块220。字符位置预测模块210用于根据所述上下文特征获得特征图,该特征图反映了所述字符序列中的字符的位置信息。第一序列处理模块220用于根据所述上下文特征和所述特征图获得所述字符序列。
79.本实施例中,该识别模型可用于对图像中的字符进行识别,在其他一些实施例中,该识别模型可用于对序列到序列的识别,例如对语音波形到文本的识别。具体该识别模型的用途,可根据所使用的样本数据经训练后实现。例如样本数据是包含有字符的图像,样本数据的标签是所述字符内容时,则该识别模型经训练后可用于对图像中的字符进行识别。又如,样本数据是包含有语音波形的数据,样本数据的标签是语音的对应的字符时,则该识别模型经训练后可用于对语音波形识别为字符,若进一步设置有语音转语音波形的模块,则可以实现将语音识别为字符。
80.本实施例中,编码模块100用于将接收的图像数据编码为特征序列。在一些实施例中,编码模块100可以采用神经网络实现,该神经网络如cnn(convolutional neural network,cnn)、基于转换器的双向编码表示(bidirectional encoder representations from transformers,bert)、卷积循环神经网络(convolutional recurrent neural network,crnn)、全连接网络(full connect,fc)等。在一些实施例中,编码模块100可由相同或不同的多个网络模块的组合实现,例如本实施例中,如图1b所示,编码模块100包括图像编码模块110和序列编码模块120,其中,图像编码模块110用于从图像中提取出图像特征序列,序列编码模块120用于将图像特征序列进一步编码为特征序列。
81.在一些实施例中,图像编码模块110可以是cnn、bert、crnn、fc等网络,例如,当为cnn网络时,可以包括cnn网络的卷积层、池化层、全连接层中的任意一层或多层。
82.本实施例中,图像编码模块110采用了影子网络(ghostnet)结构,ghostnet是一种用于图像处理的深度神经网络,相比传统的cnn,采用了影子瓶颈(ghost

bottleneck,g

bneck)替代卷积层。g

bneck包括了影子(ghost)模块,该模块首先通过传统的卷积运算产生固有特征图y’,然后利用简单的线性算子在固有特征图y’上通过线性变换,生成若干个影子特征图y”,固有特征图y’与影子特征图y”构成所要生成的特征图y。相比使用传统的卷积运算直接生成特征图y,ghost模块中的卷积运算部分仅用于产生较小尺寸或较少通道的固有特征图y’,采用了卷积和线性组合共同计算特征,不完全依赖卷积计算特征,因此使用ghost模块的计算量更小。
83.在本实施例中,图像编码模块110使用的ghostnet包括卷积层、若干影子瓶颈(ghost

bottleneck,g

bneck)层、池化层、全连接层。如图1c示出了图像编码模块110的一种具体实施方式,图1c中的扩展(#exp)表示扩展的尺寸,输出(#out)表示输出的通道数,se表示是否采用了挤压和激发(squeeze

and

excitation,se)模块。该具体实施方式提供的ghostnet网络结构依次包括:2d卷积层
‑‑‑‑
2个g

bneck构成的一组g

bneck层
‑‑‑‑
2个g

bneck构成的一组g

bneck层
‑‑‑‑
2个g

bneck构成的一组g

bneck层
‑‑‑‑
6个g

bneck构成的一组g

bneck层
‑‑‑‑
4个g

bneck和一2d卷积层(conv2d)构成的一组g

bneck层
‑‑‑‑
池化层(avgpool)
‑‑‑‑
2d卷积层(conv2d)
‑‑‑‑
全连接层(fc)。可见,图1c中的该ghostnet网络的输入是224
×
224
×
3的图像,即像素大小为224
×
224的3通道(rgb三通道)的图像,输出是1000个特征值构成的图像特征序列。
84.在一些实施例中,序列编码模块120可以包括bert、rnn、lstm、cnn等网络任意一种或多种的组合。
85.本实施例中的序列编码模块120的一种具体实施方式,可采用图1d示出的结构,图1d所示的序列编码模块120包括一维卷积(1dconv)层和线性门控单元(gated linear units,glu)层。其中,采用卷积层处理序列到序列的编码,优势在于卷积层的各卷积模块能够并行处理数据,计算更加高效;并且卷积层可以为多层,当为多层时,可以捕获词之间远程的关系,从而更好地捕捉更复杂的关系。glu层用于将卷积后的结果分成两部分,对其中一部分作用sigmoid激活函数的变换,即映射到0到1的区间之后,和另一部分向量进行元素乘(element

wise)运算,sigmoid函数用于控制着网络中的信息流,即哪些能够向下传递。可见,glu层同时提供非线性路径(即经过sigmoid函数的路径)和线性路径,既通过非线性路径保证了特征的感知能力,又通过线性路径解决了梯度消失的问题。
86.并且,本实施例的图1d示出的具体实施方式中还进一步采用了残差连接的结构,即,把序列编码模块120的输入的特征序列与输出的特征序列相加后,作为序列编码模块120的输出。其中,残差连接为可选,采用残差连接可以使得输出同时具有高层和底层的特征。
87.在一些实施例中,上述图像编码模块110或序列编码模块120中还可以包括注意力模块,例如可以是基于自注意力机制,或多头注意力机制的注意力模块,可以根据需要设置于构成图像编码模块110或序列编码模块120的网络结构中的任一网络层后。
88.其中,所述字符位置预测模块210用于根据所述上下文特征获得可反映字符序列中的字符位置信息的特征图,在一些实施例中,字符位置预测模块210可以使用cnn、rnn、fc、bert等其他网络的任意一种,或是任意多种网络的组合实现。
89.在本实施例中,字符位置预测模块210由cnn与全连接层混合的编码

解码结构构成,其中,编码部分采用cnn模块,例如由卷积层和/或池化层构成,编码部分将输入的特征(输入的特征为编码模块120输出的上下文特征)的尺寸逐层减小(或称为下采样),编码部分与解码部分可直接连接,也可采用本实施例中的通过fc进行连接,解码部分也可采用cnn模块,例如由卷积层和/或池化层构成,解码部分将编码部分输出的特征尺寸逐层放大(或称为上采样),放大到所需大小的特征图。本实施例中,该放大后的特征图尺寸可与后述训练过程中所蒸馏的第二识别网络的注意力矩阵大小匹配,故,本实施例中字符位置预测模块210也称为特征对齐模块(feature alignment)。
90.本实施例中,如上所述,字符位置预测模块210的编码部分与解码部分的外层使用cnn层,内层使用全连接层连接编码部分与解码部分,原因是外层的编码、解码网络分别用于提取和生成局部信息,内层的全连接网络用于提取和生成全局的信息,如果在内层继续使用cnn,则需要多层cnn以提供足够大的全局感受野,而使用全连接层可以很轻松的获得全局感受野,且由于内层特征尺寸小,全连接层带来的参数量也不会很大,因此,本技术实施例提供的字符位置预测模块210的结构具有运行效率比较高的特点。其中,对于上述上采样的卷积层,也可以称为反卷积层。
91.在一些实施例中,当字符位置预测模块210的解码部分输出的特征图尺寸与第二识别网络的注意力矩阵大小不匹配时,可以在解码部分的网络后进一步级联fc层、卷积层或池化层等网络的任意一种或多种来调整特征图尺寸,以实现与第二识别网络的注意力矩
阵大小的匹配。在另外一些实施例中,也可以针对获得的第二识别网络的注意力矩阵使用fc层、卷积层、池化层等其他网络或其任意组合,实现对注意力矩阵尺寸的放大或缩小,来实现与字符位置预测模块210输出的特征图的匹配。这里说明的是,这里所述的匹配,是便于在网络训练过程中,从匹配的特征图和第二识别网络的注意力矩阵进行知识萃取以训练用。
92.本实施例中,第一序列处理模块220根据编码模块100输出的上下文特征和字符位置预测模块210输出的特征图获得所述字符序列,对此可以理解为,编码模块100输出的上下文特征含有各个字符的特征信息,特征图反映了所述字符序列中的字符的位置信息,由此,基于各个字符的特征信息结合各个字符的位置信息第一序列处理模块220来预测出各个位置的字符,所预测的各个字符构成所述字符序列。
93.其中,所述上下文特征和所述特征图输入第一序列处理模块220的方式可以有多种,例如,本实施例中,可以先将上下文特征(矩阵形式体现)和所述特征图(矩阵形式体现)做矩阵相乘运算后输入到第一序列处理模块220,其他一些实施例中,可以将上下文特征和所述特征图级联后输入到第一序列处理模块220。
94.在一些实施例中,第一序列处理模块220可以包括cnn、bert、crnn、fc、rnn等任意一个网络、或多个网络的组合构成。
95.本实施例中,第一序列处理模块220的一个具体实施方式,可以由图1d示出的网络级联一输出层构成,也可参见如图1e所示一编码模块的具体实施方式,通过该输出层输出各个字符。其中输出层可以包括全连接层,该输出层输出各个位置的对应的置信度(置信度可通过softmax函数计算)最大的字符编码(embedding)向量对应的字符。
96.在本实施例中,如图1e所示的具体实施方式中,在字符位置预测模块210和第一序列处理模块220之间,还可以连接有至少一个基于并行的注意力模块,本实施例中,具体可以包括级联的两个或两个以上的基于并行的注意力模块。这些级联的基于并行的注意力模块,用于对字符位置预测模块210输出的特征图进行依次处理,实现逐步细化特征图,以提高特征图反映所述字符序列中的字符的位置信息的精确性。其中,级联的注意力模块越多,即网络结构的层数越多,处理后的特征图反映所述字符序列中的字符的位置信息的精确性就越高。第一序列处理模块220根据处理后的特征图去预测的所述字符序列就越准确。
97.对应上述上下文特征和所述特征图输入第一序列处理模块220的方式,基于并行的注意力模块在网络中的连接方式也可以灵活设置。例如,在本实施例中,将上下文特征和所述特征图做矩阵相乘运算后,在输入到第一序列处理模块220之前,可以设置所述基于并行的注意力模块。在另一些实施例中,所述上下文特征输入到第一序列处理模块220,所述特征图经基于并行的注意力模块所述处理后输入到第一序列处理模块220。无论哪种方式,只要第一序列处理模块220能够直接或间接获得上下文特征以及特征图,即可进行预测各个位置的字符。
98.在一些实施例中,上述各基于并行的注意力模块中的至少一个,可以针对输入其的特征图(包括级联基于并行的注意力模块的前一基于并行的注意力模块输出的更新的特征图)进行处理,例如可以采用自注意力机制,通过对输入其的特征图的进行自编码的方式进行处理。
99.本实施例中,上述各基于并行的注意力模块中的至少一个,针对输入其的特征图
(包括级联基于并行的注意力模块的前一基于并行的注意力模块输出的更新的特征图)、结合上述上下文特征进行处理,下面以注意力机制采用键

值对(key

value)

查询(query)的描述,来对本实施例进行说明:
100.在级联的各层的基于并行的注意力模块的处理中,第i层基于并行的注意力模块处理时,其上一层的输出作为该第i层基于并行的注意力模块的输入,记为x
current layer i
,作为key,编码模块100的输出上下文特征记为x
contextual feature
,作为query,当value也取x
contextual feature
时,该第i层基于并行的注意力模块的输出为其中,第i层的基于并行的注意力模块的执行过程,可如下述公式(1)所示:
[0101][0102]
其中,所述s(key,query)为注意力打分函数,注意力打分函数可采用以下之一模型进行计算,其中,下述模型中k表示key,q表示query:
[0103]
1)点积模型:(k
t
q)。
[0104]
2)缩放点积模型:其中,d
k
是缩放因子,为常量,例如为6、8、9等值。
[0105]
3)加性模型:(tanh(wk+uq)),其中w、u为可学习的参数。
[0106]
4)双线性模型。(k
t
wq),其中w为可学习的参数。
[0107]
由上公式(1)可以看出,为矩阵相乘运算,因此该基于并行的注意力模块实现了并行输入、并行输出的处理。
[0108]
在本实施例中,对于级联的各层的基于并行的注意力模块,在任意一层基于并行的注意力模块前,还可以级联的第二序列处理模块,该第二序列处理模块可以包括cnn、bert、crnn、fc、rnn等任意一个网络、或多个网络的组合构成,本实施例中,如图1e所示,第二序列处理模块采用了图1d所示出的网络。其中,通过增加若干第二序列处理模块,可以增加网络的层数(或称为增加网络的深度),从而使训练出的网络的对序列的识别的精度更高。
[0109]
在一些实施例中,若针对输入编码模块100的数据能够获得与位置相关的信息,还可以将该位置信息进行编码,得到位置嵌入(position embedding)的编码,该位置嵌入的编码可以级联在上述基于并行注意力模块中的任意一个的输入上,或级联在第一序列处理模块220的输入上,由于位置编码的引入,可以提高识别模型的识别准确度。其中,如图1e所示,本实施例中,在上述级联的基于并行注意力模块中的第一个基于并行注意力模块的输入上,级联所述位置编码。
[0110]
在一些实施例中,所述编码模块100前还可级联有图像校正模块,用于将输入的图像的数据进行校正。其中,图像校正模块用于对文字进行空间变换,包括平移、旋转、缩放及裁剪等。在一些实施例中,图像校正模块可以采用神经网络实现,如cnn、bert网络或其他网络等。
[0111]
本实施例中,该图像校正模块采用具有空间变换不变性的神经网络实现,例如该
神经网络可以是空间变换网络(spatial transformer networks,stn),空间变换网络主要作用包括:可以将输入转换为下一层期望的形式,可以自动选择感兴趣的区域特征,可以实现对各种形变的数据进行空间变换。该网络具有空间变换不变性(将平移、旋转、缩放及裁剪不变性统称为空间不变性)。其中,空间变换不变性是指:如果网络能够对经过平移、旋转、缩放及裁剪等操作的图片得到与未经变换前相同的检测结果,则称为这个网络具有空间变换不变性。
[0112]
如图1f示出了图像校正模块的一种具体实施方式,为基于tps模型的stn网络。如图1f所示,该基于tps模型的stn网络的校正原理为:输入的原图像i首先经过下采样,得到图像id;然后经过定位网络(localization network)预测一组控制点(control points),控制点用于确定输入图像数据中的字符位置和方向;由网格生成器(grid generator)得到这些控制点在原图像i与校正后图像上的位置对应关系,该位置对应关系可称为校正参数,或tps(thin plate spline)变换参数;由采样器(sampler)根据该位置对应关系和原图像i,得到矫正后的图像ir。这里需要说明的是,图1f中的对原图像i首先经过下采样,根据该下采样后得到的尺寸较小的图像id来预测控制点,而输入到网格生成器计算的时候又映射回原图像i大小,这样的目的是为了减小网络参数,降低计算量。在另一些实施例中,也可以将输入的原图像i不经下采样,直接输入到定位网络(localization network)。
[0113]
在一些实施例中,图像校正模块之前还可以级联有用于从图像中截取包括字符的区域图像的模块,该模块可以包括区域选取模块(region proposal network,rpn)、cnn、fc等网络的任意一个,或多个网络的组合,该模块从输入的图像中选取包含所有识别的字符的区域图像,以由图像校正模块对该区域图像进行处理。
[0114]
【本技术实施例提供的一种识别模型训练方法】
[0115]
下面,再结合附图,对本技术实施例提供的一种模型的训练方法进行介绍。其中该模型训练方法可以用于对上述的识别模型进行训练,为了描述方面,这里将上述识别模型称为第一识别模型。
[0116]
在进行训练时,需引用由所述编码模块100和基于串行注意力的序列解码器构成的第二识别模型,基于蒸馏的训练方式对第一识别模型进行训练。如图2a示出了该训练时的基本构架。下面参见图2b所述的流程图,所述训练方法包括以下步骤:
[0117]
s10:训练第二识别模型,所述第二识别模型由级联的所述编码模块与基于串行注意力的序列解码器构成。
[0118]
在本实施例中,在进行上述第一识别模型训练时,需在第一识别模型的基础上,构建第二识别模型,其中第二识别模型共用第一识别模型的编码模块,第二识别模型的解码模块由基于串行注意力的序列解码器构成。基于串行注意力的序列解码器可以为基于注意力的rnn、基于注意力的lstm、基于注意力的bi

lstm、基于注意力的bert、transformer(transformer是一种序列到序列的神经网络)等网络。
[0119]
基于串行注意力的序列解码器用于将编码模块100输出的特征序列解码为各个字符输出。其中,基于串行注意力的序列解码器解码时,依照时序依次解码生成各个字符,并且,当前字符信息的输出依赖于至少前一个字符信息的输出,由于字符信息的输出依赖于至少前一字符,因此具有较高的输出的准确率。该基于串行注意力的序列解码器在每个时间步生成一字符时,使用一次注意力模块,因此各个时间步的注意力值a
t,i
会对应各个时间
步所生成的字符,也就意味着,基于各时间步的a
t,i
可以反映各个字符的位置关系,也就是可以反映所生成的各个字符序列中各个字符的位置信息。具体的,注意力值大小反映了对应该注意力值的相应位置出现字符的概率的高低,也即能反映出各个字符的各位置的概率分布。
[0120]
如图2c中示出的图中包括了基于串行注意力的序列解码器的一个具体实施方式,上一时间步所预测的输出字符经嵌入编码(embedding)、级联位置嵌入编码(position embedding)后,经图1d示出的编码模块(可级联为多层,图中以n layers表示)编码后生成x
pre
,为便于描述,这里称x
pre
为前一时间步字符特征,基于该x
pre
、编码模块100输出的上下文特征为x
contextual feature
,结合注意力机制可以生成当前时间步的字符特征x
current attn

applied feature
,该x
current attn

applied feature
经归一化去预测当前时间步的输出字符。
[0121]
其中,注意力机制采用键

值对(key

value)

查询(query)描述时,通过key和query计算注意力a
t,i
,基于注意力a
t,i
作用于value可得到输出,其中基于各a
t,i
也可得到注意力矩阵m
attention
,下面同时参照图2d示出的注意力机制的一种实现方式,对串行的注意力机制进行介绍:
[0122]
如图2d示出的原理图,将上述前一时间步字符特征x
pre
经线性变换得到的当前时间步字符特征x
current
作为query,编码模块100输出的上下文特征的向量ci作为key,其中编码模块100输出的上下文特征的向量矩阵为x
contextual feature
,则对应当前时间步的上下文特征的向量c
i
=x
i

contextual feature
,从而得到下述公式(2):
[0123][0124]
其中,所述s(key,query)为注意力打分函数,如前所述注意力打分函数可采用点积模型、缩放点积模型、加性模型、或双线性模型计算。
[0125]
在各个时间步(即各个t时刻)计算出各a
t,i
后,由各t时刻的各a
t,i
构成的二维矩阵,即可得到基于串行注意力的序列解码器的注意力矩阵m
attention
,即注意力分布矩阵。
[0126]
另外需要说明的是,上面仅为一个例子,query和key的值可以灵活选取,例如query还可以是前一时间步字符特征x
pre

[0127]
其中,当value也取x
i

contextual feature
时,则结合注意力机制后的当前时间步输出的字符特征可为x
current attn

applied feature
=x
pre
+a
t,i
x
i

contextual feature
,x
current attn

applied feature
归一化(如通过softmax归一化)后即为的当前时间步预测的字符的向量。
[0128]
其中,对第二识别模型训练时,可以使用样本数据进行训练,训练第二识别模型所使用的损失函数(或称训练目标)可以是所述样本数据的标签(即真实结果)与的第二识别模型输出的序列(即预测结果)之间的差异,关于训练第二识别模型所使用的损失函数l
model 2
,可以描述为下述公式(3):
[0129]
l
model 2
=l
hard
(y,q)
ꢀꢀꢀ
(3)
[0130]
其中,y表示数据的标签的编码,q是第二识别模型的输出结果对应的编码。在进行训练时,可以采用常规的任意方式进行训练,例如可以采用梯度下降算法、牛顿算法等,通过不断调整网络参数,以使所述差异逐渐收敛,也可以采用对抗网络等方法进行训练。
[0131]
s20:当训练好第二识别模型后,冻结(freez)所述编码模块与所述基于串行注意力的序列解码器的网络参数,即冻结第二识别模型涉及的网络参数。
[0132]
通过冻结上述网络参数,这样在后续继续对第一识别模型进行训练时,共用的编码模块100的网络参数不再调整,可以实现对第一识别模型的解码模块200的训练。
[0133]
s30:利用所述第二识别模型基于知识蒸馏训练所述第一识别模型。
[0134]
本实施例中,采用知识蒸馏(knowledge distillation,kd,或称知识萃取)对第一识别模型进行训练。其中,知识蒸馏属于一种迁移学习方法,其基本原理是,先训练好一个教师(teacher)模型,然后将其输出结果作为学生(student)模型的目标,训练student模型。在本实施例中,第二识别模型为训练好的教师模型,第一识别模型作为学生模型。
[0135]
在本实施例中,当利用所述第二识别模型基于知识蒸馏训练所述第一识别模型时,可以基于字符位置预测信息进行蒸馏,这种情况下,如图2e所示的流程图,所述步骤s30可以包括下述步骤:
[0136]
s301:对第一识别模型生成的所述特征图进行知识蒸馏获得第一参数。其中,特征图反映了所述字符序列中的字符的位置信息,因此所蒸馏获得的第一参数也会与字符序列中的字符的位置信息有关。
[0137]
本实施例中,样本数据输入编码模块100,由第一识别模型的解码模块200会输出所预测的字符序列,并且,在预测字符序列过程中,第一识别模型的解码模块200的字符位置预测模块210会输出特征图,为了描述方便,字符位置预测模块210输出的特征图可以表示,对该特征图进行知识蒸馏获得第一参数。在本实施例中,特征图可以以矩阵形式表示,所蒸馏获得的第一参数与该特征图矩阵中的各元素,或部分元素的分布相关。
[0138]
在一些实施例中,所蒸馏得到的第一参数可以是与特征图矩阵中的各元素的值的分布相关。在另一些实施例中,所蒸馏获得的第一参数可以是与该特征图矩阵中部分元素的值的分布相关,例如可以是在设定的某阈值范围内的值,又如在另一些实施例中,可以是对特征图矩阵采用池化方式取得的部分元素的值,该池化方式可以是最大值方式或均值方式,
[0139]
在一些实施例中,蒸馏得到的第一参数与这些元素的值相关,可以包括以下方式:第一参数可以直接为这些元素值,也可以是将这些元素值通过某系数加权计算后的值,例如是通过蒸馏过程中使用的温度值t进行加权计算后的值,也可以是特征图矩阵中的各元素进行归一化后的值,也可以是特征图矩阵中的各元素进行所述加权后归一化后的值。
[0140]
s302:对所述基于串行注意力的序列解码器所形成的注意力矩阵进行知识蒸馏获得第二参数。其中,如前描述,注意力矩阵也可以反映所预测字符序列中的字符的位置信息,因此所蒸馏获得的第二参数也会与字符序列中的字符的位置信息有关。
[0141]
本实施例中,当在步骤s301样本数据输入编码模块100后,由于第二识别模型与第一识别模型共用该编码模块100,因此也会由第二识别模型输出所预测的字符序列,并且,在预测字符序列过程中,基于第二识别模型在各个时间步进行字符预测时的各个注意力a
t,i
,可得到注意力矩阵m
attention
,对该注意力矩阵,采用步骤s301中同样的蒸馏方式,可以获得第二参数,不再赘述。
[0142]
s303:基于所述第一参数与第二参数之间的差异训练所述第一识别模型。
[0143]
在本实施例中,使用损失函数(或称为训练目标)l
model 1
描述所述第一参数与第二参数之间的差异时,可以描述为下述公式(4):
[0144]
l
model 1
=l
soft1
(p1,q1)
ꢀꢀꢀ
(4)。
[0145]
其中,l
soft1
为第一损失函数,p1为对第一识别模型的特征图蒸馏获得的第一参数,q1为对第二识别模型的注意力矩阵m
attention
蒸馏获得的第二参数。在本实施例中,第一参数第二参数v1i对应特征图的每个元素的值,z1i对应注意力矩阵m
attention
的每个元素的值,t是温度值,为0

1之间的数值,如取值为0.05、0.2、0.6等,softmax是归一化函数。
[0146]
在一些实施例中,当所述第一识别模型包含级联的多个基于并行的注意力模块时,这些基于并行的注意力模块会对特征图进行逐步的细化,此时,上述对第一特征图进行蒸馏获得第一参数时,可以替换为对某细化后的特征图进行蒸馏,例如,可以是对级联的多个基于并行的注意力模块中的第i个基于并行的注意力模块细化后的特征图进行蒸馏,本实施例中,是对最后一个,即第n个基于并行的注意力模块细化后的特征图进行蒸馏。
[0147]
在本实施例中,当利用所述第二识别模型基于知识蒸馏训练所述第一识别模型时,也可以进行字符内容预测信息的蒸馏,这种情况下,如图2f所示的流程图,所述步骤s30可以包括下述步骤:
[0148]
s311:对第一识别模型输出的字符序列进行知识蒸馏获得第三参数。
[0149]
在一些实施例中,所蒸馏得到的第三参数反映了字符内容分布(token distribution),可以是与字符序列对应的编码向量相关、也可以是对应各个编码向量的置信度值相关、也可以是序列在序列集中的概率分布等相关。
[0150]
在本实施例中,所述第三参数具体与所述第一识别模型输出的序列在序列集中的概率分布有关,例如,每个序列在序列集中的概率分布可以为该输出序列的logits值,logits是神经网络中进入softmax前的概率,反映了每个字符在整个字符集中的概率分布(probability distribution),通常logits对应全连接层的输出(该全连接层后连接softmax层)。
[0151]
s312:对所述第二识别模型输出的字符序列进行知识蒸馏获得第四参数。本步骤采用步骤s311中同样的蒸馏方式,可以获得第四参数,不再赘述。
[0152]
s313:基于所述第三参数与第四参数之间的差异训练所述第一识别模型。
[0153]
在本实施例中,使用损失函数(或称为训练目标)l
model 1
描述所述第三参数与第四参数之间的差异时,可以描述为下述公式(5):
[0154]
l
model 1
=l
soft2
(p2,q2)
ꢀꢀꢀ
(5)
[0155]
其中,l
soft2
是第二损失函数,p2为对第一识别模型的输出的字符序列蒸馏获得的第三参数,q2为对第二识别模型输出的字符序列蒸馏获得的第四参数。在本实施例中,第三参数第四参数v2i是第一识别模型的输出的每个序列在序列集中的概率分布,z2i是第二识别模型输出的每个序列在序列集中的概率分布,t是温度值,为0

1之间的数值,如取值为0.05、0.2、0.6等,softmax是归一化函数。
[0156]
在一些实施例中,也可结合上述步骤s301

s303的步骤、上述步骤s310

s313的步骤,对第一识别模型进行训练,也即结合上述公式(4)和公式(5)对第一识别模型进行训练,
此时,使用损失函数(或称为训练目标)l
model 1
描述所述训练时,可以描述为下述公式(6):
[0157]
l
model 1
=al
soft1
(p1,q1)+bl
soft2
(p2,q2)
ꢀꢀꢀ
(6)
[0158]
其中,上述a、b为加权系数。
[0159]
在另一些实施例中,还可结合样本数据对第一识别模型进行训练,所使用的损失函数(或称训练目标)可以是所述样本数据的标签(即真实结果)与的第一识别模型输出的序列(即预测结果)之间的差异,对此使用的损失函数l进行描述时,可以为下述公式(7):
[0160]
l=cl
model 1
+dl
hard1
(y,q3)
ꢀꢀꢀ
(7)
[0161]
其中,c、d为加权系数,y表示数据的标签的编码,q3是第一识别模型的输出结果对应的编码,l
model 1
可以是上述公式(4)、公式(5)或公式(6)示出的损失函数。
[0162]
在一些实施例中,当所述第一识别模型、第二识别模型还分别包括级联在所述编码模块前的图像校正模块时,也就是说,当第一识别模型、第二识别模型还包括共用的图像校正模块时,上述步骤s10训练第二识别模型还包括训练所述图像校正模块;上述步骤s20冻结所述网络参数还包括冻结所述图像校正模块的网络参数。在另一些实施例中,校正模块可以单独训练。
[0163]
【本技术实施例提供的一种模型的训练装置】
[0164]
本技术实施例还提供了一种模型的训练装置,该训练装置可以用于训练上述实施例中的第一识别模型,关于该训练装置的或其包括的各模块的处理细节,也可以参见与该训练装置分别对应的训练方法中的描述,或者参见发明内容中的描述,此处仅进行简述。如图3所示,所述训练装置500包括:
[0165]
训练模块510,用于训练第二识别模型,所述第二识别模型由级联的所述编码模块与基于串行注意力的序列解码器构成。具体的,该训练模块510可以用于执行上述的模型的训练方法中的步骤s10以及其中的各可选实施例。
[0166]
配置模块520,用于冻结所述编码模块与所述基于串行注意力的序列解码器的网络参数。具体的,该训练模块510可以用于执行上述的模型的训练方法中的步骤s20以及其中的各可选实施例。
[0167]
所述训练模块510还用于利用所述第二识别模型基于知识蒸馏训练所述第一识别模型。具体的,该训练模块510还可以用于执行上述的模型的训练方法中的步骤s30以及其中的各可选实施例。
[0168]
在一些实施例中,所述训练模块510具体用于:对所述特征图进行知识蒸馏获得第一参数;对所述基于串行注意力的序列解码器所形成的注意力矩阵进行知识蒸馏获得第二参数;基于所述第一参数与第二参数之间的差异训练所述第一识别模型。具体的,该训练模块510具体可以用于执行上述的模型的训练方法中的步骤s301

s303以及其中的各可选实施例。
[0169]
在一些实施例中,所述对所述特征图进行知识蒸馏获得第一参数具体包括:对利用所述基于并行的注意力模块获得更新的特征图进行知识蒸馏。
[0170]
在一些实施例中,获得的所述第一参数、所述第二参数与所述字符序列中的字符的位置信息有关。
[0171]
在一些实施例中,所述训练模块510具体用于:对所述第一识别模型输出的字符序列进行知识蒸馏获得第三参数;对所述第二识别模型输出的字符序列进行知识蒸馏获得第
四参数;基于所述第三参数与第四参数之间的差异训练所述第一识别模型。具体的,该训练模块510具体可以用于执行上述的模型的训练方法中的步骤s311

s313以及其中的各可选实施例。
[0172]
在一些实施例中,所述第三参数、所述第四参数与所述字符序列中的字符在字符集中的概率分布有关。
[0173]
在一些实施例中,所述训练模块510还用于基于样本数据训练所述第一识别模型。
[0174]
在一些实施例中,所述第一识别模型、第二识别模型还分别包括级联在所述编码模块前的图像校正模块;所述训练模块还用于训练所述图像校正模块;所述配置模块还用于冻结所述图像校正模块的网络参数。
[0175]
【本技术实施例提供的一种字符序列的识别方法】
[0176]
本技术实施例还提供了一种字符序列的识别方法,该方法利用上述第一识别模型对图像中的字符序列进行识别,如图4a所示的流程图,所述识别方法包括:
[0177]
s50:获取输入图像数据;
[0178]
s52:利用所述编码模块根据所述图像数据获得上下文特征;
[0179]
s54:利用所述字符位置预测模块根据所述上下文特征获得特征图,该特征图反映了所述字符序列中的字符的位置信息;
[0180]
s56:利用所述第一序列处理模块根据所述上下文特征和所述特征图获得所述字符序列。
[0181]
【本技术实施例提供的一种字符序列的识别装置】
[0182]
本技术实施例还提供了一种字符序列的识别装置,其利用上述第一识别模型对图像中的字符序列进行识别,如图4b所示,所述识别装置600包括:
[0183]
获取模块610,用于获取输入的数据;
[0184]
识别模块620,用于利用图1a中所述编码模块根据所述数据获得上下文特征、利用所述字符位置预测模块根据所述上下文特征获得特征图、以及利用所述第一序列处理模块根据所述上下文特征和所述特征图获得所述字符序列,所述特征图反映了所述字符序列中的字符的位置信息。
[0185]
图5为采用本技术实施例字符序列识别方案应用于对图像中的文字的识别的运行实验结果数据,其中,上方曲线是基于串行注意力序列解码器的文字识别的运行时间,下方曲线是本技术方案字符序列识别模型的文字识别的运行时间。可以看出:基于串行注意力序列解码器的计算复杂度随字符数增加而增加,运行效率低。本技术方案相对基于串行注意力序列解码器的文字识别,运行时间短,运行效率高,并且计算复杂度不随字符数增加而增加。
[0186]
另外,如下表中示出了本技术实施例与aster模型进行文字识别时的实验数据的比较:
[0187] 识别精确度模型大小aster模型87.357%28.7m本技术实施例的技术方案88.551%7.7m
[0188]
由表可以看出,本技术实施例的方案对文字识别的精度高于aster模型,并且由于不需要复杂的后处理,因此模型大小远远小于aster模型。
[0189]
图6是本技术实施例提供的一种计算设备700的结构性示意性图。该计算设备700包括:处理器710、存储器720。
[0190]
应理解,图6所示的计算设备700中还可包括通信接口,可以用于与其他设备之间进行通信。
[0191]
其中,该处理器710可以与存储器720连接。该存储器720可以用于存储该程序代码和数据。因此,该存储器720可以是处理器710内部的存储单元,也可以是与处理器710独立的外部存储单元,还可以是包括处理器710内部的存储单元和与处理器710独立的外部存储单元的部件。
[0192]
可选的,计算设备700还可以包括总线。其中,存储器720、通信接口可以通过总线与处理器710连接。总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
[0193]
应理解,在本技术实施例中,该处理器710可以采用中央处理单元(central processing unit,cpu)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器710采用一个或多个集成电路,用于执行相关程序,以实现本技术实施例所提供的技术方案。
[0194]
该存储器720可以包括只读存储器和随机存取存储器,并向处理器710提供指令和数据。处理器710的一部分还可以包括非易失性随机存取存储器。例如,处理器710还可以存储设备类型的信息。
[0195]
在计算设备700运行时,所述处理器710执行所述存储器720中的计算机执行指令执行上述方法的操作步骤。
[0196]
应理解,根据本技术实施例的计算设备700可以对应于执行根据本技术各实施例的方法中的相应主体,并且计算设备700中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
[0197]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0198]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0199]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0200]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0201]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0202]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0203]
如图7所示,本技术实施例还提供了一种服务器800,包括:处理器810,存储器820;其中,存储器820用于存储程序指令,程序指令当被处理器810执行时使得服务器执行上述方法实施例及可选实施例的操作步骤。对于处理器810的可选的实现方式,以及存储器820可选的实现方式,可参照上述计算设备的实施例中相关的描述,不再赘述。另外,在一些实施例中,服务器800还可包括通信接口和总线,对此,也可以参照上述计算设备的实施例中相关的描述,不再赘述。
[0204]
在一些实施例中,该服务器800可通过通信接口接收终端(如手机、平板、计算机、智能摄像头等)采集的图像数据,并执行上述方法实施例或可选的实施例的操作步骤,以识别出所述图像数据中的字符序列,该字符序列可以是文字,并且,还可以通过通信接口将识别出的文字数据传输给所述终端或其他可进行文字显示或语音播放的设备,以显示给用户,或通过扬声器播放所述文字对应的语音给用户。
[0205]
本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行本技术的方法,该方法包括上述各个实施例所描述的方案中的至少之一。
[0206]
本技术实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0207]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,
其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0208]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0209]
可以以一种或多种程序设计语言或其组合来编写用于执行本技术操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0210]
另外,说明书和权利要求书中的词语“第一、第二、第三等”或模块a、模块b、模块c等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
[0211]
在上述的描述中,所涉及的表示步骤的标号,如s301、s302
……
等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
[0212]
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置a和b的设备”不应局限为仅由部件a和b组成的设备。
[0213]
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
[0214]
注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,均属于本技术保护范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1