手写模型训练方法、文本识别方法、装置、设备及介质与流程

文档序号:16263521发布日期:2018-12-14 21:45阅读:167来源:国知局
手写模型训练方法、文本识别方法、装置、设备及介质与流程

本发明涉及中文文本识别领域,尤其涉及一种手写模型训练方法、文本识别方法、装置、设备及介质。

背景技术

采用传统文本识别方法在识别较为潦草的非规范文本(手写中文文本)时,识别的精确度不高,使得其识别效果不理想。传统文本识别方法很大程度上只能识别规范文本,对实际生活中各种各样的手写文本进行识别时,准确率较低。



技术实现要素:

本发明实施例提供一种手写模型训练方法、装置、设备及介质,以解决当前手写中文文本识别准确率不高的问题。

一种手写模型训练方法,包括:

获取规范中文文本训练样本,将所述规范中文文本训练样本输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取双向长短时记忆神经网络的总误差因子,根据双向长短时记忆神经网络的总误差因子,采用粒子群算法更新双向长短时记忆神经网络的网络参数,获取规范中文文本识别模型;

获取非规范中文文本训练样本,将所述非规范中文文本训练样本输入到所述规范中文文本识别模型中,基于连续时间分类算法进行训练,获取规范中文文本识别模型的总误差因子,根据规范中文文本识别模型的总误差因子,采用粒子群算法更新所述规范中文文本识别模型的网络参数,获取调整中文手写文本识别模型;

获取待测试中文文本样本,采用所述调整中文手写文本识别模型识别所述待测试中文文本样本,获取识别结果与真实结果不符的出错文本,把所有所述出错文本作为出错文本训练样本;

将所述出错文本训练样本输入到所述调整中文手写文本识别模型中,基于连续时间分类算法进行训练,获取调整中文手写文本识别模型的总误差因子,根据调整中文手写文本识别模型的总误差因子,采用粒子群算法更新调整中文手写文本识别模型的网络参数,获取目标中文手写文本识别模型。

一种手写模型训练装置,包括:

规范中文文本识别模型获取模块,用于获取规范中文文本训练样本,将所述规范中文文本训练样本输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取双向长短时记忆神经网络的总误差因子,根据双向长短时记忆神经网络的总误差因子,采用粒子群算法更新双向长短时记忆神经网络的网络参数,获取规范中文文本识别模型;

调整中文手写文本识别模型获取模块,用于获取非规范中文文本训练样本,将所述非规范中文文本训练样本输入到所述规范中文文本识别模型中,基于连续时间分类算法进行训练,获取规范中文文本识别模型的总误差因子,根据规范中文文本识别模型的总误差因子,采用粒子群算法更新所述规范中文文本识别模型的网络参数,获取调整中文手写文本识别模型;

出错文本训练样本获取模块,用于获取待测试中文文本样本,采用所述调整中文手写文本识别模型识别所述待测试中文文本样本,获取识别结果与真实结果不符的出错文本,把所有所述出错文本作为出错文本训练样本;

目标中文手写文本识别模型获取模块,用于将所述出错文本训练样本输入到所述调整中文手写文本识别模型中,基于连续时间分类算法进行训练,获取调整中文手写文本识别模型的总误差因子,根据调整中文手写文本识别模型的总误差因子,采用粒子群算法更新调整中文手写文本识别模型的网络参数,获取目标中文手写文本识别模型。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述手写模型训练方法的步骤。

本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述手写模型训练方法的步骤。

本发明实施例还提供一种文本识别方法、装置、设备及介质,以解决当前手写文本识别准确率不高的问题。

一种文本识别方法,包括:

获取待识别中文文本,采用目标中文手写文本识别模型识别所述待识别中文文本,获取所述待识别中文文本在所述目标中文手写文本识别模型中的输出值;所述目标中文手写文本识别模型是采用所述手写模型训练方法获取到的;

选取所述待识别中文文本对应的输出值中的最大输出值,根据所述最大输出值获取待识别中文文本的识别结果。

本发明实施例提供一种文本识别装置,包括:

输出值获取模块,用于获取待识别中文文本,采用目标中文手写文本识别模型识别所述待识别中文文本,获取所述待识别中文文本在所述目标中文手写文本识别模型中的输出值;所述目标中文手写文本识别模型是采用所述手写模型训练方法获取到的;

识别结果获取模块,用于选取所述待识别中文文本对应的输出值中的最大输出值,根据所述最大输出值获取待识别中文文本的识别结果。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述文本识别方法的步骤。

本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述文本识别方法的步骤。

本发明实施例所提供的手写模型训练方法、装置、设备及介质中,将规范中文文本训练样本输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取双向长短时记忆神经网络的总误差因子,根据双向长短时记忆神经网络的总误差因子,采用粒子群算法更新双向长短时记忆神经网络的网络参数,获取规范中文文本识别模型,该规范中文文本识别模型具备识别规范中文手写文本能力。然后再通过非规范中文文本,基于连续时间分类算法进行训练,实现对规范中文文本识别模型进行的调整性更新,使得更新后获取的调整中文手写文本识别模型在具备识别标准规范文本能力的前提下,通过训练更新的方式学习手写中文文本的深层特征,使得调整中文手写文本识别模型能够较好地识别手写中文文本,并且,不需对训练样本进行手动标记和数据对齐,能够直接进行对非对齐不定长序列样本的训练。接着采用调整中文手写文本识别模型识别待测试中文文本样本,获取识别结果与真实结果不相符的出错文本,并将所有出错文本作为出错文本训练样本输入到调整中文手写文本识别模型中,基于连续时间分类算法进行训练,获取调整中文手写文本识别模型的总误差因子,根据调整中文手写文本识别模型的总误差因子,采用粒子群算法更新调整中文手写文本识别模型的网络参数,获取目标中文手写文本识别模型。采用出错文本训练样本能够进一步优化识别准确率,可以进一步地降低训练模型时产生的过分学习和过度削弱的影响。训练各个模型采用的是双向长短时记忆神经网络,该神经网络能够结合中文文本具有的序列特点,从序列的正向和序列的反向的角度出发,学习中文文本的深层特征,实现对不同的中文手写文本进行识别的功能。训练各个模型采用的算法是连续时间分类算法,采用该算法进行训练,不需对训练样本进行手动标记和数据对齐,能够减少模型复杂度,实现直接进行非对齐不定长序列样本的训练。各个模型在进行网络参数更新时采用的是粒子群算法,该算法能够进行全局随机寻优,在训练的初始阶段能找到最优解的收敛领域,然后在最优解的收敛领域中再进行收敛,得到最优解,求出误差函数的极小值,更新网络参数。该粒子群算法能够明显提高模型训练的效率,并且有效地对网络参数进行更新,提高所获取的模型的识别准确率。

