掌桥专利:专业的专利平台
掌桥专利
首页

手写字符识别方法、装置、介质及电子设备

文献发布时间:2023-06-19 12:19:35


手写字符识别方法、装置、介质及电子设备

技术领域

本公开涉及计算机技术领域,具体地,涉及一种手写字符识别方法、装置、介质及电子设备。

背景技术

对手写字符进行识别的场景众多,在教育场景中例如包括试卷录入、作文批改等,通过对学生作答的手写字符进行识别,可以替代教师完成试卷录入、试卷批改等工作,另外还有票据录入、文档录入等场景,也经常需要对手写字符进行识别,对手写字符进行识别可以代替人工实现手写字符的自动处理流程。

然而相较于对印刷字符的识别,对手写字符进行识别的准确度通常更低,其中,手写字符存在较大的变化,每个人对同一个字符的书写样式都不同,笔画的长短、扭曲程度也不一致,字符之间存在较多的连笔,缺少笔画或增加笔画的情况也经常出现,这些问题都使得对手写字符进行识别的难度更高、准确度不足。

发明内容

本公开的目的是提供一种手写字符识别方法、装置、介质及电子设备,可以提高手写字符识别的准确度。

为了实现上述目的,第一方面,本公开提供一种手写字符识别方法,所述方法包括:

获取包含手写字符的原始字符图像;

将所述原始字符图像输入到图像校正模型中,得到所述图像校正模型输出的校正后的目标字符图像;

将所述目标字符图像输入到特征提取模型中,得到所述特征提取模型输出的目标特征图,其中,所述特征提取模型用于对所述目标字符图像的高度下采样第一预设倍数,并用于对所述目标字符图像的宽度下采样第二预设倍数,所述第一预设倍数与所述目标字符图像的高度相同,所述第二预设倍数小于所述第一预设倍数;

将所述目标特征图输入到字符识别模块中,得到所述字符识别模块输出的所述手写字符对应的识别字符。

可选地,所述特征提取模型为残差网络模型,所述残差网络模型由以下网络层依次连接构成:

第一卷积层、第一池化层、第一数量个第一残差块结构、第二卷积层、第二池化层、第二数量个第二残差块结构、第三卷积层、第三池化层、第三数量个第三残差块结构、第四卷积层、第四池化层、第四数量个第四残差块结构、第五卷积层、第五数量个第五残差块结构、第六卷积层、第七卷积层,所述第七卷积层用于输出所述目标特征图。

可选地,所述第一池化层用于对所述第一卷积层输出的特征图的宽度和高度均下采样第三预设倍数,所述第二池化层用于对所述第二卷积层输出的特征图的宽度和高度均下采样所述第三预设倍数,所述第三池化层用于对所述第三卷积层输出的特征图的高度下采样所述第三预设倍数,并对所述第三卷积层输出的特征图的宽度进行卷积填充第一预设值,所述第四池化层用于对所述第四卷积层输出的特征图的高度下采样所述第三预设倍数,并对所述第四卷积层输出的特征图的宽度进行卷积填充所述第一预设值,其中,所述第三预设倍数小于所述第二预设倍数。

可选地,所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层、所述第五卷积层的卷积核大小相同且卷积核数量各不相同,所述第六卷积层与所述第七卷积层的卷积核大小相同且卷积核数量相同;

其中,所述第六卷积层用于对位于所述第六卷积层上一层的所述第五残差块结构输出的特征图的高度下采样第四预设倍数,并用于对位于所述第六卷积层上一层的所述第五残差块结构输出的特征图的宽度进行卷积填充第二预设值,所述第七卷积层用于对所述第六卷积层输出的特征图的高度下采样所述第四预设倍数,其中,所述第四预设倍数小于所述第二预设倍数。

可选地,所述第一残差块结构、所述第二残差块结构、所述第三残差块结构、所述第四残差块结构、所述第五残差块结构的卷积核大小相同,

所述第一残差块结构、所述第二残差块结构、所述第三残差块结构的卷积核数量各不相同,所述第四残差块结构与所述第五残差块结构的卷积核数量相同。

可选地,所述目标字符图像的高度为64,所述第一预设倍数为64倍,所述第二预设倍数为4倍。

可选地,所述图像校正模型用于通过如下方式得到所述目标字符图像:

确定所述原始字符图像中、位于所述手写字符的上边缘和下边缘的指定数量个基准点;

根据所述指定数量个基准点进行样条变换,得到采样网格;

基于所述采样网格进行双线性插值采样,得到校正后的所述目标字符图像。

可选地,所述字符识别模块包括编码模块和解码模块;其中,所述编码模块包括双层双向长短期记忆网络,所述双层双向长短期记忆网络用于对所述目标特征图进行特征编码处理,得到序列特征;

