基于双通道的文本识别方法、装置、设备及存储介质与流程

未命名 08-13 阅读:87 评论:0


1.本技术涉及机器学习技术,尤其涉及一种基于双通道的文本识别方法、装置、设备及存储介质。


背景技术:

2.光学字符识别(optical character recognition,ocr),是指通过电子设备(例如扫描仪或者数码相机)获取载体(例如纸张或者屏幕)上的文本,再采用文本识别方法识别文本的过程。
3.主流的文本识别方法为基于卷积神经网络(convolutional neural networks,cnn)的长短期记忆网络(long short-term memory,lstm),即卷积递归神经网络(convolution recurrent neural network,crnn)。crnn的优点为可以直接使用序列标签学习,不受序列长度约束,包含参数少,以及内存要求小等;crnn的缺点为算法效果一般,泛化能力较差,以及对于生僻字、形近字、标点符号等识别不准确等。
4.另一种文本识别方法为基于变换(transformer)的文本识别,transformer的优点为位置关联操作不受限,建模能力强,通用性强,可扩展性强,以及能更好的进行并行运算等;transformer的缺点为局部信息获取不强,位置信息编码存在问题,以及顶层梯度消失等。
5.crnn和基于transformer的文本识别的识别文本准确率均无法满足使用要求,互补crnn和基于transformer的文本识别以提高识别文本的准确率是目前急需解决的问题。


技术实现要素:

6.本技术提供一种基于双通道的文本识别方法、装置、设备及存储介质,用以解决卷积神经网络和基于变换的文本识别的识别文本准确率均无法满足使用要求,互补卷积神经网络和基于变换的文本识别以提高识别文本的准确率的问题。
7.第一方面,本技术提供一种基于双通道的文本识别方法,包括:
8.获取双通道模型的长短期记忆网络通道输出的第一字符串,以及双通道模型的变换通道输出的第二字符串,第一字符串包括多个第一字符,以及每个第一字符对应的第一字符得分,第二字符串包括多个第二字符,以及每个第二字符对应的第二字符得分,字符得分用于指示字符的准确率;
9.获取差异字符的占比,差异字符是根据第一字符串和第二字符串中相同位置的字符是否相同确定的;
10.若差异字符的占比小于预设阈值,则逐一对比第一字符得分和对应的第二字符得分,将字符得分高的字符作为第三字符;
11.输出多个第三字符组成的第三字符串。
12.在一种可能的设计中,获取差异字符的占比,包括:
13.获取差异字符;
14.根据第一字符串和第二字符串,确定总字符数量;
15.根据总字符数量和差异字符的字符数量,确定差异字符的占比。
16.在一种可能的设计中,获取差异字符,包括:
17.若第一字符串中的第一目标字符与第二字符串中的第二目标字符不同,则将第一目标字符和第二目标字符作为差异字符,第一目标字符和第二目标字符在各自的字符串中位置相同。
18.在一种可能的设计中,获取差异字符的占比之前,还包括:
19.若第一字符的数量与第二字符的数量不同,则根据第一字符串和第二字符串,确定缺失字符的位置,缺失字符是根据第一字符的位置和相应的第二字符的位置是否相同确定的;
20.将缺失字符的位置对应的字符设置为空字符,并将空字符对应的字符得分设置为零。
21.在一种可能的设计中,该方法还包括:
22.若差异字符的占比不小于预设阈值,则根据多个第一字符得分和多个第二字符得分,确定第一字符串的第一字符平均得分,以及第二字符串的第二字符平均得分;
23.根据第一字符平均得分和第二字符平均得分,确定第三字符串,第三字符串为第一字符串和第二字符串中字符平均得分高的字符串。
24.在一种可能的设计中,获取双通道模型的长短期记忆网络通道输出的第一字符串,以及双通道模型的变换通道输出的第二字符串,包括:
25.处理预置的识别图片,得到第一特征序列;
26.将第一特征序列同时发送至长短期记忆网络通道和变换通道,得到长短期记忆网络通道输出的第一字符串,以及变换通道输出的第二字符串。
27.在一种可能的设计中,获取双通道模型的长短期记忆网络通道输出的第一字符串,以及双通道模型的变换通道输出的第二字符串之前,该方法还包括:
28.构建双通道模型,获取预设的双通道模型参数,并根据双通道模型参数处理预置的训练图片,得到第二特征序列,双通道模型包括长短期记忆网络通道和变换通道;
29.将第二特征序列同时发送至长短期记忆网络通道和变换通道,得到长短期记忆网络通道输出的归一化指数损失函数,以及变换通道输出的连续时序分类损失函数;
30.根据归一化指数损失函数和连续时序分类损失函数,确定联合损失函数;
31.根据联合损失函数调整双通道模型参数,以进行双通道模型的迭代训练,直到迭代次数达到预设的最大迭代次数。
32.第二方面,本技术提供一种基于双通道的文本识别装置,包括:
33.获取模块,用于获取双通道模型的长短期记忆网络通道输出的第一字符串,以及双通道模型的变换通道输出的第二字符串,第一字符串包括多个第一字符,以及每个第一字符对应的第一字符得分,第二字符串包括多个第二字符,以及每个第二字符对应的第二字符得分,字符得分用于指示字符的准确率;
34.获取模块,还用于获取差异字符的占比,差异字符是根据第一字符串和第二字符串中相同位置的字符是否相同确定的;
35.对比模块,用于若差异字符占比小于预设阈值,则逐一对比第一字符得分和对应
的第二字符得分,将字符得分高的字符作为第三字符;
36.输出模块,用于输出多个第三字符组成的第三字符串。
37.第三方面,本技术提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;
38.存储器存储计算机执行指令;
39.处理器执行存储器存储的计算机执行指令,以实现一种基于双通道的文本识别方法。
40.第四方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现一种基于双通道的文本识别方法。
41.第五方面,本技术提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时用于实现一种基于双通道的文本识别方法。
42.本技术提供的一种基于双通道的文本识别方法、装置、设备及存储介质,根据字符得分互补长短期记忆网络通道输出的第一字符串和变换通道输出的第二字符串,确定字符得分更高的第三字符串,实现了如下技术效果:互补卷积神经网络和基于变换的文本识别,提高了识别文本的准确率;通过字符得分指示字符的准确率,以便于第一字符和第二字符的对比,并确定第三字符;在第一字符的数量与第二字符的数量相同,且差异字符的占比小于预设阈值时,确定字符得分高的字符作为第三字符,提高了每个字符的字符得分,进而提高了识别文本的准确率。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本技术实施例提供的基于双通道的文本识别方法的系统架构示意图;
45.图2为本技术实施例提供的基于双通道的文本识别方法的应用场景框架图;
46.图3为本技术实施例提供的基于双通道的文本识别方法的流程示意图一;
47.图4为本技术实施例提供的基于双通道的文本识别方法的流程示意图二;
48.图5为本技术实施例提供的缺失字符补充的原理示意图一;
49.图6为本技术实施例提供的字符对比的原理示意图二;
50.图7为本技术实施例提供的基于双通道的文本识别方法的流程示意图三;
51.图8为本技术实施例提供的基于双通道的文本识别装置的结构示意图;
52.图9为本技术实施例提供的电子设备硬件的结构示意图。
53.附图标记:
54.11-载体;12-光学设备;13-服务器主机;
55.20-基于双通道的文本识别装置;21-获取模块;22-对比模块;23-输出模块;
56.30-电子设备;31-处理器;32-存储器;33-通信部件;34-总线。
具体实施方式
57.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
58.在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。
59.本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
60.需要说明的是,本技术实施例中的“在
……
时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本技术实施例对此不作具体限定。此外,本技术实施例提供的基于双通道的文本识别仅作为示例,基于双通道的文本识别还可以包括更多或更少的内容。
61.为了便于清楚描述本技术实施例的技术方案,以下,对本技术实施例中所涉及的部分术语和技术进行简单介绍:
62.卷积神经网络(convolutional neural networks,cnn):是指一类包含卷积计算且具有深度结构的前馈神经网络(feedforward neural networks),是深度学习(deep learning)的代表算法之一。
63.长短期记忆网络(long short-term memory,lstm):是指一种时间循环神经网络,是为了解决一般的循环神经网络(recurrent neural network,rnn)存在的长期依赖问题而专门设计出来的,所有的rnn都具有一种重复神经网络模块的链式形式。
64.变换(transformer):是指一个利用注意力机制来提高模型训练速度的模型。transformer可以说是完全基于自注意力机制的一个深度学习模型,因为它适用于并行化计算,和它本身模型的复杂程度导致它在精度和性能上都要高于之前流行的rnn循环神经网络。
65.归一化指数损失函数(softmax loss):是由softmax和交叉熵(cross-entropy loss)loss组合而成,在图像分类和分割任务中都被广泛使用。
66.连续时序分类损失函数(ctc loss):是一种解码方式,用来将激活函数的输出矩阵转换为序列。
67.特征序列(feature sequence):特征序列中的每一个特征向量是从特征图中从左向右排列的。
68.特征图(feature maps):是指一个二维图片。在输入层(input layer),灰度图片由一个特征图组成,彩色图片由三个特征图(红绿蓝)组成。
69.主流的文本识别方法为基于cnn的lstm,即crnn,另一种文本识别方法为基于transformer的文本识别。这两种文字识别方法均能识别图片上的文本,输出字符串。
70.在自建测试集上,测试发现crnn输出的字符串测试集准确率为95.6%,基于transformer的文本识别输出的字符串测试集准确率为96.4%。使用这两种文字识别方法输出的字符串,可能会出现一个或多个字符识别错误或识别缺失的情况;还可能会出现大多数字符识别错误,导致字符串不可用的情况。
71.在识别图片相同时,crnn输出的字符串的内容,与基于transformer的文本识别输出的字符串的内容大抵相同,并且,缺失的字符大抵也不在同一字符位置。因此,分别从crnn输出的字符串和基于transformer的文本识别输出的字符串中,获取相同位置准确度更高的字符,将这些字符组成新的字符串,并输出该字符串,可以提高识别文本的准确率。
72.基于此,本技术实施例提供一种基于双通道的文本识别方法、装置、设备及存储介质,可用于机器学习技术领域,旨在解决现有技术的如上技术问题。在本技术实施例中,根据字符得分互补长短期记忆网络通道输出的第一字符串和变换通道输出的第二字符串,确定字符得分更高的第三字符串,提高了识别文本的准确率。
73.图1为本技术实施例提供的基于双通道的文本识别方法的系统架构示意图。需要注意的是,图1所示仅为可以应用本技术实施例的系统架构的示例,以帮助本领域技术人员理解本技术的技术内容,但并不意味着本技术实施例不可以用于其他设备、系统、环境或场景。
74.如图1所示,该方法所在的系统架构包括载体11、光学设备12和服务器主机13。载体11上记载有文本,光学设备12将载体11上文本所在的区域导出为识别图片发送至服务器主机13,服务器主机13处理识别图片,识别并输出载体11上记载的文本。光学设备12通过各种方式获取载体11上记载的文本,例如扫描、拍摄或截屏等;光学设备12和服务器主机13之间可以包括各种连接类型,例如有线或无线通信链路等等。
75.在本技术实施例中,载体11可以是各种文本载体,包括但不限于纸张和屏幕等。纸张或屏幕上记载有文本,文本以字符串的形式展示。字符串由多个字符组成,字符的类型包括但不仅限于文字符、英文字符、数字字符和其他美国信息交换标准代码(american standard code for information interchange,ascⅱ)字符等。字符的字体、间距和顺序等字符的类型之外的参数,本实施例不进行限定。
76.光学设备12可以是各种光学字符识别设备,包括但不限于扫描仪、数码相机、个人电脑等。扫描仪通过扫描方式,或数码相机通过拍摄方式获取纸张上记载的文本,个人电脑通过截屏方式获取屏幕上记载的文本,之后将之导出为图片格式,发送给服务器主机13,图片格式包括但不限于jpg格式、png格式和img格式等。
77.服务器主机13可以是训练、运行双通道模型,输出字符串的服务器(仅为示例)。服务器可以获取识别图片,根据识别图片进行文本识别,并输出识别文本;还可以在数据库随机获取训练图片,根据训练图片进行双通道模型的训练,数据库可以搭载在本地服务器,也可以搭载在外部服务器上。
78.例如,纸张上记载有文本,通过扫描仪扫描纸张后,扫描到纸张上文本所在的区
域,并导出为img格式的识别图片,随后扫描仪将识别图片发送给服务器;服务器运行双通道模型以处理识别图片,输出字符串,字符串的内容即纸张上记载的文本的内容。
79.图2为本技术实施例提供的基于双通道的文本识别方法的应用场景框架图。如图2所示,光学字符识别设备(如光学设备12)获取文本载体(如载体11)上记载的文本,导出为img格式的识别图片,并将识别图片发送给服务器(如服务器主机13)。
80.服务器运行双通道模型,处理该识别图片,得到识别图片对应的第一特征序列,将第一特征序列发送至双通道模型的lstm通道,得到lstm通道输出的第一字符串cs
lstm
;同时将特征序列发送至双通道模型的transformer通道,得到transformer通道输出的第二字符串cs
tr

