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

文档序号:16358402发布日期:2018-12-22 08:01阅读:196来源:国知局
文字模型训练方法、文字识别方法、装置、设备及介质与流程

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

背景技术

传统汉字的识别方法大多会采用ocr(opticalcharacterrecognition,光学字符识别)技术进行识别。由于汉字的类别繁多,比如“宋体、楷体、姚体和仿宋”,而且部分汉字的结构比较复杂,比如“魑、魅”,并且汉字中存在着较多的结构相似的字,比如“受和爱”,使得汉字识别准确性无法保证。对标准的、书写简单且规范的句子,采用ocr(光学字符识别)技术可以识别,但是对于手写的字组成的句子,由于每个人的书写习惯不相同且不是标准的横竖撇捺组成的汉字,采用ocr技术识别时,会存在识别不准确的情况,极大限制了识别系统的性能,造成识别的精确度不高,使得识别效果不理想。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种可以提高识别准确度的文字模型训练方法、装置、设备及介质。

一种文字模型训练方法,包括:

获取手写字训练样本,所述手写字训练样本包括手写字图像和标签汉字;

若所述手写字图像的数量大于预设的数量阈值时,则从手写字训练样本中随机选取与数量阈值相同数量的手写字图像,将选取的手写字图像输入到卷积循环神经网络模型中,采用基于随机梯度下降的反向传播算法更新所述卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;

若所述手写字图像的数量不大于预设的数量阈值时,则将所有手写字图像输入到卷积循环神经网络模型中,采用基于批量梯度下降的反向传播算法更新所述卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;

获取手写字测试样本,并将所述手写字测试样本输入到所述手写字训练模型中,获取识别准确率,若所述识别准确率大于或者等于预设准确率,则确定所述手写字训练模型为手写字识别模型。

一种文字模型训练装置,包括:

训练样本获取模块,用于获取手写字训练样本,所述手写字训练样本包括手写字图像和标签汉字;

第一训练模型获取模块,用于若所述手写字图像的数量大于预设的数量阈值时,则从手写字训练样本中随机选取与数量阈值相同数量的手写字图像,将选取的手写字图像输入到卷积循环神经网络模型中,采用基于随机梯度下降的反向传播算法更新所述卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;

第二训练模型获取模块,用于若所述手写字图像的数量不大于预设的数量阈值时,则将所有手写字图像输入到卷积循环神经网络模型中,采用基于批量梯度下降的反向传播算法更新所述卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;

识别模型获取模块,用于获取手写字测试样本,并将所述手写字测试样本输入到所述手写字训练模型中,获取识别准确率,若所述识别准确率大于或者等于预设准确率,则确定所述手写字训练模型为手写字识别模型。

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

一种非易失性存储介质,所述非易失性存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述文字模型训练方法的步骤。

基于此,有必要针对上述技术问题,提供一种识别准确度较高的文字识别方法、装置、设备及介质。

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

获取原始图像,所述原始图像包括手写字和背景图像;

对所述原始图像进行预处理,获取有效图像;

采用核密度估计算法和腐蚀方法对所述有效图像进行处理,去除背景图像,获取包括所述手写字的目标图像;

采用垂直投影方法对所述目标图像进行单字体切割,获取单字体图像;

将所述单字体图像输入到手写字识别模型中进行识别,获取单字体图像对应的识别结果,所述手写字识别模型是采用上述文字模型训练方法获取到的;

基于所述识别结果查询语义库,获取单字体图像对应的目标汉字。

一种文字识别装置,包括:

原始图像获取模块,用于获取原始图像,所述原始图像包括手写字和背景图像;

有效图像获取模块,用于对所述原始图像进行预处理,获取有效图像;

目标图像获取模块,用于采用核密度估计算法和腐蚀方法对所述有效图像进行处理,去除背景图像,获取包括所述手写字的目标图像;

单字体图像获取模块,用于采用垂直投影方法对所述目标图像进行单字体切割,获取单字体图像;

识别结果获取模块,用于将所述单字体图像输入到手写字识别模型中进行识别,获取单字体图像对应的识别结果,所述手写字识别模型是采用上述文字模型训练方法获取到的;

目标汉字确认模块,用于基于所述识别结果查询语义库,获取单字体图像对应的目标汉字。

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

一种非易失性存储介质,所述非易失性存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述文字识别方法的步骤。

上述文字模型训练方法、装置、计算机设备及存储介质,通过判断手写字训练样本中的手写字图像的数量,决定该手写字训练样本适合采用哪种反向传播算法进行卷积循环神经网络模型参数的更新。若手写字图像的数量大于预设的数量阈值时,则从手写字训练样本中随机选取与数量阈值相同数量的手写字图像并输入到卷积循环神经网络模型中,采用基于随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。保证了手写字训练模型的训练的准确性,同时不会影响手写字训练模型的训练速度。若手写字图像的数量不大于预设的数量阈值时,则将所有手写字图像输入到卷积循环神经网络模型中,采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型,保证了卷积循环神经网络模型中的参数的充分更新,提高了手写字训练模型的识别准确率。

上述文字识别方法、装置、计算机设备及存储介质,通过对原始图像进行预处理,获取有效图像,并采用核密度估计算法和腐蚀方法对有效图像进行处理,去除背景图像的部分,保留仅含有手写字的目标图像,为后续进行单字体切割提供数据来源。采用垂直投影方法对目标图像进行单字体切割,获取单字体图像,将获取的单字体图像输入到手写字识别模型中识别,基于单字体图像对应的识别概率值,获取单字体图像对应的识别结果。采用手写字识别模型对单字体图像进行识别,可以提高识别准确率。基于识别结果查询语义库,根据语义库中存储的中文句子获取单字体图像对应的目标汉字,该目标汉字则为单字体图像对应的汉字。利用语义库获取单字体图像对应的目标汉字,可以筛选出该单字体图像精准对应的目标汉字,通过手写字识别模型和语义库的判断可以提高手写字识别的精准度。

附图说明

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

图1是本发明一实施例中文字模型训练方法的一应用场景图;

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

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

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

图5是本发明一实施例中文字模型训练装置的一示意图;

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

图7是图6中步骤s53的一具体流程图;

图8是图7中步骤s534的一具体流程图;

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

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

具体实施方式

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

本发明实施例提供的文字模型训练方法,可应用在如图1的应用环境中。该文字模型训练方法的应用环境包括服务器和客户端,其中,客户端通过网络与服务器进行通信,客户端是可与用户进行人机交互的设备,包括但不限于电脑、智能手机和平板等设备。本发明实施例提供的文字模型训练方法应用于服务器。

在一实施例中,如图2所示,提供一种文字模型训练方法,该文字模型训练方法包括如下步骤:

s10:获取手写字训练样本,手写字训练样本包括手写字图像和标签汉字。

其中,手写字训练样本指预先存储在数据库中的用于训练神经网络模型的手写字训练样本。手写字训练样本中包括不同的标签汉字和与不同的标签汉字关联的手写字图像,其中,手写字图像指携带有不同人手写的汉字的图像,为了方便手写字训练模型,本实施例中一个手写字图像上对应一个手写字,每个手写字图像上携带有对应的顺序标签,该顺序标签指用于表示手写字图像顺序的标签。如有n个手写字训练样本,每个手写字训练样本中有m个手写字图像,n为非0自然数,对应的顺序标签则为1、2、3……m。标签汉字指从二级中文字库获取的与手写字匹配的标准字体的汉字,标准字体包括但不限于宋体、楷体和仿宋。将标签汉字与手写字图像关联,是为了方便计算机设备识别手写字图像属于什么字,因此,本实施例中,将手写字图像和标签汉字关联时,标签汉字可以只选用使用较普遍的宋体、楷体和仿宋与手写字图像关联,节省存储空间同时简化模型训练量。如一个手写字图像上的手写字是“我”,该手写字图像关联的标签汉字是二级中文字库中收录的各种字体(宋体、楷体、仿宋等)的“我”。

具体地,服务器从数据库中获取手写字训练样本,为后续模型训练提供数据来源。

s20:若手写字图像的数量大于预设的数量阈值时,则从手写字训练样本中随机选取与数量阈值相同数量的手写字图像,将选取的手写字图像输入到卷积循环神经网络模型中,采用基于随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

其中,数量阈值指预先设置的用于判断一个手写字训练样本中的手写字图像的数量是否满足要求。卷积循环神经网络(convolutional-recurrentneuralnetworks,简称c-rnn)模型是由卷积神经网络(convolutionalneuralnetworks,简称cnn)模型和循环神经网络(recurrentneuralnetworks,简称rnn)模型组成的一种神经网络模型。卷积循环神经网络模型的前向输出即就是循环神经网络模型的前向输出。其中,随机梯度下降(stochasticgradientdescent,简称sgd)是指在根据反向传播算法更新卷积循环神经网络模型的权值和偏置时,是基于手写字训练样本中随机选取的手写字图像对应的前向输出对卷积循环神经网络模型中的权值和偏置进行更新的情况。反向传播(backpropagation)算法是指按照时序状态的反向顺序调整隐藏层与输出层之间的权值和偏置、以及输入层与隐藏层之间的权值和偏置的算法。手写字训练模型指将训练集输入到卷积循环神经网络模型中进行训练后的模型。

具体地,服务器在获取手写字训练样本后,先统计手写字训练样本中手写字图像的数量,再判断手写字训练样本中手写字图像的数量是否大于预设的数量阈值,若手写字图像的数量大于预设的数量阈值,则从手写字训练样本中随机选取与数量阈值相同数量的手写字图像并输入到卷积循环神经网络模型中,卷积神经网络模型中的卷积层和池化层对手写字训练样本中随机选取的手写字图像进行特征提取和处理,获取每个手写字图像的手写字图像对应的手写字图像特征。该手写字图像对应的手写字图像特征指手写字图像经过卷积层和池化层计算后得到的像素矩阵。服务器在获取手写字图像对应的手写字图像特征后,将该手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出。其中,循环神经网络模型的前向输出指手写字图像的手写字图像对应的手写字图像特征在经过循环神经网络模型的处理,在输出层输出的像素矩阵。然后,针对循环神经网络模型的前向输出,采用随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

例如,若预设的数量阈值为400,当手写字训练样本中的手写字图像的数量为10000个时,服务器会按照预先设置的数量阈值从手写字训练样本中挑选400个手写字图像,输入到卷积循环神经网络模型中,获取手写字图像的对应的前向输出;然后,针对该循环神经网络模型的前向输出,采用随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

当手写字图像的数量大于预设的数量阈值时,从手写字训练样本中随机选取与数量阈值相同数量的手写字图像并输入到卷积循环神经网络模型中,可以避免将手写字训练样本中的手写字图像都输入到卷积循环神经网络模型中,造成模型的训练量过大,影响模型训练的效率。然后采用基于随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,保证了手写字训练模型的训练的准确性,同时不会影响手写字训练模型的训练速度。

在一实施例中,由于卷积循环神经网络模型是由卷积神经网络模型和循环神经网络模型组成的一种神经网络模型,因此在基于卷积循环神经网络模型训练手写字训练模型时,需采用卷积神经网络模型和循环神经网络模型进行模型训练。如图3所示,步骤s20,将选取的手写字图像输入到卷积循环神经网络模型中,采用基于随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型,具体包括如下步骤:

s21:将选取的手写字图像输入到卷积神经网络模型中,获取手写字图像对应的手写字图像特征。

具体地,卷积神经网络模型包括多层卷积层和池化层。将手写字图像输入卷积神经网络模型中进行训练,通过每一层卷积层的计算,获取每一层的卷积层的输出,卷积层的输出可以通过公式aml=σ(zml)=σ(aml-1*wl+bl)计算,其中,aml表示第l层卷积层的第m个顺序标签的输出,zml表示未采用激活函数处理前的第m个顺序标签的输出,aml-1表示l-1层卷积层的第m个顺序标签输出(即上一层的输出),σ表示激活函数,对于卷积层采用的激活函数σ为relu(rectifiedlinearunit,线性整流函数),相比其他激活函数的效果会更),*表示卷积运算,wl表示第l层的卷积核(权值),bl表示第l层的偏置。若第l层是池化层,则在池化层采用最大池化的下样采样对卷积层的输出进行降维处理,具体公式为aml=pool(aml-1),其中pool是指下采样计算,该下采样计算可以选择最大池化的方法,最大池化实际上就是在m*m的样本中取最大值。最后通过公式获取输出层的输出,t(m)表示卷积神经网络模型输出层的输出,该输出即是要获取第m个顺序标签所对应的手写字图像对应的手写字图像特征,该手写字图像对应的手写字图像特征携带有顺序标签,该手写字图像对应的手写字图像特征的顺序标签与该图像标签对应的手写字图像的顺序标签一致。

s22:将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出。

具体地,卷积神经网络模型将手写字图像对应的手写字图像特征输入到循环神经网络模型隐藏层中,根据公式h(m)=σ'(u't(m-1)+w't(m)+b')获取该循环神经网络模型的隐藏层的输出,其中,h(m)表示第m个顺序标签在循环神经网络模型中的隐藏层的输出,σ'表示循环神经网络模型的隐藏层的激活函数,u'表示卷积神经网络模型的卷积层和循环神经网络模型的隐藏层之间的权值,若第l层是池化层,则u'表示卷积神经网络模型的池化层和循环神经网络模型的隐藏层之间的权值。w'表示隐藏层和隐藏层之间的权值,b'表示输入层和隐藏层之间的偏置,t(m)表示循环神经网络模型的输入层获取的第m个顺序标签对应的手写字图像对应的手写字图像特征。