所述解码模块包括链接时序分类模型和注意力机制模型,所述链接时序分类模型和所述注意力机制模型分别根据所述序列特征对所述手写字符进行识别,所述解码模块用于将所述链接时序分类模型输出的识别结果与所述注意力机制模型输出的识别结果进行加权融合,得到所述手写字符对应的识别字符。

可选地,所述手写字符为手写英文字符。

第二方面,本公开提供一种手写字符识别装置,所述装置包括:

获取模块,用于获取包含手写字符的原始字符图像;

第一获得模块,用于将所述原始字符图像输入到图像校正模型中,得到所述图像校正模型输出的校正后的目标字符图像;

第二获得模块,用于将所述目标字符图像输入到特征提取模型中,得到所述特征提取模型输出的目标特征图,其中,所述特征提取模型用于对所述目标字符图像的高度下采样第一预设倍数,并用于对所述目标字符图像的宽度下采样第二预设倍数,所述第一预设倍数与所述目标字符图像的高度相同,所述第二预设倍数小于所述第一预设倍数;

第三获得模块,用于将所述目标特征图输入到字符识别模块中,得到所述字符识别模块输出的所述手写字符对应的识别字符。

可选地,所述特征提取模型为残差网络模型,所述残差网络模型由以下网络层依次连接构成:

第一卷积层、第一池化层、第一数量个第一残差块结构、第二卷积层、第二池化层、第二数量个第二残差块结构、第三卷积层、第三池化层、第三数量个第三残差块结构、第四卷积层、第四池化层、第四数量个第四残差块结构、第五卷积层、第五数量个第五残差块结构、第六卷积层、第七卷积层,所述第七卷积层用于输出所述目标特征图。

可选地,所述第一池化层用于对所述第一卷积层输出的特征图的宽度和高度均下采样第三预设倍数,所述第二池化层用于对所述第二卷积层输出的特征图的宽度和高度均下采样所述第三预设倍数,所述第三池化层用于对所述第三卷积层输出的特征图的高度下采样所述第三预设倍数,并对所述第三卷积层输出的特征图的宽度进行卷积填充第一预设值,所述第四池化层用于对所述第四卷积层输出的特征图的高度下采样所述第三预设倍数,并对所述第四卷积层输出的特征图的宽度进行卷积填充所述第一预设值,其中,所述第三预设倍数小于所述第二预设倍数。

可选地,所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层、所述第五卷积层的卷积核大小相同且卷积核数量各不相同,所述第六卷积层与所述第七卷积层的卷积核大小相同且卷积核数量相同;

其中,所述第六卷积层用于对位于所述第六卷积层上一层的所述第五残差块结构输出的特征图的高度下采样第四预设倍数,并用于对位于所述第六卷积层上一层的所述第五残差块结构输出的特征图的宽度进行卷积填充第二预设值,所述第七卷积层用于对所述第六卷积层输出的特征图的高度下采样所述第四预设倍数,其中,所述第四预设倍数小于所述第二预设倍数。

可选地,所述第一残差块结构、所述第二残差块结构、所述第三残差块结构、所述第四残差块结构、所述第五残差块结构的卷积核大小相同,

所述第一残差块结构、所述第二残差块结构、所述第三残差块结构的卷积核数量各不相同,所述第四残差块结构与所述第五残差块结构的卷积核数量相同。

可选地,所述目标字符图像的高度为64,所述第一预设倍数为64倍,所述第二预设倍数为4倍。

可选地,所述图像校正模型用于通过如下模块得到所述目标字符图像:确定模块,用于确定所述原始字符图像中、位于所述手写字符的上边缘和下边缘的指定数量个基准点;变换模块,根据所述指定数量个基准点进行样条变换,得到采样网格;采样模块,用于基于所述采样网格进行双线性插值采样,得到校正后的所述目标字符图像。

可选地,所述字符识别模块包括编码模块和解码模块;其中,所述编码模块包括双层双向长短期记忆网络,所述双层双向长短期记忆网络用于对所述目标特征图进行特征编码处理,得到序列特征;

所述解码模块包括链接时序分类模型和注意力机制模型,所述链接时序分类模型和所述注意力机制模型分别根据所述序列特征对所述手写字符进行识别,所述解码模块用于将所述链接时序分类模型输出的识别结果与所述注意力机制模型输出的识别结果进行加权融合,得到所述手写字符对应的识别字符。

可选地,所述手写字符为手写英文字符。

第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面提供的所述方法的步骤。

第四方面,本公开提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面提供的所述方法的步骤。