81.第一字符串cs
lstm
包括j1个第一字符ch
lstm
,以及每个第一字符ch
lstm
对应的字符得分fr
lstm
,第i个第一字符ch
lstm-i
对应的第i个第一字符得分为fr
lstm-i
;第二字符串cs
tr
包括j2个第二字符ch
tr
,以及每个第二字符ch
tr
对应的字符得分fr
tr
,第i个第二字符ch
tr-i
对应的第i个第二字符得分为fr
tr-i
;其中,i、j1和j2均为正整数,i≤j1,i≤j2。
82.或者,服务器(如服务器主机13)从数据库随机获取训练图片,处理该训练图片,得到训练图片对应的第二特征序列,将第二特征序列发送至双通道模型的lstm通道,得到lstm通道输出的softmax loss;同时将特征序列发送至双通道模型的transformer通道,得到transformer通道输出的ctc loss。并根据softmax loss和ctc loss确定联合损失函数,调整卷积神经网络参数,以进而进行双通道模型的迭代训练,直到迭代次数达到预设的最大迭代次数。
83.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
84.图3为本技术实施例提供的基于双通道的文本识别方法的流程示意图一。如图3所示,该方法包括:
85.s101、获取双通道模型的长短期记忆网络通道输出的第一字符串,以及双通道模型的变换通道输出的第二字符串;
86.具体来说,双通道模型包括lstm通道和transformer通道,lstm通道是crnn文本识别时输出识别文本的通道,transformer通道是基于transformer的文本识别时输出识别文本的通道。由于识别图片相同,因此第一字符串cs
lstm
的内容与第二字符串cs
tr
的内容相同。但是由于识别准确率的原因,第一字符串cs
lstm
的内容与第二字符串cs
tr
的内容可能不相同,因此需要获取第i个第一字符ch
lstm-i
对应的字符得分fr
lstm-i
和第i个第二字符ch
tr-i
对应的字符得分fr
tr-i
,以互补第一字符串cs
lstm
和第二字符串cs
tr

87.s102、获取差异字符的占比;
88.具体来说,差异字符是根据第一字符串和第二字符串中相同位置的字符是否相同确定的。第一字符串cs
lstm
和第二字符串cs
tr
中,相同位置的第一字符ch
lstm
和第二字符ch
tr
不同时,将该第一字符ch
lstm
和第二字符ch
tr
作为差异字符,字符串中不同位置上均有可能存在一组差异字符。因此,可以理解的是,当j1不等于j2时,无法获取到准确的差异字符的占比。
89.s103、若差异字符的占比小于预设阈值,则逐一对比第一字符得分和对应的第二
字符得分,将字符得分高的字符作为第三字符;
90.具体来说,若差异字符的占比小于预设阈值,说明第一字符串和第二字符串内容偏差不大,两个字符串均可用,可以通过字符得分对比确定输出的字符。字符得分对比过程中,从第一个字符开始对比,直至所有的字符都完成对比。若j1=j2=j,则得到j个第三字符ch
out
,其中第i个字符得分对比的流程为:
91.首先,获取第i个第一字符ch
lstm-i
对应的第i个第一字符得分fr
lstm-i
,以及第i个第二字符ch
tr-i
对应的第i个第二字符得分fr
tr-i