然后,将循环神经网络模型的隐藏层的输出h(m)通过公式o(m)=v'h(m)+c'计算输入到循环神经网络模型中的输出层的输入o(m),该循环神经网络模型的输出层根据公式y(m)=σ”(o(m))对循环神经网络模型中的输出层的输入o(m)进行计算,获取循环神经网络模型的输出,其中,o(m)表示循环神经网络模型中隐藏层输入给输出层的输入,v'表示循环神经网络模型的隐藏层和输出层之间的权值,c'表示隐藏层和输出层之间的偏置,y(m)表示循环神经网络模型的前向输出,该循环神经网络模型的前向输出y(m)具体指训练集中的手写字图像输入到循环神经网络模型中得到的手写字图像对应的前向输出,σ”表示循环神经网络模型的输出层的激活函数,一般为softmax函数。

s23:采用循环神经网络模型的前向输出,构建第一损失函数,并基于第一损失函数采用随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

其中,第一损失函数的具体表达式为其中,eloss(θ)表示手写字训练样本中手写字图像对应的总误差的平均值,m表示手写字训练样本中手写字图像携带的顺序标签的个数,表示第n个手写字训练样本中第m个顺序标签对应的手写字图像的前向输出,表示第n个手写字训练样本中第m个顺序标签对应的标签汉字,θ表示权值和偏置的集合。

具体地,θ表示卷积神经网络模型中的权值和偏置与循环神经网络模型的权值和偏置的集合。

根据第一损失函数,采用基于随机梯度下降的反向传播算法,更新卷积循环神经网络模型中的权值和偏置,即计算每一个手写字图像与标签汉字的误差,对每一个误差求一次偏导,更新一次卷积循环神经网络模型中的权值和偏置,当误差的数量满足预设的数量阈值时,则停止卷积循环神经网络模型中的权值和偏置,即停止对卷积循环神经网络模型训练,该求偏导的公式为采用随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,保证了手写字训练模型的训练的准确性,同时不会影响手写字训练模型的训练速度。

步骤s21-s23,通过卷积神经网络模型获取手写字图像对应的手写字图像对应的手写字图像特征,然后将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出,并根据循环神经网络模型的前向输出和标签汉字构建第一损失函数。最后根据第一损失函数,采用基于随机梯度下降的反向传播算法更新调整循环神经网络模型和卷积神经网络模型中的权值和偏置,获取手写字训练模型。保证了手写字训练模型的训练的准确性,同时不会影响手写字训练模型的训练速度。

s30:若手写字图像的数量不大于预设的数量阈值时,则将所有手写字图像输入到卷积循环神经网络模型中,采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

其中,批量梯度下降(batchgradientdescent,简称bgd)指在根据反向传播算法更新卷积循环神经网络模型的权值和偏置时,是基于手写字训练样本中的手写字图像对应的前向输出进行更新的情况。手写字训练模型指将手写字训练样本输入到卷积循环神经网络模型中进行训练后得到的模型。

具体地,若手写字图像的数量不大于预设的数量阈值时,则将手写字训练样本中的手写字图像输入到卷积循环神经网络模型中,卷积神经网络模型中的卷积层和池化层对手写字训练样本中的所有手写字图像进行特征提取和处理,获取每个手写字图像的手写字图像对应的手写字图像特征。该手写字图像对应的手写字图像特征指手写字图像经过卷积层和池化层计算后得到的像素矩阵。获取手写字图像对应的手写字图像特征后,将该手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出。其中,循环神经网络模型的前向输出指手写字图像的手写字图像对应的手写字图像特征在经过循环神经网络模型的处理,在输出层输出的像素矩阵。然后,针对循环神经网络模型的前向输出,基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

例如,若预设的数量阈值为400,当手写字训练样本中的手写字图像的数量为300个时,服务器会将手写字训练样本中所有手写字图像输入到卷积循环神经网络模型中,获取手写字图像的对应的前向输出;然后,针对该循环神经网络模型的前向输出,采用批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

当手写字图像的数量不大于预设的数量阈值,将所有手写字图像输入到卷积循环神经网络模型中进行训练,并采用批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,使得卷积循环神经网络模型的权值和偏置的更新是根据手写字图像构建的损失函数进行的更新,可以使得所有手写字图像都能参与卷积循环神经网络模型(循环神经网络模型和卷积神经网络模型)的权值和偏置的更新和调整,保证了手写字训练模型的训练全面性,提高了手写字训练模型的准确性。

在一实施例中,由于卷积循环神经网络模型是由卷积神经网络模型和循环神经网络模型组成的一种神经网络模型,因此在基于卷积循环神经网络模型训练手写字训练模型时,需采用卷积神经网络模型和循环神经网络模型进行模型训练。如图4所示,将所有手写字图像输入到卷积循环神经网络模型中,采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型,具体包括如下步骤:

s31:将所有手写字图像输入到卷积神经网络模型中,获取手写字图像对应的手写字图像特征。

s32:将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出。

步骤s31的具体情况与步骤s21相同,步骤s32的具体情况与步骤s22相同,为避免重复,不再赘述。

s33:采用循环神经网络模型的前向输出,构建第二损失函数,并基于第二损失函数采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

其中,第二损失函数的具体表达式为:其中,n表示手写字训练样本中手写字图像的个数,eloss(θ)表示n个手写字训练样本中所有手写字图像对应的总误差的平均值,m表示手写字训练样本中手写字图像携带的顺序标签的个数,表示第n个手写字训练样本中第m个顺序标签对应的手写字图像的前向输出,表示第n个手写字训练样本中第m个顺序标签对应的标签汉字,θ表示权值和偏置的集合。

具体地,θ表示卷积神经网络模型中的权值和偏置与循环神经网络模型的权值和偏置的集合。

根据第二损失函数,采用基于批量梯度下降的反向传播算法,更新卷积循环神经网络模型中的权值和偏置,即将所有手写字图像的误差累加得到的获取手写字训练样本的总误差,对手写字训练样本的总误差进行平均值计算,得到eloss(θ),对eloss(θ)求偏导,更新调整循环神经网络模型和卷积神经网络模型中的权值和偏置,该求偏导的公式为采用批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,可以使得训练集中的所有手写字图像产生的误差都能参与卷积循环神经网络模型(循环神经网络模型和卷积神经网络模型)的权值和偏置的更新和调整,保证了手写字训练模型的训练全面性,提高了手写字训练模型的准确性。