通过上述技术方案,将包含手写字符的原始字符图像输入到图像校正模型中,得到图像校正模型输出的校正后的目标字符图像,可解决原始字符图像中手写字符文本行弯曲、变形等问题,提高字符识别的准确度。之后,将目标字符图像输入到特征提取模型中,得到特征提取模型输出的目标特征图,其中,特征提取模型用于对目标字符图像的高度下采样第一预设倍数,并用于对目标字符图像的宽度下采样第二预设倍数,第一预设倍数与目标字符图像的高度相同,第二预设倍数小于第一预设倍数。通过下采样过程取代直接的尺度缩放过程,保证在下采样过程中能够捕捉到图像的关键特征,避免尺度缩放所导致的信息损失,得到的目标特征图可以准确反映手写字符的特征。将目标特征图输入到字符识别模块中,得到字符识别模块输出的手写字符对应的识别字符,提高手写字符识别的准确度,并且提高根据目标特征图进行手写字符识别的效率。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的一种手写字符识别方法的流程图。

图2是根据一示例性实施例示出的一种特征提取模型的结构示意图。

图3是根据一示例性实施例示出的一种图像校正模型得到目标字符图像的方法的流程图。

图4是根据一示例性实施例示出的一种手写字符识别装置的框图。

图5是根据一示例性实施例示出的一种电子设备的框图。

图6是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

相关技术中,对手写字符的识别通常采用人工特征工程和分类器的方式,通过对手写字符进行连通域分析,完成单字符的切割,再对单字符提取边缘、角度等信息用于训练分类器,基于分类器完成手写字符的识别过程。相关技术中的这种方式需要人为进行特征工程,包括图像二值化处理、噪声去除、连通域分析等,且基于字符边缘、纹理等信息构建的分类器鲁棒性低,效果也较差,手写字符由于连笔较多,笔迹也都不同,噪声也较多,导致识别方法不够准确。

另外,相关技术中也有采用深度学习技术进行手写字符识别的方式,一种是采用卷积神经网络和分类器的方式,通过卷积神经网络对文本行图像进行特征提取,这种方式丢失了文本行的序列特征,在手写字符图像中,每一字符之间均存在序列语义上的关联信息,受限于卷积神经网络结构的机制,无法学习到这部分信息,因此特征提取的效果不好。另一种是基于循环神经网络,对卷积神经网络提取的文本行图像特征,通过循环神经网络获取文本行图像的序列特征,从而完成文本行图像的序列编码过程。但是这种方式直接迁移到手写字符识别的场景中效果较差,印刷场景中的字符大多形状较为规范,字符之间也相对独立,因此识别较为简单,而在手写字符识别场景中,手写笔迹较为潦草,字符之间存在连笔,每个人的写法都不一致,存在涂改、污渍等情况,且文本行长短不一,识别较为困难。因此,相关技术中的手写字符识别方法不够准确,无法满足手写字符识别的需求。

有鉴于此,本公开提供一种手写字符识别方法、装置、介质及电子设备,可以提高手写字符识别的准确度。

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

图1是根据一示例性实施例示出的一种手写字符识别方法的流程图,该方法可应用于具有处理能力的电子设备中,如终端或服务器,如图1所示,该方法可包括S101至S104。

在S101中,获取包含手写字符的原始字符图像。

由于相比较于中文字符而言,手写英文字符的笔画较少,用于区分不同字符的特征较少,对于书写不规范以及出现的形近字符的识别更加困难,因此,对手写英文字符进行识别的场景更多。可选地,本公开中的手写字符可以为手写英文字符。值得说明的是,对手写英文字符的识别仅为一种可选实施方式,本公开中的手写字符也可以是手写中文字符,在手写字符有多个字符的情况下,多个字符也可同时包括手写英文字符和手写中文字符。

在S102中,将原始字符图像输入到图像校正模型中,得到图像校正模型输出的校正后的目标字符图像。

由于人为书写的习惯,手写字符构成的文本行中存在大量的倾斜、弯曲等不同形状的文本行,因此原始字符图像中手写字符构成的文本行可能会出现倾斜、弯曲等现象,这些现象会对字符的识别带来影响。因此,本公开中,可将包含手写字符的原始字符图像输入到图像校正模型中,通过图像校正模型对原始字符图像进行校正,得到校正后的目标字符图像,解决原始字符图像中手写字符文本行弯曲、变形等问题,提高字符识别的准确度。

在S103中,将目标字符图像输入到特征提取模型中,得到特征提取模型输出的目标特征图。

其中,特征提取模型用于对目标字符图像的高度下采样第一预设倍数,并用于对目标字符图像的宽度下采样第二预设倍数,第一预设倍数与目标字符图像的高度相同,第二预设倍数小于第一预设倍数。