本发明实施例所提供的文本识别方法、装置、设备及介质中,将待识别中文文本输入到目标中文手写文本识别模型中进行识别并获取识别结果。采用该目标中文手写文本识别模型对中文手写文本进行识别时,可以得到精确的识别结果。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中手写模型训练方法的一应用环境图;

图2是本发明一实施例中手写模型训练方法的一流程图;

图3是图2中步骤s10的一具体流程图;

图4是图2中步骤s10的另一具体流程图;

图5是图2中步骤s30的一具体流程图;

图6是本发明一实施例中手写模型训练装置的一示意图;

图7是本发明一实施例中文本识别方法的一流程图;

图8是本发明一实施例中文本识别装置的一示意图;

图9是本发明一实施例中计算机设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示出本发明实施例提供的手写模型训练方法的应用环境。该手写模型训练方法的应用环境包括服务端和客户端,其中,服务端和客户端之间通过网络进行连接,客户端是可与用户进行人机交互的设备,包括但不限于电脑、智能手机和平板等设备,服务端具体可以用独立的服务器或者多个服务器组成的服务器集群实现。本发明实施例提供的手写模型训练方法应用于服务端。

如图2所示,图2示出本发明实施例中手写模型训练方法的一流程图,该手写模型训练方法包括如下步骤:

s10:获取规范中文文本训练样本,将规范中文文本训练样本输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取双向长短时记忆神经网络的总误差因子,根据双向长短时记忆神经网络的总误差因子,采用粒子群算法更新双向长短时记忆神经网络的网络参数,获取规范中文文本识别模型。

其中,规范中文文本训练样本是指由标准规范文本(如属于楷体、宋体或隶书等中文字体所有序组成的文本,字体一般选择楷体或者宋体)所获取的训练样本。双向长短时记忆神经网络(bi-directionallongshort-termmemory,简称bilstm)是一种时间递归神经网络,用于从序列正向和序列反向两个方向训练具有序列特点的数据。双向长短时记忆神经网络不仅能够关联前序数据,还能关联后序数据,因此可以根据序列的前后关系学习数据的与序列相关的深层特征。连续时间分类(connectionisttemporalclassification,简称ctc)算法,是一种完全端到端的声学模型训练的算法,不需要预先对训练样本做对齐,只需要一个输入序列和一个输出序列即可训练。粒子群算法(particleswarmoptimization,简称pso)是一种全局随机寻优算法,在训练的初始阶段能找到最优解的收敛领域,然后在最优解的收敛领域中再进行收敛,得到最优解,即找到误差函数的极小值,实现对网络参数的有效更新。

本实施例中,获取规范中文文本训练样本。规范中文文本训练样本中采用的字体是相同的(不将多种字体混杂),如进行模型训练的规范中文文本训练样本全部采用宋体,本实施例中以宋体为例进行说明。可以理解地,这里组成标准规范文本中的中文字体是指属于目前中文字体中的主流字体,如计算机设备的输入法中的默认字体宋体,常用于临摹的主流字体楷体等;而像日常生活中比较少使用的中文字体如草书、幼圆,则不列入组成该标准规范文本的中文字体的范围。在获取规范中文文本训练样本后,将规范中文文本训练样本输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取双向长短时记忆神经网络的总误差因子,根据双向长短时记忆神经网络的总误差因子,采用粒子群算法更新双向长短时记忆神经网络的网络参数,获取规范中文文本识别模型。该规范中文文本识别模型在训练过程中学习了规范中文文本训练样本的深层特征,使得该模型能够对标准规范文本进行精确的识别,具备对标准规范文本的识别能力,并且,训练规范中文文本识别模型的过程中不需对规范中文文本训练样本进行手动标记和数据对齐,能够直接进行端到端的训练。需要说明的是,无论规范中文文本训练样本中的字体采用的是楷体、宋体或隶书等其他中文字体,由于这些不同的中文字体组成的标准规范文本在字体识别的层面上差别并不大,因此训练好的规范中文文本识别模型可以对楷体、宋体或隶书等字体对应的标准规范文本进行精确的识别,得到较准确的识别结果。

s20:获取非规范中文文本训练样本,将非规范中文文本训练样本输入到规范中文文本识别模型中,基于连续时间分类算法进行训练,获取规范中文文本识别模型的总误差因子,根据规范中文文本识别模型的总误差因子,采用粒子群算法更新规范中文文本识别模型的网络参数,获取调整中文手写文本识别模型。

其中,非规范中文文本训练样本是指根据手写中文文本所获取的训练样本,该手写中文文本具体可以是按照楷体、宋体或隶书等主流字体通过手写方式得到的文本。可以理解地,该非规范中文文本训练样本与规范中文文本训练样本的区别在于非规范中文文本训练样本是由手写中文文本所获取的,既然是手写的,当然就包含各种各样不同的字体形态。

本实施例中,服务端获取非规范中文文本训练样本,该训练样本包含有手写中文文本的特征,将非规范中文文本训练样本输入到规范中文文本识别模型中,基于连续时间分类算法进行训练并调整,采用粒子群算法更新规范中文文本识别模型的网络参数,获取调整中文手写文本识别模型。在训练过程中,获取规范中文文本识别模型的总误差因子,并根据规范中文文本识别模型的总误差因子实现网络更新。可以理解地,规范中文文本识别模型具备识别标准规范中文文本的能力,但是在对手写中文文本进行识别时并没有较高的识别精确度。因此本实施例采用非规范中文文本训练样本进行训练,让规范中文手写文本识别模型在已有识别标准规范文本的基础上,对模型中的网络参数进行调整,获取调整中文手写文本识别模型。该调整中文手写文本识别模型在原本识别标准规范文本的基础上学习手写中文文本的深层特征,使得该调整中文手写文本识别模型结合了标准规范文本和手写中文文本的深层特征,能够同时对标准规范文本和手写中文文本进行有效的识别,得到准确率较高的识别结果。