步骤s21-s23,通过卷积神经网络模型获取手写字图像对应的手写字图像对应的手写字图像特征,然后将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出,并根据循环神经网络模型的前向输出和标签汉字构建第二损失函数。最后根据第二损失函数,采用基于批量梯度下降的反向传播算法更新调整循环神经网络模型和卷积神经网络模型中的权值和偏置,获取手写字训练模型。保证了手写字训练模型的训练全面性,提高了手写字训练模型的准确性。

s40:获取手写字测试样本,并将手写字测试样本输入到手写字训练模型中,获取识别准确率,若识别准确率大于或者等于预设准确率,则确定手写字训练模型为手写字识别模型。

其中,手写字测试样本指用于测试手写字训练模型的识别准确性的含有手写图像的样本。为了使用手写字测试样本验证手写字训练模型对手写字识别的准确性,手写字测试样本包括手写字图像和标签汉字。

手写字识别模型指经过手写字测试样本对手写字训练模型进行测试后确定的识别准确率符合预设准确率的模型,该手写字识别模型可用于识别手写字图像的模型。

为了进一步确定手写字训练模型对手写字图像识别的准确性是否满足要求,还需要将手写字测试样本输入到手写字训练模型中进行测试。具体地,在手写字训练模型训练完成后,将手写字测试样本中每一手写字图像依次输入到手写字训练模型中,获取每个手写字图像对应的识别汉字,本实施例中的识别汉字具体指手写字图像经过手写字训练模型识别得到的汉字。根据每一手写字图像对应的识别汉字和标签汉字判断该手写字训练模型对手写字图像的识别是否准确,若准确,则将识别准确数量加1,然后根据公式:识别准确率=识别准确数量/手写字测试样本中手写字图像的数量,计算该手写字训练模型的识别准确率。若该手写字训练模型的识别准确率大于预设准确率,则确定该手写字训练模型为手写字识别模型;反之,若该手写字训练模型的识别准确率不大于预设准确率,则需重新进行手写字训练模型训练,直至手写字训练模型的识别准确率符合要求。其中,预设准确率是预先设置的用于评价手写字训练模型的准确率符合预设要求的阈值。例如,预设准确率为82%,手写字测试样本在经过手写字训练模型的识别后,得到的识别准确率大于82%(如85%或者90%等),则表示该手写字训练模型对手写字训练样本的识别准确率达到了要求,该手写字训练模型可以确定为手写字识别模型。

本实施例所提供的文字模型训练方法,通过对手写字训练样本中的手写字图像的数量进行判断并选择不同的梯度下降的反向传播算法(随机梯度下降的反向传播算法或者批量梯度下降的反向传播算法)更新卷积循环神经网络模型中的权值和偏置,有利于提高卷积循环神经网络模型的训练速度和准确度。

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

在一实施例中,提供一种文字模型训练装置,该文字模型训练装置与上述实施例中文字模型训练方法一一对应。如图5所示,该文字模型训练装置包括训练样本获取模块10、第一训练模型获取模块20、第二训练模型获取模块30和识别模型获取模块40,各功能模块详细说明如下:

训练样本获取模块10,用于获取手写字训练样本,手写字训练样本包括手写字图像和标签汉字。

第一训练模型获取模块20,用于若手写字图像的数量大于预设的数量阈值时,则从手写字训练样本中随机选取与数量阈值相同数量的手写字图像,将选取的手写字图像输入到卷积循环神经网络模型中,采用基于随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

第二训练模型获取模块30,用于若手写字图像的数量不大于预设的数量阈值时,则将所有手写字图像输入到卷积循环神经网络模型中,采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

识别模型获取模块40,用于获取手写字测试样本,并将手写字测试样本输入到手写字训练模型中,获取识别准确率,若识别准确率大于或者等于预设准确率,则确定手写字训练模型为手写字识别模型。

具体地,卷积循环神经网络模型包括卷积神经网络模型及循环神经网络模型。

第一训练模型获取模块20包括第一图像特征获取单元21和第一前向输出获取单元22和第一训练模型计算单元23。

第一图像特征获取单元21,用于将选取的手写字图像输入到卷积神经网络模型中,获取手写字图像对应的手写字图像特征。

第一前向输出获取单元22,用于将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出。

第一训练模型计算单元23,用于采用循环神经网络模型的前向输出,构建第一损失函数,并基于第一损失函数采用随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

具体地,第二训练模型获取模块30包括第二图像特征获取单元31和第二前向输出获取单元32和第二训练模型计算单元33。

第二图像特征获取单元31,用于将所有手写字图像输入到卷积神经网络模型中,获取手写字图像对应的手写字图像特征。

第二前向输出获取单元32,用于将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出。

第二训练模型计算单元33,用于采用循环神经网络模型的前向输出,构建第二损失函数,并基于第二损失函数采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型。

在一实施例中,如图6所示,提供一种文字识别方法,该文字识别方法包括如下步骤:

s51:获取原始图像,原始图像包括手写字和背景图像。

其中,原始图像指没有经过任何处理的特定图像,该特定图像是指需要包括手写字的图像。本实施例中的原始图像包括手写字和背景图像。其中,背景图像是指原始图像上的背景图案对应的图像。该原始图像的获取方式包括但不限于从网页上爬取或者通过访问与服务器相连的数据库上获取,该数据库上的原始图像可以是终端设备预先上传的图像。

s52:对原始图像进行预处理,获取有效图像。

其中,有效图像指原始图像经过预处理后的图像。服务器获取有效图像的具体步骤为:(1)判断原始图像是否为彩色图像,若原始图像为彩色图像,则对原始图像进行灰度化处理,获取灰度图像,使得彩色图像中每个像素对应的三个分量r(红色)、g(绿色)和b(蓝色)可以用一个值替代,有助于简化后续进行极差标准化处理的复杂度。可以理解地,若原始图像不为彩色图像,则原始图像为灰度图像,无需再进行灰度化处理。(2)对灰度图像对应的像素矩阵进行极差标准化处理,获取有效图像。对灰度图像对应的像素矩阵进行极差标准化处理可以在保留像素矩阵中相对关系,同时又可以提高计算速度。