92.其次,对比第i个第一字符得分fr
lstm-i
和第i个第二字符得分fr
tr-i

93.若fr
lstm-i
》fr
tr-i
,则将第i个第一字符ch
lstm-i
作为第i个第三字符ch
out-i

94.若fr
lstm-i
《fr
tr-i
,则将第i个第二字符ch
tr-i
作为第i个第三字符ch
out-i

95.若fr
lstm-i
=fr
tr-i
,则第i个第一字符ch
lstm-i
和第i个第二字符ch
tr-i
均可以作为第i个第三字符ch
out-i

96.s104、输出多个第三字符组成的第三字符串;
97.具体来说,字符得分对比完成后,得到顺序排列的j个第三字符ch
out
:ch
out-1
、ch
out-2
、...、ch
out-i
、...ch
out-j
,将j个第三字符ch
out
组成第三字符串cs
out
,输出第三字符串cs
out
。第三字符串cs
out
是由字符得分高的字符组成的,因此,第三字符串cs
out
的准确率大于第一字符串cs
lstm
的准确率和第二字符串cs
tr
的准确率。
98.本实施例提供的一种基于双通道的文本识别方法,根据字符得分互补长短期记忆网络通道输出的第一字符串和变换通道输出的第二字符串,确定字符得分更高的第三字符串,实现了如下技术效果:互补卷积神经网络和基于变换的文本识别,提高了识别文本的准确率;通过字符得分指示字符的准确率,以便于第一字符和第二字符的对比,并确定第三字符;在第一字符的数量与第二字符的数量相同,且差异字符的占比小于预设阈值时,确定字符得分高的字符作为第三字符,提高了每个字符的字符得分,进而提高了识别文本的准确率。
99.图4为本技术实施例提供的基于双通道的文本识别方法的流程示意图二。如图4所示,本实施例在图3实施例的基础上,对一种基于双通道的文本识别方法进行详细说明,本实施例提供的一种基于双通道的文本识别方法,包括:
100.s201、处理预置的识别图片,得到第一特征序列;
101.具体来说,获取光学字符识别设备发送的识别图片,该识别图片是光学字符识别设备处理文本载体上的识别文本后导出的。将识别图片统一尺寸,并将识别图片加载到网络的网络层执行卷积操作、池化操作和批归一化操作等操作,以不断地进行特征提起,得到第一特征序列。
102.s202、将第一特征序列同时发送至长短期记忆网络通道和变换通道,得到长短期记忆网络通道输出的第一字符串,以及变换通道输出的第二字符串;
103.具体来说,将第一特征序列发送至lstm通道,lstm通道输出第一字符串cs
lstm
;同时将第一特征序列发送至transformer通道,transformer通道输出的第二字符串cs
tr

104.第一字符串cs
lstm
包括j1个第一字符ch
lstm
,以及每个第一字符ch
lstm
对应的字符得分fr
lstm
,第i个第一字符ch
lstm-i
对应的第i个第一字符得分为fr
lstm-i
;第二字符串cs
tr
包括j2个第二字符ch
tr
,以及每个第二字符ch
tr
对应的字符得分fr
tr
,第i个第二字符ch
tr-i
对应的
第i个第二字符得分为fr
tr-i

105.s203、判断第一字符的数量与第二字符的数量是否相同;
106.若否,说明存在缺失字符,需要在缺失字符的位置填充空字符,因此执行s204;
107.若是,说明不存在缺失字符,可以直接根据字符得分确定第三字符,因此执行s206。
108.s204、根据第一字符串和第二字符串,确定缺失字符的位置;
109.具体来说,若j1≠j2,则无法获取到准确的差异字符的占比。需要确定缺失字符的位置,并在缺失字符的位置填充字符,使j1=j2=j,以获取准确的差异字符的占比。
110.缺失字符是根据第一字符的位置和相应的第二字符的位置是否相同确定的。通常情况下,通过编程语言确定两个字符串中的缺失字符,主流的编程语言均可执行此操作。
111.s205、将缺失字符的位置对应的字符设置为空字符,并将空字符对应的字符得分设置为零;
112.具体来说,确定了缺失字符的位置后,将缺失字符的位置对应的字符设置为空字符,确保了j1=j2。同时,将空字符对应的字符得分设置为零,这是因为空字符肯定不是识别文本中的内容,若设置为零之外的数值,会影响第三字符串的准确率。
113.下面将通过一个例子对本实施例进行解释。
114.图5为本技术实施例提供的缺失字符补充的原理示意图一。如图5所示:
115.第一字符串cs
lstm
的内容为

文字别’;
116.ch
lstm-1


文’,fr
lstm-1


0.8’;
117.ch
lstm-2


字’,fr
lstm-2


0.9’;
118.ch
lstm-3


别’,fr
lstm-3


0.9’;
119.第二字符串cs
tr
的内容为

文字识别’;
120.ch
tr-1