示例地,特征提取模型可以是残差网络模型。本公开中,特征提取模型可对目标字符图像的高度下采样第一预设倍数,该第一预设倍数可与目标字符图像的高度相同,例如目标字符图像的高度为64,第一预设倍数为64倍,特征提取模型可对目标字符图像的高度下采样64倍,特征提取模型输出的目标特征图的高度为1。这样,通过下采样过程取代直接的尺度缩放过程,可以避免尺度缩放所导致的信息损失,保证在下采样过程中能够捕捉到图像的关键特征。

在基于特征提取模型输出的目标特征图进行字符识别时,目标特征图中的每一像素对应目标字符图像一定范围的图像特征,此范围大小取决于特征提取模型对目标字符图像的宽度下采样的倍数。在对字符进行识别时,根据目标特征图中像素的特征识别出对应字符,因此,目标特征图的每一像素所对应的目标字符图像的区域范围不能太宽,即对宽度进行下采样的倍数不能太大,否则会纳入冗余范围的特征,导致误识别概率的增加。因此,特征提取模型可对目标字符图像的宽度下采样第二预设倍数,该第二预设倍数可小于第一预设倍数。示例地,目标字符图像的高度为64,第一预设倍数为64倍,该第二预设倍数可以为4倍,即对目标字符图像的宽度下采样4倍,目标特征图中每一像素对应目标字符图像4个像素点的宽度,符合手写字符的宽度范围,也不会导致目标特征图中像素点的特征不足以反映手写字符的问题出现。

因此,特征提取模型对目标字符图像的高度下采样第一预设倍数,并对宽度下采样第二预设倍数,得到的目标特征图可以准确反映手写字符的特征,提高手写字符识别的准确度,并且提高根据目标特征图进行手写字符识别的效率。

在S104中,将目标特征图输入到字符识别模块中,得到字符识别模块输出的手写字符对应的识别字符。

字符识别模块可用于根据目标特征图进行手写字符的识别,并输出手写字符对应的识别字符,该识别字符即手写字符对应的电子文本字符。

通过上述技术方案,将包含手写字符的原始字符图像输入到图像校正模型中,得到图像校正模型输出的校正后的目标字符图像,可解决原始字符图像中手写字符文本行弯曲、变形等问题,提高字符识别的准确度。之后,将目标字符图像输入到特征提取模型中,得到特征提取模型输出的目标特征图,其中,特征提取模型用于对目标字符图像的高度下采样第一预设倍数,并用于对目标字符图像的宽度下采样第二预设倍数,第一预设倍数与目标字符图像的高度相同,第二预设倍数小于第一预设倍数。通过下采样过程取代直接的尺度缩放过程,保证在下采样过程中能够捕捉到图像的关键特征,避免尺度缩放所导致的信息损失,得到的目标特征图可以准确反映手写字符的特征。将目标特征图输入到字符识别模块中,得到字符识别模块输出的手写字符对应的识别字符,提高手写字符识别的准确度,并且提高根据目标特征图进行手写字符识别的效率。

本公开中,特征提取模型可以为残差网络模型,残差网络模型采用了残差块结构,能够在加深网络层数的情况下避免网络在反向传播过程中梯度消失、训练困难的问题。

残差网络模型可由以下网络层依次连接构成:第一卷积层、第一池化层、第一数量个第一残差块结构、第二卷积层、第二池化层、第二数量个第二残差块结构、第三卷积层、第三池化层、第三数量个第三残差块结构、第四卷积层、第四池化层、第四数量个第四残差块结构、第五卷积层、第五数量个第五残差块结构、第六卷积层、第七卷积层,所述第七卷积层用于输出所述目标特征图。

图2是根据一示例性实施例示出的一种特征提取模型的结构示意图,该特征提取模型可以为ResNet-31模型。需要说明的是,图2所示的特征提取模型中各个参数的设置仅为示意,便于解释说明,不构成对本公开实施方式的限制,在实际应用中各个参数的设置并不局限于此。

如图2所示,Input表示输入,image表示输入的目标字符图像,该目标字符图像的大小可以为w×64,w表示宽度,64表示高度,考虑到常规手写字符文本行的高度均值在64左右,因此,输入的目标字符图像的高度可以为64,对目标字符图像宽度w不做限制。Conv1表示第一卷积层,Pool1表示第一池化层,Block1表示第一残差块结构,Block1(×1)表示第一数量个第一残差块结构,第一数量为1,Conv2表示第二卷积层,Pool表示第二池化层,Block2表示第二残差块结构,Block2(×1)表示第二数量个第二残差块结构,第二数量为1,Conv3表示第三卷积层,Pool3表示第三池化层,Block3表示第三残差块结构,Block3(×2)表示第三数量个第三残差块结构,第三数量为2,Conv4表示第四卷积层,Pool4表示第四池化层,Block4表示第四残差块结构,Block4(×5)表示第四数量个第四残差块结构,第四数量为5,Conv5表示第五卷积层,Block5表示第五残差块结构,Block5(×3)表示第五数量个第五残差块结构,第五数量为3,Conv6表示第六卷积层,Conv7表示第七卷积层。