获取有效图像的具体包括如下步骤:一、对原始图像进行放大和灰度化处理,获取灰度图像。由于在原始图像中,手写字本身的尺寸相对于背景图像而言较小,在对原始图像进行灰度化处理时,手写字容易被误处理掉,因此,为了保证手写字不会再灰度化处理时被误清除,需要对原始图像对应的每个像素进行放大处理,如原始图像中第n个像素的大小为xn,对原始图像中的每个像素进行幂次放大处理,使得xn变为本实施例中,将原始图像中的像素进行放大处理,可以有效避免在对原始图像进行灰度化处理时,手写字被误处理掉。在原始图像进行放大处理后,若原始图像不是灰度图像而是彩色图像时,则需要对原始图像进行灰度化处理,获取灰度图像。可以理解地,若原始图像为灰度图像,则不需要进行灰度化处理。当原始图像为彩色图像时,对原始图像进行灰度化处理的具体步骤为:采用公式y=0.299r+0.587g+0.114b对原始图像中的每个像素进行处理,获取每个像素对应的采样像素,依据该采样像素形成灰度图像;其中,r(红色)、g(绿色)和b(蓝色)是原始图像中的三个分量,采样像素是灰度图像中用于替换彩色图像中r、g和b三个分量对应的像素。对原始图像为彩色图像进行灰度化处理,有效减少了后续步骤获取有效图像时需要处理的数据量和计算的复杂度。

二、对灰度图像对应的像素矩阵进行极差标准化处理,获取有效图像,其中,极差标准化处理的公式为x是标准化前有效图像的像素,x'是是标准化后有效图像的像素,mmin是灰度图像对应的像素矩阵m中最小的像素,mmax是灰度图像对应的像素矩阵m中最大的像素。其中,极差标准化处理是对数据进行处理,使数据压缩在(0,1)范围内的处理方法。对灰度图像对应的像素矩阵进行价差标准化处理并乘上255,可以方便对像素矩阵中的数据进行处理,同时保留像素矩阵中各像素的相互关系。灰度图像中,背景图像和每个手写字都有各自对应的像素矩阵。在获取灰度图像中的背景图像和每个手写字对应的像素矩阵后,对像素矩阵进行极差标准化处理,获取极差标准化处理后的像素矩阵对应的有效图像。对像素矩阵进行极差标准化处理,能够提高获取目标图像的处理速度。

s53:采用核密度估计算法和腐蚀方法对有效图像进行处理,去除背景图像,获取包括手写字的目标图像。

目标图像指仅包含手写字部分的图像。核密度估计算法是一种从数据样本本身出发研究数据分布特征,用于估计概率密度函数的非参数方法。核密度估计算法的具体公式为表示像素的估计概率密度,k(.)为核函数,h为像素范围,x为要估计概率密度的像素,xi为h范围内的第i像素,n为h范围内像素为x的个数。腐蚀方法指对图像进行腐蚀处理的方法,其中,腐蚀指去除图像中背景图像的部分,仅保留手写字的部分。

本实施例中,采用核密度估计算法的公式对有效图像对应的频率分布直方图进行处理,获取频率分布直方图对应的平滑曲线,根据平滑曲线上的频率极小值和频率极大值,获取频率极小值和频率极大值对应的像素,然后根据频率极大值和频率极小值对应的像素对有效图像进行分层处理,在分层处理后,对分层处理后的图像进行腐蚀处理,去除背景图像,保留手写字部分。最后将经过分层和腐蚀处理的图像进行叠加处理,获取目标图像。其中,叠加处理指将分层后的仅保留有手写字部分的图像叠加成一个图像的处理过程,从而实现获取目标图像的目的。

在一实施例中,如图7所示,步骤s53,采用核密度估计算法和腐蚀方法对所述有效图像进行处理,去除背景图像,获取包括手写字的目标图像,具体包括如下步骤:

s531:对有效图像中的像素出现的次数进行统计,获取有效图像对应的频率分布直方图。

其中,频率分布直方图的横轴表示样本数据的连续值,横轴上的每个小区间对应一个组的组距,作为小矩形的底边;纵轴表示频率与组距的比值,并用该比值作为小矩形的高,以多个小矩形构成的一组图称为频率直方图。具体地,获取有效图像后,在频率直方图的横轴表示像素为(0,255)之间的连续值,横轴上每个小矩形对应的组距为1,纵轴表示小矩形对应的像素出现的频率与组距的比值,该比值即为对应的小矩形的高。该频率分布直方图可以形象地将有效图像中的像素出现的次数展示出来,使得数据的分布情况一目了然地反映出来。

s532:采用高斯核密度估算方法对频率分布直方图进行处理,获取频率分布直方图对应的至少一个频率极大值和频率极小值。

高斯核密度估算方法指核函数为高斯核的核密度估算方法。其中,高斯核对应的函数为其中,k(x)指像素(自变量)为x的高斯核函数,x指像素,e和π为常数。频率极大值指在频率分布直方图中,频率值大小为频率极大值的频率值;频率极小值指在频率分布直方图中,频率值大小为频率极小值的频率值。具体地,采用高斯核密度函数估算方法对获取的有效图像对应的频率分布直方图进行高斯平滑处理,获取该频率分布直方图对应的高斯平滑曲线。基于该高斯平滑曲线上的频率极大值和频率极小值,获取频率极大值和频率极小值对应横轴上的像素。本实施例中,获取频率极大值和频率极小值对应的像素,便于后续对有效图像进行分层区分,获取分层图像。

s533:基于至少一个频率极大值和频率极小值对应的像素对有效图像进行切分处理,获取分层图像。

分层图像指基于频率极大值和频率极小值对有效图像进行分层处理得到的图像。获取频率分布直方图对应的至少一个频率极大值和频率极小值对应的像素,根据至少一个频率极大值对应的像素对有效图像进行分层处理,有效图像中有多少个频率极大值,对应的有效图像的像素就被聚类为多少类,该有效图像就会被分为几层。然后以频率极小值对应的像素作为类之间的边界值,根据类之间的边界则可以每一层分层图像对应的像素。

如有效图像中的频率极大值对应的像素分别为12、54、97、113、159、172,频率极小值对应的像素分别为26、69、104、139和163,根据有效图像中的频率极大值的个数可以确定该有效图像的像素可以被分为6类,该有效图像可以被分为6层,频率极小值对应的像素作为类之间的边界值,由于最小的像素为0,最大的像素为255,因此,根据类之间的边界值则可以确定以像素为12的分层图像,该分层图像对应的像素范围为[0,26);以像素为54的分层图像,该分层图像对应的像素范围为[26,69);以像素为97的分层图像,该分层图像对应的像素范围为[69,104);以像素为113的分层图像,该分层图像对应的像素范围为[104,139);以像素为159的分层图像,该分层图像对应的像素范围为[139,163);以像素为172的分层图像,该分层图像对应的像素范围为[163,255]。

s534:对分层图像进行腐蚀和叠加处理,获取目标图像。