文’,fr
tr-1i


0.9’;
121.ch
tr-2


字’,fr
tr-2


0.8’;
122.ch
tr-3


识’,fr
tr-3


0.9’;
123.ch
tr-4


别’,fr
tr-4


0.9’;
124.使用python中diff库判断出ch
lstm-2
和ch
lstm-3
中间缺失字符,故在ch
lstm-2
和ch
lstm-3
之间插入第一字符串的第一个缺失字符ch
lstm-la1
,将ch
lstm-la1
设置为

null’,并将ch
lstm-la1
对应的第一字符串的第一个缺失字符得分fr
lstm-la1
设置为
‘0’

125.设置完成后,第一字符串cs
lstm
的内容变更为

文字_别’126.ch
lstm-1


文’,fr
lstm-1


0.8’;
127.ch
lstm-2


字’,fr
lstm-2


0.9’;
128.ch
lstm-la1


null’,fr
lstm-la1

‘0’

129.ch
lstm-3


别’,fr
lstm-3


0.9’。
130.s206、判断第一字符串中的第一目标字符与第二字符串中的第二目标字符是否相同;
131.若是,说明第一目标字符和第二目标字符不是差异字符,将下一个第一字符作为第一目标字符,并将下一个第二字符作为第二目标字符,即执行s208;
132.若否,说明第一目标字符和第二目标字符是差异字符,则执行s207;
133.s207、将第一目标字符和第二目标字符作为差异字符;
134.具体来说,第一目标字符和第二目标字符在各自的字符串中位置相同。因此,将第i个第一字符ch
lstm-i
作为第一目标字符,并将第i个第二字符ch
tr-i
作为作为第二目标字符,判断ch
lstm-i
和ch
tr-i
是否相同;若相同,不将ch
lstm-i
和ch
tr-i
作为差异字符;若不同,将ch
lstm-i
作为差异字符ch
dlstm-i
,并将ch
tr-i
作为差异字符ch
dtr-i

135.s208、更换目标字符,直到所有位置的字符均完成对比;
136.具体来说,首先将第一个第一字符作为第一目标字符,并将第一个第二字符作为第二目标字符,进行目标字符的对比;对比完成后,将下一个第一字符作为第一目标字符,并将下一个第二字符作为第二目标字符,直到所有第一字符均作为过第一目标字符,且所有第二字符均作为过第二目标字符。
137.s209、根据第一字符串和第二字符串,确定总字符数量;
138.具体来说,从i=1开始判断,直到i=j为止,得到了k个差异字符chd,其中,k为偶数,k
min
=0,k
max
=2j。
139.s210、根据总字符数量和差异字符的字符数量,确定差异字符的占比;
140.具体来说,第一字符串cs
lstm
的第一字符ch
lstm
的数量为j1=j,第二字符串cs
tr
的第二字符ch
tr
的数量为j2=j,因此总字符数量为2j。
141.差异字符chd的字符数量为k,差异字符占比
142.pid=j/k*100%。
143.当k
min
=0时,差异字符占比pid=0;当k
max
=2j时,差异字符占比为pid=1。
144.s211、判断差异字符的占比是否小于预设阈值;
145.若是,则通过逐一对比第一字符得分和对应的第二字符得分,确定第三字符,即执行s212;
146.若否,则通过对比第一字符平均得分和第二字符平均得分,确定第三字符串,即执行s213。
147.s212、逐一对比第一字符得分和对应的第二字符得分,将字符得分高的字符作为第三字符;
148.s212与s103的类似,本实施例不再赘述字符对比的原理。
149.下面将通过一个例子对本实施例进行解释。
150.图6为本技术实施例提供的字符对比的原理示意图二。如图6所示:
151.第一字符串cs
lstm
的内容为

文字炽别’152.ch
lstm-1


文’,fr
lstm-1


0.8’;
153.ch
lstm-2


字’,fr
lstm-2


0.9’;
154.ch
lstm-3


炽’,fr
lstm-3


0.4’;
155.ch
lstm-4


别’,fr
lstm-4


0.9’;
156.第二字符串cs
tr
的内容为

文字识别’;
157.ch
tr-1


文’,fr
tr-1


0.9’;
158.ch
tr-2


字’,fr
tr-2


0.8’;
159.ch
tr-3


识’,fr
tr-3


0.9’;
160.ch
tr-4


别’,fr
tr-4


0.9’。
161.设定预设阈值为50%。
162.第一字符串cs
lstm
和第二字符串cs
tr
中,差异字符chd的字符数量k=2,总字符数量为8,差异字符占比pid=j/k*100%=25%,小于预设阈值的50%。因此对比fr
lstm-i
和fr
tr-i
,将字符得分高的字符作为第三字符。
163.fr
lstm-1
《fr
tr-1
,因此将ch
tr-1
作为ch
out-1
,ch
out-1


文’;
164.fr
lstm-2
》fr
tr-2
,因此将ch
lstm-2
作为ch
out-2
,ch
out-2


字’;
165.fr
lstm-3
《fr
tr-3
,因此将ch
tr-3
作为ch
out-3
,ch
out-3


识’;
166.fr
lstm-4
=fr
tr-4
,因此将ch
lstm-4
作为ch
out-1
,ch
out-1


别’;
167.第三字符串cs
out
的内容为