其中,第一池化层用于对第一卷积层输出的特征图的宽度和高度均下采样第三预设倍数。该第三预设倍数小于第二预设倍数,由于需要通过不同的网络层下采样处理多次,因此每一次下采样处理的倍数,不能高于对目标字符图像的宽度总体下采样的第二预设倍数。图2所示的特征提取模型以该第三预设倍数为2倍为例。如图2所示,第一池化层Pool1的卷积核大小k为2,卷积步长s为2,卷积填充尺寸即padding尺寸p为0,第一池化层Pool1输出的特征图的大小为w/2×32,即对第一卷积层Conv1输出的特征图的宽度和高度均下采样2倍。

第二池化层用于对第二卷积层输出的特征图的宽度和高度均下采样第三预设倍数。如图2所示,第二池化层Pool2的卷积核大小k为2,卷积步长s为2,卷积填充尺寸即padding尺寸p为0,第二池化层Pool2输出的特征图的大小为w/4×16,即对第二卷积层Conv2输出的特征图的宽度和高度均下采样2倍。

第三池化层用于对第三卷积层输出的特征图的高度下采样第三预设倍数,并对第三卷积层输出的特征图的宽度进行卷积填充第一预设值,该第一预设值例如为1。如图2所示,第三池化层Pool3的卷积核大小k为2,卷积步长s为(1,2),卷积填充尺寸即padding尺寸p为(1,0),第三池化层Pool3输出的特征图的大小为(w/4+1)×8。

第四池化层用于对第四卷积层输出的特征图的高度下采样第三预设倍数,并对第四卷积层输出的特征图的宽度进行卷积填充第一预设值。如图2所示,第四池化层Pool4的卷积核大小k为2,卷积步长s为(1,2),卷积填充尺寸即padding尺寸p为(1,0),第四池化层Pool4输出的特征图的大小为(w/4+2)×4。

上述介绍了特征提取模型中多个池化层的处理过程,下面介绍特征提取模型中多个卷积层的处理过程。

其中,第一卷积层、第二卷积层、第三卷积层、第四卷积层、第五卷积层的卷积核大小相同且卷积核数量各不相同,第六卷积层与第七卷积层的卷积核大小相同且卷积核数量相同;

第六卷积层用于对位于该第六卷积层上一层的第五残差块结构输出的特征图的高度下采样第四预设倍数,并用于对位于第六卷积层上一层的第五残差块结构输出的特征图的宽度进行卷积填充第二预设值,第七卷积层用于对第六卷积层输出的特征图的高度下采样第四预设倍数,其中,第四预设倍数小于第二预设倍数。

以图2所示的特征提取模型为例,如图2所示,第一卷积层Conv1的卷积核大小为3×3,卷积核数量为32,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,第一卷积层Conv1输出的特征图的大小为w×64。

第二卷积层Conv2的卷积核大小为3×3,卷积核数量为64,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,第二卷积层Conv2输出的特征图的大小为w/2×32。

第三卷积层Conv3的卷积核大小为3×3,卷积核数量为128,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,第三卷积层Conv3输出的特征图的大小为w/4×16。

第四卷积层Conv4的卷积核大小为3×3,卷积核数量为256,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,第四卷积层Conv4输出的特征图的大小为(w/4+1)×8。

第五卷积层Conv5的卷积核大小为3×3,卷积核数量为512,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,第五卷积层Conv5输出的特征图的大小为(w/4+2)×4。

即,第一卷积层、第二卷积层、第三卷积层、第四卷积层、第五卷积层的卷积核大小相同,例如均为3×3,且卷积核数量各不相同,3×3的小卷积核能在保证网络精度的前提下很大程度的降低网络的参数量。

第六卷积层Conv6的卷积核大小为2×2,卷积核数量为512,卷积步长s为(1,2),卷积填充尺寸即padding尺寸p为(1,0)。第六卷积层Conv6用于对位于该第六卷积层上一层的第五残差块结构Block5输出的特征图的高度下采样第四预设倍数,该第四预设倍数小于第二预设倍数,由于需要通过不同的网络层下采样处理多次,因此每一次下采样处理的倍数,不能高于对目标字符图像的宽度总体下采样的第二预设倍数,例如该第四预设倍数为2倍。第六卷积层Conv6并用于对位于该第六卷积层上一层的第五残差块结构Block5输出的特征图的宽度进行卷积填充第二预设值,该第二预设值例如为1。如图2所示,第六卷积层Conv6输出的特征图的大小为(w/4+3)×2。

