WO2024103292A1 - 手写体识别方法、手写体识别模型的训练方法及装置 - Google Patents
手写体识别方法、手写体识别模型的训练方法及装置 Download PDFInfo
- Publication number
- WO2024103292A1 WO2024103292A1 PCT/CN2022/132268 CN2022132268W WO2024103292A1 WO 2024103292 A1 WO2024103292 A1 WO 2024103292A1 CN 2022132268 W CN2022132268 W CN 2022132268W WO 2024103292 A1 WO2024103292 A1 WO 2024103292A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- layer
- handwriting recognition
- model
- height
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 115
- 238000012549 training Methods 0.000 title claims abstract description 82
- 238000000605 extraction Methods 0.000 claims abstract description 46
- 230000015654 memory Effects 0.000 claims description 62
- 230000006870 function Effects 0.000 claims description 43
- 238000013138 pruning Methods 0.000 claims description 33
- 238000007906 compression Methods 0.000 claims description 26
- 230000006835 compression Effects 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000004913 activation Effects 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 10
- 238000010606 normalization Methods 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 6
- 230000002123 temporal effect Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000013140 knowledge distillation Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000004821 distillation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 2
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 2
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 2
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Landscapes
- Character Discrimination (AREA)
- Character Input (AREA)
Abstract
一种手写体识别方法、手写体识别模型的训练方法及装置,该手写体识别方法包括:根据待识别的书写文本轨迹,确定输入文本图像;将输入文本图像输入手写体识别模型,得到输入文本图像中不同空间位置的预测结果,手写体识别模型包括图像特征提取层、全连接层和Softmax层,其中,图像特征提取层用于提取输入文本图像的特征图,全连接层用于将特征图的通道数调整为手写体识别模型支持的字符数,Softmax层用于得到不同空间位置的书写文本的预测概率值;对不同空间位置的预测结果进行多邻域合并,得到识别结果。
Description
本公开实施例涉及但不限于人工智能技术领域,尤其涉及一种手写体识别方法、手写体识别模型的训练方法及装置。
目前,全篇手写体识别多采用文本检测+识别的两阶段方式实现,首先将待识别文本轨迹送入检测网络获取文字位置信息,然后将位置信息送入识别网络进行文本识别,整体识别性能很大程度受限于检测器检测性能,其需要对检测、识别分别进行数据标注及模型训练,实现过程繁琐。
相关技术中提出了一种端到端的多行识别网络,由编码和解码两阶段构成,编码阶段首先采用残差网络提取第一特征向量,其次采用双向长短期记忆(Long short-term memory,LSTM)网络和基于注意力机制的编码器提取第二特征向量;解码阶段分两个分支分别进行行解码和列解码,然后输出识别结果。但是,该多行识别网络结构较为复杂。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本公开实施例提供了一种手写体识别方法,包括:
根据待识别的书写文本轨迹,确定输入文本图像;
将所述输入文本图像输入手写体识别模型,得到输入文本图像中不同空间位置的预测结果,所述手写体识别模型包括图像特征提取层、全连接层和Softmax层,其中,所述图像特征提取层用于提取所述输入文本图像的特征图,所述全连接层用于将所述特征图的通道数调整为所述手写体识别模型支持的字符数,所述Softmax层用于得到不同空间位置的书写文本的预测概率值,每个所述空间位置包括至少一个像素的宽度*至少一个像素的高度;
对不同空间位置的预测结果进行多邻域合并,得到识别结果。
本公开实施例还提供了一种手写体识别装置,包括存储器;和连接至所述存储器的处理器,所述存储器用于存储指令,所述处理器被配置为基于存储在所述存储器中的指令,执行本公开任一实施例所述的手写体识别方法的步骤。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开任一实施例所述的手写体识别方法。
本公开实施例还提供了一种手写体识别模型的训练方法,包括:
构建所述手写体识别模型的训练模型,所述手写体识别模型包括图像特征提取层、全连接层和Softmax层,所述训练模型包括所述手写体识别模型和高度压缩模块,其中,所述图像特征提取层用于提取所述输入文本图像的特征图,所述全连接层用于将特征图的通道数调整为所述手写体识别模型支持的字符数,所述Softmax层用于得到不同空间位置的书写文本的预测概率值,所述高度压缩模块设置在所述图像特征提取层和所述全连接层之间,用于对所述图像特征提取层提取的特征图的高度进行压缩;
获取多个样本文本图像,所述样本文本图像中书写文本的行数为1行,且样本文本图像的高度为a个像素,a为大于或等于1的自然数;
根据预设的损失函数,采用多个所述样本文本图像对所述训练模型进行训练;
去除训练好的所述训练模型中的高度压缩模块,得到训练好的所述手写体识别模型。
本公开实施例还提供了一种手写体识别模型的训练装置,包括存储器;和连接至所述存储器的处理器,所述存储器用于存储指令,所述处理器被配置为基于存储在所述存储器中的指令,执行本公开任一实施例所述的手写体识别模型的训练方法的步骤。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开任一实施例所述的手写体识别模型的训练方法。
在阅读理解了附图和详细描述后,可以明白其他方面。
附图用来提供对本公开技术方案的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开的技术方案的限制。附图中各部件的形状和大小不反映真实比例,目的只是示意说明本公开内容。
图1为本公开示例性实施例提供的一种手写体识别方法的流程示意图;
图2A和图2B为本公开示例性实施例提供的两种待识别的书写文本轨迹的示意图;
图3为本公开示例性实施例提供的一种手写体识别模型的结构示意图;
图4为本公开示例性实施例提供的一种识别结果后处理流程示意图;
图5为本公开示例性实施例提供的一种单词校正过程中创建的状态转移矩阵示意图;
图6为本公开示例性实施例提供的一种手写体识别模型的训练方法的流程示意图;
图7为本公开示例性实施例提供的一种手写体识别模型的训练模型的结构示意图;
图8为本公开示例性实施例提供的一种知识蒸馏过程示意图;
图9A、图9B和图9C为本公开示例性实施例提供的三种识别结果示意图;
图10为本公开示例性实施例提供的一种手写体识别装置的结构示意图;
图11为本公开示例性实施例提供的一种手写体识别模型的训练装置的结构示意图。
为使本公开的目的、技术方案和优点更加清楚明白,下文中将结合附图对本公开的实施例进行详细说明。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互任意组合。
除非另外定义,本公开实施例公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出该词前面的元件或物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
如图1所示,本公开实施例提供了一种手写体识别方法,包括如下步骤:
步骤101、根据待识别的书写文本轨迹确定输入文本图像;
步骤102、将输入文本图像输入手写体识别模型,得到输入文本图像中不同空间位置的预测结果,手写体识别模型包括图像特征提取层、全连接层和Softmax层,其中,图像特征提取层用于提取输入文本图像的特征图,全连接层用于将特征图的通道数调整为所述手写体识别模型支持的字符数,所述Softmax层用于得到不同空间位置的书写文本的预测概率值,每个空间位置包括至少一个像素的宽度*至少一个像素的高度;
步骤103、对不同空间位置的预测结果进行多邻域合并,得到识别结果。
本公开实施例中,输入文本图像中的一个空间位置可以对应输入文本图像中的m*n个像素,其中,m为沿高度方向包含的像素个数,n为沿宽度方向包含的像素个数。示例性的,假设输入文本图像(大小为1×H×W)经过图像特征提取层,输出大小为
的特征图f,特征图f经过全连接层,将通道数调整为K,K为该手写体识别模型支持的字符数,即得到
的特征图f’,特征图f’经过Softmax层得到不同空间位置的书写文本的预测概率值,则,此时输入文本图像中的一个空间位置对应输入文本图像中16*8个像素大小。然而,本公开实施例对m和n的大小并不做限制,m和n可以根据实际图像特征提取层输出的特征图的尺寸大小进行设置。
如图2A和2B所示,本公开实施例的手写体识别方法可以对单行书写文 本或多行书写文本进行识别。本公开实施例的手写体识别方法,通过根据待识别的书写文本轨迹确定输入文本图像,然后将输入文本图像输入手写体识别模型,该手写体识别模型包括图像特征提取层、全连接层和Softmax层,得到不同空间位置的预测结果,对不同空间位置的预测结果进行多邻域合并,得到识别结果,网络结构简单,且识别准确率较高。本公开实施例所述的书写文本可以为英文单词,也可以为其他任意的字符,如中文字符、数字、拼音等,本公开实施例对此不作限制。
在一些示例性实施方式中,待识别的书写文本包括至少一个字符,字符可以包括文字、字母、数字、运算符号、标点符号以及其他任意的特殊字符等。
本公开实施例中,特殊字符是相对于传统或常用的符号外,使用频率较少且难以直接输入的符号,其种类繁多,示例性的,特殊字符可以包括:数学符号(例如,≈、≡、≠、=、≤、≥、<、>等)、单位符号(例如,℃、
﹪、‰、㎡等)、拼音字符(例如,ā、á、ǎ、à、ō、ó、ǒ、ò等)等。
示例性的,假设待识别的书写文本可以包括如表1所示的56个字符中的任意一个或多个字符。
表1
在一些示例性实施方式中,每个字符包括至少一个笔画,一个笔画为一 次落笔到抬笔之间的书写轨迹。示例性的,字符“L”包括一个笔画,字符“f”包括两个笔画。
在一些示例性实施方式中,每个笔画包括至少一个轨迹点。
在一些示例性实施方式中,轨迹点信息可以分成多个数组,每个数组包括一个笔画中的多个轨迹点的属性信息,属性信息包括X轴坐标、Y轴坐标、抬笔标志位等。
本实施例中,一个笔画中的多个轨迹点的属性信息组成一个数组,示例性的,汉字“一”包括一个笔画“横”,这一个笔画可以包括100个左右的轨迹点,每个轨迹点的属性信息包括X轴坐标、Y轴坐标、抬笔标志位等。在另一些示例性实施例中,该属性信息还可以包括时间戳、压力信息、速度信息等。
在一些示例性实施方式中,步骤101中的根据待识别的书写文本轨迹,确定输入文本图像可以包括如下步骤:
步骤1011、获取待识别的书写文本轨迹,确定书写文本的等效行数;
步骤1012、根据书写文本的等效行数计算输入文本图像的高度,根据输入文本图像的高度确定输入文本图像。
在另一些示例性实施方式中,步骤101中的根据待识别的书写文本轨迹,确定输入文本图像还可以包括对输入文本图像进行缩放、去噪等过程,本公开实施例对此不作限制。
在一些示例性实施方式中,确定书写文本的等效行数,可以包括:
将待识别的书写文本轨迹对应设置于二维坐标系中,二维坐标系包括X轴坐标和Y轴坐标;
计算待识别的书写文本轨迹中单行文本的高度trace_sl_h;
计算全部书写文本的高度trace_h,其中,trace_h=(Ymax-Ymin+1),Ymin为所有笔画Y轴坐标最小值,Ymin为所有笔画Y轴坐标最大值;
确定书写文本的等效行数raw_num,其中,raw_num=trace_h/trace_sl_h。
本公开实施例中,待识别的书写文本轨迹中单行文本的高度trace_sl_h 可以用全部书写文本的平均单行高度来进行计算,也可以用全部书写文本中的最高单行高度来进行计算。本公开实施例中,当书写文本包含的字符主要为英文字符时,书写文本中单行文本的高度可以用单行文本中最长笔画的长度来近似计算。本公开实施例中,每个笔画的长度可以用欧式距离公式来计算,也可以用每个笔画的高度来近似计算,或者也可以用每个笔画的高度以及每个笔画的宽度中的较大值来近似计算等等,本公开实施例对此不作限制。
在一些示例性实施方式中,根据如下公式近似计算待识别的书写文本轨迹中每一笔画的长度stroke_len:stroke_len=max(xmax-xmin+1,ymax-ymin+1),xmin为当前笔画X轴坐标最小值,xmax为当前笔画X轴坐标最大值,ymin为当前笔画Y轴坐标最小值,ymax为当前笔画Y轴坐标最大值,max(A,B)表示取A和B中的较大值。
在一些示例性实施方式中,确定待识别的书写文本轨迹中单行文本的高度trace_sl_h为所有笔画中最长笔画的长度max(stroke_len),其中,max(stroke_len)即为取所有笔画长度stroke_len的最大值。
示例性的,按照上述方法计算得到图2A所示的书写文本的等效行数为1.18行,图2B所示的书写文本的等效行数为3.2行(两行间间距约为1倍行高)。本公开实施例中,等效行数指的是实际书写文本的行数与每行书写文本周围的空白区域的等效行数的和。如图2B所示,当两行文本之间所占的空白区域的高度越高时,图2B所示的书写文本的等效行数越大。
在另一些示例性实施方式中,也可以根据其他方法计算待识别的书写文本轨迹中每一笔画的长度,本公开实施例对此不作限制。示例性的,可以根据如下公式计算待识别的书写文本轨迹中每一笔画的长度stroke_len:
xmin为当前笔画X轴坐标最小值,xmax为当前笔画X轴坐标最大值,ymin为当前笔画Y轴坐标最小值,ymax为当前笔画Y轴坐标最大值。
在一些示例性实施方式中,根据书写文本的等效行数计算输入文本图像的高度,包括:
输入文本图像的高度input_h=[raw_num×a],其中,raw_num为书写文本的等效行数,a为在对手写体识别模型进行训练时使用的样本文本图像的 高度或者使用的样本文本图像中的书写文本的高度,[]为取整符号(可以为向上取整、向下取整或四舍五入法取整),a为大于或等于1的自然数,样本文本图像中书写文本的行数为1行。
本公开实施例的手写体识别方法,网络结构简单,在模型训练时仅需单行数据标注,使用单行样本文本图像进行模型训练;在推理识别时,可对单行或多行书写文本轨迹进行推理识别。使用单行样本文本图像进行模型训练时,输入单行书写文本的高度可以统一为a个像素(本公开实施例在使用单行样本文本图像进行模型训练时,输入的单行样本文本图像中书写文本周围的空白区域被尽可能裁剪掉,如图4所示输入的Television图片,因此,样本文本图像中的书写文本的高度可以近似等于样本文本图像的高度)。对于多行书写文本轨迹而言,通过本公开实施例的方法确定输入文本图像的高度,以使得输入文本图像中的每行书写文本的高度近似控制在a个像素。
示例性的,a可以为80。使用单行样本文本图像进行模型训练,输入文本图像的高度统一为80像素,对于多行书写文本轨迹而言,需要确定输入文本图像的高度从而使得其中每行书写文本的高度近似控制在80像素,因此本公开实施例设计了一种自适应确定输入文本图像的高度的方法,实现步骤如下:
步骤一:计算每一笔画的长度stroke_len,并将待识别的书写文本轨迹中单行文本的高度trace_sl_h近似计算为所有笔画中最长笔画的长度max(stroke_len)。示例性的,每一笔画的长度stroke_len用下述方法近似计算:stroke_len=max(xmax-xmin+1,ymax-ymin+1),xmin为当前笔画X轴坐标最小值,xmax为当前笔画X轴坐标最大值,ymin为当前笔画Y轴坐标最小值,ymax为当前笔画Y轴坐标最大值。
步骤二:计算书写文本的高度trace_h,其中,trace_h=(Ymax-Ymin+1),Ymin为所有笔画Y轴坐标最小值,Ymax为所有笔画Y轴坐标最大值。
步骤三:确定当前待识别的书写文本的等效行数raw_num,其中,raw_num=trace_h/trace_sl_h;据此计算得出输入文本图像的高度input_h,其中,input_h=[raw_num×80]。
按照上述自适应确定输入文本图像的高度的方法计算得到图2A所示的 单行书写文本对应的输入文本图像的高度为[1.18×80]=[94.4]=94像素;图2B所示的单行书写文本对应的输入文本图像的高度为[3.2×80]=256像素。
在一些示例性实施方式中,根据输入文本图像的高度确定输入文本图像,包括:
计算输入文本图像与待识别的书写文本轨迹之间的缩放倍数ratio,其中,ratio=input_h/trace_h,input_h为输入文本图像的高度,trace_h为书写文本轨迹的高度;
确定输入文本图像中的轨迹点坐标,其中,point_X=(point_x-xmin)×ratio,point_Y=(point_y-ymin)×ratio,point_x和point_y分别表示待识别的书写文本轨迹中的轨迹点X轴坐标和Y轴坐标,xmin和ymin分别表示待识别的书写文本轨迹中所有轨迹点的X轴坐标最小值和Y轴坐标最小值,point_X和point_Y分别表示输入文本图像中的轨迹点X轴坐标和Y轴坐标。
本公开实施例中,由于输入文本图像中书写文本周围的空白部分(不包含多行书写文本之间的空白区域)基本上都被裁剪掉了,所以输入文本图像的高度input_h,就近似等于输入文本图像中所有轨迹点的Y轴坐标最大值与所有轨迹点的Y轴坐标最小值的差值,输入文本图像的宽度,就近似等于输入文本图像中所有轨迹点的X轴坐标最大值与所有轨迹点的X轴坐标最小值的差值。
在一些示例性实施方式中,所述方法还包括:以笔画为单位,依次用线宽为b的线连接输入文本图像中每一笔画的所有轨迹点,得到输入文本图像,b大于或等于1个像素宽度。
本公开实施例中,采用上述方法计算得到输入文本图像的高度后,采用轨迹点映射(保证输入文本图像中所有字符线宽一致)的方式将轨迹点转为对应高度的输入文本图像。
示例性的,b可以为2个像素宽度。采用上述计算输入图像高度的方法计算得到输入文本图像的高度后,采用轨迹点映射(保证所有图像中文字线宽一致)的方式将轨迹点转为对应高度的输入文本图像。轨迹点映射实现过程包括:
步骤一:计算缩放倍数,ratio=input_h/trace_h;
步骤二:轨迹点映射,point_X=(point_x-xmin)×ratio,point_Y=(point_y-ymin)×ratio,其中,point_x和point_y分别表示映射前原始轨迹点X轴坐标与Y轴坐标,xmin、ymin表示原始所有轨迹点的X轴坐标最小值和Y轴坐标最小值,point_Y和point_Y分别表示映射后轨迹点X轴坐标与Y轴坐标;
步骤三:以笔画为单位,依次用线宽为2的线连接每一笔画中的所有轨迹点(映射后轨迹点),得到输入文本图像。
以图3所示的手写体识别模型为例,基于原始采集到的轨迹点(一系列xy坐标)计算出缩放比例ratio,依据该缩放比例得到映射后的轨迹点。初始化构造一个高H=Ymax-Ymin+1,宽W=Xmax-Xmin+1,像素值均为255的全白图像(其中,Xmin、Ymin、Xmax、Ymax分别为映射后的轨迹点X轴坐标最小值、Y轴坐标最小值、X轴坐标最大值以及Y轴坐标最大值),在该全白图像上以笔画为单位,依次用线宽为b的线连接笔画中所有轨迹点,得到输入文本图像。
将上述轨迹点映射后得到的输入文本图像输入图3所示的手写体识别模型进行多行文本识别,识别效果如图3所示。其中,输入文本图像x(大小为1×H×W,1为通道数,H为高度,W为宽度)经过图像特征提取层(本公开实施例中,图像特征提取层可以为卷积神经网络(Convolutional Neural Network,CNN),例如,图像特征提取层可以为特征提取网络ResNet18,然而,本公开实施例对此不作限制)提取特征,输出大小为
的特征图f,特征图f经过全连接(Full Connection,FC)层将通道数调整为K(K为模型支持识别的字符类别数,每个通道分别表示不同字符的预测概率值,示例性的,K可以为56),得到大小为
的特征图f’,最后经过Softmax层得到不同空间位置的字符的预测概率值,取预测概率值最大的字符id为该位置字符id(或者,可以预先设定一概率分数阈值,保留预测概率值大于或等于概率分数阈值的预测结果,示例性的,该概率分数阈值可以设置为0.5),对照如表1所示的字符与id对照表输出每个空间位置的预测结果y。
本公开实施例中,多邻域合并也可以称为多连通域合并。在一些示例性实施方式中,对不同空间位置的预测结果进行多邻域合并,具体为:对不同空间位置的预测结果进行八邻域合并。即,对每一个值为1的像素点,若其八邻域有一个像素点的值也为1,那么这两个像素点就归为一个字符。八邻域或八连通区域,是指对应位置的上、下、左、右、左上、右上、左下、右下,是紧邻的位置和斜向相邻的位置,共8个方向。例如,图3每个空间位置的预测结果y中三个w合并为一个w,四个r合并为一个r……
在一些示例性实施方式中,在对不同空间位置的预测结果进行多邻域合并时,如果连通域内包含元素数量小于3,则滤除该连通域内包含的元素,以去除孤立噪声点。
在一些示例性实施方式中,所述方法还包括:对不同空间位置的预测结果进行同行对齐。
在一些示例性实施方式中,对不同空间位置的预测结果进行同行对齐,包括:
计算多邻域合并后的每个连通域内所有像素X轴坐标的平均值avg_x和所有像素Y轴坐标的平均值avg_y;
按照avg_x从小到大的顺序依次遍历每个连通域,并将avg_y差值小于或等于c的像素进行同行对齐,c小于或等于5个像素宽度。
本实施例中,进行多邻域合并后,本来在同一行的各个字符的位置可能会不在一个高度,上下可能存在一两个或及几个像素的偏差,通过计算avg_x和avg_y将同一行的字符对齐。示例性的,c可以为2个像素宽度。将avg_y差值小于或等于2的像素认为是同一行,进行同行对齐,否则认为是换行。
示例性的,如图4所示,将包含手写体Television的待识别的书写文本轨迹输入手写体识别网络,设定概率分数阈值(假设为0.5),保留预测概率值大于或等于概率分数阈值的预测结果,得到不同空间位置的预测结果y,将预测结果y八连通域合并,在对每个空间位置的预测结果进行多邻域合并时,如果连通域内包含元素数量小于3,则滤除该连通域内包含的元素,以去除孤立噪声点。初始化最终识别结果字符串predict_string,计算每个连通 域内所含像素X轴坐标与Y轴坐标的平均值avg_x、avg_y,按照avg_x从小到大的顺序依次遍历每个连通域,将avg_y差值小于或等于c的像素进行同行对齐。同一行中按照avg_x从小到大的顺序依次写入最终识别结果字符串predict_string,返回校正后识别结果Television。
在一些示例性实施方式中,所述方法还包括:
根据预先建立的语料库,对识别结果中的英文单词进行自动校正。
本公开实施例的手写体识别方法,通过在网络后处理阶段加入基于动态规划的单词自动校正算法,提高识别准确率。
本公开实施例中,单词校正依托于语料库的建立,示例性的,所用语料库由以下三部分构成:
(1)古腾堡Gutenberg语料库数据(Gutenberg语料库大约有36000本免费电子图书);
(2)维基词典;
(3)英国国家语料库中的最常用单词列表。
然而,本公开实施例对此不作限制。
在一些示例性实施方式中,根据预先建立的语料库,对识别结果中的英文单词进行自动校正,包括:
检测识别结果中的英文单词是否为语料库中的英文单词;
当识别结果包含一个或多个英文单词不是语料库中的英文单词时,标记一个或多个英文单词为待校正单词,计算每个待校正单词到语料库中的英文单词的最小编辑距离(在计算时,可以在语料库中选择与待校正单词的相似比例大于或等于预设阈值的英文单词进行计算,例如,预设阈值可以为50%);
根据计算出的最小编辑距离对每个待校正单词进行校正。
本公开实施例中,最小编辑距离指的是将一个单词由当前单词变为另一单词所需的最少编辑次数,编辑操作具体分为插入、删除、替换三种。
在一些示例性实施方式中,根据计算出的最小编辑距离对每个待校正单词进行校正,包括:
初始化当前最小编辑距离检测值为1;
检测是否存在第一英文单词以及第一英文单词的个数,所述第一英文单词与当前待校正单词的最小编辑距离为当前最小编辑距离检测值;
当存在第一英文单词且第一英文单词的个数为1个时,将待校正单词校正为第一英文单词;
当存在第一英文单词且第一英文单词的个数为2个或2个以上时,按照语料库中出现次数对该2个或2个以上的第一英文单词进行排序以得到语料库中出现次数最多的第一英文单词,将待校正单词校正为语料库中出现次数最多的第一英文单词;
当不存在第一英文单词时,将当前最小编辑距离检测值自增1,并返回所述检测是否存在第一英文单词以及第一英文单词的个数的步骤进行循环检测,直至当前最小编辑距离检测值大于预先设置的最小编辑距离阈值停止检测。
在一些示例性实施方式中,预先设置的最小编辑距离阈值为2。
在一些示例性实施方式中,根据计算出的最小编辑距离对每个待校正单词进行校正,包括:
检测是否存在最小编辑距离为1的英文单词以及最小编辑距离为1的英文单词的个数;
当存在最小编辑距离为1的英文单词且最小编辑距离为1的英文单词的个数为1个时,将待校正单词校正为最小编辑距离为1的英文单词;
当存在最小编辑距离为1的英文单词且最小编辑距离为1的英文单词的个数为2个或2个以上时,按照语料库中出现次数对该2个或2个以上的最小编辑距离为1的英文单词进行排序以得到语料库中出现次数最多且最小编辑距离为1的英文单词,将待校正单词校正为语料库中出现次数最多且最小编辑距离为1的英文单词;
当不存在最小编辑距离为1的英文单词时,检测是否存在最小编辑距离为2的英文单词以及最小编辑距离为2的英文单词的个数;
当存在最小编辑距离为2的英文单词且最小编辑距离为2的英文单词的 个数为1个时,将待校正单词校正为最小编辑距离为2的英文单词;
当存在最小编辑距离为2的英文单词且最小编辑距离为2的英文单词的个数为2个或2个以上时,按照语料库中出现次数对所述2个或2个以上的最小编辑距离为2的英文单词进行排序以得到语料库中出现次数最多且最小编辑距离为2的英文单词,将待校正单词校正为语料库中出现次数最多且最小编辑距离为2的英文单词。
在一些示例性实施方式中,计算每个待校正单词到所述语料库中的英文单词的最小编辑距离,包括:
根据如下公式构建状态转移矩阵,并从D[1,1]依次递归计算至D[M,N]:
其中,D[i,j]表示从待校正单词的第i元素到目标英文单词的第j元素的最小编辑距离;待校正单词的字母数为M,目标英文单词的字母数为N,i为0至M之间的自然数,j为0至N之间的自然数,M和N均为大于或等于1的自然数,del_cost为删除成本,当需要删除一个字符时,del_cost=1;ins_cost为插入成本,当需要插入一个字符时,ins_cost=1;rep_cost为替换成本,当需要替换一个字符时,rep_cost=1;
将D[M,N]作为待校正单词到目标英文单词的最小编辑距离。
本公开实施例中,从D[1,1]依次递归计算至D[M,N],指的是,先计算矩阵元素D[1,1],然后计算与矩阵元素D[1,1]邻近的矩阵元素:D[1,2]、D[2,2]、D[2,1],再计算与矩阵元素D[1,2]、D[2,2]、D[2,1]邻近的元素:D[1,3]、D[2,3]、D[3,1]、D[3,2]、D[3,3]……,直到计算得到D[M,N]。
在一些示例性实施方式中,根据预先建立的语料库,对识别结果中的英文单词进行自动校正,实现过程如下:
(I)取出语料库中所有单词,统计出现次数;
(II)对于待校正单词,利用动态规划算法计算待校正单词到目标英文 单词的最小编辑距离,依次找出与当前待校正单词的最小编辑距离为0、1、2的单词。最小编辑距离指的是,将一个单词由当前单词变为另一单词所需的最少编辑次数,编辑操作具体分为插入、删除、替换三种。例如,从pay到play的最小编辑距离为1(一次插入操作);从pllay到play的最小编辑距离为1(一次删除操作);从alay到play的最小编辑距离为1(一次替换操作)。
以ggay->stay为例,计算ggay到stay的最小编辑距离的实现步骤如下:
1)构建源单词ggay为列,目标单词stay为行的矩阵,在ggay和stay前分别加入空字符#,得到如图5所示的动态规划算法初始矩阵;
2)用D[i,j]表示从源单词[0:i]到目标单词[0:j]所需的最小编辑距离,由于源单词和目标单词的字母数目均为4个,将D[4,4]作为ggay到stay的最小编辑距离,根据公式(1)所示的状态转移矩阵计算D[i,j]。
以D[1,1]为例,说明g->s最小编辑距离,g->s可由三种方式实现:
插入+删除:g->gs->s,编辑距离1+1=2;
删除+插入:g->#->s,编辑距离1+1=2;
替换:g->s,编辑距离1;
因此,g->s最小编辑距离D[1,1]=1。
然后依次计算D[1,2]、D[2,1]、D[2,2]、D[1,3]、D[2,3]、D[3,1]、D[3,2]、D[3,3]、D[1,4]、D[2,4]、D[3,4]、D[4,1]、D[4,2]、D[4,3]、D[4,4],最终得出ggay到stay的最小编辑距离为2。
在一些示例性实施方式中,按照以下三个优先顺序确定单词的最终校正结果:
编辑距离为0的单词(单词本身)>编辑距离为1的单词>编辑距离为2的单词;
是否在语料库中出现;
语料库中出现次数。
如图6所示,本公开实施例还提供了一种手写体识别模型的训练方法,包括:
步骤601、构建手写体识别模型的训练模型,该手写体识别模型包括图像特征提取层、全连接层和Softmax层,该训练模型包括手写体识别模型和高度压缩模块,其中,图像特征提取层用于提取输入文本图像的特征图,全连接层用于将特征图的通道数调整为手写体识别模型支持的字符数,Softmax层用于得到不同空间位置的书写文本的预测概率值,高度压缩模块设置在图像特征提取层和全连接层之间,用于对图像特征提取层提取的特征图的高度进行压缩;
步骤602、获取多个样本文本图像,样本文本图像中书写文本的行数为1行,且样本文本图像的高度为a个像素,a为大于或等于1的自然数;
步骤603、根据预设的损失函数,采用多个样本文本图像对训练模型进行训练;
步骤604、去除训练好的训练模型中的高度压缩模块,得到训练好的手写体识别模型。
本公开实施例中,对特征图全局分类的手写体识别方法要求模型能够进行像素级预测,在训练过程中利用包含单行书写文本的样本文本图像进行训练,使模型通过学习具备像素级预测能力。
在一些示例性实施方式中,如图7所示,高度压缩模块包括第二卷积(Conv)层、批量归一化(BN)层、激活函数层、权重计算(Softmax-h)层和高度压缩(HC)层,其中:
第二卷积层用于提取所述图像特征提取层提取的特征图的特征;
批量归一化层用于对所述第二卷积层提取的特征进行归一化处理;
激活函数层用于增加该高度压缩模块的非线性;
权重计算层用于求取每个像素在同一宽度值的所有像素中的权重值;
高度压缩层用于将输入文本图像的特征图在高度方向的每一列与权重值在高度方向的对应列对应位置相乘后求和,得到高度压缩后的特征图。本公开实施例中,图像的横向为宽度方向,图像的纵向为高度方向。
在一些示例性实施方式中,激活函数层可以使用ReLU为激活函数,但是,本公开实施例对此不作限制。
示例性的,如图7所示,输入文本图像x(大小1×H×W,1为通道数,H为高度,W为宽度),图像特征提取层(示例性的,该图像特征提取层可以为ResNet18)提取特征后,得到大小为
的特征图f。为允许进行联结主义时间分类器(Connectionist Temporal Classification,CTC)训练(CTCloss为针对序列学习设计的一种损失函数,因此,使用CTC loss需要将模型最后一层输出的二维特征图转化为一维序列),引入高度压缩模块Squeeze Model将二维特征图f压缩为一维(压缩实现过程如下:二维特征图f经过第二卷积层、批量归一化层、激活函数层和权重计算层,得到大小为
的权重特征图α(α包括每个像素在同一宽度值的所有像素中的权重值),f经过高度压缩层每一列分别与α的相同列对应位置相乘后求和,得到大小为
的一维特征图f2。图7中Softmax-h表示对特征图f以列为单位求Softmax,如公式(4)),最后经过全连接(FC)层和Softmax层输出特征大小:
f=F(x),f∈R
512×h×w (2)
e=S(f),e∈R
1×h×w (3)
c=softmax(FC(f2)),c∈R
w×K (6)
其中,公式(2)中的F表示特征提取器ResNet18,公式(3)中的S表示高度压缩模块Squeeze Model中的第二卷积层、批量归一化层、激活函数层,公式(4)表示高度压缩模块Squeeze Model中的权重计算层,公式(5) 表示高度压缩模块Squeeze Model中的高度压缩层(将f每一列分别与α的相同列对应位置相乘后求和),公式(6)表示FC层和Softmax层。
K为模型支持识别的字符类别数。
在一些示例性实施方式中,预设的损失函数包括联结主义时间分类器CTC损失函数。
其中,k∈in_label表示预测的字符与真实标签相同,k∈out_label表示预测的字符与真实标签不同。
本公开实施例的训练方法,为抑制预测过程中标签之外字符(记作负像素)的出现,在CTC loss基础上加入辅助损失函数
按照模型预测字符是否包含在真实标签内将预测字符分为in_label和out_label两类,通过加入辅助损失函数抑制预测过程中负像素的出现。
本公开实施例的训练方法,还可以通过通道剪枝和知识蒸馏对手写体识别模型进行轻量化处理,以使得模型在识别准确率无明显降低的前提下,显著地降低模型的参数量与计算量。
在一些示例性实施方式中,图像特征提取层包括多个第一卷积层,该训练方法还包括:
确定训练好的训练模型中每个第一卷积层的通道剪枝比例;
获取每个第一卷积层的待删减通道;
构建依赖图,依赖图包括多个第一卷积层之间的依赖关系;
对待删减通道执行剪枝操作,并根据所述依赖关系对齐通道。
本公开实施例的训练方法,可以通过通道剪枝对手写体识别模型进行轻 量化处理(只对第一卷积层进行通道剪枝,不对全连接层进行通道剪枝)。示例性的,通道剪枝可以包括如下步骤:
S1:使用手写体识别模型的训练模型进行训练,得到训练好的训练模型;
S2:确定训练好的训练模型中每个第一卷积层的通道剪枝比例;
根据模型部署环境的硬件资源确定模型的总压缩比例,本公开实施例中,总压缩比例=删减掉的通道数/压缩前模型通道数,当总压缩比例为0.75时,剪枝后的模型保留原始模型的1/4通道。
根据图像特征提取层的通道总数与第一卷积层的最大输出通道数的比值确定裁剪率级数。考虑到不同网络层对识别任务的重要程度有一定差异,因此会对不同网络层进行分级并对各级网络层分别赋予不同的裁剪率,不同的网络层的裁剪率级数可以不同。例如,当本公开实施例的图像特征提取层为ResNet18时,ResNet18的通道总数为3904,其中第一卷积层输出通道数最多为512,为使同一个第一卷积层中的所有通道能够划分到同一个等级,3904÷512取整为7,因此可以选用7级裁剪率。
假设设置模型总压缩比例Ratio为0.75,采用七级裁剪率,按照公式(9)得到通道压缩比例为[Ratio-value*3,Ratio-value*2,Ratio-value*1,Ratio,Ratio+value*1,Ratio+value*2,Ratio+value*3]=[0.5625,0.625,0.6875,0.75,0.8125,0.875,0.9375]。
统计手写体识别模型中每个第一卷积层的输出通道(output_channel:对应卷积层中卷积核的数量),按照在网络结构中的前后顺序划分为7份,依据上文所述的通道压缩比例分别对每一份中的第一卷积层赋予相应的通道剪枝比例(如第一份中的第一卷积层的通道剪枝比例为0.5625,第二份中的第一卷积层的通道剪枝比例为0.625,依次类推),得到每个第一卷积层需要删减的通道数,总的裁剪掉的通道数占裁剪前的通道数的比例为0.75。
S3:获取每个第一卷积层的待删减通道id;
计算S1训练得到的原始手写体识别模型各第一卷积层中每个卷积核权重绝对值之和,将其按照从小到大的顺序进行排序,结合S2中所得各第一 卷积层通道删减比例确定各第一卷积层中待删减通道id(删除权重绝对值之和小的卷积核,以减少该第一卷积层输出特征图的通道数)。
S4:构建依赖图,执行剪枝操作;
为保证剪枝后前后网络层之间的衔接,在剪枝前,构建整体网络每一层之间的依赖关系(后一层卷积层中的每个卷积核的通道数应等于前一层卷积层中卷积核的个数)。基于上述S3所得到的每个第一卷积层的待删减通道id,对相应网络层进行通道删减,执行剪枝过程中,遍历整个依赖图,根据依赖关系自动对齐通道,修复不一致的模块(例如,批量归一化层BN)。
例如,假设剪枝前模型和剪枝后模型分别如下:
(1)剪枝前模型:维度为h*w*1的图像经过第一个卷积层(conv1,卷积核:3*3*1*c1)输出维度为h*w*c1的特征图f1,f1经过第二个卷积层(conv2,卷积核:3*3*c1*c2)输出维度为h*w*c2的特征图;
(2)剪枝后模型:维度为h*w*1的图像经过第一个卷积层(conv1’,卷积核:3*3*1*c1’)输出维度为h*w*c1’的特征图f1’,f1’经过第二个卷积层(conv2’,卷积核:3*3*c1’*c2’)输出维度为h*w*c2’的特征图。
c1’,c2’分别由c1,c2乘以剪枝系数取整后得到,c1’由conv1和conv2之间的依赖关系得到(当前卷积层输出通道数c1’=下一个卷积层输入通道数c1’)。
本公开实施例中的对齐通道主要指后一个卷积层conv2中每个卷积核维度中通道数根据前一个卷积层conv1剪枝结果自适应调整的过程。剪枝前模型图像经过前一个卷积层conv1后输出维度h*w*c1,其中c1通道分别由conv1中的c1个3*3*1卷积核与输入图像卷积得到,通过通道剪枝将前一个卷积层conv1中卷积核个数压缩为c1’时,前一个卷积层conv1输出特征图维度相应调整为h*w*c1’,后一个卷积层conv2中每个卷积核通道数也需要从c1调整为c1’(调整过程中具体删减哪些通道与conv1通道剪枝裁剪后保留的卷积核对应)。
本公开实施例的训练方法,还可以通过微调+知识蒸馏剪枝后小模型,提高模型的识别准确率。
在一些示例性实施方式中,该训练方法还包括:
将训练好的训练模型作为教师模型,将剪枝后的训练模型作为学生模型;
构建教师模型与学生模型之间的均方误差损失函数,以及学生模型的预测字符与真实标签之间的交叉熵损失函数;
基于构建的均方误差损失函数和交叉熵损失函数,使用教师模型对学生模型进行训练。
由于通道剪枝后的手写体识别模型的识别精度低于剪枝前的原始训练好的手写体识别模型的识别精度,本公开实施例采用知识蒸馏——利用原始大模型对剪枝后小模型进行Logits蒸馏(一种知识蒸馏方式),从而提升剪枝后小模型的识别精度,实现过程如图8所示(图中ResNet_tiny表示通道剪枝后的特征提取网络,Squeeze Model表示高度压缩模块,分类器Classifer包括FC层和Softmax层),原始训练好的手写体识别模型作为教师(Teacher)模型,通道剪枝后得到的小模型作为学生(Student)模型,蒸馏网络分为两个部分,一部分仍采用手写体识别模型原始的计算损失方式——输入图像经过Student模型Softmax层输出不同字符概率值,输出的概率值(hard predictions)与真实标签(hardlabels)计算交叉熵损失(Cross Entropy Loss)函数(使正标签概率值逼近1,负标签概率值逼近0,所有负标签统一对待),即图8中的CTC Loss;另一部分计算Teacher模型与Student模型Softmax层输出概率值的均方误差损失(MSE Loss),使Student模型输出概率值逼近Teacher模型输出概率值,直接对两模型概率值计算损失函数,可以充分利用负标签所包含的信息。例如:某输入图像中:“2”更加形似“3”,模型Softmax层的输出值中“3”对应概率明显高于其他负标签概率值,而另一幅图中“2”更加形似“7”,模型Softmax层输出值中“7”对应的概率更高。这两个“2”对应的真实值(hard target)相同,但软目标(soft target)不同,soft target蕴含着比hard target多的信息,且soft target分布的熵相对高时,其soft target蕴含的知识就更丰富。
输入图像经过Teacher模型Softmax层的输出值作为软标签(softlabels),输入图像经过Student模型Softmax层的输出为软预测(softpredictions),soft labels与softpredictions计算MES loss。MSE Loss与CTC Loss加权求和作为 训练过程最终的Loss。
轻量化前后模型的参数量(Params)、运算量(Flops)、识别精度(字符准确率)对比效果如表2所示。
表2
本公开实施例的训练方法,轻量化后模型相较于原始模型(Baseline)在识别准确率无明显降低前提下,将参数量由13.37M压缩至3.53M,运算量由3.53G减少至1.09G。三种示例性的识别结果如图9A、图9B和图9C所示。
本公开实施例提供的手写体识别方法,设计了一种端到端的全篇手写体识别网络,采用图像特征提取层提取输入图像特征,对其全局分类实现全篇识别,改善了相关方法中识别效果受限于检测器检测性能的限制的问题,网络结构简单。
本公开实施例提供的手写体识别模型的训练方法,训练过程采用高度固定为a个像素的样本文本图像,为保证多行文本识别时送入网络的文字高度基本控制在a个像素,设计了一种自适应确定输入图像高度的方法;为降低不同字体大小造成的样本间差异,使训练过程快速收敛,预处理阶段采用轨迹点映射的方式将轨迹点转为目标高度的图像,保证送入网络的字体线宽一致。另外,针对书写过程中连笔、潦草等导致的部分字母识别错误问题,在网络后处理阶段加入基于动态规划的单词自动校正算法,建立语料库,对识别结果进行二次校正,提高识别准确率。针对识别网络参数量多、计算量大的问题,本公开实施例的训练方法采用通道剪枝+Logits蒸馏结合的方法对手写体识别模型进行轻量化,使模型在几乎不损失精度的前提下减少参数量与运算量,便于终端离线部署。
本公开实施例还提供了一种手写体识别装置,包括存储器;和连接至所述存储器的处理器,所述存储器用于存储指令,所述处理器被配置为基于存储在所述存储器中的指令,执行如本公开任一实施例所述的手写体识别方法的步骤。
如图10所示,在一个示例中,手写体识别装置可包括:第一处理器1010、第一存储器1020、第一总线系统1030和第一收发器1040,其中,第一处理器1010、第一存储器1020和第一收发器1040通过第一总线系统1030相连,第一存储器1020用于存储指令,第一处理器1010用于执行第一存储器1020存储的指令,以控制第一收发器1040收发信号。具体地,第一收发器1040可在第一处理器1010的控制下从文本输入界面中获取待识别的书写文本轨迹,第一处理器1010根据待识别的书写文本轨迹确定输入文本图像;将输入文本图像输入手写体识别模型,得到各个空间位置的预测结果,手写体识别模型包括图像特征提取层、全连接层和Softmax层,其中,图像特征提取层用于提取输入文本图像的特征图,全连接层用于将特征图的通道数调整为手写体识别模型支持的字符数,Softmax层用于得到不同空间位置的书写文本的预测概率值;对每个空间位置的预测结果进行多邻域合并,得到识别结果,通过第一收发器1040将得到的识别结果输出至文本输入界面。
应理解,第一处理器1010可以是中央处理单元(Central Processing Unit,CPU),第一处理器1010还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
第一存储器1020可以包括只读存储器和随机存取存储器,并向第一处理器1010提供指令和数据。第一存储器1020的一部分还可以包括非易失性随机存取存储器。例如,第一存储器1020还可以存储设备类型的信息。
第一总线系统1030除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图10中将各种总线都标为第一总线系统1030。
在实现过程中,处理设备所执行的处理可以通过第一处理器1010中的硬 件的集成逻辑电路或者软件形式的指令完成。即本公开实施例的方法步骤可以体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等存储介质中。该存储介质位于第一存储器1020,第一处理器1010读取第一存储器1020中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开任一实施例所述的手写体识别方法。通过执行可执行指令驱动预后分析的方法与本公开上述实施例提供的手写体识别方法基本相同,在此不做赘述。
在一些可能的实施方式中,本申请提供的手写体识别方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的手写体识别方法中的步骤,例如,所述计算机设备可以执行本申请实施例所记载的手写体识别方法。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本公开实施例还提供了一种手写体识别模型的训练装置,包括存储器;和连接至所述存储器的处理器,所述存储器用于存储指令,所述处理器被配置为基于存储在所述存储器中的指令,执行如本公开任一实施例所述的手写体识别模型的训练方法的步骤。
如图11所示,在一个示例中,手写体识别模型的训练装置可包括:第二处理器1110、第二存储器1120、第二总线系统1130和第二收发器1140,其中,第二处理器1110、第二存储器1120和第二收发器1140通过第二总线系 统1130相连,第二存储器1120用于存储指令,第二处理器1110用于执行第二存储器1120存储的指令,以控制第二收发器1140收发信号。具体地,第二收发器1140可在第二处理器1110的控制下获取多个样本文本图像,所述样本文本图像中书写文本的行数为1行,且样本文本图像的高度为a个像素,a为大于或等于1的自然数,第二处理器1110构建所述手写体识别模型的训练模型,所述手写体识别模型包括图像特征提取层、全连接层和Softmax层,所述训练模型包括所述手写体识别模型和高度压缩模块,其中,所述图像特征提取层用于提取所述输入文本图像的特征图,所述全连接层用于将特征图的通道数调整为所述手写体识别模型支持的字符数,所述Softmax层用于得到不同空间位置的书写文本的预测概率值,所述高度压缩模块设置在所述图像特征提取层和所述全连接层之间,用于对所述图像特征提取层提取的特征图的高度进行压缩;根据预设的损失函数,采用多个所述样本文本图像对所述训练模型进行训练;去除训练好的所述训练模型中的高度压缩模块,得到训练好的所述手写体识别模型。
应理解,第二处理器1110可以是中央处理单元(Central Processing Unit,CPU),第二处理器1110还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
第二存储器1120可以包括只读存储器和随机存取存储器,并向第二处理器1110提供指令和数据。第二存储器1120的一部分还可以包括非易失性随机存取存储器。例如,第二存储器1120还可以存储设备类型的信息。
第二总线系统1130除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图11中将各种总线都标为第二总线系统1130。
在实现过程中,处理设备所执行的处理可以通过第二处理器1110中的硬件的集成逻辑电路或者软件形式的指令完成。即本公开实施例的方法步骤可以体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储 器或者电可擦写可编程存储器、寄存器等存储介质中。该存储介质位于第二存储器1120,第二处理器1110读取第二存储器1120中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开任一实施例所述的手写体识别模型的训练方法。
在一些可能的实施方式中,本申请提供的手写体识别模型的训练方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的手写体识别模型的训练方法中的步骤,例如,所述计算机设备可以执行本申请实施例所记载的手写体识别模型的训练方法。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块 或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
虽然本公开所揭露的实施方式如上,但所述的内容仅为便于理解本公开而采用的实施方式,并非用以限定本发明。任何所属领域内的技术人员,在不脱离本公开所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (25)
- 一种手写体识别方法,包括:根据待识别的书写文本轨迹,确定输入文本图像;将所述输入文本图像输入手写体识别模型,得到所述输入文本图像中不同空间位置的预测结果,所述手写体识别模型包括图像特征提取层、全连接层和Softmax层,其中,所述图像特征提取层用于提取所述输入文本图像的特征图,所述全连接层用于将所述特征图的通道数调整为所述手写体识别模型支持的字符数,所述Softmax层用于得到不同空间位置的书写文本的预测概率值,每个所述空间位置包括至少一个像素的宽度*至少一个像素的高度;对不同空间位置的预测结果进行多邻域合并,得到识别结果。
- 根据权利要求1所述的手写体识别方法,其中,所述方法还包括:通过如下过程对所述手写体识别模型进行训练:构建所述手写体识别模型的训练模型,所述训练模型包括所述手写体识别模型和高度压缩模块,其中,所述高度压缩模块设置在所述图像特征提取层和所述全连接层之间,用于对所述图像特征提取层提取的特征图的高度进行压缩;获取多个样本文本图像,所述样本文本图像中书写文本的行数为1行,且样本文本图像的高度为a个像素,a为大于或等于1的自然数;根据预设的损失函数,采用多个所述样本文本图像对所述训练模型进行训练;去除训练好的所述训练模型中的高度压缩模块,得到训练好的所述手写体识别模型。
- 根据权利要求2所述的手写体识别方法,其中,所述高度压缩模块包括第二卷积层、批量归一化层、激活函数层、权重计算层和高度压缩层,其中:所述第二卷积层用于提取所述图像特征提取层提取的特征图的特征;所述批量归一化层用于对所述第二卷积层提取的特征进行归一化处理;所述激活函数层用于增加所述高度压缩模块的非线性;所述权重计算层用于求取每个像素在同一宽度值的所有像素中的权重值;所述高度压缩层用于将所述输入文本图像的特征图在高度方向的每一列与所述权重值在高度方向的对应列对应位置相乘后求和,得到高度压缩后的特征图。
- 根据权利要求2所述的手写体识别方法,其中,所述预设的损失函数包括联结主义时间分类器CTC损失函数。
- 根据权利要求1所述的手写体识别方法,其中,所述根据待识别的书写文本轨迹,确定输入文本图像,包括:获取所述待识别的书写文本轨迹,确定书写文本的等效行数;根据所述书写文本的等效行数计算所述输入文本图像的高度,根据所述输入文本图像的高度确定所述输入文本图像。
- 根据权利要求6所述的手写体识别方法,其中,所述根据所述书写文本的等效行数计算所述输入文本图像的高度,包括:所述输入文本图像的高度input_h=[raw_num×a],其中,raw_num为所述书写文本的等效行数,a为在对所述手写体识别模型进行训练时使用的样本文本图像的高度,[]为取整符号,a为大于或等于1的自然数,所述样本文本图像中书写文本的行数为1行。
- 根据权利要求6所述的手写体识别方法,其中,所述书写文本包括至 少一个字符,每个所述字符包括至少一个笔画,所述确定书写文本的等效行数,包括:确定所述待识别的书写文本轨迹中单行文本的高度trace_sl_h;计算所述书写文本的高度trace_h,其中,trace_h=(Ymax-Ymin+1),Ymin为所有笔画Y轴坐标最小值,Ymin为所有笔画Y轴坐标最大值;确定所述书写文本的等效行数raw_num,其中,raw_num=trace_h/trace_sl_h。
- 根据权利要求8所述的手写体识别方法,其中,每个所述笔画包括至少一个轨迹点,所述根据所述输入文本图像的高度确定所述输入文本图像,包括:计算所述输入文本图像与所述待识别的书写文本轨迹之间的缩放倍数ratio,其中,ratio=input_h/trace_h,input_h为所述输入文本图像的高度,trace_h为所述书写文本的高度;确定所述输入文本图像中的轨迹点坐标,其中,point_X=(point_x-xmin)×ratio,point_Y=(point_y-ymin)×ratio,point_x和point_y分别表示所述待识别的书写文本轨迹中的轨迹点X轴坐标和Y轴坐标,xmin和ymin分别表示所述待识别的书写文本轨迹中所有轨迹点的X轴坐标最小值和Y轴坐标最小值,point_X和point_Y分别表示所述输入文本图像中的轨迹点X轴坐标和Y轴坐标。
- 根据权利要求1所述的手写体识别方法,其中,在所述对不同空间位置的预测结果进行多邻域合并之后,所述方法还包括:对不同空间位置的预测结果进行同行对齐。
- 根据权利要求10所述的手写体识别方法,其中,所述对不同空间位置的预测结果进行同行对齐,包括:计算多邻域合并后的每个连通域内所有像素X轴坐标的平均值avg_x和所有像素Y轴坐标的平均值avg_y;按照avg_x从小到大的顺序依次遍历每个连通域,并将avg_y差值小于 或等于c的像素进行同行对齐,c小于或等于5个像素宽度。
- 根据权利要求1所述的手写体识别方法,其中,所述方法还包括:根据预先建立的语料库,对识别结果中的英文单词进行自动校正。
- 根据权利要求12所述的手写体识别方法,其中,所述根据预先建立的语料库,对识别结果中的英文单词进行自动校正,包括:检测识别结果中的英文单词是否为语料库中的英文单词;当识别结果包含一个或多个英文单词不是语料库中的英文单词时,标记所述一个或多个英文单词为待校正单词,计算每个所述待校正单词到所述语料库中的英文单词的最小编辑距离;根据计算出的最小编辑距离对每个所述待校正单词进行校正。
- 根据权利要求13所述的手写体识别方法,其中,所述根据计算出的最小编辑距离对每个所述待校正单词进行校正,包括:初始化当前最小编辑距离检测值为1;检测是否存在第一英文单词以及所述第一英文单词的个数,所述第一英文单词与所述待校正单词的最小编辑距离为所述当前最小编辑距离检测值;当存在所述第一英文单词且第一英文单词的个数为1个时,将所述待校正单词校正为所述第一英文单词;当存在所述第一英文单词且所述第一英文单词的个数为2个或2个以上时,按照语料库中出现次数对2个或2个以上的所述第一英文单词进行排序以得到语料库中出现次数最多的第一英文单词,将所述待校正单词校正为所述语料库中出现次数最多的第一英文单词;当不存在所述第一英文单词时,将所述当前最小编辑距离检测值自增1,并返回所述检测是否存在第一英文单词以及第一英文单词的个数的步骤进行循环检测,直至所述当前最小编辑距离检测值大于预先设置的最小编辑距离阈值停止检测。
- 根据权利要求13所述的手写体识别方法,其中,所述计算每个所述 待校正单词到所述语料库中的英文单词的最小编辑距离,包括:根据如下公式构建状态转移矩阵,并从D[1,1]依次递归计算至D[M,N]:其中,D[i,j]表示从所述待校正单词的第i元素到目标英文单词的第j元素的最小编辑距离,所述目标英文单词为所述语料库中的英文单词;所述待校正单词的字母数为M,所述目标英文单词的字母数为N,i为0至M之间的自然数,j为0至N之间的自然数,M和N均为大于或等于1的自然数,del_cost为删除成本,当需要删除一个字符时,del_cost=1;ins_cost为插入成本,当需要插入一个字符时,ins_cost=1;rep_cost为替换成本,当需要替换一个字符时,rep_cost=1;将D[M,N]作为所述待校正单词到所述目标英文单词的最小编辑距离。
- 一种手写体识别装置,包括存储器;和连接至所述存储器的处理器,所述存储器用于存储指令,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至15中任一项所述的手写体识别方法的步骤。
- 一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至15中任一项所述的手写体识别方法。
- 一种手写体识别模型的训练方法,包括:构建所述手写体识别模型的训练模型,所述手写体识别模型包括图像特征提取层、全连接层和Softmax层,所述训练模型包括所述手写体识别模型和高度压缩模块,其中,所述图像特征提取层用于提取输入文本图像的特征图,所述全连接层用于将特征图的通道数调整为所述手写体识别模型支持的字符数,所述Softmax层用于得到不同空间位置的书写文本的预测概率值,所述高度压缩模块设置在所述图像特征提取层和所述全连接层之间,用于对所述图像特征提取层提取的特征图的高度进行压缩;获取多个样本文本图像,所述样本文本图像中书写文本的行数为1行,且所述样本文本图像的高度为a个像素,a为大于或等于1的自然数;根据预设的损失函数,采用多个所述样本文本图像对所述训练模型进行训练;去除训练好的所述训练模型中的高度压缩模块,得到训练好的所述手写体识别模型。
- 根据权利要求18所述的训练方法,其中,所述高度压缩模块包括第二卷积层、批量归一化层、激活函数层、权重计算层和高度压缩层,其中:所述第二卷积层用于提取所述图像特征提取层提取的特征图的特征;所述批量归一化层用于对所述第二卷积层提取的特征进行归一化处理;所述激活函数层用于增加所述高度压缩模块的非线性;所述权重计算层用于求取每个像素在同一宽度值的所有像素中的权重值;所述高度压缩层用于将所述输入文本图像的特征图在高度方向的每一列与所述权重值在高度方向的对应列对应位置相乘后求和,得到高度压缩后的特征图。
- 根据权利要求18所述的训练方法,其中,所述预设的损失函数包括CTC损失函数。
- 根据权利要求18所述的训练方法,其中,所述图像特征提取层包括多个第一卷积层,所述方法还包括:确定训练好的所述训练模型中每个所述第一卷积层的通道剪枝比例;获取每个所述第一卷积层的待删减通道;构建依赖图,所述依赖图包括多个所述第一卷积层之间的依赖关系;对所述待删减通道执行剪枝操作,并根据所述依赖关系对齐通道。
- 根据权利要求22所述的训练方法,其中,所述方法还包括:将训练好的所述训练模型作为教师模型,将剪枝后的所述训练模型作为学生模型;构建所述教师模型与所述学生模型之间的均方误差损失函数,以及所述学生模型的预测字符与真实标签之间的交叉熵损失函数;基于构建的所述均方误差损失函数和交叉熵损失函数,使用所述教师模型对所述学生模型进行训练。
- 一种手写体识别模型的训练装置,包括存储器;和连接至所述存储器的处理器,所述存储器用于存储指令,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求18至23中任一项所述的手写体识别模型的训练方法的步骤。
- 一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求18至23中任一项所述的手写体识别模型的训练方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/132268 WO2024103292A1 (zh) | 2022-11-16 | 2022-11-16 | 手写体识别方法、手写体识别模型的训练方法及装置 |
CN202310754120.XA CN118053167A (zh) | 2022-11-16 | 2023-06-25 | 手写体识别方法、手写体识别模型的训练方法及装置 |
PCT/CN2023/123342 WO2024103997A1 (zh) | 2022-11-16 | 2023-10-08 | 手写体识别方法、手写体识别模型的训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/132268 WO2024103292A1 (zh) | 2022-11-16 | 2022-11-16 | 手写体识别方法、手写体识别模型的训练方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024103292A1 true WO2024103292A1 (zh) | 2024-05-23 |
Family
ID=91049010
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/132268 WO2024103292A1 (zh) | 2022-11-16 | 2022-11-16 | 手写体识别方法、手写体识别模型的训练方法及装置 |
PCT/CN2023/123342 WO2024103997A1 (zh) | 2022-11-16 | 2023-10-08 | 手写体识别方法、手写体识别模型的训练方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/123342 WO2024103997A1 (zh) | 2022-11-16 | 2023-10-08 | 手写体识别方法、手写体识别模型的训练方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118053167A (zh) |
WO (2) | WO2024103292A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815809A (zh) * | 2018-12-19 | 2019-05-28 | 天津大学 | 一种基于cnn的英文笔迹鉴别方法 |
WO2021212652A1 (zh) * | 2020-04-23 | 2021-10-28 | 平安国际智慧城市科技股份有限公司 | 英文手写文本识别方法、装置、电子设备及存储介质 |
WO2021238446A1 (zh) * | 2020-05-29 | 2021-12-02 | 京东方科技集团股份有限公司 | 文本识别方法、设备及存储介质 |
CN115116074A (zh) * | 2022-07-25 | 2022-09-27 | 微梦创科网络科技(中国)有限公司 | 一种手写体文字识别、及模型训练方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2021371167B2 (en) * | 2020-10-30 | 2024-02-15 | Ancestry.Com Operations Inc. | Improving handwriting recognition with language modeling |
KR102501631B1 (ko) * | 2020-12-15 | 2023-02-20 | 네이버 주식회사 | 손글씨 폰트 생성 서비스를 제공하는 방법 및 시스템 |
CN112633429A (zh) * | 2020-12-21 | 2021-04-09 | 安徽七天教育科技有限公司 | 一种学生手写选择题识别方法 |
CN112686345B (zh) * | 2020-12-31 | 2024-03-15 | 江南大学 | 一种基于注意力机制的脱机英文手写识别方法 |
CN112884034A (zh) * | 2021-02-06 | 2021-06-01 | 深圳点猫科技有限公司 | 基于弱监督的手写文本识别方法、装置、系统及介质 |
-
2022
- 2022-11-16 WO PCT/CN2022/132268 patent/WO2024103292A1/zh unknown
-
2023
- 2023-06-25 CN CN202310754120.XA patent/CN118053167A/zh active Pending
- 2023-10-08 WO PCT/CN2023/123342 patent/WO2024103997A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815809A (zh) * | 2018-12-19 | 2019-05-28 | 天津大学 | 一种基于cnn的英文笔迹鉴别方法 |
WO2021212652A1 (zh) * | 2020-04-23 | 2021-10-28 | 平安国际智慧城市科技股份有限公司 | 英文手写文本识别方法、装置、电子设备及存储介质 |
WO2021238446A1 (zh) * | 2020-05-29 | 2021-12-02 | 京东方科技集团股份有限公司 | 文本识别方法、设备及存储介质 |
CN115116074A (zh) * | 2022-07-25 | 2022-09-27 | 微梦创科网络科技(中国)有限公司 | 一种手写体文字识别、及模型训练方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN118053167A (zh) | 2024-05-17 |
WO2024103997A1 (zh) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558893B2 (en) | Systems and methods for recognizing characters in digitized documents | |
US10936862B2 (en) | System and method of character recognition using fully convolutional neural networks | |
Gao et al. | Reading scene text with fully convolutional sequence modeling | |
Ul-Hasan et al. | Offline printed Urdu Nastaleeq script recognition with bidirectional LSTM networks | |
Jain et al. | Unconstrained scene text and video text recognition for arabic script | |
CN110942074A (zh) | 字符切分识别方法、装置、电子设备、存储介质 | |
CN111783767B (zh) | 文字识别方法、装置、电子设备及存储介质 | |
EP3539051A1 (en) | System and method of character recognition using fully convolutional neural networks | |
CN111353501A (zh) | 一种基于深度学习的书本点读方法及系统 | |
Carbonell et al. | End-to-end handwritten text detection and transcription in full pages | |
Jain et al. | Unconstrained OCR for Urdu using deep CNN-RNN hybrid networks | |
CN114092938B (zh) | 图像的识别处理方法、装置、电子设备及存储介质 | |
CN111539417B (zh) | 一种基于深度神经网络的文本识别训练优化方法 | |
CN116311310A (zh) | 一种结合语义分割和序列预测的通用表格识别方法和装置 | |
CN115116074A (zh) | 一种手写体文字识别、及模型训练方法和装置 | |
Sahare et al. | Robust character segmentation and recognition schemes for multilingual Indian document images | |
Cojocaru et al. | Watch your strokes: improving handwritten text recognition with deformable convolutions | |
US10217020B1 (en) | Method and system for identifying multiple strings in an image based upon positions of model strings relative to one another | |
RU2633182C1 (ru) | Определение направления строк текста | |
WO2024103292A1 (zh) | 手写体识别方法、手写体识别模型的训练方法及装置 | |
CN115937852A (zh) | 一种基于文本驱动的高效弱监督语义分割方法及装置 | |
Kataria et al. | CNN-bidirectional LSTM based optical character recognition of Sanskrit manuscripts: A comprehensive systematic literature review | |
US20220398399A1 (en) | Optical character recognition systems and methods for personal data extraction | |
CN114187445A (zh) | 识别图像中文本的方法、装置、电子设备及存储介质 | |
CN111967391A (zh) | 医学化验单的文本识别方法和计算机可读存储介质 |