获取分层图像后,对分层图像进行二值化处理。其中,二值化处理是指将图像上的像素设置为0(黑色)或1(白色),将整个图像呈现出明显的黑白效果的处理。对分层图像进行二值化处理后,对二值化处理后的分层图像进行腐蚀处理,去除背景图像部分,保留分层图像上的手写字部分。其中,腐蚀处理是用于形态学中去除图像的某部分的内容的操作。由于每个分层图像上的像素是属于不同范围的像素,因此,对分层图像进行腐蚀处理后,还需要将每个分层图像叠加,生成仅含有手写字的目标图像。

在一实施例中,如图8所示,步骤s534,对分层图像进行腐蚀和叠加处理,获取目标图像,具体包括如下步骤:

s5341:对分层图像进行二值化处理,获取分层二值化图像。

分层二值化图像指对分层图像进行二值化处理获取的图像。具体地,获取分层图像后,基于分层图像的采样像素和预先选取的阈值进行比较,将采样大于等于阈值的像素设置为1,小于阈值的像素设置为0的过程。本实施例中,0代表背景像素,1代表目标像素(手写字像素)。该阈值可以通过计算分层图像的类间方差获取,也可以根据经验值获取。阈值的大小会影响分层图像二值化处理的效果,若阈值选取合适,则对分层图像进行二值化处理的效果就比较好,相应地,若阈值选取不合适,则影响分层图像二值化处理的效果。为了方便操作,简化计算过程,本实施例中的阈值根据经验值确定。

s5342:对分层二值化图像中的像素进行检测标记,获取分层二值化图像对应的连通区域。

其中,连通区域是指某一特定像素周围的邻接像素所围成的区域。如某特定像素为0,其周围的邻接像素为1,则将邻接像素所围成的区域作为连通区域。

获取每个分层图像对应的分层二值化图像后,对分层二值化图像对应的像素矩阵进行逐行扫描,将符合连通规则(4邻域连通或者8邻域连通)的像素向相同的标号标记出来。4邻域连通指一个特定像素与上、下、左、右四个方向相邻的像素相同的情况;8邻域连通指一个特定像素上、下、左、右、左上、左下、右上、右下八个方向相邻的像素相同的情况。

具体地,像素矩阵包括行和列。对二值化图像中的像素进行检测标记的具体过程为:(1)逐行扫描像素矩阵,把每一行中连续为1的像素(目标像素)组成一个序列,该序列称为团,标记好该团的起点、终点以及所在的行号。团的起点指团的第一个像素,团的终点指团的最后一个像素。(2)对像素矩阵中除了第一行外的剩余行里的团,比较某一特定剩余行中的团与前一行中的所有团是否有重合区域,若没有重合区域,则给该特定剩余行中的团一个新的标号;如果该特定剩余行中的团仅与上一行中一个团有重合区域,则将上一行的该团的标号赋给它;如果该特定剩余行与上一行中有两个以上的团有重合区域,则给对应的团赋一个相关联团的最小标号,并将上一行的这几个团中的标记写入等价对,说明它们属于一类。其中,相关联团指与特定剩余行的团有重合区域的上一行的团;等价对指相互连通的团上的标号。

例如,一像素矩阵中的特定剩余行为第三行,该第三行中有两个团(a,b),其中a团与第二行中的两个团(该两个团的标号为1,2)有重合区域,则将第二行中的两个团的最小标号1赋给该a团,a团的标号为1,并将a团、1团和2团对应的标号记为等价对,即将(1,2)记为等价对。标号为1和标号为2的团则称为一个连通区域。

s5343:对分层二值化图像对应的连通区域进行腐蚀处理,并将腐蚀处理后的分层图像进行叠加处理,获取目标图像。

采用matlab中的imerode函数或者opencv中的cverode函数对分层二值化图像的连通区域进行腐蚀处理。具体地,选取一个结构像素,本实施例是以像素矩阵中某个特征像素相邻的8个像素作为该特征像素的连通区域的,因此,选取的结构像素3×3的像素矩阵。使用结构像素对分层二值化图像的像素矩阵进行扫描,比较分层二值化图像中的像素矩阵与结构像素是否完全一致,若完全一致时,则像素矩阵中对应的9个像素为都变为1;若不完全一致,则像素矩阵中对应的9个像素都变为0,其中,0(黑色)则为分层二值化图像被腐蚀的部分。

基于预先设置的手写字区域抗腐蚀能力范围对分层二值化图像进行筛选,对于不在手写字区域抗腐蚀能力范围内的分层二值化图像部分删除,获取分层二值化图像中在手写字区域抗腐蚀能力范围内的部分。对筛选出的符合手写字区域抗腐蚀能力范围的每个分层二值化图像部分对应的像素矩阵进行叠加,就可以获取到仅含有手写字的目标图像。其中,手写字区域抗腐蚀能力可以采用公式:计算,s1表示分层二值化图像中被腐蚀后的总面积,s2表示分层二值化图像中被腐蚀前的总面积。

如预先设置的手写字区域抗腐蚀能力范围为[0.05,0.8],根据公式计算每个分层二值化图像被腐蚀后的总面积和分层二值化图像被腐蚀前的总面积的比值。通过计算,分层二值化图像中某区域腐蚀后的总面积和腐蚀前的总面积的比值不在预先设置的手写字区域抗腐蚀能力范围内,则表示该区域的分层二值化图像是手写字,需要保留。分层二值化图像中的某区域腐蚀后的总面积和腐蚀前的总面积的比值在[0.05,0.8]范围内,则表示该区域的分层二值化图像是手写字,需要保留。采用imadd函数对对每个腐蚀处理后的分层二值化图像对应的像素矩阵进行叠加处理,获取只包含手写汉字的目标图像。imadd函数是计算机语言中的一个函数,用于对分层图像进行叠加。

s54:采用垂直投影方法对目标图像进行单字体切割,获取单字体图像。

其中,垂直投影方法是指将每一行手写字进行垂直方向的投影,获取垂直投影直方图的方法。垂直投影直方图是指反映目标图像在垂直方向上的像素数量的图,垂直投影直方图的横坐标轴表示目标图像的宽度,纵坐标表示目标图像的像素数量分布情况。