第七卷积层Conv7的卷积核大小为2×2,卷积核数量为512,卷积步长s为(1,1),卷积填充尺寸即padding尺寸p为0。第七卷积层Conv7用于对第六卷积层Conv6输出的特征图的高度下采样第四预设倍数,如图2所示,第七卷积层Conv7输出的特征图的大小为(w/4+2)×1。

即,第六卷积层与第七卷积层的卷积核大小相同,例如均为2×2,且卷积核数量相同,例如均为512。

下面介绍特征提取模型中的残差块结构。其中,第一残差块结构、第二残差块结构、第三残差块结构、第四残差块结构、第五残差块结构的卷积核大小相同,第一残差块结构、第二残差块结构、第三残差块结构的卷积核数量各不相同,第四残差块结构与第五残差块结构的卷积核数量相同。

残差块结构包括卷积处理结构和残差处理结构。如图2所示,第一残差块结构Block1中,卷积处理结构的卷积核大小为3×3,卷积核数量为64,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,残差处理结构的卷积核大小为3×3,卷积核数量为64,卷积步长s为1,卷积填充尺寸即padding尺寸p为1。图2所示的特征提取模型中包括一个第一残差块结构,该第一残差块结构Block1输出的特征图大小为w/2×32。

第二残差块结构Block2中,卷积处理结构的卷积核大小为3×3,卷积核数量为128,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,残差处理结构的卷积核大小为3×3,卷积核数量为128,卷积步长s为1,卷积填充尺寸即padding尺寸p为1。图2所示的特征提取模型中包括一个第二残差块结构,该第二残差块结构Block2输出的特征图大小为w/4×16。

第三残差块结构Block3中,卷积处理结构的卷积核大小为3×3,卷积核数量为256,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,残差处理结构的卷积核大小为3×3,卷积核数量为256,卷积步长s为1,卷积填充尺寸即padding尺寸p为1。图2所示的特征提取模型中包括两个第三残差块结构,经过两个第三残差块结构Block3处理之后输出的特征图大小为(w/4+1)×8。

第四残差块结构Block4中,卷积处理结构的卷积核大小为3×3,卷积核数量为512,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,残差处理结构的卷积核大小为3×3,卷积核数量为512,卷积步长s为1,卷积填充尺寸即padding尺寸p为1。图2所示的特征提取模型中包括五个第四残差块结构,经过五个第四残差块结构Block4处理之后输出的特征图大小为(w/4+2)×4。

第五残差块结构Block5中,卷积处理结构的卷积核大小为3×3,卷积核数量为512,卷积步长s为1,卷积填充尺寸即padding尺寸p为1,残差处理结构的卷积核大小为3×3,卷积核数量为512,卷积步长s为1,卷积填充尺寸即padding尺寸p为1。图2所示的特征提取模型中包括三个第五残差块结构,经过三个第五残差块结构Block5处理之后输出的特征图大小为(w/4+2)×4。

即,第一残差块结构、第二残差块结构、第三残差块结构、第四残差块结构、第五残差块结构的卷积核大小相同,例如卷积核大小均为3×3,第一残差块结构、第二残差块结构、第三残差块结构的卷积核数量各不相同,第四残差块结构与第五残差块结构的卷积核数量相同,例如卷积核数量均为512。

由此,以图2所示的特征提取模型作为示例,第一池化层、第二池化层、第三池化层、第四池化层、第六卷积层、第七卷积层均用于对特征图的高度下采样2倍,即对输入的目标字符图像的高度共下采样64倍。第一池化层和第二池化层均用于对特征图的宽度下采样2倍,即对输入的目标字符图像的宽度共下采样4倍。

本方案中的特征提取模型为残差网络模型,手写字符构成的文本行通常为长条形,本方案中的特征提取模型更适合于长条形文本行的特征提取,解决不易对手写字符文本行的特征进行提取的问题。并且,可以基于深度学习端到端地完成手写字符的识别,使用深度学习技术替代相关技术中的人工特征工程,无需对手写字符做任何人工特征工程的处理,实现端到端手写字符的识别。

本公开中,图像校正模型可用于通过图3的方式得到目标字符图像,如图3所示,包括S301至S303。

在S301中,确定原始字符图像中、位于手写字符的上边缘和下边缘的指定数量个基准点。

示例地,图像校正模型可采用空间变换网络(STN,Spatial TransformerNetwork)。图像校正模型可包括定位网络(Localization network)、网格生成器(GridGenerator)、采样器(Sampler)。其中,定位网络可确定原始字符图像中的指定数量个基准点,指定数量个基准点包括位于手写字符的上边缘和下边缘的基准点。示例地,指定数量例如可以为20,定位网络可确定原始字符图像中位于手写字符的上边缘的10个基准点,以及位于手写字符的下边缘的10个基准点,共20个基准点。

