一种文本识别方法、装置、设备和存储介质与流程
未命名
10-19
阅读:123
评论:0
1.本技术涉及图像处理技术领域,尤其涉及一种文本识别方法、装置、设备和存储介质。
背景技术:
2.目前,文本识别技术广泛应用于拍照搜题、智能批改和文字自动录入等。文本识别的主要目的是识别文本行的具体内容,包括打印体文字识别和手写体文字识别等。其中,数学算式识别作为文本识别的一个分支,是智能批改中的重要环节,识别结果精准与否直接影响到批改结果是否准确。义务教育阶段的数学题中,包含大量的四则运算、比大小等算式题,相较于整数算式题来说,分数算式题中的分数因具有明显的上下结构,对分数算式题的识别往往成为数学算式识别的难点,也就使得现有识别算法对分数算式题的识别效果较差。
技术实现要素:
3.为了解决上述技术问题,本技术提供了一种文本识别方法、装置、设备和存储介质,能够准确的识别出图像中的文本,且识别效果较好。
4.根据本技术的一方面,提供了一种文本识别方法,包括:
5.获取待识别图像,其中,所述待识别图像包括目标文本;
6.将所述待识别图像输入预先训练好的文本识别模型中,其中,所述文本识别模型包括特征提取模块和维度变换模块;
7.通过所述特征提取模块对所述待识别图像进行特征提取,生成二维特征图,其中,所述二维特征图中的第一特征图标记了第一部分字符的特征,第二特征图标记了第二部分字符的特征,所述第一部分字符和所述第二部分字符构成所述目标文本;
8.通过所述维度变换模块将所述第一特征图和所述第二特征图进行维度变换,生成一维第一特征向量;
9.根据所述第一特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果。
10.根据本技术的另一方面,提供了一种文本识别装置,包括:
11.获取单元,用于获取待识别图像,其中,所述待识别图像包括目标文本;
12.输入单元,用于将所述待识别图像输入预先训练好的文本识别模型中,其中,所述文本识别模型包括特征提取模块和维度变换模块;
13.提取单元,用于通过所述特征提取模块对所述待识别图像进行特征提取,生成二维特征图,其中,所述二维特征图中的第一特征图标记了第一部分字符的特征,第二特征图标记了第二部分字符的特征,所述第一部分字符和所述第二部分字符构成所述目标文本;
14.变换单元,用于通过所述维度变换模块将所述第一特征图和所述第二特征图进行维度变换,生成一维第一特征向量;
15.识别单元,用于根据所述第一特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果。
16.根据本技术的另一方面,提供了一种电子设备,所述电子设备包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据上述文本识别方法。
17.根据本技术的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行根据文本识别方法。
18.根据本技术的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述文本识别方法。
19.本技术实施例提供的技术方案与现有技术相比具有如下优点:
20.文本识别方法包括:获取待识别图像,其中,待识别图像包括目标文本;将待识别图像输入预先构建的文本识别模型,其中,文本识别模型包括特征提取模块和维度变换模块;通过特征提取模块对待识别图像进行特征提取,生成二维特征图,其中,二维特征图中的第一特征图标记了第一部分字符的特征,第二特征图标记了第二部分字符的特征,第一部分字符和第二部分字符构成目标文本;通过维度变换模块将第一特征图和第二特征图进行维度变换,生成一维第一特征向量;根据第一特征向量识别出目标文本,生成待识别图像的文本识别结果。本技术能够准确的识别出图像中的文本,且识别效果较好。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
22.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
23.图1为本技术实施例提供的文本识别模型训练方法流程图;
24.图2为本技术实施例提供的样本图像标注流程图;
25.图3为本技术实施例提供的维度变换流程图;
26.图4为本技术实施例提供的文本识别模型的结构示意图;
27.图5为本技术实施例提供的文本识别方法流程图;
28.图6为本技术实施例提供的文本识别装置的结构示意图;
29.图7为本技术实施例提供的电子设备的结构示意图。
具体实施方式
30.为了能够更清楚地理解本技术的上述目的、特征和优点,下面将参照附图更详细地描述本技术的实施例。虽然附图中显示了本技术的某些实施例,然而应当理解的是,本技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本技术。应当理解的是,本技术的附图及实施例仅用于示例性作用,并非用于限制本技术的保护范围。
31.应当理解,本技术的方法实施方式中记载的各个步骤可以按照不同的顺序执行,
和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本技术的范围在此方面不受限制。
32.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本技术中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
33.需要注意,本技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
34.本技术实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
35.近年来随着深度学习的兴起,出现了大量专用于文本识别的方法,其中适用于分数算式题识别的方法主要包括以下几类:第一类是基于卷积神经网络(convolutional neural networks,cnn)及联结时间分类算法(connectionist temporal classification,ctc)的文本识别方法,常见结构为cnn和ctc结合,该方法的优点是计算快速,计算量小,模型简单,缺点是无法捕捉特征间的序列信息。第二类是以卷积循环神经网络(convolutional recurrent neural network,crnn)为代表的深度学习方法,相较于第一类方法,该类方法的主要特点是引入了循环神经网络(recurrent neural network,rnn)来学习特征之间的时序关系,其典型结构为cnn、rnn和ctc结合,该类方法的特点是算法效率较高的同时还能很好地捕捉特征间的序列信息,但不足之处在于其对于分数这样具有上下结构的式子识别效果比较差。第三类是基于注意力(attention)机制的文本识别方法,它通过引入attention机制,能在处理序列特征时就可以很好地捕捉图像中的关键区域,如分数线,缺点在于模型结构复杂,且计算量大,对于字符数较多的式子识别速度慢。
36.目前,在分数算式识别领域,基于attention机制的识别算法要优于crnn结构的算法,但在智能批改场景下,除了分数算式外,还存在大量其他文本需要兼顾,如应用题中的中文长文本(字符长度大于15)、英文和拼音等。但基于attention机制的算法对这些文本的识别精度、效率均不如crnn结构的算法。实验表明,在字符长度超过9个字符后,attention机制的算法在耗时及精度方面均劣于crnn结构的算法。综上所述,attenion机制的算法适合结构复杂的简短文本,crnn适合结构简单的长文本,但是,在智能批改场景中,长文本占比较高,如应用题、选择题、填空题中都存在长文本,其次,智能批改对算法实时性要求较高,基于attention机制的识别算法和crnn结构的算法均无法满足智能批改业务的需求,且识别效果和精度也无法保证。
37.针对上述技术问题,本技术实施例提供了一种文本识别方法,通过对文本识别模型的结构和训练样本进行改进,使得本技术适用于智能批改场景中不同算式题的文本识别,且对于分数算式的识别效果也比较好,大幅提升了对分数算式的识别精度。具体通过下述一个或多个实施例进行详细说明。
38.具体的,文本识别方法可以由终端或服务器来执行。具体的,终端或服务器可以通过文本识别模型对待识别图像中的目标文本进行识别。文本识别模型训练方法的执行主体
和文本识别方法的执行主体可以相同,也可以不同。
39.例如,在一种应用场景中,服务器对文本识别模型进行训练。终端从服务器获取训练完成的文本识别模型,终端通过该训练完成的文本识别模型对待识别图像中的目标文本进行识别。该待识别图像可以是终端拍摄获得的。或者,该待识别图像是终端从其他设备中获取的。再或者,该待识别图像是终端对预设图像进行图像处理后得到的图像,该预设图像可以是终端拍摄获得的,或者该预设图像可以是终端从其他设备中获取的。此处,并不对其他设备做具体限定。
40.在另一种应用场景中,服务器对文本识别模型进行训练。进一步,服务器通过训练完成的文本识别模型对待识别图像中的目标文本进行识别。服务器获取待识别图像的方式可以类似于上述终端获取待识别图像的方式,此处不再赘述。
41.在又一种应用场景中,终端对文本识别模型进行训练。进一步,终端通过训练完成的文本识别模型对待识别图像中的目标文本进行识别。
42.可以理解的是,本技术实施例提供的文本识别模型训练方法、文本识别方法并不限于如上所述的几种可能场景。由于训练完成的文本识别模型可应用在文本识别方法中,因此,在介绍文本识别方法之前,下面可以先介绍一下文本识别模型训练方法。
43.下面以服务器训练文本识别模型为例,介绍一种文本识别模型训练方法,即文本识别模型的训练过程。可以理解的是,该文本识别模型训练方法同样适用于终端训练文本识别模型的场景中。
44.图1为本技术实施例提供的文本识别模型训练方法流程图,应用于服务器,具体包括如图1所示的如下步骤s110至s130:
45.s110、获取样本图像,并确定所述样本图像中第二字符的样本真实编码结果。
46.可理解的,获取多个样本图像作为文本识别模型的训练样本,样本图像可以是智能批改场景中的题目图像,题目图像具体可以是应用题、选择题和填空题的图像,例如中小学教辅中的各类试题、手写答案等,每个样本图像都包括文本行,文本行可以是长文本或者短文本,文本行中包括多个文本,每个文本包括至少一个第二字符,文本可以是分数、文字、字母和运算符号等,例如分数就包括分子、分母等多个第二字符。获取到样本图像后,对每个样本图像进行标注,得到样本图像中所有第二字符的样本真实编码结果,也就是进行模型训练前的数据准备,以将样本真实编码结果作为标签。
47.可选的,上述确定所述样本图像中第二字符的样本真实编码结果,具体可以通过如下步骤实现:
48.按照预设格式对所述样本图像中的第二字符进行标注,生成标注结果;根据预设转换规则生成所述标注结果对应的转换样本结果;基于第二预设字表确定所述转换样本结果对应的字符串识别样本结果;根据第一预设字表对所述字符串识别样本结果进行编码,生成所述第二字符的样本真实编码结果。
49.其中,所述标注结果包括分数线标识、第一部分样本字符和第二部分样本字符。
50.可理解的,分数是上下结构的二维序列文本,除分数外的其他文本均是一维序列文本,因此对分数算式进行文本行转录,对于除分数之外的其余文本按照常规数据准备进行处理即可,常规数据准备的具体方法在此不作限定。
51.目前,在数据准备方面,常用的转录规则是基于latex格式进行转录,如分数1/2会
被转录为\frac{1}{2},作为标签送入模型训练,但是该种转录会存在两个问题:1)转录出的字符数较多,除了分子分母外还增加了\frac等字符,进而导致标注成本增加,同时,字符数较多对模型训练以及预测也是负担,导致模型训练时间增加;2)未考虑模型结构和识别算法的机制。
52.可理解的,针对上述技术问题,本技术提供了一种适用于分数算式的转录规则,具体的,按照优化后的预设格式对第二字符进行标注,得到标注结果,例如,上述示例中的分数1/2被转录为{1}/{2},{1}/{2}即为标注结果,该种转录格式有效减少了转录出的字符数量,其中,{1}为第一部分样本字符,/为分数线标识,{2}为第二部分样本字符,三者组合起来为完整的文本1/2,1、/和2都是样本图像中的第二字符。随后,设置转换规则并编写脚本以对标注结果进行转换,生成对应的转换样本结果,转换样本结果是在标注结果的基础上,为每个第二字符添加方向标识,以区分分数中的分母和分子。完成转换后,需要构建第二预设字表,除分数外的其他文本采用现有构建方法即可,在此不作赘述,另外,在构建第二预设字表的过程中,选取二十个特殊字符,用于标识分子上的0-9以及分母上的0-9,特殊字符可以是藏文、维吾尔文等,选取原则是不与第二预设字表中其他字符(中文、字母等)重复,本技术以藏文为例进行说明,例如作为分子的数字1(记为分子1)用藏文来标识,分子2用藏文来标识,作为分母的数字1用藏文来标识,分母2用藏文来标识,基于藏文和分子上的0-9以及分母上的0-9的关联关系构建第二预设字表,随后基于第二预设字表确定字符串识别样本结果,上述示例中分数1/2的字符串识别样本结果为之后,构建第一预设字表,第一预设字表用于标识字符串编码和第二预设字表中各字符的关联关系,例如标识分子1的藏文的字符串编码为10,标识分子2的藏文的字符串编码为11,标识分母1的藏文的字符串编码为21,标识分母2的藏文的字符串编码为22,完成第一预设字表的构建后,基于第一预设字表对字符串识别样本结果中的字符进行字符串编码,生成样本真实编码结果,上述实例中字符串识别样本结果的样本真实编码结果为10-22。可理解的是,基于其他字符构建第一预设字表和第二预设字表的方法,在此不作限定,可根据用户需求自行确定。
53.可理解的是,在标注过程中,标注结果可以是人工标注得到的,后续两次转换和编码等操作可以编写脚本自动执行,可有效减少人工标注的复杂度,降低标注错误率和标注成本。
54.可选的,上述根据预设转换规则生成所述标注结果对应的转换样本结果,具体可以通过如下步骤实现:
55.基于所述分数线标识,确定所述第一部分样本字符对应的第一方向标识和所述第二部分样本字符对应的第二方向标识;将所述第一部分样本字符和所述第一方向标识组合为第一整体,将所述第二部分样本字符和所述第二方向标识组合为第二整体;将所述第一整体和所述第二整体进行拼接,生成所述标注结果对应的转换样本结果。
56.可理解的,识别标注结果中的分数线标识,基于分数线标识确定第一部分样本字符对应的第一方向标识和第二部分样本字符对应的第二方向标识,也就是基于分数线标识确定出第一部分样本字符和第二部分样本字符在同一个分数中是分子还是分母,例如,若
第一部分样本字符在分数线标识前,则将第一部分样本字符定义为分子上的字符,并给第一部分样本字符中的每个第二字符加上第一方向标识,第一方向标识代表了分子;若第二部分样本字符在分数线标识后,则将第二部分样本字符定义为分母上的字符,并给第二部分样本字符中的每个第二字符加上第二方向标识,第二方向标识代表了分母。在上述示例的基础上,标注结果{1}/{2}中,第一部分样本字符{1}在分数线标识/之前,说明第一部分样本字符{1}中的第二字符1为分子,为其确定第一方向标识
↑
;第二部分样本字符{2}在分数线标识/之后,说明第二部分样本字符{2}中的第二字符2为分母,为其确定第二方向标识
↓
,反之,还可以将分数线标识之前的第一部分样本字符作为分母,将分数线标识之后的第二部分样本字符作为分子,具体区分方式不作限定。随后,将第一部分样本字符中的每个第二字符和第一方向标识组合为第一整体,例如
↑
1,将第二部分样本字符中的每个第二字符和第二方向标识组合为第二整体,例如
↓
2。最后,将第一整体和第二整体进行拼接,生成标注结果对应的转换样本结果,例如标注结果{1}/{2}的转换样本结果为
↑1↓
2。
57.可理解的是,分子和分母各自包括至少一个第二字符,也就是分子和/或分母包括的字符数量可能会大于1,例如三十四分之十二(12/34),分子和分母各包括2个字符,该种情况下,在对标注结果进行转换时,对分子分母中所有字符的拆分采用上下、上下的交替方式,分子分母中各个字符依次交替拼接,也就是采用一个分子一个分母的交替拼接方式。
58.可理解的是,分数进一步还可以分类为真分数和假分数,假分数还存在带分数这种表现形式,例如一又三十四分之十二该种情况下,整数1在标注时可以不加代表第一部分样本字符和第二部分样本字符的花括号,在对标注结果进行转换时,整数1也可以不加代表方向标识的箭头。
59.示例性的,参见图2,图2为本技术实施例提供的样本图像标注流程图,以对样本图像中分数进行标注为例进行说明,1)标注:按照预设格式对分数进行标注,标注结果按照顺序包括第三部分样本字符、第一部分样本字符、分数线标识和第二部分样本字符,标注结果具体为1{12}/{34},其中,整数1是第三部分样本字符,/是分数线标识,{12}是第一部分样本字符,{34}是第二部分样本字符。2)第一次转换:根据预设转换规则生成标注结果1{12}/{34}对应的转换样本结果,具体的,整数1不添加箭头,在分子1和2前面加上
↑
,在分母3和4前面加上
↓
,分子分母交替拼接,以此类推,得到的转换样本结果为1
↑1↓3↑2↓
4。3)第二次转换:基于第二预设字表确定转换样本结果1
↑1↓3↑2↓
4对应的字符串识别样本结果,将一个箭头和一个数字看作一个整体,在第二预设字表中确定每个整体对应的字符并按顺序拼接,在上述示例的基础上,得到的字符串识别结果为1其中,代表了分子1(
↑
1),代表了分母3(
↓
3),代表了分子2(
↑
2),代表了分母4(
↓
4)。4)编码:根据第一预设字表对字符串识别样本结果1进行编码,生成分数的样本真实编码结果,在第一预设字表中确定每个字符串对应的编码,得到的样本真实编码结果为2-10-23-11-24,其中,编码2为整数1的字符串编码,10为的字符串编码,23为的字符串编码,11为的字符串编码,24为的字符串编码。
60.s120、将所述样本图像输入所述文本识别模型,通过所述特征提取模块提取所述
样本图像的特征,生成二维样本特征图;通过所述维度变换模块对所述二维样本特征图进行维度变换,生成一维第一样本特征向量;通过所述文本识别模型中的注意力模块构建所述第一样本特征向量的时序关系,生成一维第二样本特征向量。
61.其中,文本识别模型包括特征提取模块、维度变换模块、注意力模块和训练模块。
62.可理解的,在上述s110的基础上,完成样本图像的标注后,还可以对样本图像进行预处理,具体的,利用双线性插值法将包含用户手写字符的样本图像转化为预设维度的图像,得到处理后的样本图像,例如,预设维度可以是高为32、宽为512、通道数为3。将处理后的样本图像输入预先构建的文本识别模型,其中,文本识别模型包括特征提取模块、维度变换模块、注意力模块和训练模块。维度为32*512*3的处理后的样本图像经过特征提取模块后,输出维度为2*32*512的二维样本特征图。将二维样本特征图输入维度变换模块进行维度变换后,输出维度为1*64*512的一维第一样本特征向量。将第一样本特征向量输入注意力模块,以构建字符之间的时序关系,得到维度为1*64*256的一维第二样本特征向量。随后,将第二样本特征向量输入训练模块,训练模型用于基于第二样本特征向量和样本真实编码结果对文本识别模型进行训练。
63.其中,所述二维样本特征图包括第一样本特征图和第二样本特征图,所述第一样本特征包括多个第一样本特征值,所述第二样本特征图包括多个第二样本特征值。
64.可选的,对所述二维样本特征图进行维度变换,生成一维第一样本特征向量,具体可以通过如下步骤实现:
65.基于样本特征图中各特征值的排序,将所述多个第一样本特征值和所述第二样本特征值依次进行交替拼接,生成一维第一样本特征向量。
66.可理解的,每个样本特征图都包含多个有序排列的样本特征值,每个样本特征值都存在对应的序号,基于样本特征图中各特征值的排序,将多个第一样本特征值和多个第二样本特征值依次进行交替拼接,将二维特征图转换为一维第一样本特征向量,例如一个第一样本特征值拼接一个第二样本特征值,以此类推,直至完成所有样本特征值的拼接。
67.可理解的是,第一样本特征图是关于第一部分样本字符的特征,第二样本特征图是关于第二部分样本字符的特征,因此进行二维样本特征图的维度变换以得到的一维第一样本特征向量的转换过程,和进行标注结果的脚本转换以得到转换样本结果的标注过程是对应的,也就是将分数的上下两行文本转换为一行文本,第一样本特征向量是关于转换样本结果的特征向量。
68.示例性的,参见图3,图3为本技术实施例提供的维度变换流程图,图3示出了维度为2*4的二维样本特征图(2*4的特征图),也就是只显示了特征图的高和宽,下述以图3为例对维度变换过程进行说明,2*4的二维样本特征图可以看作由1*4的第一样本特征图(第一行深灰色背景)和1*4的第二样本特征图(第二行浅灰色背景)组成,图3中所示的特征图中的数字代表了特征值在特征图中的序号,其中,第一样本特征图中4个第一样本特征值的序号为0-4,第二样本特征图中4个第二样本特征值的序号为5-8。对第一样本特征图和第二样本特征图进行维度变换,得到维度为1*8的一维第一样本特征向量(1*8的特征图),其中,序号为1的第一样本特征值后面拼接的是序号为5的第二样本特征值,随后拼接的是序号为2的第一样本特征值,以此类推,基于特征值的序号,将第一样本特征值和第二样本特征值依次交替拼接,得到一维第一样本特征向量。
69.s130、根据所述第二样本特征向量和所述样本真实编码结果计算损失,并根据所述损失更新所述文本识别模型的网络参数。
70.可理解的,在上述s120的基础上,将第二样本特征向量和样本真实编码结果输入训练模块计算损失,并通过训练模块基于损失更新文本识别模型的网络参数。
71.可选的,上述s130中根据所述第二样本特征向量和所述样本真实编码结果计算损失,具体可以通过如下步骤实现:
72.基于所述第二样本特征向量得到的样本预测编码结果;根据所述样本预测编码结果和所述样本真实编码结果计算损失。
73.可理解的,基于第二样本特征向量预测字符串编码,得到样本预测编码结果,随后将样本预测编码结果和样本真实编码结果进行比对,以计算损失,计算损失的方法可以选择联结时间分类算法(ctc),具体方法不作限定,可以根据用户需求自行确定。
74.示例性的,参见图4,图4为本技术实施例提供的文本识别模型的结构示意图,文本识别模型结构方面采用cnn+rnn+ctc形式的结构,同时增加了对输出张量进行重组的操作。具体的,文本识别模型包括特征提取模块、维度变换模块、注意力模块和训练模块,其中,特征提取模块可以选用改进后的残差网络(resnet18),通过修改resnet18的池化层参数,使resnet18输出的特征图的维度为2*32*512,其中2为特征图的高(对应分数的上下结构),32为特征图的宽,512为特征图的通道数,输出特征图即为二维样本特征图,可理解的是,除分数外的其他字符也会分为两部分字符,也就是文字也会同分数一样从中间隔开,分别提取上部分字符的特征和下部分字符的特征。维度变换模块基于上述维度变换过程对二维样本特征图进行维度变换,2*32*512的二维样本特征图变换后的维度为1*64*512,记为一维第一样本特征向量,由此可知,针对二维样本特征图的上下交替变换方式就和针对标注结果的上下交替转换方式是对应的,使得文本识别模型在训练的过程中学习到的模式更加统一。注意力模块可以选用两层双向lstm模块,将变换后的特征向量(第一样本特征向量)送入注意力模块,以构建字符之间的时序关系,得到的特征向量即为一维第二样本特征向量,第二样本特征向量的维度为1*64*256。训练模块选取的目标函数是ctc损失函数,在文本识别模型训练的过程中,则将第二样本特征向量与样本真实编码结果(groundtruth)一同送入ctc损失函数中计算损失。
75.本技术提供的文本识别模型训练方法,在样本图像标注过程中,将文本分为上下两部分字符,并采用两部分字符上下交替转换的方式,在文本识别模型内部识别过程中,提取出二维特征图,并采用两个特征图上下交替变换的方式,以将标注过程和识别过程对应上,使得模型在训练过程中学习到的模式更加统一,训练得到的文本识别模型可以更好的适用分数识别场景,同时还能兼顾除分数之外其余文本识的别场景,且识别精度也比较高。
76.在上述实施例的基础上,图5为本技术实施例提供的文本识别方法流程图,下述实施例以应用于终端为例进行说明,具体包括如图5所示的如下步骤s510至s550:
77.s510、获取待识别图像。
78.其中,所述待识别图像包括目标文本。
79.可理解的,待识别图像可以是用户手写题目图像,待识别图像中包括至少一个目标文本,目标文本可能是文字、字母、数字等,数字可能是具有上下结构的分数形式,具体的,下述实施例以目标文本是分数为例进行说明。
80.s520、将所述待识别图像输入预先训练好的文本识别模型中。
81.其中,所述文本识别模型包括特征提取模块、维度变换模块和注意力模块。
82.可理解的,在s510的基础上,将待识别图像输入上述实施例训练好的文本识别模型中,在文本识别模型中进行识别过程。
83.s530、通过所述特征提取模块对所述待识别图像进行特征提取,生成二维特征图。
84.其中,所述二维特征图中的第一特征图标记了第一部分字符的特征,第二特征图标记了第二部分字符的特征,所述第一部分字符和所述第二部分字符构成所述目标文本。
85.可理解的,在上述s520的基础上,利用双线性插值法将待识别图像的维度转化为预设维度,待识别图像的维度为32*512*3。随后通过特征提取模块提取维度转化后的待识别图像中目标文本的特征,生成二维特征图,二维特征图的维度为2*32*512,其中,二维特征图包括第一特征图和第二特征图,第一特征图标记了目标文本上半部分的特征,目标文本上半部分记为第一部分字符,第二特征图标记了目标文本下半部分的特征,目标文本下半部分记为第二部分字符,第一部分字符和第二部分字符构成完整的目标文本,也就是将目标文本看作上下结构,分为上下两部分字符,提取每部分字符的特征,得到二维特征图。
86.s570、通过所述维度变换模块将所述第一特征图和所述第二特征图进行维度变换,生成一维第一特征向量。
87.其中,所述第一特征图包括多个第一特征值,所述第二特征图包括多个第二特征值。
88.可选的,上述s570中将所述第一特征图和所述第二特征图进行维度变换,生成一维第一特征向量,具体通过如下步骤实现:
89.将所述第一特征值和所述第二特征值进行拼接,生成一维第一特征向量。
90.可理解的,在上述s530的基础上,得到二维特征图后,通过维度变换模块将第一特征图包括的多个第一特征值和第二特征图包括的多个第二特征值进行维度变换,生成一维第一特征向量,第一特征向量的维度为1*64*512,具体变换过程参见上述文本识别模型训练时的变换过程,在此不作赘述。
91.s550、根据所述第一特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果。
92.可选的,上述s550具体可以通过如下步骤实现:
93.通过所述注意力模块构建所述第一特征向量的时序关系,生成一维第二特征向量,所述特征向量的维度包括高、宽和通道数;将所述第二特征向量的通道数扩展至预设长度,得到一维第三特征向量,其中,所述第一特征向量、所述第二特征向量以及所述第三特征向量具有相同的高和宽;根据所述第三特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果。
94.可理解的,文本识别模型还包括注意力模块,在上述s570的基础上,得到第一特征向量后,将第一特征向量输入注意力模块,通过注意力模块构建字符之间的时序关系,生成一维第二特征向量,第二特征向量的维度为1*64*256。可理解的是,二维特征图、第一特征向量以及第二特征向量各自的维度同模型训练过程中生成的二维样本特征图、第一样本特征向量以及第二样本特征向量的维度相同。
95.可理解的,文本识别模型还包括推理模块,在模型应用过程中,无需应用训练模
块,只需要应用特征提取模块、维度变换模块、注意力模块和推理模块即可,也就是用推理模块替代训练模块。或者,推理模块和文本识别模型相互独立,在模型应用过程中,无需应用训练模块,只需要应用特征提取模块、维度变换模块、以及注意力模块即可,也就是将待识别图像输入文本识别模型后,文本识别模型在其内部模块之间进行识别过程,并直接输出一维第二特征向量,随后通过推理模块基于第二特征向量,生成待识别图像的文本识别结果。
96.可理解的,每个特征向量的维度都包括高、宽和通道数,得到第二特征向量后,通过线性层将第二特征向量的通道数扩展至预设长度,宽度和高度不变,得到一维第三特征向量,第三特征向量的维度为1*64*map_len,其中预设长度为第一预设字表的长度,预设长度记为map_len。
97.可选的,上述根据所述第三特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果,具体可以通过如下步骤实现:
98.对所述第三特征向量进行解码,生成字符串编码结果;根据第一预设字表确定所述字符串编码结果对应的字符串识别结果;将所述字符串识别结果进行转换,生成所述待识别图像的文本识别结果。
99.可理解的,得到第三特征向量后,在map_len所在维度对第三特征向量进行归一化指数函数(softmax)操作。随后基于贪心搜索算法(greedy search)对softmax操作后的第三特征向量进行解码,生成字符串编码结果,例如2-10-23-11-24。完成解码后,根据第一预设字表对字符串编码结果继续进行解码,生成字符串识别结果,例如1
100.可选的,上述将所述字符串识别结果进行转换,生成所述待识别图像的文本识别结果,具体可以通过如下步骤实现:
101.基于第二预设字表确定所述字符串识别结果对应的转换结果;识别所述转换结果中的方向标识,并基于所述方向标识将所述转换结果中包括的多个第一字符进行组合,生成所述待识别图像的文本识别结果。
102.可理解的,生成字符串识别结果后,基于第二预设字表对字符串识别结果进行转换,生成转换结果,例如1
↑1↓3↑2↓
4。识别转换结果中的方向标识,包括代表分子的第一方向标识
↑
和代表分母的第二方向标识
↓
,并基于方向标识将转换结果包括的多个第一字符进行组合,生成待识别图像的文本识别结果,例如也就是基于每个第一字符前的方向标识以及在转换结果中的排序确定该第一字符是在分数中的位置,其中,多个第一字符是指1、1、3、2和4,转换结果中1
↑1↓3↑2↓
4,将一个方向标识和一个第一字符看作一个整体进行排序,整体
↓
3序号为3,
↓
代表了分母,也就是说第一字符3是分母中首个字符,整体
↓
4序号为5,
↓
代表了分母,也就是说第一字符4是分母中最后一个字符,由此可知,目标文本的分母为34。
103.可理解的是,推理过程和标注过程是相反的两个过程,推理时得到识别结果(分数)即可,无需再基于文本识别结果继续向前推理,得到标注结果。
104.本技术提供的文本识别方法,将待识别图像输入预先训练好的文本识别模型进行识别过程,将完整的目标文本看作上下结构,提取上下两部分字符的特征值组成二维特征图,在不影响除分数外其余文本的前提下,能够更好的适应分数的上下结构,提取出分子和
分母准确的特征。随后将二维特征图进行维度变换,交替拼接第一特征值和第二特征值,得到一维第一特征向量,完成二维特征到一维特征的变换,该种交替拼接方式,在可以区分出分子和分母的前提下,还能将被分为两部分的其余文本建立关联,以确保其余文本识别的精度,也就是属于同一个文本的上下两部分特征是相邻的。最后,基于第一特征向量进行和标注过程相反的前向推理过程,得到待识别图像的文本识别结果,适用于分数算式的智能批改场景,且不受文本长度以及文本类型的限制,能够准确的识别出图像中的文本,且文本识别效果较好。
105.图6为本技术实施例提供的文本识别装置的结构示意图。本技术实施例提供的文本识别装置可以执行文本识别方法实施例提供的处理流程,如图6所示,文本识别装置600包括获取单元610、输入单元620、提取单元630变换单元670和识别单元650,其中:
106.获取单元610,用于获取待识别图像,其中,所述待识别图像包括目标文本;
107.输入单元620,用于将所述待识别图像输入预先训练好的文本识别模型中,其中,所述文本识别模型包括特征提取模块和维度变换模块;
108.提取单元630,用于通过所述特征提取模块对所述待识别图像进行特征提取,生成二维特征图,其中,所述二维特征图中的第一特征图标记了第一部分字符的特征,第二特征图标记了第二部分字符的特征,所述第一部分字符和所述第二部分字符构成所述目标文本;
109.变换单元670,用于通过所述维度变换模块将所述第一特征图和所述第二特征图进行维度变换,生成一维第一特征向量;
110.识别单元650,用于根据所述第一特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果。
111.可选的,装置600中所述第一特征图包括第一特征值,所述第二特征图包括第二特征值。
112.可选的,变换单元670用于:
113.将所述第一特征值和所述第二特征值进行拼接,生成一维第一特征向量。
114.可选的,装置600中所述文本识别模型还包括注意力模块。
115.可选的,识别单元650用于:
116.通过所述注意力模块构建所述第一特征向量的时序关系,生成一维第二特征向量,所述特征向量的维度包括高、宽和通道数;
117.将所述第二特征向量的通道数扩展至预设长度,得到一维第三特征向量,其中,所述第一特征向量、所述第二特征向量以及所述第三特征向量具有相同的高和宽;
118.根据所述第三特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果。
119.可选的,识别单元650用于:
120.对所述第三特征向量进行解码,生成字符串编码结果;
121.根据第一预设字表确定所述字符串编码结果对应的字符串识别结果;
122.将所述字符串识别结果进行转换,生成所述待识别图像的文本识别结果。
123.可选的,识别单元650用于:
124.基于第二预设字表确定所述字符串识别结果对应的转换结果;
125.识别所述转换结果中的方向标识,并基于所述方向标识将所述转换结果中包括的多个第一字符进行组合,生成所述待识别图像的文本识别结果。
126.可选的,装置600还用于:
127.获取样本图像,并确定所述样本图像中第二字符的样本真实编码结果;
128.将所述样本图像输入所述文本识别模型,通过所述特征提取模块提取所述样本图像的特征,生成二维样本特征图;通过所述维度变换模块对所述二维样本特征图进行维度变换,生成一维第一样本特征向量;通过所述文本识别模型中的注意力模块构建所述第一样本特征向量的时序关系,生成一维第二样本特征向量;
129.根据所述第二样本特征向量和所述样本真实编码结果计算损失,并根据所述损失更新所述文本识别模型的网络参数。
130.可选的,装置600还用于:
131.按照预设格式对所述样本图像中的第二字符进行标注,生成标注结果;
132.根据预设转换规则生成所述标注结果对应的转换样本结果;
133.基于第二预设字表确定所述转换样本结果对应的字符串识别样本结果;
134.根据第一预设字表对所述字符串识别样本结果进行编码,生成所述第二字符的样本真实编码结果。
135.可选的,装置600中所述标注结果包括分数线标识、第一部分样本字符和第二部分样本字符。
136.可选的,装置600还用于:
137.基于所述分数线标识,确定所述第一部分样本字符对应的第一方向标识和所述第二部分样本字符对应的第二方向标识;
138.将所述第一部分样本字符和所述第一方向标识组合为第一整体,将所述第二部分样本字符和所述第二方向标识组合为第二整体;
139.将所述第一整体和所述第二整体进行拼接,生成所述标注结果对应的转换样本结果。
140.本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
141.本技术示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本技术实施例的方法。
142.本技术示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本技术实施例的方法。
143.参考图7,现将描述可以作为本技术的服务器或客户端的电子设备700的结构框图,其是可以应用于本技术的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述
的和/或者要求的本技术的实现。
144.如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
145.电子设备700中的多个部件连接至i/o接口705,包括:输入单元706、输出单元707、存储单元708以及通信单元709。输入单元706可以是能向电子设备700输入信息的任何类型的设备,输入单元706可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元707可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元704可以包括但不限于磁盘、光盘。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙tm设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。
146.计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理。例如,在一些实施例中,文本识别方法或文本识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到电子设备700上。在一些实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文本识别方法。
147.用于实施本技术的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
148.在本技术的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
149.如本技术使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光
盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
150.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
151.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
152.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
153.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种文本识别方法,其特征在于,包括:获取待识别图像,其中,所述待识别图像包括目标文本;将所述待识别图像输入预先训练好的文本识别模型中,其中,所述文本识别模型包括特征提取模块和维度变换模块;通过所述特征提取模块对所述待识别图像进行特征提取,生成二维特征图,其中,所述二维特征图中的第一特征图标记了第一部分字符的特征,第二特征图标记了第二部分字符的特征,所述第一部分字符和所述第二部分字符构成所述目标文本;通过所述维度变换模块将所述第一特征图和所述第二特征图进行维度变换,生成一维第一特征向量;根据所述第一特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果。2.根据权利要求1所述的方法,其特征在于,所述第一特征图包括第一特征值,所述第二特征图包括第二特征值,所述将所述第一特征图和所述第二特征图进行维度变换,生成一维第一特征向量,包括:将所述第一特征值和所述第二特征值进行拼接,生成一维第一特征向量。3.根据权利要求1所述的方法,其特征在于,所述文本识别模型还包括注意力模块,所述根据所述第一特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果,包括:通过所述注意力模块构建所述第一特征向量的时序关系,生成一维第二特征向量,所述特征向量的维度包括高、宽和通道数;将所述第二特征向量的通道数扩展至预设长度,得到一维第三特征向量,其中,所述第一特征向量、所述第二特征向量以及所述第三特征向量具有相同的高和宽;根据所述第三特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果。4.根据权利要求3所述的方法,其特征在于,所述根据所述第三特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果,包括:对所述第三特征向量进行解码,生成字符串编码结果;根据第一预设字表确定所述字符串编码结果对应的字符串识别结果;将所述字符串识别结果进行转换,生成所述待识别图像的文本识别结果。5.根据权利要求4所述的方法,其特征在于,所述将所述字符串识别结果进行转换,生成所述待识别图像的文本识别结果,包括:基于第二预设字表确定所述字符串识别结果对应的转换结果;识别所述转换结果中的方向标识,并基于所述方向标识将所述转换结果中包括的多个第一字符进行组合,生成所述待识别图像的文本识别结果。6.根据权利要求1所述的方法,其特征在于,所述文本识别模型的训练步骤包括:获取样本图像,并确定所述样本图像中第二字符的样本真实编码结果;将所述样本图像输入所述文本识别模型,通过所述特征提取模块提取所述样本图像的特征,生成二维样本特征图;通过所述维度变换模块对所述二维样本特征图进行维度变换,生成一维第一样本特征向量;通过所述文本识别模型中的注意力模块构建所述第一样本特征向量的时序关系,生成一维第二样本特征向量;根据所述第二样本特征向量和所述样本真实编码结果计算损失,并根据所述损失更新
所述文本识别模型的网络参数。7.根据权利要求6所述的方法,其特征在于,所述确定所述样本图像中第二字符的样本真实编码结果,包括:按照预设格式对所述样本图像中的第二字符进行标注,生成标注结果;根据预设转换规则生成所述标注结果对应的转换样本结果;基于第二预设字表确定所述转换样本结果对应的字符串识别样本结果;根据第一预设字表对所述字符串识别样本结果进行编码,生成所述第二字符的样本真实编码结果。8.根据权利要求7所述的方法,其特征在于,所述标注结果包括分数线标识、第一部分样本字符和第二部分样本字符,所述根据预设转换规则生成所述标注结果对应的转换样本结果,包括:基于所述分数线标识,确定所述第一部分样本字符对应的第一方向标识和所述第二部分样本字符对应的第二方向标识;将所述第一部分样本字符和所述第一方向标识组合为第一整体,将所述第二部分样本字符和所述第二方向标识组合为第二整体;将所述第一整体和所述第二整体进行拼接,生成所述标注结果对应的转换样本结果。9.一种文本识别装置,其特征在于,包括:获取单元,用于获取待识别图像,其中,所述待识别图像包括目标文本;输入单元,用于将所述待识别图像输入预先训练好的文本识别模型中,其中,所述文本识别模型包括特征提取模块和维度变换模块;提取单元,用于通过所述特征提取模块对所述待识别图像进行特征提取,生成二维特征图,其中,所述二维特征图中的第一特征图标记了第一部分字符的特征,第二特征图标记了第二部分字符的特征,所述第一部分字符和所述第二部分字符构成所述目标文本;变换单元,用于通过所述维度变换模块将所述第一特征图和所述第二特征图进行维度变换,生成一维第一特征向量;识别单元,用于根据所述第一特征向量识别出所述目标文本,生成所述待识别图像的文本识别结果。10.一种电子设备,其特征在于,所述电子设备包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1至8任一所述的文本识别方法。11.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1至8任一所述的文本识别方法。
技术总结
本申请涉及一种文本识别方法、装置、设备和存储介质,文本识别方法,包括获取待识别图像,其中,待识别图像包括目标文本;将待识别图像输入预先构建的文本识别模型,其中,文本识别模型包括特征提取模块和维度变换模块;通过特征提取模块对待识别图像进行特征提取,生成二维特征图,其中,二维特征图中的第一特征图标记了第一部分字符的特征,第二特征图标记了第二部分字符的特征,第一部分字符和第二部分字符构成目标文本;通过维度变换模块将第一特征图和第二特征图进行维度变换,生成一维第一特征向量;根据第一特征向量识别出目标文本,生成待识别图像的文本识别结果。本申请能够准确的识别出图像中的文本,且文本识别效果较好。好。好。
技术研发人员:王翔
受保护的技术使用者:深圳市星桐科技有限公司
技术研发日:2023.06.06
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