具体地,逐行扫描目标图像中的每一行手写字并获取每一行手写字对应的像素的数量,基于像素和像素的数量形成垂直投影直方图,再根据该垂直投影直方图,按照预先设置的切割阈值对目标图像进行切割,获取单字体图像。单字体图像指单个字体对应的图像。其中,切割阈值指预先设置好的用于切割目标图像中的手写字,获取单字体。当扫描到目标图像对应的垂直投影直方图中的纵坐标上的像素数量小于等于阈值时,则表示对应的横坐标的位置是两个相邻手写字之间的分隔点,在该分隔点对目标图像进行单字体切割。如预先设置的切割阈值为10,当扫描到目标图像对应的垂直投影直方图中像素数量为小于等于10时(0、9和10),则该像素数量值(0、9和10)对应的横坐标所在的位置是两个相邻手写字之间的分割点,在该分割点对目标图像进行单字体切割,获取该目标图像对应的单字体图像。可以理解地,每一个手写字对应的像素是比较集中的,汉字与汉字之间的间隙对应的像素是比较稀疏的,像素的密集程度反应在对应的垂直投影直方图中,则为有汉字的像素对应的像素数量比较高,没有汉字的像素对应的像素数量比较低,通过垂直投影方法能够有效对目标图像进行单字体切割,获取单字体图像,为后续进行模型识别提供技术支持。

s55:将单字体图像输入到手写字识别模型中进行识别,获取单字体图像对应的识别结果,手写字识别模型是采用上述文字模型训练方法获取到的。

其中,手写字识别模型是预先训练好的用于识别手写字的模型。识别结果指识别概率大于预设概率的手写字图像经过卷积循环神经网络模型识别获取的结果。具体地,将单字体图像输入到手写字识别模型中,获取每一单字体图像对应的识别概率,该识别概率是指该单字体图像可能为某一具体汉字的概率。将识别概率和预设概率进行比较,若识别概率大于预设概率,则获取对应的识别结果,有助于提高识别结果的准确性。

如预设准确率为85%,将“海”对应的单字体图像输入到手写字识别模型中,获取识别概率大于预设概率对应的识别结果,该识别结果可能可能为“诲”或“海”,即“海”对应的单字体图像识别为“诲”或“海”的识别概率均大于85%,因此可能输出两个识别结果“诲”或“海”。

s56:基于识别结果查询语义库,获取单字体图像对应的目标汉字。

其中,语义库是预先设置的用于对识别结果进行语义分析的知识库。语义分析是对识别结果进行上下文有关性质的分析。语义库是由大量的中文句子组成。目标汉字是查询语义库后符合语义的单字体图像所对应的汉字。

具体地,在获取单字体图像对应的识别结果后,还需要根据语义库进一步确定目标汉字,如“海”“枯”、“石”以及“烂”这四个单字体图像对应的识别结果为“诲”或“海”、“枯”、“石”以及“烂”或“栏”,为了进一步确定存在两个或两个以上识别结果哪一个属于单字体图像对应的的目标汉字,还需查询语义库,根据语义库中收录的中文句子判断更加准确的识别结果。通过查询语义库“海枯石烂”符合语义,则确定每一单字体图像对应的目标汉字为“海”“枯”“石”“烂”,根据语义库确定目标汉字,可以提高对单字体图像识别的准确率。

该文字识别方法通过对原始图像进行放大和灰度化处理,获取灰度图像,然后对灰度图像进行价差标准化处理,获取有效图像。方便后续步骤采用高斯核密度估计算法对有效图像进行分层、二值化、腐蚀和叠加处理,去除背景图像,保留只含有手写字的目标图像。采用垂直投影方法对目标图像进行单字体切割,获取单字体图像,将获取的单字体图像输入到手写字识别模型中识别,基于单字体图像对应的识别概率值,获取单字体图像对应的识别结果。基于识别结果查询语义库,根据语义库中存储的中文句子获取单字体图像对应的目标汉字,通过手写字识别模型和语义库的判断筛选可以提高手写字识别的精准度。

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

在一实施例中,提供一种文字识别装置,该文字识别装置与上述实施例中文字识别方法一一对应。如图9所示,该文字识别装置包括原始图像获取模块51、有效图像获取模块52、目标图像获取模块53、单字体图像获取模块54、识别结果获取模块55和目标汉字确认模块56。各功能模块详细说明如下:

原始图像获取模块51,用于获取原始图像,原始图像包括手写字和背景图像。

有效图像获取模块52,用于对原始图像进行预处理,获取有效图像。

目标图像获取模块53,用于采用核密度估计算法和腐蚀方法对有效图像进行处理,去除背景图像,获取包括手写字的目标图像。

单字体图像获取模块54,用于采用垂直投影方法对目标图像进行单字体切割,获取单字体图像。

识别结果获取模块55,用于将单字体图像输入到手写字识别模型中进行识别,获取单字体图像对应的识别结果,手写字识别模型是采用上述文字模型训练方法获取到的。

目标汉字确认模块56,用于基于识别结果查询语义库,获取单字体图像对应的目标汉字。

具体地,目标图像获取模块53包括第一处理单元531、第二处理单元532、分层图像获取单元533、分层图像处理单元534。

第一处理单元531,用于对有效图像中的像素出现的次数进行统计,获取有效图像对应的频率分布直方图。

第二处理单元532,用于采用高斯核密度估算方法对频率分布直方图进行处理,获取频率分布直方图对应的至少一个频率极大值和频率极小值。

分层图像获取单元533,用于基于至少一个频率极大值和频率极小值对应的像素对有效图像进行切分处理,获取分层图像。

分层图像处理单元534,用于对分层图像进行腐蚀和叠加处理,获取目标图像。

具体地,分层图像处理单元534包括二值化处理单元5341、连通区域获取单元5342和连通区域处理单元5343。

二值化处理单元5341,用于对分层图像进行二值化处理,获取分层二值化图像。

连通区域获取单元5342,用于对分层二值化图像中的像素进行检测标记,获取分层二值化图像对应的连通区域。

连通区域处理单元5343,用于对分层二值化图像对应的连通区域进行腐蚀处理,并将腐蚀处理后的分层图像进行叠加处理,获取目标图像。

在一实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储手写字识别模型。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文字模型训练方法。

在一实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取手写字训练样本,手写字训练样本包括手写字图像和标签汉字;若手写字图像的数量大于预设的数量阈值时,则从手写字训练样本中随机选取与数量阈值相同数量的手写字图像,将选取的手写字图像输入到卷积循环神经网络模型中,采用基于随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;若手写字图像的数量不大于预设的数量阈值时,则将所有手写字图像输入到卷积循环神经网络模型中,采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;获取手写字测试样本,并将手写字测试样本输入到手写字训练模型中,获取识别准确率,若识别准确率大于或者等于预设准确率,则确定手写字训练模型为手写字识别模型。

在一实施例中,处理器执行计算机程序时还实现以下步骤:将选取的手写字图像输入到卷积神经网络模型中,获取手写字图像对应的手写字图像特征;将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出;采用循环神经网络模型的前向输出,构建第一损失函数,并基于第一损失函数采用随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;第一损失函数的具体表达式为:

其中,eloss(θ)表示手写字训练样本中手写字图像对应的总误差的平均值,m表示手写字训练样本中手写字图像携带的顺序标签的个数,表示第n个手写字训练样本中第m个顺序标签对应的手写字图像的前向输出,表示第n个手写字训练样本中第m个顺序标签对应的标签汉字,θ表示权值和偏置的集合。

在一实施例中,处理器执行计算机程序时还实现以下步骤:将所有手写字图像输入到卷积神经网络模型中,获取手写字图像对应的手写字图像特征;将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出;采用循环神经网络模型的前向输出,构建第二损失函数,并基于第二损失函数采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;第二损失函数的具体表达式为:

其中,n表示手写字训练样本中手写字图像的个数,eloss(θ)表示n个手写字训练样本中所有手写字图像对应的总误差的平均值,m表示手写字训练样本中手写字图像携带的顺序标签的个数,表示第n个手写字训练样本中第m个顺序标签对应的手写字图像的前向输出,表示第n个手写字训练样本中第m个顺序标签对应的标签汉字,θ表示权值和偏置的集合。

在一实施例中,提供了一种非易失性存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取手写字训练样本,手写字训练样本包括手写字图像和标签汉字;若手写字图像的数量大于预设的数量阈值时,则从手写字训练样本中随机选取与数量阈值相同数量的手写字图像,将选取的手写字图像输入到卷积循环神经网络模型中,采用基于随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;若手写字图像的数量不大于预设的数量阈值时,则将所有手写字图像输入到卷积循环神经网络模型中,采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;获取手写字测试样本,并将手写字测试样本输入到手写字训练模型中,获取识别准确率,若识别准确率大于或者等于预设准确率,则确定手写字训练模型为手写字识别模型。

在一实施例中,计算机程序被处理器执行时还实现以下步骤:将选取的手写字图像输入到卷积神经网络模型中,获取手写字图像对应的手写字图像特征;将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出;采用循环神经网络模型的前向输出,构建第一损失函数,并基于第一损失函数采用随机梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;第一损失函数的具体表达式为:

其中,eloss(θ)表示手写字训练样本中手写字图像对应的总误差的平均值,m表示手写字训练样本中手写字图像携带的顺序标签的个数,表示第n个手写字训练样本中第m个顺序标签对应的手写字图像的前向输出,表示第n个手写字训练样本中第m个顺序标签对应的标签汉字,θ表示权值和偏置的集合。

在一实施例中,计算机程序被处理器执行时还实现以下步骤:将所有手写字图像输入到卷积神经网络模型中,获取手写字图像对应的手写字图像特征;将手写字图像对应的手写字图像特征输入到循环神经网络模型中进行训练,获取循环神经网络模型的前向输出;采用循环神经网络模型的前向输出,构建第二损失函数,并基于第二损失函数采用基于批量梯度下降的反向传播算法更新卷积循环神经网络模型中的权值和偏置,获取手写字训练模型;第二损失函数的具体表达式为:

其中,n表示手写字训练样本中手写字图像的个数,eloss(θ)表示n个手写字训练样本中所有手写字图像对应的总误差的平均值,m表示手写字训练样本中手写字图像携带的顺序标签的个数,表示第n个手写字训练样本中第m个顺序标签对应的手写字图像的前向输出,表示第n个手写字训练样本中第m个顺序标签对应的标签汉字,θ表示权值和偏置的集合。

在一实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取原始图像,原始图像包括手写字和背景图像;对原始图像进行预处理,获取有效图像;采用核密度估计算法和腐蚀方法对有效图像进行处理,去除背景图像,获取包括手写字的目标图像;采用垂直投影方法对目标图像进行单字体切割,获取单字体图像;将单字体图像输入到手写字识别模型中进行识别,获取单字体图像对应的识别结果,手写字识别模型是采用上述文字模型训练方法获取到的;基于识别结果查询语义库,获取单字体图像对应的目标汉字。

在一实施例中,处理器执行计算机程序时实现以下步骤:对原始图像进行放大和灰度化处理,获取灰度图像;对灰度图像对应的像素矩阵进行极差标准化处理,获取有效图像,其中,极差标准化处理的公式为x是标准化前有效图像的像素,x'是标准化后有效图像的像素,mmin是灰度图像对应的像素矩阵m中最小的像素,mmax是灰度图像对应的像素矩阵m中最大的像素;对有效图像中的像素出现的次数进行统计,获取有效图像对应的频率分布直方图;采用高斯核密度估算方法对频率分布直方图进行处理,获取频率分布直方图对应的至少一个频率极大值和频率极小值;基于至少一个频率极大值和频率极小值对应的像素对有效图像进行切分处理,获取分层图像;对分层图像进行腐蚀和叠加处理,获取目标图像。

在一实施例中,处理器执行计算机程序时实现以下步骤:对分层图像进行二值化处理,获取分层二值化图像;对分层二值化图像中的像素进行检测标记,获取分层二值化图像对应的连通区域;对分层二值化图像对应的连通区域进行腐蚀处理,并将腐蚀处理后的分层图像进行叠加处理,获取目标图像。

在一实施例中,提供了一种非易失性存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取原始图像,原始图像包括手写字和背景图像;对原始图像进行预处理,获取有效图像;采用核密度估计算法和腐蚀方法对有效图像进行处理,去除背景图像,获取包括手写字的目标图像;采用垂直投影方法对目标图像进行单字体切割,获取单字体图像;将单字体图像输入到手写字识别模型中进行识别,获取单字体图像对应的识别结果,手写字识别模型是采用上述文字模型训练方法获取到的;基于识别结果查询语义库,获取单字体图像对应的目标汉字。

在一实施例中,计算机程序被处理器执行时还实现以下步骤:对原始图像进行放大和灰度化处理,获取灰度图像;对灰度图像对应的像素矩阵进行极差标准化处理,获取有效图像,其中,极差标准化处理的公式为x是标准化前有效图像的像素,x'是标准化后有效图像的像素,mmin是灰度图像对应的像素矩阵m中最小的像素,mmax是灰度图像对应的像素矩阵m中最大的像素;对有效图像中的像素出现的次数进行统计,获取有效图像对应的频率分布直方图;采用高斯核密度估算方法对频率分布直方图进行处理,获取频率分布直方图对应的至少一个频率极大值和频率极小值;基于至少一个频率极大值和频率极小值对应的像素对有效图像进行切分处理,获取分层图像;对分层图像进行腐蚀和叠加处理,获取目标图像。

在一实施例中,计算机程序被处理器执行时还实现以下步骤:对分层图像进行二值化处理,获取分层二值化图像;对分层二值化图像中的像素进行检测标记,获取分层二值化图像对应的连通区域;对分层二值化图像对应的连通区域进行腐蚀处理,并将腐蚀处理后的分层图像进行叠加处理,获取目标图像。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

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

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

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