在S302中,根据指定数量个基准点进行样条变换,得到采样网格。

图像校正模型中的网格生成器可基于指定数量个基准点进行样条变换,例如薄板样条插值变换(TPS,Thin Plate Spline),得到采样网格,采样网格的数量可以有多个。

在S303中,基于采样网格进行双线性插值采样,得到校正后的目标字符图像。

采样器可基于采样网格进行双线性插值采样,并生成校正后的目标字符图像。

通过上述技术方案,通过图像校正模型络解决手写字符文本行图像弯曲、变形等问题,提高手写字符识别准确率。

在进行字符识别时,通用的识别算法通常采用基于链接时序分类模型(CTC,Connectionist temporal classification)或者注意力机制模型(Attention)的方法,链接时序分类模型由于其本身算法对齐的特性对长文本识别的效果相对更好,但是解码过程中对每一个像素是假设条件独立的,丢失了像素之间的关联性。但注意力机制模型容易被噪声破坏,因此不易对长文本序列进行识别,而在手写字符的识别场景中,长短文本均是存在的,所以单独采用链接时序分类模型或者单独采用注意力机制模型,均很难取得较好的识别效果。

本公开中,字符识别模块包括编码模块和解码模块;其中,编码模块包括双层双向长短期记忆网络,双层双向长短期记忆网络用于对目标特征图进行特征编码处理,得到序列特征;

解码模块包括链接时序分类模型和注意力机制模型,链接时序分类模型和注意力机制模型分别根据序列特征对手写字符进行识别,解码模块用于将链接时序分类模型输出的识别结果与注意力机制模型输出的识别结果进行加权融合,得到手写字符对应的识别字符。

其中,编码模块包括双层双向长短期记忆网络(Bi-directional Long short-term memory,Bi-LSTM),用于学习目标特征图中的上下文信息,应对图像中出现的扭曲、连笔、模糊等识别难的场景。双层双向长短期记忆网络通过正反向构建序列特征,能够解决双向依赖问题,实现基于上下文信息做出预测的过程,通过加深网络结构,从而获取更深层次的特征表示。双层双向长短期记忆网络用于对目标特征图进行特征编码处理,示例地,图2所示的特征提取模型输出的目标特征图的大小为(w/4+2)×1,经过双层双向长短期记忆网络进行特征编码处理后,得到的序列特征的大小例如为(w/4+2)×1×512。

解码模块同时包括链接时序分类模型和注意力机制模型,避免单独采用链接时序分类模型或者单独采用注意力机制模型识别效果不好的问题,充分利用链接时序分类模型和注意力机制模型各自的特点,进一步提高手写英文识别的准确率。链接时序分类模型和注意力机制模型可分别根据序列特征对手写字符进行识别,解码模块用于将链接时序分类模型输出的识别结果与注意力机制模型输出的识别结果进行加权融合,得到手写字符对应的识别字符,其中,链接时序分类模型对应的权重例如为0.2,注意力机制模型对应的权重例如为0.8。

其中,本公开中的图像校正模型、特征提取模型、字符识别模块可以是预先训练得到的,在训练过程中,可采用包含手写字符的训练样本图像进行训练,各个训练样本图像的宽度可能不同,模型输入宽度可取决于当前批次训练样本图像的最大宽度,宽度不够的训练样本图像采用右侧补零措施,以解决固定宽度因尺度缩放带来的信息丢失问题。训练过程中的目标损失函数可根据链接时序分类模型和注意力机制模型各自的损失函数确定,训练过程中的目标损失函数可如下公式所示:

L

其中,L

根据目标损失函数的函数值可对图像校正模型、特征提取模型、字符识别模块的参数进行更新,直至目标损失函数收敛时,训练完成。

另外,考虑到真实手写字符图像有限,且真实手写字符场景不一,为了提升模型的精度和鲁棒性,可对真实手写字符图像进行变换处理,增加训练样本图像的数量,具体变换处理方式例如包括添加噪声、改变图像对比度和明暗度、对图像进行放射变换、扭曲变换等,采用变换处理之后的图像构成的训练样本数据集进行训练,对模型性能有较为明显的提升。

通过上述技术方案,对手写字符存在的连笔、形近字符、涂改等难于辨别的情况具有较好的鲁棒性,能够广泛地应用于手写字符识别的场景中,例如教育场景下的试卷批改、作文批改、手写字符录入等各种场景,从而大幅降低人工识别成本,提高识别效率。