文字识别’。
168.执行完s212之后,继续执行s215。
169.s213、根据多个第一字符得分和多个第二字符得分,确定第一字符串的第一字符平均得分,以及第二字符串的第二字符平均得分;
170.具体来说,差异字符的占比不小于预设阈值时,说明第一字符串和第二字符串内容偏差过大,准确率小的字符串可能不可用。因此通过对比两个字符串的字符平均得分,确定第三字符串。
171.s214、根据第一字符平均得分和第二字符平均得分,确定第三字符串;
172.具体来说,字符平均得分高的字符串更准确,因此直接将该字符串作为第三字符串。
173.下面将通过一个例子对本实施例进行解释。如图6所示:
174.第一字符串cs
lstm
的内容为

文字炽别’175.ch
lstm-1


文’,fr
lstm-1


0.8’;
176.ch
lstm-2


字’,fr
lstm-2


0.9’;
177.ch
lstm-3


炽’,fr
lstm-3


0.4’;
178.ch
lstm-4


别’,fr
lstm-4


0.9’;
179.第二字符串cs
tr
的内容为

文字识别’;
180.ch
tr-1


文’,fr
tr-1


0.9’;
181.ch
tr-2


字’,fr
tr-2


0.8’;
182.ch
tr-3


识’,fr
tr-3


0.9’;
183.ch
tr-4


别’,fr
tr-4


0.9’。
184.设定预设阈值为20%。
185.第一字符串cs
lstm
和第二字符串cs
tr
中,差异字符chd的字符数量k=2,总字符数量为8,差异字符占比pid=j/k*100%=25%,不小于预设阈值的20%。因此对比第一字符串cs
lstm
的第一字符平均得分fr
avlstm
和第二字符串cs
tr
的第二字符平均得分fr
avtr

[0186][0187]
fr
avlstm
《fr
avtr
,则将第二字符串cs
tr
作为第三字符串cs
out
,第三字符串cs
out
的内容为

文字识别’。
[0188]
s215、输出多个第三字符组成的第三字符串;
[0189]
具体来说,在自建测试集上,测试发现双通道模型输出的字符串测试集准确率为
97.2%,高于crnn输出的字符串95.6%的测试集准确率,以及基于transformer的文本识别输出的字符串96.4的测试集准确率。基于双通道的文本识别方法,可以有效的提升识别文本的准确率。
[0190]
在一种可能的设计中,进行文本识别之前,会对双通道模型进行迭代训练。
[0191]
图7为本技术实施例提供的基于双通道的文本识别方法的流程示意图三。如图7所示,该方法还包括:
[0192]
s301、构建双通道模型,获取预设的双通道模型参数,并根据双通道模型参数处理预置的训练图片,得到第二特征序列;
[0193]
具体来说,模型训练时,会将大量的训练数据送到神经网络中。训练过程是监督学习的过程,神经网络依赖于每次识别的结果计算损失函数,根据损失函数确定修正系数,并反向传递修正系数,以调整模型参数。为了尽可能的提升识别准确率,在训练过程中引入lstm通道和transformer通道组成的双通道模型联合训练并计算联合损失函数以优化模型参数。
[0194]
构建双通道模型后,初始化双通道模型参数,在卷积层加载预设的双通道模型参数,其中双通道模型参数包括学习率和最大迭代次数。
[0195]
s301中获取第二特征序列的原理与s201的类似,本实施例不再赘述。
[0196]
s302、将第二特征序列同时发送至长短期记忆网络通道和变换通道,得到长短期记忆网络通道输出的归一化指数损失函数,以及变换通道输出的连续时序分类损失函数;
[0197]
s302与s202的类似,本实施例不再赘述。
[0198]
s303、根据归一化指数损失函数和连续时序分类损失函数,确定联合损失函数;
[0199]
具体来说,lstm通道输出归一化指数损失函数l
sm
,transformer通道输出连续时序分类损失函数l
ctc
。将两个损失函数相加,得到联合损失函数l
sum
,即l
ctc
=l
sm
+l
ctc