双向长短时记忆神经网络在进行文本识别时,是根据文本的像素分布及序列进行判断的,在实际生活中的手写中文文本与标准规范文本存在差别,但是这种差别相比与其他不对应标准规范文本的差别小很多的,例如,手写中文文本的“你好”和标准规范文本的“你好”在像素分布上存在差别,但是这种差别相比于手写中文文本“你好”和标准规范文本“再见”之间的差别明显小很多。可以这样认为,即使手写中文文本与相对应的标准规范文本之间存在一定的差别,但是这种差别与不相对应的标准规范文本的差别小得多,因此,可以通过最相似(即差别最小)的原则确定识别结果。调整中文手写文本识别模型是由双向长短时记忆神经网络训练而来的,该模型结合标准规范文本和手写中文文本的深层特征,能够根据该深层特征对手写中文文本进行有效的识别。

需要说明的是,本实施例的步骤s10和步骤s20的顺序是不可调换的,需先执行步骤s10再执行步骤s20。先采用规范中文训练样本训练双向长短时记忆神经网络可以使获取的规范中文文本识别模型拥有较好的识别能力,使其对标准规范文本有精确的识别结果。在拥有良好的识别能力的基础上再进行步骤s20的微调,使得训练获取的调整中文手写文本识别模型能够根据学习到的手写中文文本的深层特征对手写中文文本进行有效的识别,使其对手写中文文本识别有较精确的识别结果。若先执行步骤s20或只执行步骤s20,由于手写中文文本包含的手写字体有各种各样的形态,直接采用手写中文文本训练学习到的特征并不能较好地反映手写中文文本的特征,会使一开始模型就学“坏”,导致后来再怎么进行调整也难以使得对手写中文文本识别有精确的识别结果。虽然每个人的手写中文文本都不一样,但是极大部分都是与标准规范文本相似(如手写中文文本模仿标准规范文本)。因此,一开始根据标准规范文本进行模型训练更符合客观情况,要比直接对手写中文文本进行模型训练的效果更好,可以在“好”的模型下进行相应的调整,获取手写中文文本识别率高的调整中文手写文本识别模型。

s30:获取待测试中文文本样本,采用调整中文手写文本识别模型识别待测试中文文本样本,获取识别结果与真实结果不符的出错文本,把所有出错文本作为出错文本训练样本。

其中,待测试中文文本样本是指根据标准规范文本和手写中文文本所获取的用于测试的训练样本,该步骤采用的标准规范文本和步骤s10中用于训练的标准规范文本是相同的(因为如楷体、宋体等字体所对应的每个字都是唯一确定的);采用的手写中文文本与和步骤s20中用于训练的手写中文文本可以是不同的(不同人手写的中文文本是不完全相同的,手写中文文本的每个文本可以对应多种字体形态,为了与步骤s20用于训练的非规范中文文本训练样本区分开来,避免模型训练过拟合的情况,一般该步骤采用与步骤s20不同的手写中文文本)。

本实施例中,将训练好的调整中文手写文本识别模型用来识别待测试中文文本样本。训练时标准规范文本和手写中文文本可以是采用混合的方式输入到调整中文手写文本识别模型。在采用调整中文手写文本识别模型对待测试中文文本样本进行识别时,将获取到相应的识别结果,把识别结果与标签值(真实结果)不相符的所有出错文本作为出错文本训练样本。该出错文本训练样本反映调整中文文本手写识别模型仍然存在识别精度不足的问题,以便后续根据该出错文本训练样本进一步更新、优化调整中文手写文本识别模型。

由于调整中文手写文本识别模型的识别精度实际上受到规范中文文本训练样本和非规范中文文本训练样本的共同影响,在先采用规范中文文本训练样本更新网络参数,再采用非规范中文文本训练样本更新网络参数的前提下,会导致获取到的调整中文手写文本识别模型过度学习非规范中文文本训练样本的特征,使得获取的调整中文手写文本识别模型对非规范中文文本训练样本(包括手写中文文本)拥有非常高的识别精度,但却过度学习该非规范中文文本样本的特征,影响除该非规范中文文本训练样本以外的手写中文文本的识别精度,因此,步骤s30采用待测试中文文本样本对调整中文手写文本识别模型进行识别,能够很大程度上消除训练时采用的非规范中文文本训练样本的过度学习。即通过调整中文手写文本识别模型识别待测试中文文本样本,以找出由于过度学习而产生的误差,该误差具体可以通过出错文本反映出来,因此能够根据该出错文本进一步地更新、优化调整中文手写文本识别模型的网络参数。

s40:将出错文本训练样本输入到调整中文手写文本识别模型中,基于连续时间分类算法进行训练,获取调整中文手写文本识别模型的总误差因子,根据调整中文手写文本识别模型的总误差因子,采用粒子群算法更新调整中文手写文本识别模型的网络参数,获取目标中文手写文本识别模型。

本实施例中,将出错文本训练样本输入到调整中文手写文本识别模型中,基于连续时间分类算法进行训练,该出错文本训练样本反映了在训练调整中文手写文本识别模型时,由于过度学习非规范中文文本训练样本的特征,导致调整中文手写文本识别模型在识别非规范中文文本训练样本以外的手写中文文本时出现的识别不精确的问题。并且,由于先采用规范中文文本训练样本再采用非规范中文文本训练样本训练模型的原因,会过度削弱原先学习的标准规范文本的特征,这会影响模型初始搭建的对标准规范文本进行识别的“框架”。利用出错文本训练样本可以很好地解决过度学习和过度削弱的问题,可以根据出错文本训练样本反映的识别精确度上的问题,在很大程度上消除原本训练过程中产生的过度学习和过度削弱带来的不利影响。具体地,获取调整中文手写文本识别模型的总误差因子,根据调整中文手写文本识别模型的总误差因子,采用出错文本训练样本进行训练时采用的是粒子群算法,根据该算法更新调整中文手写文本识别模型的网络参数,获取目标中文手写文本识别模型,该目标中文手写文本识别模型是指最终训练出来的可用于识别中文手写文本的模型。训练采用的是双向长短时记忆神经网络,该神经网络能够结合中文文本具有的序列特点,学习中文文本的深层特征,提高目标中文手写文本识别模型的识别率。训练采用的算法是连续时间分类算法,采用该算法进行训练,不需要对训练样本进行手动标记和数据对齐,能够减少模型复杂度,实现直接进行非对齐不定长序列的训练。在更新网络参数时,采用粒子群算法能够明显提高模型训练的效率,并且有效地对网络参数进行更新,提高目标中文手写文本识别模型的识别准确率。

