本发明实施例涉及互联网技术领域,尤其涉及一种手写识别方法、装置、电子设备及介质。
背景技术:
随着互联网技术的飞速发展,为了方便用户输入,通常会提供多种输入方式例如包括语音输入、手写输入和拼音输入等方式,当用户使用手写输入时,会通过手写识别模型对手写输入的数据进行识别,提高识别效率,使得用户的体验更好。
但是,现有技术中在手写数据进行识别的手写识别框架通常是基于切分、组合再识别的三阶段架构,在使用手写识别框架进行识别时,尤其是在针对连笔输入例如连笔草书和连笔行书等连笔手写进行识别时,由于连笔手写中间没有断笔,切分模块针对连笔手写进行切分时存在非正确切分的概率非常高,进而会导致识别的准确率较低。
技术实现要素:
本发明实施例提供了一种手写识别方法、装置、电子设备及介质,能够解决现有技术中非正确切分导致手写识别准确率低的问题,能够有效提高致手写识别准确率。
本发明实施例第一方面提供了一种手写识别方法,包括:
实时获取手写原始轨迹数据;
对所述手写原始轨迹数据进行压缩,得到压缩手写轨迹数据;
将所述压缩手写轨迹数据输入到压缩后的手写识别模型中进行识别,得到所述手写原始轨迹数据对应的文字识别结果,其中,所述手写识别模型是利用训练数据集中每个训练数据的手写轨迹数据训练得到的,压缩后的所述手写识别模型是对所述手写识别模型进行模型压缩得到的。
可选的,所述实时获取手写原始轨迹数据,包括:
对实时获取的所述手写输入数据进行数据预处理,其中,所述数据预处理包括重采样;
根据预处理后的所述手写输入数据,实时获取所述手写原始轨迹数据。
可选的,所述对所述手写原始轨迹数据进行压缩,得到压缩手写轨迹数据,包括:
对所述手写原始轨迹数据进行维度压缩,得到所述压缩手写轨迹数据,其中,所述压缩手写轨迹数据中每个维度的数据与所述手写识别模型的模型识别结果的相关性不低于设定阈值。
可选的,所述手写识别模型为端到端模型。
可选的,所述手写识别模型的训练步骤,包括:
获取训练数据集及与所述训练数据集对应的预选训练模型;
获取所述训练数据集中每个训练数据的手写轨迹数据;
利用每个训练数据的手写轨迹数据,对所述预选训练模型进行训练,得到已训练的所述预选训练模型作为所述手写识别模型。
可选的,所述获取训练数据集,包括:
获取历史手写轨迹数据集,其中,所述历史手写轨迹数据集包括水平手写的轨迹数据、竖直手写的轨迹数据、叠写的轨迹数据和旋转手写的轨迹数据中的一种或多种;
对所述历史手写轨迹数据集中的手写数据进行数据增强,将数据增强后的所述历史手写轨迹数据集作为训练数据集。
可选的,所述利用每个训练数据的手写轨迹数据,对所述预选训练模型进行训练,得到所述手写识别模型,包括:
获取每个训练数据中的困难样本和简单样本;
采用先训练困难样本后训练简单样本的方式,对所述预选模型进行训练;
在对所述预选模型进行训练过程中,对所述预选训练模型进行微调,得到已训练的所述预选训练模型作为所述手写识别模型。
可选的,在对所述预选训练模型进行训练,得到已训练的所述预选训练模型作为所述手写识别模型之后,所述方法还包括:
对已训练的所述预选训练模型进行模型蒸馏,得到蒸馏后的所述预选训练模型,并将蒸馏后的所述预选训练模型作为压缩后的所述手写识别模型。
本发明实施例第二方面提供了一种手写识别装置,包括:
手写轨迹获取模块,用于实时获取手写原始轨迹数据;
压缩轨迹获取模块,用于对所述手写原始轨迹数据进行压缩,得到压缩手写轨迹数据;
识别模块,用于将所述压缩手写轨迹数据输入到压缩后的手写识别模型中进行识别,得到所述手写原始轨迹数据对应的文字识别结果,其中,所述手写识别模型是利用训练数据集中每个训练数据的手写轨迹数据训练得到的,压缩后的所述手写识别模型是对所述手写识别模型进行模型压缩得到的。
可选的,所述手写轨迹获取模块,用于对实时获取的手写输入数据进行数据预处理,其中,所述数据预处理包括重采样;根据预处理后的所述手写输入数据,实时获取所述手写原始轨迹数据。
可选的,所述压缩轨迹获取模块,用于对所述手写原始轨迹数据进行维度压缩,得到所述压缩手写轨迹数据,其中,所述压缩手写轨迹数据中每个维度的数据与所述手写识别模型的模型识别结果的相关性不低于设定阈值。
可选的,所述手写识别模型为端到端模型。
可选的,还包括:
模型训练模块,用于获取训练数据集及与所述训练数据集对应的预选训练模型;获取所述训练数据集中每个训练数据的手写轨迹数据;利用每个训练数据的手写轨迹数据,对所述预选训练模型进行训练,得到已训练的所述预选训练模型作为所述手写识别模型。
可选的,所述模型训练模块包括:
训练数据集获取单元,用于获取历史手写轨迹数据集,其中,所述历史手写轨迹数据集包括水平手写的轨迹数据、竖直手写的轨迹数据、叠写的轨迹数据和旋转手写的轨迹数据中的一种或多种;对所述历史手写轨迹数据集中的手写数据进行数据增强,将数据增强后的所述历史手写轨迹数据集作为训练数据集。
可选的,所述模型训练模块包括:
模型训练单元,用于获取每个训练数据中的困难样本和简单样本;采用先训练困难样本后训练简单样本的方式,对所述预选模型进行训练;在对所述预选模型进行训练过程中,对所述预选训练模型进行微调,得到已训练的所述预选训练模型作为所述手写识别模型。
可选的,还包括:
压缩模型获取模块,用于在对所述预选训练模型进行训练,得到已训练的所述预选训练模型作为所述手写识别模型之后,对已训练的所述预选训练模型进行模型蒸馏,得到蒸馏后的所述预选训练模型,并将蒸馏后的所述预选训练模型作为压缩后的所述手写识别模型。
本发明实施例第三方面提供了一种用于手写识别的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于如上述手写识别方法的步骤。
本发明实施例第四方面提供了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如上述手写识别方法的步骤。
本发明实施例的有益效果如下:
基于上述技术方案,在实时获取手写原始轨迹数据之后,再将手写原始轨迹数据进行压缩,将得到的压缩手写轨迹数据作为输入,通过压缩的端到端模型对压缩手写轨迹数据的手写序列特征进行识别,得到文字识别结果;与现有技术中采用切分和组合识别相比,在针对连笔输入例如连笔草书和连笔行书等连笔手写进行识别时,由于连笔手写中间没有断笔,切分模块存在非正确切分的概率非常高,导致识别的准确率较低,而使用压缩后的手写识别模型,避开了的非正确切分的切分模块,以手写原始轨迹数据进行压缩后的压缩手写轨迹数据作为输入,使用手写序列特征进行识别,能够有效降低由于现有技术出现非正确切分导致识别准确率低的问题,进而能够有效提高了识别准确度。
附图说明
图1为本发明实施例中手写识别方法的方法流程图;
图2为本发明实施例中手写识别模型的训练方法的方法流程图;
图3为本发明实施例中手写识别装置的结构示意图;
图4为本发明实施例中用于手写识别装置作为设备时的结构框图;
图5为本发明实施例中一些实施例中服务端的结构框图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明实施例的技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明实施例技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
针对使用表情图片进行回复的效率低的技术问题,本发明实施例提供了一种手写识别方法,该方案用于实时获取手写原始轨迹数据;将所述手写原始轨迹数据输入到预设的手写识别模型中进行识别,得到所述手写原始轨迹数据对应的文字识别结果,其中,所述手写识别模型是利用训练数据集中每个训练数据的手写轨迹数据训练得到的。
由此可知,在实时获取手写原始轨迹数据之后,再将手写原始轨迹数据进行压缩,将得到的压缩手写轨迹数据作为输入,通过压缩的端到端模型对压缩手写轨迹数据的手写序列特征进行识别,得到文字识别结果;与现有技术中采用切分和组合识别相比,在针对连笔输入例如连笔草书和连笔行书等连笔手写进行识别时,由于连笔手写中间没有断笔,切分模块存在非正确切分的概率非常高,导致识别的准确率较低,而使用压缩后的手写识别模型,避开了的非正确切分的切分模块,以手写原始轨迹数据进行压缩后的压缩手写轨迹数据作为输入,使用手写序列特征进行识别,能够有效降低由于现有技术出现非正确切分导致识别准确率低的问题,进而能够有效提高了识别准确度。
如图1所示,本发明实施例提供了一种手写识别方法,包括以下步骤:
s101、实时获取手写原始轨迹数据;
s102、对所述手写原始轨迹数据进行压缩,得到压缩手写轨迹数据;
s103、将所述压缩手写轨迹数据输入到压缩后的手写识别模型中进行识别,得到所述手写原始轨迹数据对应的文字识别结果,其中,所述手写识别模型是利用训练数据集中每个训练数据的手写轨迹数据训练得到的,压缩后的所述手写识别模型是对所述手写识别模型进行模型压缩得到的。
其中,在步骤s101中,可以实时根据用户在电子设备的显示屏上的手写输入数据,实时获取手写原始轨迹数据。例如,在用户在显示屏上每写一笔,根据每写一笔的手写输入数据,得到每写一笔的手写原始轨迹数据;如此,能够确保获取的手写原始轨迹数据的实时性。
本说明书实施例中,电子设备例如可以是智能手机、平板电脑、笔记本电脑和电子书阅读器等;进一步的,显示屏例如可以是lcd屏、led屏和电子墨水屏等,本说明书不作具体限制。
具体来讲,手写输入数据可以包括用户用电子笔进行手写的轨迹数据和用户手指进行手写的轨迹数据,本说明书不作具体限制。
在实时获取手写原始轨迹数据时,可以对实时获取的手写输入数据进行数据预处理,其中,数据预处理包括重采样;根据预处理后的手写输入数据,实时获取手写原始轨迹数据。此时,数据预处理还可以包括轨迹旋转,也可以包括重采样和轨迹旋转,还可以包括重采样、轨迹旋转和轨迹清洗等。以及在获取手写原始轨迹数据之后,对手写原始轨迹数据进行压缩,得到压缩手写轨迹数据。
具体来讲,数据预处理通常包括重采样和轨迹旋转,以使得在根据预处理后的手写输入数据,实时获取手写原始轨迹数据时,使得获取到手写原始轨迹数据的精确度更高。
具体地,为了解决用户在不同电子设备上或手写速度不同带来的轨迹点采集频率不同,所以需要对手写输入数据进行重采样,去除手写输入数据中的冗余点,此时,重采样可以包括基于角度的重采样或基于距离的重采样,还可以是基于角度与距离的重采样,例如,可以基于cos夹角小于20和30等度,和/或,距离小于4、5和6等像素等设定条件来去除冗余点。在去除冗余点后,手写输入数据仅保留了手写骨架信息;如此,由于手写输入数据仅保留了手写骨架信息,去除了干扰冗余信息,使得实时获取的手写原始轨迹数据的精确度更高,进而使得在后续识别时,识别的准确度更高。
以及,为了提高针对用户不规范手写导致获取的手写原始轨迹数据的识别准确度,可以将手写输入数据进行轨迹旋转,此时,可以将手写输入数据作正负15度和20度等的旋转,再针对旋转后的轨迹数据进行重采样,以得到预处理后的手写输入数据作为手写原始轨迹数据。如此,使得手写原始轨迹数据去除了干扰冗余信息,还能降低用户不规范手写导致识别准确度低的问题,从而能够进一步手写原始轨迹数据的精确度更高。其中,用户不规范手写包括用户斜写和朝上写等。
在实时获取手写原始轨迹数据执行,执行步骤s102。
在步骤s102中,在实时获取手写原始轨迹数据之后,在对手写原始轨迹数据进行压缩时,可以对手写原始轨迹数据进行维度压缩,得到压缩手写轨迹数据,其中,压缩手写轨迹数据中每个维度的数据与手写识别模型的模型识别结果的相关性不低于设定阈值。也可以对手写原始轨迹数据进行特征选取,得到压缩手写轨迹数据。
具体来讲,可以采用如主成分分析(pca)方法等降维方法查找能够代表手写原始轨迹数据的原始特征的主要特征保留,确保保留的每个维度的数据与模型识别结果的相关性不低于设定阈值,根据保留的每个维度的数据,获取到压缩手写轨迹数据。其中,设定阈值可以实际需求来设定,例如可以选取对模型识别结果的相关性最高的k个特征进行保留,设定阈值可以根据k个特征中相关性最低的一个特征来设定,其中,k为不小于2的整数。
由于压缩手写轨迹数据中每个维度的数据与模型识别结果的相关性不低于设定阈值,使得压缩手写轨迹数据包含了代表手写原始轨迹数据的原始特征的主要特征,如此,使得在压缩手写轨迹输入输入到压缩后的手写识别模型中进行识别时,能够确保识别准确度。
本说明书实施例中,在对手写原始轨迹数据进行维度压缩,得到压缩手写轨迹数据之后,使得后续在使用压缩后的手写识别模型进行识别过程中,经过特征选取,压缩后的手写识别模型的隐藏层的单元维度会大幅度下降,例如从512为维降低到256维或128维等,在维度降低的情况下其计算效率会显著提高,进而提高压缩后的手写识别模型识别的实时性。
在获取到压缩手写轨迹数据之后,执行步骤s103。
在执行步骤s103之前,需要预先训练出手写识别模型,然后将训练出的手写识别模型进行模型压缩,得到压缩后的手写识别模型。以及在训练出手写识别模型之后,将压缩手写轨迹数据输入到压缩后的手写识别模型中进行识别,得到文字识别结果,其中,手写识别模型是利用训练数据集中每个训练数据的手写轨迹数据训练得到的,压缩后的手写识别模型是对手写识别模型进行模型压缩得到的。
本说明书实施例中,手写识别模型为端到端模型,以使得手写识别模型的输入为压缩手写轨迹数据,输出为文字识别结果,能够有效现有技术中使用多模块进行识别的缺陷。
此时,由于手写识别模型是利用训练数据集中每个训练数据的手写轨迹数据训练得到的,且压缩手写轨迹数据是对手写原始轨迹数据进行维度压缩而得到的,能够确保压缩手写轨迹数据与训练的手写轨迹数据保持较大的相似性,如此,在压缩手写轨迹数据输入到手写识别模型中进行识别时,能够有效提高识别准确度。而且由于压缩手写轨迹数据中每个维度的数据与模型识别结果的相关性不低于设定阈值,使得压缩手写轨迹数据包含了代表手写原始轨迹数据的原始特征的主要特征,如此,使得在压缩手写轨迹输入输入到压缩后的手写识别模型中进行识别时,能够确保识别准确度。
本说明书实施例中,在训练出手写识别模型时,如图2所示,手写识别模型的训练步骤包括:
s201、获取训练数据集及与所述训练数据集对应的预选训练模型;
s202、获取所述训练数据集中每个训练数据的手写轨迹数据;
s203、利用每个训练数据的手写轨迹数据,对所述预选训练模型进行训练,得到已训练的所述预选训练模型作为所述手写识别模型。
其中,在步骤201中,可以采集大量用户的手写轨迹数据,将采集的所有或部分手写轨迹数据作为训练数据集,以及从针对训练数据集识别准确率大于预设阈值的至少一个模型中选取一个模型作为预选训练模型,通常是选取识别准确率最高的一个模型作为预选训练模型。当然,也可以选取识别准确率次高或第三高的一个模型作为预选训练模型。例如,在获取到训练数据集之后,现有模型a1、a2、a3和a4针对训练数据集的识别准确率依次为85%,70%,65%和92%,若预设阈值为75%,由于92%>85%>75%,则从a1和a4中随机选取一个模型作为预选训练模型;当然,为了使得后续训练过程的时间缩短,则可以选取识别准确率最高的a4作为预选训练模型。
本说明书实施例中,在获取训练数据集时,还可以获取历史手写轨迹数据集,其中,历史手写轨迹数据集包括水平手写的轨迹数据、竖直手写的轨迹数据、叠写的轨迹数据和旋转手写的轨迹数据中的一种或多种;可以将获取的历史手写轨迹数据集中的部分数据或全部数据作为训练数据集。
具体来讲,可以通过程序生成多种例如5种和6种等类型数据来模拟真实自由书写场景,包含水平行写,竖直写,叠写和旋转写等等,从而生成水平手写的轨迹数据、竖直手写的轨迹数据、叠写的轨迹数据和旋转手写的轨迹数据等;在根据水平手写的轨迹数据、竖直手写的轨迹数据、叠写的轨迹数据和旋转手写的轨迹数据等,获取到历史手写轨迹数据。
本说明书实施例中,在获取获取历史手写轨迹数据集,还可以对历史手写轨迹数据集中的手写数据进行数据增强,将数据增强后的历史手写轨迹数据集作为训练数据集,此时,使得训练数据集中训练数据更多也更丰富。在训练数据更多也更丰富的基础上,能够提高模型训练效果,使得利用训练数据训练出的手写识别模型的准确度也会更高。
在获取训练数据集之后,执行步骤s202。
在步骤s202中,可以对训练数据集中的每个训练数据进行数据预处理;根据预处理后的每个训练数据,获取每个训练数据的手写轨迹数据。其中,数据预处理包括重采样和轨迹旋转等中的至少一种。此时,数据预处理可以包括重采样或轨迹旋转,也可以包括重采样和轨迹旋转,还可以包括重采样、轨迹旋转和轨迹清洗等。
具体来讲,数据预处理通常包括重采样和轨迹旋转,以使得在根据预处理后的每个训练数据,获取每个训练数据的手写轨迹数据时,使得获取的每个训练数据的手写轨迹数据的精确度更高。
本说明书实施例中,步骤s202的具体实施方式可以参考上述步骤s102的叙述,为了说明书的简洁,在此就不再赘述了。
在获取到每个训练数据的手写轨迹数据之后,执行步骤s203。
在步骤s103中,在利用每个训练数据的手写轨迹数据,对预选训练模型进行训练时,可以采用困难样本先训练后训练简单样本,并在训练过程中对预选训练模型进行微调(finetune),最终得到满足约束条件的模型作为已训练的预选训练模型,并将已训练的预选训练模型作为手写识别模型。
具体地,可以首先获取每个训练数据中的困难样本和简单样本;再采用先训练困难样本后训练简单样本的方式,对预选模型进行训练;在对预选模型进行训练过程中,对预选训练模型进行微调,得到已训练的预选训练模型,并将已训练的预选训练模型作为手写识别模型。
本说明书实施例中,预选训练模型可以是gru(gatedrecurrentunit)神经网络,长短期记忆网络(longshort-termmemory,简称lstm),attention网络、encoder-decoder网络和准循环神经网络(quasi-recurrentneuralnetwork,简称qrnn)等。
具体来讲,在训练过程中对预选训练模型进行微调时,可以将预选训练模型中的网络调整为提取贝塞尔特征的网络与qrnn网络的组合或提取贝塞尔特征的网络与gru网络的组合,区别在于qrnn结构的识别速度更快;再比如可以用提取差分特征的网络与blstm网络的组合或原始轨迹、一维卷积层和blstm网络的组合,区别在于后者加了一层卷积层提取特征,效果会更好一些,但是时间开销要大。
当然,在训练过程中对预选训练模型进行微调时,还可以将预选训练模型中的网络调整为gru/lstm网络与全连接层的组合,attention网络和encoder-decoder网络的组合等,本说明书不作具体限制。
如此,在训练过程中对预选训练模型进行微调,可以使用预选训练模型中的网络可以使用其它网络进行快速替换,能够更快的找到较佳的网络,以缩短微调时长,提高训练效率,进而能够更快的训练出满足约束条件的模型为已训练的预选训练模型,并将已训练的预选训练模型作为手写识别模型。
本说明书实施例中,约束条件可以包括识别准确率大于设定准确率,差准率大于设定查准率、召回率大于设定召回率和损失函数求解等条件中的至少一种。
由于在获取训练数据集时,采用了对历史手写轨迹数据集中的手写数据进行数据增强的方式来获取,使得训练数据集中的训练数据更多也更丰富;而且采用了预选训练模型进行训练时,采用了困难样本先训练简单样本后训练的方式,并在训练过程中采用了微调。此时,由于采用了困难样本先训练简单样本后训练的方式,使得模型在提高识别困难样本准确度的基础上,后期通过微调来提高模型对简单样本的识别准确度,从而确保了最终得到的端到端模型识别的识别准确度更高。即,能够确保针对简单样本的识别准确度的基础上提高针对困难样本的识别准确度。
如此,在步骤s103中,在实时获取压缩手写轨迹数据之后,将压缩手写轨迹数据输入到通过步骤s201-s203训练得到的端手写识别模型中进行识别,将识别出的文本作为文字识别结果。由于步骤s201-s203训练得到的端手写识别模型够确保针对简单样本的识别准确度的基础上提高针对困难样本的识别准确度,使得在将压缩手写轨迹数据输入后识别出的文字识别结果的准确度也较高。
本说明书实施例中,在通过步骤s201-s203训练得到已训练的预选训练模型之后,还需要对已训练的预选训练模型进行模型压缩,得到压缩后的预选训练模型,并将压缩后的预选训练模型作为压缩后的手写识别模型;如此,在执行步骤s103时,将压缩手写轨迹数据输入到压缩后的预选训练模型中进行识别,得到文字识别结果。
由于压缩手写轨迹数据是对手写原始轨迹数据进行维度压缩得到的,使得后续在使用压缩后的手写识别模型进行识别过程中,经过特征选取,压缩后的手写识别模型的隐藏层的单元维度会大幅度下降,例如从512为维降低到256维或128维等,在维度降低的情况下其计算效率会显著提高,进而提高压缩后的手写识别模型识别的实时性。而且由于压缩后
具体来讲,模型压缩方法包括量化(线性量化与非线性量化)、蒸馏、剪枝(结构化与非结构化)、nas和矩阵分解等,如此,可以采用模型压缩方式对已训练的预选训练模型进行模型压缩,使得压缩后的预选训练模型模型更小,使得端到端模型更小,其计算量和存储量也会变下,从而满足部署到移动终端的要求。
本说明书实施例中,模型压缩方法优选模型蒸馏,此时,可以对已训练的预选训练模型进行模型蒸馏,得到蒸馏后的预选训练模型,并将蒸馏后的预选训练模型作为压缩后的手写识别模型;再将压缩手写轨迹数据输入到压缩后的手写识别模型中进行识别,得到所述文字识别结果。
具体来讲,模型蒸馏包括模型蒸馏可以包括基于特征的蒸馏,基于logits的蒸馏和基于关系的蒸馏等方法,蒸馏后模型参数量能从8m缩小到3m,且精度不下降,如此,使得端到端模型的模型更小,且识别准确度也不降低;在采用模型蒸馏之后,还可以采用非线性量化处理,3m参数量模型如果在移动端存储,每个参数存为float类型,则模型大小为3m×4byte=12m,通常会超过移动终端的常规存储,而在做非线性量化处理后,可以将模型参数存为int8类型,即最终存储大小为3m×1byte=3m,能够满足部署到移动终端的要求。如此,使得蒸馏后的模型复杂度更小,但精度基本不变的小模型作为压缩后的手写识别模型。
例如,已训练的预选训练模型为复杂模型,具体为4层双向lstm+2fc(全连接层)+ctcloss,采用基于logits的蒸馏方法,用复杂模型进行蒸馏得到一个2层单向lstm+1fc+ctcloss的小模型。参数量缩小一倍以上,计算量也相应减少,从而达到能够每一笔做一次模型预测的要求,实现实时流式输出。
如此,由于压缩手写轨迹数据是对手写原始轨迹数据进行维度压缩得到的,使得后续在使用压缩后的手写识别模型进行识别过程中,经过特征选取,压缩后的手写识别模型的隐藏层的单元维度会大幅度下降,且压缩后的手写识别模型的模型参数量缩小,在隐藏层的单元维度会大幅度下降且模型参数量缩小的情况下,会使得压缩后的手写识别模型的计算效率增大,在计算效率增大的情况下,能够有效确保识别的实时性。
本发明实施例的有益效果如下:
基于上述技术方案,在实时获取手写原始轨迹数据之后,再将手写原始轨迹数据进行压缩,将得到的压缩手写轨迹数据作为输入,通过压缩的端到端模型对压缩手写轨迹数据的手写序列特征进行识别,得到文字识别结果;与现有技术中采用切分和组合识别相比,在针对连笔输入例如连笔草书和连笔行书等连笔手写进行识别时,由于连笔手写中间没有断笔,切分模块存在非正确切分的概率非常高,导致识别的准确率较低,而使用压缩后的手写识别模型,避开了的非正确切分的切分模块,以手写原始轨迹数据进行压缩后的压缩手写轨迹数据作为输入,使用手写序列特征进行识别,能够有效降低由于现有技术出现非正确切分导致识别准确率低的问题,进而能够有效提高了识别准确度。
而且由于压缩手写轨迹数据是对手写原始轨迹数据进行维度压缩得到的,使得后续在使用压缩后的手写识别模型进行识别过程中,经过特征选取,压缩后的手写识别模型的隐藏层的单元维度会大幅度下降,且压缩后的手写识别模型的模型参数量缩小,在隐藏层的单元维度会大幅度下降且模型参数量缩小的情况下,会使得压缩后的手写识别模型的计算效率增大,在计算效率增大的情况下,能够有效确保识别的实时性。
装置实施例
参照图3,示出了本发明的一种手写识别装置实施例的结构框图,具体可以包括:
手写轨迹获取模块301,用于实时获取手写原始轨迹数据;
压缩轨迹获取模块302,用于对所述手写原始轨迹数据进行压缩,得到压缩手写轨迹数据;
识别模块303,用于将所述压缩手写轨迹数据输入到压缩后的手写识别模型中进行识别,得到所述手写原始轨迹数据对应的文字识别结果,其中,所述手写识别模型是利用训练数据集中每个训练数据的手写轨迹数据训练得到的,压缩后的所述手写识别模型是对所述手写识别模型进行模型压缩得到的。
在一种可选的实施例中,手写轨迹获取模块301,用于对实时获取的手写输入数据进行数据预处理,其中,所述数据预处理包括重采样;根据预处理后的所述手写输入数据,实时获取所述手写原始轨迹数据。
在一种可选的实施例中,压缩轨迹获取模块302,用于对所述手写原始轨迹数据进行维度压缩,得到所述压缩手写轨迹数据,其中,所述压缩手写轨迹数据中每个维度的数据与所述手写识别模型的模型识别结果的相关性不低于设定阈值。
在一种可选的实施例中,所述手写识别模型为端到端模型。
在一种可选的实施例中,所述装置还包括:
模型训练模块,用于获取训练数据集及与所述训练数据集对应的预选训练模型;获取所述训练数据集中每个训练数据的手写轨迹数据;利用每个训练数据的手写轨迹数据,对所述预选训练模型进行训练,得到已训练的所述预选训练模型作为所述手写识别模型。
在一种可选的实施例中,所述模型训练模块包括:
训练数据集获取单元,用于获取历史手写轨迹数据集,其中,所述历史手写轨迹数据集包括水平手写的轨迹数据、竖直手写的轨迹数据、叠写的轨迹数据和旋转手写的轨迹数据中的一种或多种;对所述历史手写轨迹数据集中的手写数据进行数据增强,将数据增强后的所述历史手写轨迹数据集作为训练数据集。
在一种可选的实施例中,所述模型训练模块包括:
模型训练单元,用于获取每个训练数据中的困难样本和简单样本;采用先训练困难样本后训练简单样本的方式,对所述预选模型进行训练;在对所述预选模型进行训练过程中,对所述预选训练模型进行微调,得到已训练的所述预选训练模型作为所述手写识别模型。
在一种可选的实施例中,所述装置还包括:
压缩模型获取模块,用于在对所述预选训练模型进行训练,得到已训练的所述预选训练模型作为所述手写识别模型之后,对已训练的所述预选训练模型进行模型蒸馏,得到蒸馏后的所述预选训练模型,并将蒸馏后的所述预选训练模型作为压缩后的所述手写识别模型。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种手写识别装置作为设备时的结构框图。例如,装置900可以是移动来电,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,装置900可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件908,音频组件910,输入/输出(i/o)的接口912,传感器组件914,以及通信组件916。
处理组件902通常控制装置900的整体操作,诸如与显示,来电呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件902可以包括一个或多个处理器920来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理组件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
存储器904被配置为存储各种类型的数据以支持在设备900的操作。这些数据的示例包括用于在装置900上操作的任何应用程序或方法的指令,联系人数据,来电簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
电源组件906为装置900的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为装置900生成、管理和分配电力相关联的组件。
多媒体组件908包括在所述装置900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动运动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当设备900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(mic),当装置900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
i/o接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件914包括一个或多个传感器,用于为装置900提供各个方面的状态评估。例如,传感器组件914可以检测到设备900的打开/关闭状态,组件的相对定位,例如所述组件为装置900的显示器和小键盘,传感器组件914还可以检测装置900或装置900一个组件的位置改变,用户与装置900接触的存在或不存在,装置900方位或加速/减速和装置900的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件916被配置为便于装置900和其他设备之间有线或无线方式的通信。装置900可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信部件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件916还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
在示例性实施例中,装置900可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由装置900的处理器920执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
图5是本发明的一些实施例中服务器的结构框图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(设备或者服务器)的处理器执行时,使得装置能够执行一种手写识别方法,实时获取手写原始轨迹数据;对所述手写原始轨迹数据进行压缩,得到压缩手写轨迹数据;将所述压缩手写轨迹数据输入到压缩后的手写识别模型中进行识别,得到所述手写原始轨迹数据对应的文字识别结果,其中,所述手写识别模型是利用训练数据集中每个训练数据的手写轨迹数据训练得到的,压缩后的所述手写识别模型是对所述手写识别模型进行模型压缩得到的。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。