[0200]
s304、根据联合损失函数调整双通道模型参数;
[0201]
具体来说,得到新的联合损失函数后,根据联合损失函数确定修正系数,以确定新的双通道模型参数。在卷积层、池化层和批归一化层反向调整双通道模型参数后,完成本次迭代训练,开始下一次迭代训练,直到迭代次数达到预设的最大迭代次数。
[0202]
本实施例提供的一种基于双通道的文本识别方法,根据字符得分互补长短期记忆网络通道输出的第一字符串和变换通道输出的第二字符串,确定字符得分更高的第三字符串,实现了如下技术效果:互补卷积神经网络和基于变换的文本识别,提高了识别文本的准确率;通过字符得分指示字符的准确率,以便于第一字符和第二字符的对比,并确定第三字符;在第一字符的数量与第二字符的数量相同时,且差异字符的占比小于预设阈值时,确定字符得分高的字符作为第三字符,提高了每个字符的字符得分,进而提高了识别文本的准确率;在第一字符的数量与第二字符的数量相同,且差异字符的占比不小于预设阈值时,确定字符平均得分高的自渡船作为第三字符串,避免了准确率过低的字符串不可用的情况;在第一字符的数量与第二字符的数量不同时,将缺失字符的位置对应的字符设置为空字符,并将空字符对应的字符得分设置为零,避免了字符缺失导致无法获取到准确差异字符的占比的问题;通过归一化指数损失函数和连续时序分类损失函数确定联合损失函数,以调整双通道模型参数,进行双通道模型的迭代训练,提高了双通道模型文本识别的准确率。
[0203]
本发明实施例可以根据上述方法示例对电子设备或主控设备进行功能模块的划
分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0204]
图8为本技术实施例提供的基于双通道的文本识别装置的结构示意图。如图8所示,本技术实施例提供的一种基于双通道的文本识别装置20,包括:获取模块21、对比模块22和输出模块23。
[0205]
获取模块21,用于获取双通道模型的长短期记忆网络通道输出的第一字符串,以及双通道模型的变换通道输出的第二字符串,第一字符串包括多个第一字符,以及每个第一字符对应的第一字符得分,第二字符串包括多个第二字符,以及每个第二字符对应的第二字符得分,字符得分用于指示字符的准确率;
[0206]
获取模块21,还用于获取差异字符的占比,差异字符是根据第一字符串和第二字符串中相同位置的字符是否相同确定的;
[0207]
对比模块22,用于若差异字符占比小于预设阈值,则逐一对比第一字符得分和对应的第二字符得分,将字符得分高的字符作为第三字符;
[0208]
输出模块23,用于输出多个第三字符组成的第三字符串。
[0209]
在一种可能的设计中,获取模块21包括:第一确定模块和第二确定模块;
[0210]
获取模块,用于获取差异字符;
[0211]
第一确定模块,用于根据第一字符串和第二字符串,确定总字符数量;
[0212]
第二确定模块,用于根据总字符数量和差异字符的字符数量,确定差异字符的占比。
[0213]
在一种可能的设计中,获取模块21,用于若第一字符串中的第一目标字符与第二字符串中的第二目标字符不同,则将第一目标字符和第二目标字符作为差异字符,第一目标字符和第二目标字符在各自的字符串中位置相同。
[0214]
在一种可能的设计中,基于双通道的文本识别装置20还包括:第三确定模块和设置模块;
[0215]
第二确定模块,用于若第一字符的数量与第二字符的数量不同,则根据第一字符串和第二字符串,确定缺失字符的位置,缺失字符是根据第一字符的位置和相应的第二字符的位置是否相同确定的;
[0216]
设置模块,用于将缺失字符的位置对应的字符设置为空字符,并将空字符对应的字符得分设置为零。
[0217]
在一种可能的设计中,第三确定模块,用于若差异字符的占比不小于预设阈值,则根据多个第一字符得分和多个第二字符得分,确定第一字符串的第一字符平均得分,以及第二字符串的第二字符平均得分;
[0218]
对比模块22,用于根据第一字符平均得分和第二字符平均得分,确定第三字符串,第三字符串为第一字符串和第二字符串中字符平均得分高的字符串。
[0219]
在一种可能的设计中,基于双通道的文本识别装置20还包括:处理模块和传输模块;
[0220]
处理模块,用于处理预置的识别图片,得到第一特征序列;
[0221]
传输模块,用于将第一特征序列同时发送至长短期记忆网络通道和变换通道,得到长短期记忆网络通道输出的第一字符串,以及变换通道输出的第二字符串。
[0222]
在一种可能的设计中,基于双通道的文本识别装置20还包括:第四确定模块和调整模块;
[0223]
处理模块,用于构建双通道模型,获取预设的双通道模型参数,并根据双通道模型参数处理预置的训练图片,得到第二特征序列,双通道模型包括长短期记忆网络通道和变换通道;
[0224]
传输模块,用于将第二特征序列同时发送至长短期记忆网络通道和变换通道,得到长短期记忆网络通道输出的归一化指数损失函数,以及变换通道输出的连续时序分类损失函数;
[0225]
第四确定模块,用于根据归一化指数损失函数和连续时序分类损失函数,确定联合损失函数;
[0226]
调整模块,用于根据联合损失函数调整双通道模型参数,以进行双通道模型的迭代训练,直到迭代次数达到预设的最大迭代次数。
[0227]
本实施例提供的一种基于双通道的文本识别装置,可执行上述实施例的一种基于双通道的文本识别方法,其实现原理和技术效果类似,本实施例此处不再赘述。
[0228]
在前述的一种基于双通道的文本识别方法的具体实现中,各模块可以被实现为处理器,处理器可以执行存储器中存储的计算机执行指令,使得处理器执行上述一种基于双通道的文本识别方法。
[0229]
图9为本技术实施例提供的电子设备硬件的结构示意图。如图9所示,该电子设备30包括:至少一个处理器31和存储器32。该电子设备30还包括通信部件33。其中,处理器31、存储器32以及通信部件33通过总线34连接。
[0230]
在具体实现过程中,至少一个处理器31执行存储器32存储的计算机执行指令,使得至少一个处理器31执行如上电子设备侧所执行的一种基于双通道的文本识别方法。
[0231]
处理器31的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
[0232]
在上述实施例中,应理解,处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0233]
存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器。
[0234]
总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
[0235]
上述针对电子设备以及主控设备所实现的功能,对本发明实施例提供的方案进行
了介绍。可以理解的是,电子设备或主控设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的技术方案的范围。
[0236]
本技术还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上一种基于双通道的文本识别方法。
[0237]
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0238]
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(application specific integrated circuits,简称:asic)中。当然,处理器和可读存储介质也可以作为分立组件存在于电子设备或主控设备中。
[0239]
本技术还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
[0240]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0241]
至此,已经结合附图所示的优选实施方式描述了本技术的技术方案,但是,本领域技术人员容易理解的是,本技术的保护范围显然不局限于这些具体实施方式,以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。