基于同一发明构思,本公开还提供一种手写字符识别装置,图4是根据一示例性实施例示出的一种手写字符识别装置的框图,如图4所示,该装置400可包括:

获取模块401,用于获取包含手写字符的原始字符图像;

第一获得模块402,用于将所述原始字符图像输入到图像校正模型中,得到所述图像校正模型输出的校正后的目标字符图像;

第二获得模块403,用于将所述目标字符图像输入到特征提取模型中,得到所述特征提取模型输出的目标特征图,其中,所述特征提取模型用于对所述目标字符图像的高度下采样第一预设倍数,并用于对所述目标字符图像的宽度下采样第二预设倍数,所述第一预设倍数与所述目标字符图像的高度相同,所述第二预设倍数小于所述第一预设倍数;

第三获得模块404,用于将所述目标特征图输入到字符识别模块中,得到所述字符识别模块输出的所述手写字符对应的识别字符。

可选地,所述特征提取模型为残差网络模型,所述残差网络模型由以下网络层依次连接构成:第一卷积层、第一池化层、第一数量个第一残差块结构、第二卷积层、第二池化层、第二数量个第二残差块结构、第三卷积层、第三池化层、第三数量个第三残差块结构、第四卷积层、第四池化层、第四数量个第四残差块结构、第五卷积层、第五数量个第五残差块结构、第六卷积层、第七卷积层,所述第七卷积层用于输出所述目标特征图。

可选地,所述第一池化层用于对所述第一卷积层输出的特征图的宽度和高度均下采样第三预设倍数,所述第二池化层用于对所述第二卷积层输出的特征图的宽度和高度均下采样所述第三预设倍数,所述第三池化层用于对所述第三卷积层输出的特征图的高度下采样所述第三预设倍数,并对所述第三卷积层输出的特征图的宽度进行卷积填充第一预设值,所述第四池化层用于对所述第四卷积层输出的特征图的高度下采样所述第三预设倍数,并对所述第四卷积层输出的特征图的宽度进行卷积填充所述第一预设值,其中,所述第三预设倍数小于所述第二预设倍数。

可选地,所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层、所述第五卷积层的卷积核大小相同且卷积核数量各不相同,所述第六卷积层与所述第七卷积层的卷积核大小相同且卷积核数量相同;其中,所述第六卷积层用于对位于所述第六卷积层上一层的所述第五残差块结构输出的特征图的高度下采样第四预设倍数,并用于对位于所述第六卷积层上一层的所述第五残差块结构输出的特征图的宽度进行卷积填充第二预设值,所述第七卷积层用于对所述第六卷积层输出的特征图的高度下采样所述第四预设倍数,其中,所述第四预设倍数小于所述第二预设倍数。

可选地,所述第一残差块结构、所述第二残差块结构、所述第三残差块结构、所述第四残差块结构、所述第五残差块结构的卷积核大小相同,所述第一残差块结构、所述第二残差块结构、所述第三残差块结构的卷积核数量各不相同,所述第四残差块结构与所述第五残差块结构的卷积核数量相同。

可选地,所述目标字符图像的高度为64,所述第一预设倍数为64倍,所述第二预设倍数为4倍。

可选地,所述图像校正模型用于通过如下模块得到所述目标字符图像:确定模块,用于确定所述原始字符图像中、位于所述手写字符的上边缘和下边缘的指定数量个基准点;变换模块,根据所述指定数量个基准点进行样条变换,得到采样网格;采样模块,用于基于所述采样网格进行双线性插值采样,得到校正后的所述目标字符图像。

可选地,所述字符识别模块包括编码模块和解码模块;其中,所述编码模块包括双层双向长短期记忆网络,所述双层双向长短期记忆网络用于对所述目标特征图进行特征编码处理,得到序列特征;所述解码模块包括链接时序分类模型和注意力机制模型,所述链接时序分类模型和所述注意力机制模型分别根据所述序列特征对所述手写字符进行识别,所述解码模块用于将所述链接时序分类模型输出的识别结果与所述注意力机制模型输出的识别结果进行加权融合,得到所述手写字符对应的识别字符。

可选地,所述手写字符为手写英文字符。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图5是根据一示例性实施例示出的一种电子设备700的框图。如图5所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。

其中,处理器701用于控制该电子设备700的整体操作,以完成上述的手写字符识别方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的手写字符识别方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的手写字符识别方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的手写字符识别方法。

图6是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图6,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的手写字符识别方法。

另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如WindowsServer

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的手写字符识别方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的手写字符识别方法。

在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的手写字符识别方法的代码部分。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

相关技术
  • 手写字符识别方法、手写字符识别系统、手写字符识别程序以及存储介质
  • 手写字符识别方法、装置、电子设备及存储介质
技术分类

06120113255013