步骤s10-s40中,采用规范中文文本训练样本训练并获取规范中文文本识别模型,再通过非规范中文文本对规范中文文本识别模型进行调整性的更新,使得更新后获取的调整中文手写文本识别模型在具备识别标准规范文本能力的前提下,通过训练更新的方式学习手写中文文本的深层特征,使得调整中文手写文本识别模型能够较好地识别手写中文文本。然后采用调整中文手写文本识别模型识别待测试中文文本样本,获取识别结果与真实结果不相符的出错文本,并将所有出错文本作为出错文本训练样本输入到调整中文手写文本识别模型中,基于连续时间分类算法进行训练更新,获取目标中文手写文本识别模型。采用出错文本训练样本可以在很大程度上消除原本训练过程中产生的过度学习和过度削弱带来的不利影响,能够进一步优化识别准确率。各模型进行网络参数更新采用的是粒子群算法,该算法能够进行全局随机寻优,在训练的初始阶段能找到最优解的收敛领域,然后在最优解的收敛领域中再进行收敛,得到最优解,求出误差函数的极小值,以对双向长短时记忆神经网络进行有效的网络参数更新。训练各个模型采用的是双向长短时记忆神经网络,该神经网络能够结合中文文本具有的序列特点,学习中文文本的深层特征,实现对不同的手写中文文本进行识别的功能。训练各个模型采用的算法是连续时间分类算法,采用该算法进行训练,不需要对训练样本进行手动标记和数据对齐,能够减少模型复杂度,实现直接进行非对齐不定长序列的训练。

在一实施例中,如图3所示,步骤s10中,获取规范中文文本训练样本,具体包括如下步骤:

s101:获取待处理中文文本训练样本中每个中文文本的像素值特征矩阵,将每个中文文本的像素值特征矩阵中每个像素值进行归一化处理,获取每个中文文本的归一化像素值特征矩阵,其中,归一化处理的公式为maxvalue为像素值特征矩阵中像素值的最大值,minvalue为像素值特征矩阵中像素值的最小值,x为归一化前的像素值,y为归一化后的像素值。

其中,待处理中文文本训练样本是指初始获取的,未经处理的训练样本。

本实施例中,可以采用成熟的、开源的卷积神经网络提取待处理中文文本训练样本的特征,获取待处理中文文本训练样本中每个中文文本的像素值特征矩阵。每个中文文本的像素值特征矩阵代表着对应文本的特征,在这里用像素值代表文本的特征,由于文本是通过图像二维表示的,故像素值可以采用矩阵表示,即像素值特征矩阵。计算机设备能够识别像素值特征矩阵的形式,读取像素值特征矩阵中的数值。服务端获取每个中文文本的像素值特征矩阵后,采用归一化处理的公式对特征矩阵中的各个像素值进行归一化处理,获取每个中文文本的归一化像素值特征。本实施例中,采用归一化处理方式能够将每个中文文本的像素值特征矩阵都压缩在同一个范围区间内,能够加快与该像素值特征矩阵相关的计算,有助于提高训练规范中文文本识别模型的训练效率。

s102:将每个中文文本的归一化像素值特征矩阵中的像素值划分为两类像素值,基于两类像素值建立每个中文文本的二值化像素值特征矩阵,将每个中文文本的二值化像素值特征矩阵对应的中文文本组合作为规范中文文本训练样本。

本实施例中,将每个中文文本的归一化像素值特征矩阵中的像素值划分为两类像素值,该两类像素值是指像素值中只包含像素值a或者像素值b。具体地,可以将归一化像素特征矩阵中大于或等于0.5的像素值取为1,将小于0.5的像素值取为0,建立相应的每个中文文本的二值化像素值特征矩阵,每个中文文本的二值化像素特征矩阵中的原始只包含0或1。在建立每个中文文本的二值化像素值特征矩阵后,将二值化像素值特征矩阵对应的中文文本组合作为规范中文文本训练样本,并将所述规范中文字训练样本按预设批次进行批分。例如,在一张包含文本的图像中,包含文本像素的部分和空白像素的部分。文本上的像素值一般颜色会比较深,二值化像素值特征矩阵中的“1”代表文本像素的部分,而“0”则代表图像中空白像素的部分。可以理解地,通过建立二值化像素值特征矩阵可以进一步简化对文本的特征表示,仅采用0和1的矩阵就可以将各个文本表示并区别开来,能够提高计算机处理关于文本的特征矩阵的速度,进一步提高训练规范中文文本识别模型的训练效率。

步骤s101-s102对待处理中文文本训练样本进行归一化处理并进行二类值的划分,获取每个中文文本的二值化像素值特征矩阵,并将每个中文文本的二值化像素特征矩阵对应的文本作为规范中文文本训练样本,能够显著缩短训练规范中文文本识别模型的时长。

在一实施例中,如图4所示,步骤s10中,将规范中文文本训练样本输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取双向长短时记忆神经网络的总误差因子,根据双向长短时记忆神经网络的总误差因子,采用粒子群算法更新双向长短时记忆神经网络的网络参数,获取规范中文文本识别模型,具体包括如下步骤:

s111:将规范中文文本训练样本按序列正向输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取规范中文文本训练样本按序列正向在双向长短时记忆神经网络中的前向传播输出和后向传播输出,将规范中文文本训练样本按序列反向输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取规范中文文本训练样本按序列反向在双向长短时记忆神经网络中的前向传播输出和后向传播输出,前向传播输出表示为其中,t表示序列步数,u表示与t相对应的输出的标签值,表示输出序列在第t步的输出为l'u的概率,后向传播输出表示为其中,t表示序列步数,u表示与t相对应的输出的标签值,表示输出序列在第t+1步的输出为l'u的概率,

本实施例中,将规范中文文本训练样本分别按序列正向和按序列反向输入到双向长短时记忆神经网络中,基于连续时间分类(ctc)算法进行训练。ctc算法本质上是一种计算损失函数的算法,该算法是用来衡量输入的序列数据经过神经网络之后,和真实结果(客观事实,也称为标签值)之间的误差有多少。因此,可以通过获取规范中文文本训练样本分别按序列正向和按序列反向在双向长短时记忆神经网络中的前向传播输出和后向传播输出,利用序列正向的前向传播输出和后向传播输出,序列反向的前向传播输出和后向传播描述、构建相对应的误差函数。