技术特征:
1.一种基于双通道的文本识别方法,其特征在于,所述方法,包括:获取双通道模型的长短期记忆网络通道输出的第一字符串,以及所述双通道模型的变换通道输出的第二字符串,所述第一字符串包括多个第一字符,以及每个第一字符对应的第一字符得分,所述第二字符串包括多个第二字符,以及每个第二字符对应的第二字符得分,所述字符得分用于指示字符的准确率;获取差异字符的占比,所述差异字符是根据所述第一字符串和所述第二字符串中相同位置的字符是否相同确定的;若所述差异字符的占比小于预设阈值,则逐一对比所述第一字符得分和对应的所述第二字符得分,将字符得分高的字符作为第三字符;输出多个第三字符组成的第三字符串。2.根据权利要求1所述的方法,其特征在于,所述获取差异字符的占比,包括:获取差异字符;根据所述第一字符串和所述第二字符串,确定总字符数量;根据所述总字符数量和所述差异字符的字符数量,确定所述差异字符的占比。3.根据权利要求2所述的方法,其特征在于,所述获取差异字符,包括:若所述第一字符串中的第一目标字符与所述第二字符串中的第二目标字符不同,则将所述第一目标字符和所述第二目标字符作为差异字符,所述第一目标字符和所述第二目标字符在各自的字符串中位置相同。4.根据权利要求1-3任一项所述的方法,其特征在于,所述获取差异字符的占比之前,还包括:若所述第一字符的数量与所述第二字符的数量不同,则根据所述第一字符串和所述第二字符串,确定缺失字符的位置,所述缺失字符是根据所述第一字符的位置和相应的所述第二字符的位置是否相同确定的;将所述缺失字符的位置对应的字符设置为空字符,并将所述空字符对应的字符得分设置为零。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若所述差异字符的占比不小于所述预设阈值,则根据多个第一字符得分和多个第二字符得分,确定第一字符串的第一字符平均得分,以及第二字符串的第二字符平均得分;根据所述第一字符平均得分和所述第二字符平均得分,确定第三字符串,所述第三字符串为所述第一字符串和第二字符串中字符平均得分高的字符串。6.根据权利要求1所述的方法,其特征在于,所述获取双通道模型的长短期记忆网络通道输出的第一字符串,以及所述双通道模型的变换通道输出的第二字符串,包括:处理预置的识别图片,得到第一特征序列;将所述第一特征序列同时发送至所述长短期记忆网络通道和所述变换通道,得到所述长短期记忆网络通道输出的第一字符串,以及所述变换通道输出的第二字符串。7.根据权利要求1所述的方法,其特征在于,所述获取双通道模型的长短期记忆网络通道输出的第一字符串,以及所述双通道模型的变换通道输出的第二字符串之前,所述方法还包括:构建双通道模型,获取预设的双通道模型参数,并根据所述双通道模型参数处理预置
的训练图片,得到第二特征序列,所述双通道模型包括所述长短期记忆网络通道和所述变换通道;将所述第二特征序列同时发送至所述长短期记忆网络通道和所述变换通道,得到所述长短期记忆网络通道输出的归一化指数损失函数,以及所述变换通道输出的连续时序分类损失函数;根据所述归一化指数损失函数和所述连续时序分类损失函数,确定联合损失函数;根据所述联合损失函数调整所述双通道模型参数,以进行双通道模型的迭代训练,直到迭代次数达到预设的最大迭代次数。8.一种基于双通道的文本识别装置,其特征在于,包括:获取模块,用于获取双通道模型的长短期记忆网络通道输出的第一字符串,以及所述双通道模型的变换通道输出的第二字符串,所述第一字符串包括多个第一字符,以及每个第一字符对应的第一字符得分,所述第二字符串包括多个第二字符,以及每个第二字符对应的第二字符得分,所述字符得分用于指示字符的准确率;获取模块,还用于获取差异字符的占比,所述差异字符是根据所述第一字符串和所述第二字符串中相同位置的字符是否相同确定的;对比模块,用于若所述差异字符占比小于预设阈值,则逐一对比所述第一字符得分和对应的所述第二字符得分,将字符得分高的字符作为第三字符;输出模块,用于输出多个第三字符组成的第三字符串。9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7任一项所述的一种基于双通道的文本识别方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的一种基于双通道的文本识别方法。

技术总结
本申请提供一种基于双通道的文本识别方法、装置、设备及存储介质,涉及机器学习技术领域。该方法包括:获取双通道模型的长短期记忆网络通道输出的第一字符串,以及双通道模型的变换通道输出的第二字符串;获取差异字符的占比;若差异字符的占比小于预设阈值,则逐一对比第一字符得分和对应的第二字符得分,将字符得分高的字符作为第三字符;输出多个第三字符组成的第三字符串。本申请的方法,根据字符得分互补长短期记忆网络通道输出的第一字符串和变换通道输出的第二字符串,确定字符得分更高的第三字符串,提高了识别文本的准确率。提高了识别文本的准确率。提高了识别文本的准确率。


技术研发人员:李研 何非 蒋维 厉智 孙玉刚 刘梦雅
受保护的技术使用者:联通数字科技有限公司 联通物联网有限责任公司
技术研发日:2023.05.11
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