以下以序列正向为例进行说明。首先简单介绍几个ctc中的基本定义,以更好地理解ctc的实现过程。表示输出序列在第t步的输出为k的概率。例如:当输出序列为(a-ab-)时,表示在第3步输出的字母为a的概率。p(π|x):表示给定输入x,输出路径为π的概率;由于假设在每一个序列步相应输出的标签值的概率都是相互独立的,那么p(π|x)用公式来表示为可以理解为每一个序列步输出路径π相应的标签值的概率的乘积。f:表示一种多对一的映射,将输出路径π映射到标签序列l的一种变换,例如:f(a-ab-)=f(-aa-abb)=aab(其中-代表了空格),本实施例中,该映射变换可以是如上述例子的去除叠字和去除空格处理。p(l|x):表示给定的输入序列x(如规范中文文本训练样本中的某个样本),输出为序列l的概率,因此,输出为序列为l的概率可以表示为所有输出路径π映射后的序列为l的概率之和,用公式表示为可以理解地,随着序列l长度的增加,相对应的路径的数目是成指数增加的,因此可以采用迭代的思路,从序列第t步与t-1步、t+1步的关于前向传播和后向传播的角度出发计算序列l对应的路径概率,提高计算的效率。具体地,在进行计算之前,需要对序列l做一些预处理,在序列l的开头与结尾分别加上空格,并且在字母与字母之间都添加上空格。如果原来序列l的长度为u,那么预处理之后,序列l'的长度为2u+1。对于一个序列l,可以定义前向变量α(t,u)为输出序列长度为t,且经过f映射之后为序列l的路径的概率之和,用公式表示为:其中,v(t,u)={π∈a't:f(π)=l1:u/2,πt=l'u},表示所有满足经过f映射之后为序列l,长度为t的路径集合,且在第t序列步的输出为l'u,这里的u/2表示的是索引,因此需要向下取整。所有正确路径的开头须满足是空格或者l1(即序列l的第一个字母),因此存在着初始化的约束条件:(b表示blank,空格),则p(l|x)可以由前向变量来表示,即:p(l|x)=α(t,u')+α(t,u'-1),其中,α(t,u')可以理解为所有路径长度为t,经过f映射之后为序列l,且第t时刻的输出的标签值为:l'u或者l'u-1。也就是路径的最后一个是否包括了空格。于是,前向变量的计算可以按照时间来进行递归,用公式表示为:其中,这里的f(u),实际上是对前一时刻的所有可能路径的列举,其具体条件公式如下:与前向传播的过程类似,可以定义一个后向变量β(t,u),表示从t+1时刻开始,在前向变量α(t,u)上添加路径π',使得最后通过f映射之后为序列l的概率之和,用公式表示为:其中,后向传播也有相对应的初始化条件:于是,后向变量同样可以根据递归的方式求出,用公式表示为:其中,g(u)表示t+1时刻可能的路径选择函数,表示为则可以根据前向变量和后向变量对前向传播的过程和后向传播的过程进行描述,获取相对应的前向传播输出和后向传播输出(前向变量的递归表达式即表示前向传播输出,后向变量的递归表达式即表示后向传播输出)。可以理解地,对于序列反向的前向传播输出和后向传播获取的过程与上述序列正向的前向传播输出和后向传播获取的过程是相似的,区别仅在于输入的序列方向,为避免重复,在此不进行赘述。

s112:根据规范中文文本训练样本按序列正向在双向长短时记忆神经网络中的前向传播输出和后向传播输出获取双向长短时记忆神经网络的正向误差因子,根据规范中文文本训练样本按序列反向在双向长短时记忆神经网络中的前向传播输出和后向传播输出获取双向长短时记忆神经网络的反向误差因子,将双向长短时记忆神经网络的正向误差因子和双向长短时记忆神经网络的反向误差因子相加获取双向长短时记忆神经网络的总误差因子,根据双向长短时记忆神经网络的总误差因子构建误差函数。

在一实施例中,先假设只有按序列正向的前向传播输出和后向传播输出,使用概率的负对数表示序列正向的误差函数。具体地,设l=z,则误差函数可以表示为其中,s表示规范中文文本训练样本。该式中的p(z|x)可以根据前向传播输出和后向传播输出进行计算,是可以衡量误差的误差因子。首先定义一个集合x,其代表t时刻位置处在u的所有正确的路径:用公式表示为:x(t,u)={π∈a't:f(π)=z,πt=z'u},于是,任意时刻前向变量与后向变量的乘积表示所有可能路径的概率和:该式是t时刻位置恰好处于u的所有正确路径的概率和,则对于一般情况,对于任意时刻t,可以计算所有位置的正确路径得到总概率:则根据误差函数的定义能够得到误差函数以上是假设只有按序列正向的前向传播输出和后向传播输出时构建误差函数的情况,在还包括序列反向的前向传播输出和后向传播输出时,由误差因子先求出相应的双向长短时记忆神经网络的正向误差因子(以下简称正向误差因子)和双向长短时记忆神经网络的反向误差因子(以下简称反向误差因子),将正向误差因子和反向误差因子相加获取总误差因子,再根据总误差因子,使用概率的负对数构建误差函数,并如上述的计算过程,采用序列正向的前向传播输出和后向传播输出,以及序列反向的前向传播输出和后向传播输出表示该误差函数,在此不再赘述。在根据总误差因子得到误差函数之后就可以根据该误差函数更新网络参数,获取规范中文文本识别模型。

s113:根据误差函数,采用粒子群算法更新双向长短时记忆神经网络的网络参数,获取规范中文文本识别模型。

在一实施例中,根据获取的误差函数,采用粒子群算法更新网络参数,具体地,求出损失函数对未经过sofmax层的网络输出的偏导数(即梯度),将该梯度乘以学习率,用原来的网络参数减去梯度乘以学习率的积即实现网络参数的更新,其中,粒子群算法包括粒子位置更新公式(公式1)和粒子速度位置更新公式(公式2),粒子群算法如下所示:

vi+1=w×vi+c1×rand()×(pbesti-xi)+c2×rand()×(gbest-xi)-------(公式1)

xi+1=xi+vi-------(公式2)

其中,规范中文文本训练样本的样本维度(即样本对应的二值化像素值特征矩阵的矩阵维度)为n,xi=(xi1,xi2,...,xin)为第i个粒子的位置,xi+1为第i+1个粒子的位置;vi=(vi1,vi2,...,vin)为第i个粒子的速度,vi+1为第i+1个粒子的速度;pbesti=(pbesti1,pbesti2,...,pbestin)为第i个粒子对应的局部极值;gbest=(gbest1,gbest2,...,gbestn)为最优极值(又称全局极值),w为惯性偏置,c1为第一学习因子,c2为第二学习因子,c1,c2一般设为常数2,rand()为[0,1]中的任意随机值。

可以理解地,c1×rand()控制粒子向该粒子经历最优位置的步长。c2×rand()控制粒子向所有粒子经历最优位置的步长;w为惯性偏置,当w值大时,粒子群表现出很强的全局寻优能力;当w值小时,粒子群表现出很强的局部寻优能力,该特点非常适合于网络训练的。通常在网络训练的初始阶段,w一般设置比较大,以保证具有足够大的全局寻优能力;在训练的收敛阶段,w一般设置比较小,以保证能够收敛到最优解。

在公式(1)中,公式右边第一项表示原速度项;公式右边第二项表示“认知”部分,主要是根据该粒子的历史最优位置,考虑对新粒子位置的影响,是一个自身思考的过程;公式右边第三项是“社会”部分,主要是根据所有粒子最优位置,考虑对新粒子位置的影响。整个公式(1)反映的是一个信息共享的过程。如果没有第一部分,则粒子速度的更新,只取决于该粒子和所有粒子所经历最优位置,则粒子具有很强的收敛性。公式右边第一项保证了粒子群有一定的全局寻优能力,具有逃离极值作用,反而,如果该部分很小时,则粒子群会迅速收敛。公式右边第二项和公式右边第三项则保证了粒子群的局部收敛性。该粒子群算法是一种全局随机寻优算法,采用该计算公式在训练的初始阶段能找到最优解的收敛领域,然后在最优解的收敛领域中再进行收敛,得到最优解(即求出误差函数的极小值)。

采用粒子群算法更新双向长短时记忆神经网络的网络参数的过程具体包括如下步骤:

(1)初始化粒子位置x和粒子速度v,并设置粒子位置最大值xmax和最小值xmin,粒子速度最大值vmax和最小值vmin,惯性权值w,第一学习因子c1,第二学习因子c2,训练最大次数α,停止迭代阈值ε。

(2)对于每个粒子pbest:利用误差函数计算粒子适应值(即寻找更优解),若粒子寻找到更优解,则更新pbest;否则,pbest保持不变。

(3)将局部极值pbest中适应值最小的粒子与全局极值gbest的粒子适应值相比较,选择适应值最小的粒子更新gbest的值。

(4)根据公式(1)更新粒子群的粒子位置x和粒子速度v。

判断pbest中的速度是否超出[vmin,vmax],如果超出速度的范围,则相应设置为速度的最小值和/或最大值。

判断pbest中的速度是否超出[xmin,xmax],如果超出位置的范围,则设置为位置的最小值和/或最大值,同时更新惯性权值w,更新w的公式为β是指当前训练次数。

(5)判断是否达到训练最大次数α或误差小于停止迭代阈值ε,若是,则终止;若否,则转向(2)继续运行,直至达到要求。

采用粒子群算法能够快速、准确求得梯度,实现网络参数的有效更新。

步骤s111-s113能够根据规范中文文本训练样本在双向长短时记忆神经网络按序列正向和按序列反向分别得到的前向传播输出和后向传播输出构建误差函数,并根据误差函数,采用粒子群算法进行误差反传,更新网络参数,实现获取规范中文文本识别模型的目的。该模型学习了规范中文文本训练样本的深层特征,能够精确地识别标准规范文本。

在一实施例中,如图5所示,步骤s30中,采用调整中文手写文本识别模型识别待测试中文文本样本,获取识别结果与真实结果不符的出错文本,把所有出错文本作为出错文本训练样本,具体包括如下步骤:

s31:将待测试中文文本样本输入到调整中文手写文本识别模型,获取待测试中文文本样本中每一文本在调整中文手写文本识别模型中的输出值。

本实施例中,采用调整中文手写文本识别模型对待测试中文文本样本进行识别,待测试中文文本样本中包含若干个中文文本。文本包括文字,本实施例提及的每一文本的输出值具体是指每一文字中各个字体对应的各个输出值。在中文字库中,常用的中文字大概有三千多个(包括空格和各种中文标点符号),在调整中文手写文本识别模型的输出层应设置中文字库中每一个字与输入的待测试中文文本样本中的字的相似程度的概率值,具体可以通过softmax函数实现。可以理解地,若待测试中文文本样本中的一个文本样本假设为一张分辨率为8*8的图像,上面是“你们好”三个字,则识别时把图片进行垂直切割成8列,8个3维的向量,然后作为调整中文手写文本识别模型的8个输入数。调整中文手写文本识别模型的输出数和输入数目应该是相同的,而实际上该文本样本只有3个输出数,而不应是8个输出数,因此实际输出的情况会出现叠字的情况,例如:“你你们们好___”、“你_们_们_好_”、“_你你_们_好_”等输出情况,在这8个输出数中,每一个输出数对应的中文字都存在与中文字库中每一个字计算相似程度的概率值,该概率值即测试中文文本样本中每一文本在调整中文手写文本识别模型中的输出值,该输出值有很多个,每一输出值对应该输出数所对应的中文字与中文字库中每一个字相似程度的概率值。根据该概率值可以确定每一文本的识别结果。

s32:选取每一文本对应的输出值中的最大输出值,根据最大输出值获取每一文本的识别结果。

本实施例中,选取每一文本对应的所有输出值中的最大输出值,根据该最大输出值即可获取该文本的识别结果。可以理解地,输出值直接反映了输入的待测试中文文本样本中的字与中文字库中每一字的相似程度,而最大输出值则表明待测试文本样本中的字最接近中文字库中的某个字,则可以根据该最大输出值对应的字确定实际输出,如实际输出为“你你们们好___”、“你_们_们_好_”、“_你你_们_好_”等输出情况而不是像“妳妳扪扪好___”、“你_们_们_好_”、“_你妳_扪_好_”等实际输出,根据连续时间分类算法的定义,还需要对实际输出作进一步地处理,把实际输出中的叠词字去除,只保留一个;并把空格去除,则可以得到识别结果,如本实施例中的识别结果为“你们好”。通过最大输出值确定实际输出的字的正确性,再作去叠字和去空格的处理,能够有效获取每一文本的识别结果。

s33:根据识别结果,获取识别结果与真实结果不符的出错文本,把所有出错文本作为出错文本训练样本。

本实施例中,将得到的识别结果与真实结果(客观事实)作比较,将比较识别结果与真实结果不符的出错文本作为出错文本训练样本。可以理解地,该识别结果只是待测试中文文本训练样本在调整中文手写文本识别模型识别出来的结果,与真实结果相比有可能是不相同的,反映了该模型在识别的精确度上仍有不足,而这些不足可以通过出错文本训练样本进行优化,以达到更精确的识别效果。

步骤s31-s33根据待测试中文文本样本中每一文本在调整中文手写文本识别模型中的输出值,从输出值中选择能够反映文本间(实际上是字的相似程度)相似程度的最大输出值;再通过最大输出值得到识别结果,并根据识别结果得到出错文本训练样本,为后续利用出错文本训练样本进一步优化识别精确度提供了重要的技术前提。

在一实施例中,在步骤s10之前,即在获取规范中文文本训练样本的步骤之前,该手写模型训练方法还包括如下步骤:初始化双向长短时记忆神经网络。

在一实施例中,初始化双向长短时记忆神经网络即初始化该网络的网络参数,赋予网络参数初始值。若初始化的权值处在误差曲面的一个相对平缓的区域时,双向长短时记忆神经网络模型训练的收敛速度可能会异常缓慢。可以将网络参数初始化在一个具有0均值的相对小的区间内均匀分布,比如[-0.30,+0.30]这样的区间内。合理地初始化双向长短时记忆神经网络可以使网络在初期有较灵活的调整能力,可以在训练过程中对网络进行有效的调整,能够快速有效地找到误差函数的极小值,有利于双向长短时记忆神经网络的更新和调整,使得基于双向长短时记忆神经网络进行模型训练获取的模型在进行中文手写字识别时具备精确的识别效果。

本实施例所提供的手写模型训练方法中,将双向长短时记忆神经网络的网络参数初始化在一个具有0均值的相对小的区间内均匀分布,比如[-0.30,+0.30]这样的区间,采用该初始化的方式能够快速有效地找到误差函数的极小值,有利于双向长短时记忆神经网络的更新和调整。对待处理中文文本训练样本进行归一化处理并进行二类值的划分,获取二值化像素值特征矩阵,并将特征矩阵对应的文本作为规范中文文本训练样本,能够显著缩短训练规范中文文本识别模型的时长。根据规范中文文本训练样本在双向长短时记忆神经网络按序列正向和按序列正反向分别得到的前向传播输出和后向传播输出,并根据分别得到的前向传播输出和后向传播输出获取正向误差因子和反向误差因子,由正向误差因子和反向误差因子获取总误差因子并构建误差函数,再根据误差函数反传更新网络参数,能够获取规范中文文本识别模型,该模型学习了规范中文文本训练样本的深层特征,能够精确地识别标准规范文本。接着通过非规范中文文本对规范中文文本识别模型进行调整性的更新,使得更新后获取的调整中文手写文本识别模型在具备识别规范中文手写文本能力的前提下,通过训练更新的方式学习非规范中文文本的深层特征,使得调整中文手写文本识别模型能够较好地识别非规范中文手写文本。接着,根据待测试中文文本样本中每一文本在调整中文手写文本识别模型中的输出值,从输出值中选择能够反映文本间相似程度的最大输出值,利用最大输出值得到识别结果,并根据识别结果得到出错文本训练样本,并将所有出错文本作为出错文本训练样本输入到调整中文手写文本识别模型中,基于连续时间分类算法进行训练更新,获取目标中文手写文本识别模型。采用出错文本训练样本可以在很大程度上消除原本训练过程中产生的过度学习和过度削弱带来的不利影响,能够进一步优化识别准确率。此外,本实施例所提供的手写模型训练方法中,训练各个模型采用的是双向长短时记忆神经网络,该神经网络能够结合字具有的序列特点,从序列的正向和序列的反向的角度出发,学习字的深层特征,实现对不同的中文手写字进行识别的功能;各个模型在进行网络参数更新时采用的是粒子群算法,该算法能够进行全局随机寻优,在训练的初始阶段能找到最优解的收敛领域,然后在最优解的收敛领域中再进行收敛,得到最优解,求出误差函数的极小值,更新网络参数。该粒子群算法能够明显提高模型训练的效率,并且有效地对网络参数进行更新,提高所获取的模型的识别准确率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图6示出与实施例中手写模型训练方法一一对应的手写模型训练装置的原理框图。如图6所示,该手写模型训练装置包括规范中文文本识别模型获取模块10、调整中文手写文本识别模型获取模块20、出错文本训练样本获取模块30和目标中文手写文本识别模型获取模块40。其中,规范中文文本识别模型获取模块10、调整中文手写文本识别模型获取模块20、出错文本训练样本获取模块30和目标中文手写文本识别模型获取模块40的实现功能与实施例中手写模型训练方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。

规范中文文本识别模型获取模块10,用于获取规范中文文本训练样本,将规范中文文本训练样本输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取双向长短时记忆神经网络的总误差因子,根据双向长短时记忆神经网络的总误差因子,采用粒子群算法更新双向长短时记忆神经网络的网络参数,获取规范中文文本识别模型。

调整中文手写文本识别模型获取模块20,用于获取非规范中文文本训练样本,将非规范中文文本训练样本输入到规范中文文本识别模型中,基于连续时间分类算法进行训练,获取规范中文文本识别模型的总误差因子,根据规范中文文本识别模型的总误差因子,采用粒子群算法更新规范中文文本识别模型的网络参数,获取调整中文手写文本识别模型。

出错文本训练样本获取模块30,用于获取待测试中文文本样本,采用调整中文手写文本识别模型识别待测试中文文本样本,获取识别结果与真实结果不符的出错文本,把所有出错文本作为出错文本训练样本。

目标中文手写文本识别模型获取模块40,用于将出错文本训练样本输入到调整中文手写文本识别模型中,基于连续时间分类算法进行训练,获取调整中文手写文本识别模型的总误差因子,根据调整中文手写文本识别模型的总误差因子,采用粒子群算法更新调整中文手写文本识别模型的网络参数,获取目标中文手写文本识别模型。

优选地,规范中文文本识别模型获取模块10包括归一化像素值特征矩阵获取单元101、规范中文文本训练样本获取单元102、传播输出获取单元111、误差函数构建单元112和规范中文文本识别模型获取单元113。

归一化像素值特征矩阵获取单元101,用于获取待处理中文文本训练样本中每个中文文本的像素值特征矩阵,将每个中文文本的像素值特征矩阵中每个像素值进行归一化处理,获取每个中文文本的归一化像素值特征矩阵,其中,归一化处理的公式为maxvalue为像素值特征矩阵中像素值的最大值,minvalue为像素值特征矩阵中像素值的最小值,x为归一化前的像素值,y为归一化后的像素值。

规范中文文本训练样本获取单元102,用于将每个中文文本的归一化像素值特征矩阵中的像素值划分为两类像素值,基于两类像素值建立每个中文文本的二值化像素值特征矩阵,将每个中文文本的二值化像素值特征矩阵对应的中文文本组合作为规范中文文本训练样本。

传播输出获取单元111,用于将规范中文文本训练样本按序列正向输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取规范中文文本训练样本按序列正向在双向长短时记忆神经网络中的前向传播输出和后向传播输出,将规范中文文本训练样本按序列反向输入到双向长短时记忆神经网络中,基于连续时间分类算法进行训练,获取规范中文文本训练样本按序列反向在双向长短时记忆神经网络中的前向传播输出和后向传播输出;前向传播输出表示为其中,t表示序列步数,u表示与t相对应的输出的标签值,表示输出序列在第t步的输出为l'u的概率,后向传播输出表示为其中,t表示序列步数,u表示与t相对应的输出的标签值,表示输出序列在第t+1步的输出为l'u的概率,

误差函数构建单元112,用于根据规范中文文本训练样本按序列正向在双向长短时记忆神经网络中的前向传播输出和后向传播输出获取双向长短时记忆神经网络的正向误差因子,根据规范中文文本训练样本按序列反向在双向长短时记忆神经网络中的前向传播输出和后向传播输出获取双向长短时记忆神经网络的反向误差因子,将双向长短时记忆神经网络的正向误差因子和双向长短时记忆神经网络的反向误差因子相加获取双向长短时记忆神经网络的总误差因子,根据双向长短时记忆神经网络的总误差因子构建误差函数。

规范中文文本识别模型获取单元113,用于根据误差函数,采用粒子群算法更新双向长短时记忆神经网络的网络参数,获取规范中文文本识别模型。

优选地,出错文本训练样本获取模块30包括模型输出值获取单元31、模型识别结果获取单元32和出错文本训练样本获取单元33。

模型输出值获取单元31,用于将待测试中文文本样本输入到调整中文手写文本识别模型,获取待测试中文文本样本中每一文本在调整中文手写文本识别模型中的输出值。

模型识别结果获取单元32,用于选取每一文本对应的输出值中的最大输出值,根据最大输出值获取每一文本的识别结果。

出错文本训练样本获取单元33,用于根据识别结果,获取识别结果与真实结果不符的出错文本,把所有出错文本作为出错文本训练样本。

优选地,该手写模型训练装置还包括初始化模块50,用于初始化双向长短时记忆神经网络。

图7示出本实施例中文本识别方法的一流程图。该文本识别方法可应用在银行、投资和保险等机构配置的计算机设备,用于对手写中文文本进行识别,达到人工智能目的。如图7所示,该文本识别方法包括如下步骤:

s50:获取待识别中文文本,采用目标中文手写文本识别模型识别待识别中文文本,获取待识别中文文本在目标中文手写文本识别模型中的输出值,目标中文手写文本识别模型是采用上述手写模型训练方法获取到的。

其中,待识别中文文本是指要进行识别的中文文本。

本实施例中,获取待识别中文文本,将待识别中文文本输入到目标中文手写文本识别模型中进行识别,获取待识别中文文本在目标中文手写文本识别模型中的每一个输出数对应的中文字与中文字库中每一个字的相似程度的概率值,该概率值即待识别中文文本在目标中文手写文本识别模型中的输出值,可以基于该输出值确定该待识别中文文本的识别结果。

s60:选取待识别中文文本对应的输出值中的最大输出值,根据最大输出值获取待识别中文文本的识别结果。

本实施例中,选取待识别中文文本对应的所有输出值中的最大输出值,根据该最大输出值确定其对应的实际输出,例如,实际输出为“你_们_们_好_”。然后再对该实际输出作进一步地处理,把实际输出中的叠词字去除,只保留一个;并把空格去除,则可以得到待识别中文文本的识别结果。通过最大输出值确定实际输出阶段的字的正确性,再作去叠字和去空格的处理,能够有效获取每一文本的识别结果,提高识别的准确率。

步骤s50-s60,采用目标中文手写文本识别模型识别待识别中文文本,根据最大输出值以及去叠字和去空格的处理,获取待识别中文文本的识别结果。采用该目标中文手写文本识别模型本身拥有较高的识别精确度,再结合中文语义词库进一步提高中文手写的识别准确率。

本发明实施例所提供的文本识别方法中,将待识别中文文本输入到目标中文手写文本识别模型中进行识别,并结合预设的中文语义词库获取识别结果。采用该目标中文手写文本识别模型对中文手写文本进行识别时,可以得到精确的识别结果。

图8示出与实施例中文本识别方法一一对应的文本识别装置的原理框图。如图8所示,该文本识别装置包括输出值获取模块60和识别结果获取模块70。其中,输出值获取模块60和识别结果获取模块70的实现功能与实施例中文本识别方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。

文本识别装置包括输出值获取模块60,用于获取待识别中文文本,采用目标中文手写文本识别模型识别待识别中文文本,获取待识别中文文本在目标中文手写文本识别模型中的输出值;目标中文手写文本识别模型是采用手写模型训练方法获取到的。

识别结果获取模块70,用于选取待识别中文文本对应的输出值中的最大输出值,根据最大输出值获取待识别中文文本的识别结果。

本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例中手写模型训练方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例中手写模型训练装置的各模块/单元的功能,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例中文本识别方法中各步骤的功能,为避免重复,此处不一一赘述。或者,该计算机程序被处理器执行时实现实施例中文本识别装置中各模块/单元的功能,为避免重复,此处不一一赘述。

图9是本发明一实施例提供的计算机设备的示意图。如图9所示,该实施例的计算机设备80包括:处理器81、存储器82以及存储在存储器82中并可在处理器81上运行的计算机程序83,该计算机程序83被处理器81执行时实现实施例中的手写模型训练方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器81执行时实现实施例中手写模型训练装置中各模型/单元的功能,为避免重复,此处不一一赘述。或者,该计算机程序被处理器81执行时实现实施例中文本识别方法中各步骤的功能,为避免重复,此处不一一赘述。或者,该计算机程序被处理器81执行时实现实施例中文本识别装置中各模块/单元的功能。为避免重复,此处不一一赘述。

计算机设备80可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,处理器81、存储器82。本领域技术人员可以理解,图9仅仅是计算机设备80的示例,并不构成对计算机设备80的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器81可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器82可以是计算机设备80的内部存储单元,例如计算机设备80的硬盘或内存。存储器82也可以是计算机设备80的外部存储设备,例如计算机设备80上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器82还可以既包括计算机设备80的内部存储单元也包括外部存储设备。存储器82用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器82还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1