本发明涉及图像处理与模式识别领域,尤其涉及一种离线手写体数学公式识别方法。
背景技术:
数学公式在教材、科技论文等科技类文档中非常常见,与一维结构的文本行不同,数学公式中字符空间关系复杂,存在着上下、左右、右上、右下、包围等二维结构。由于数学公式结构复杂,把公式输入到电子文档的过程繁琐复杂,而数学公式的识别技术可以方便地把公式图像或手写公式的笔画序列转换为在电子文档中可编辑的公式格式。
目前数学公式识别系统主要分为两类:(1)针对印刷体的数学公式识别系统;(2)针对手写体的数学公式识别系统。印刷体数学公式识别系统是把获取到的印刷的文档中的数学公式图像进行识别,转换为电子文档中的公式格式;而手写体数学公式识别系统则根据获取到的输入数据分为在线手写体数学公式识别系统和离线手写体数学公式识别系统。在线的识别系统的输入数据是公式的书写过程得到笔画序列,其目标是把笔画序列转换为电子文档中的公式格式;离线的识别系统的输入数据则是书写完成后的数学公式图像,其目标则是将该图像转换为电子文档中的公式格式。
传统的数学公式识别系统包括三个主要技术环节:(1)公式分割,即从输入的公式数据得到各个字符数据的过程,离线形式的输入数据是公式图像,其分割就是把公式图像分成若干个只包含一个字符的子图像,而在线形式的输入数据是笔画序列,其分割就是把属于同一字符的笔画进行组合的过程;(2)字符识别,即从字符数据中提取特征,并完成识别的结果;(3)公式分析,即根据字符的类别和字符间的位置关系对字符的组合进行几何和语义约束,最终将所有字符进行组合,重构出公式的过程。
印刷体数学公式常用的分割方法有:基于图像分析的直接切分法、基于投影的切分技术以及曲线最短路径分割算法等。在线手写体数学公式常用的分割方法有:基于假设网络的字符笔画组合法、基于统计笔画间距离的公式分割算法以及基于笔画对识别的公式分割算法等。字符识别的主要方法分为:人工提取字符图像特征并使用支持向量机、adaboost等分类器进行识别的传统方法;利用卷积神经网络(convolutionalneuralnetwork,cnn)自动提取图像特征并完成分类的深度学习方法。当前常用的公式分析方法主要有根据符号本身的类别、大小和符号间的位置关系判断符号空间关系的结构分析法和根据形式文法判断符号的语义和符号间关系的文法分析法。
由于数学公式本身复杂的二维结构,对公式内容的分割和解析本身就是具有挑战性的问题。而由于手写体的随意性,与印刷体数学字符相比,手写体数学字符粘连情况严重,不同字符大小不一,同一字符形状各异,这给离线手写体数学公式的分割和识别造成了诸多困难。与在线数据相比,离线数据缺少时间序列的信息,在公式的分割和识别方面也更具有挑战性。传统的公式识别方式通过公式分割、字符识别和公式分析三个阶段的处理最终完成对公式整体的识别。然而这种传统的识别方法的容错率低,三个阶段中有一个阶段出现问题就会造成识别结果的错误;同时把问题分为三个子问题再依此求解子问题最优解的方法容易出现最终求出的解非问题最优解的情况。
技术实现要素:
本发明的目的是提供一种离线手写体数学公式识别方法,极大的提高了识别的准确率。
本发明的目的是通过以下技术方案实现的:
一种离线手写体数学公式识别方法,包括:
编码阶段:通过基于inception结构的卷积神经网络cnn对手写体数学公式图像进行特征提取,并通过循环神经网络rnn对提取到的特征进行编码;
解码阶段:根据编码后的特征与前一时刻的解码输出,完成当前阶段各特征的权重计算,从而完成attention模型向量的计算;再根据当前阶段attention模型向量以及编码后的特征,使用解码部分的rnn完成对当前阶段字符的解码,并依此顺序依次解码,完成对手写体数学公式的识别。
由上述本发明提供的技术方案可以看出,利用深度学习中encoder-decoder处理流程,使用cnn+blstm作为encoder对图像内容进行编码,使用lstm作为decoder对编码的特征进行解码,同时引入了注意力机制,从而端到端的处理离线手写体数学公式识别问题;与传统的离线手写数学公式识别方法相比,避免了公式分割、字符识别和公式分析三个阶段的处理,增强了容错率,同时降低了陷入局部最优的风险,能够进一步提升识别的准确率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种离线手写体数学公式识别方法的框架示意图;
图2为本发明实施例提供的卷积神经网络的结构示意图;
图3为本发明实施例提供的inception结构示意图;
图4为本发明实施例提供的lstm单元示意图;
图5为本发明实施例提供的blstm的网络示意图;
图6为本发明实施例提供的attention机制可视化后示意图;
图7为本发明实施例提供的手写体数学公式图像示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明实施例提供一种离线手写体数学公式识别方法,其通过使用深度学习中编解码器(encoder-decoder)方式,将输入的手写数学公式图像进行编码再解码为latex文本,从而端到端的完成对离线手写体数学公式的识别,使得可以通过计算机自动识别笔记、试卷等文档图像中的手写体数学公式。
如图1所示,为本发明实施例提供的一种离线手写体数学公式识别方法的框架示意图,其主要包括编码阶段与解码阶段两部分;具体如下:
一、编码阶段。
通过基于inception结构的卷积神经网络cnn对手写体数学公式图像进行特征提取,并通过循环神经网络rnn对提取到的特征进行编码。
本发明实施例中,采用全卷积神经网络(fullyconvolutionalneuralnetworks,fcnn)和双向长短期记忆神经网络(bidirectionallongshort-termmemory,blstm)完成对公式图像的编码过程。
卷积神经网络是一种多层的监督学习神经网络,网络使用了局部感知区域、共享权值和空间的降采样等技术,卷积神经网络提取到的特征对输入信号的平移、缩放、仿射变换等变形具有很强的鲁棒性,在图像分类领域相比传统的人工设计的特征进行分类有着很大的进步。卷积神经网络一般由卷积层、下采样层、激活层和全连接层组成,如图2所示为一个卷积神经网络的结构示意图。卷积神经网络中的每层是由一个或多个特征图组成,通过卷积层和下采样层对原图像进行特征提取,特征图分辨率逐渐降低,同时提取的特征图数目逐渐增多,以检测更多的特征信息,并使特征具有全局性。一般的卷积神经网络后几层为传统的全连接层,将卷积层或下采样层输出的数据进行非线性映射,从而得到最终的图像特征,并送入输出层完成分类和识别。本发明实施例中,cnn用以提取图像特征,为了不损失图像中字符的位置信息,采用了fcnn,去除了全连接层,最终的输出为提取得到的特征图。
此外,在传统的cnn中同一组的卷积层中卷积核的大小比较单一,如vggnet中仅使用了3×3大小的卷积核。然而由于手写体的随意性,公式图像以及图像中的字符大小具有比较大的差异性,使用单一大小的卷积核很难较好地获取不同大小的字符特征,从而影响最终的特征提取效果。在googlenet中提出的inception结构中包含了多种不同大小的卷积核,如1×1,3×3和5×5大小,图3为googlenet中提出的inception结构。由于不同大小的卷积核具有不同的感知野,可以较好的获取手写数学公式中大小各异的字符的特征,因此,本发明实施例中,使用基于inception结构的fcnn,其网络结构如表1所示。
表1基于inception结构的fcnn
输入的手写体数学公式图像经过fcnn处理得到提取的特征以后需要使用blstm进行进一步的行编码使得特征图中的像素获取临近像素点的信息。长短期记忆神经网络是一种改良后的循环神经网络(recurrentneuralnetworks,rnn),通过加入了保存长期状态的变量,解决了传统的rnn无法处理长距离依赖的问题,图4为lstm单元示意图。lstm虽然可以依赖之前状态的信息,但是仍然无法利用该状态之后的信息,blstm通过加入了一组可以利用当前状态之后信息的反向的lstm,并将两组lstm的每个状态的输出作为输入,从而计算得到该状态的输出,blstm的网络示意图如图5所示。
由于blstm实际上是由两个不同方向的lstm组合得到的,下面以正方向的lstm为例进行举例说明。
lstm对传统的rnn改进方法是引入了记忆单元(memorycell)结构存储长距离依赖关系,记忆单元主要分为输入门(inputgate),遗忘门(forgetgate)和输出门(outputgate)。lstm的记忆单元处理过程可由如下公式表示:
it=sigmoid(wxixt+whiht-1+bi)
ft=sigmoid(wxfxt+whfht-1+bf)
ot=sigmoid(wxoxt+whoht-1+bo)
ht=ot⊙tanh(ct)
其中,ct-1和ct分别表示t-1和t时刻的记忆单元状态,ht-1和ht分别表示t-1和t时刻的输出,xt表示t时刻的输入,ft、it和ot分别表示遗忘门、输入门和输出门的处理结果,
blstm实际上是由正反两个方向的lstm组合而成,反方向的lstm记忆单元t时刻输入变量分别为c′t+1,h′t+1与xt,其中c′t+1为t+1时刻的单元状态,h′t+1为t+1时刻的输出,xt为t时刻的输入数据,处理流程与上述正向的lstm相同,故不做赘述。图5中每个方块表示一个lstm记忆单元,最终blstm的输出为:
ht=sigmoid(vt⊙ht+v′t⊙h′t)
其中,vt和v′t分别为正向和反向的lstm对输出值的权值矩阵。
最终,在编码阶段得到编号后的特征图f。
二、解码阶段。
在本发明实施例中,解码阶段分为根据attention模型计算过程和字符解码过程。attention模型计算过程根据编码后的特征图与前一时刻的解码输出,完成对当前时刻各特征的权重计算,从而得到上下文向量;字符解码阶段则根据当前时刻得到的上下文向量,使用解码部分的lstm网络完成对当前时刻字符的解码,并依次完成各个时刻的字符解码,从而实现对手写数学公式图像的识别。
attention模型计算权值的过程如下:
其中,t表示t时刻,β为设定的系数,w1与w2分别表示对应的参数矩阵,ai表示编码后的特征图f中第i个像素,m为像素总数,
得到编码后的特征图f中各像素权值后,对特征图向量求加权和后得到解码器中使用的上下文向量cvt:
t时刻的字符解码过程如下:
其中,f为编码后的特征图,yt-1为t-1时刻的解码结果,
其中,e为嵌入矩阵(embeddingmatrix),[*;*]表示两矩阵的连接操作,⊙表示点积操作;
函数f的计算过程如下:
f(yt-1,ht,cvt)=softmax(woutot)
其中,wout与wo分别表示参数矩阵。
本发明实施例中,引入了注意力机制计算特征图各像素对应特征向量的权重,确定需要重视的特征,再求各像素对应特征向量的加权和作为解码阶段lstm的输入,如图6所示,为attention机制可视化后示意图。
本发明实施例上述方案中,根据输入的手写体数学公式图像,利用深度学习中encoder-decoder处理流程,使用cnn+blstm作为encoder对图像内容进行编码,使用lstm作为decoder对编码的特征进行解码,端到端的处理离线手写体数学公式识别问题。与传统的离线手写数学公式识别方法相比,避免了公式分割、字符识别和公式分析三个阶段的处理,增强了容错率,同时降低了陷入局部最优的风险,能够进一步提升识别的准确率。
在编码阶段,采用了基于inception结构的cnn网络,通过使用不同大小的卷积核获取不同大小的感知野,从而更有效的提取手写数学公式中不同大小的字符特征,提高最终识别的准确率。
在解码阶段,采用了加入attention机制的decoder,在生成每个字符时根据编码的特征图与生成前一字符的输出向量计算当前时刻特征图各像素对应的特征向量的权值,从而加强网络需要重视的特征的权值从而更好的进行解码,提高识别的准确率。
综上,上述方案采用端到端的识别方式,能够进一步提升识别效果,处理和识别离线手写体数学公式,可以应用于自动判卷等需要对手写体数学公式图像进行识别的实际问题中。
为了说明本发明上述方案的性能,还进行了相关实验。
实验环境如下:
cpu:intelcore(tm)i5-23203.00ghz
gpu:nvidiagtx1080ti
内存:16gb
操作系统:ubuntu16.04
1、输入数据预处理:
输入数据为单张手写体数学公式图像,如图7所示,根据输入图像的大小进行预处理。对于高度大于150的图像本系统首先对其进行等比例的缩小,将其高度固定为150;对于缩小后宽度不高于1200的输入图像通过扩展的方式将图像宽度取不超过150,300,450,600,750,900,1050和1200几个等级中最近的数值,如输入图像大小为120×469则其归一化后的图像宽度大小为150×600;对于缩小后宽度高于1200的图像,本系统再将该图像进行等比例的缩小,将其宽度固定为1200,如输入图像大小为140×1600,则归一化后的图像大小为105×1200。
2、公式识别:
在完成输入图像的预处理后对该图像进行识别,通过对cnn+blstm对图像进行编码,再用lstm依次对图像中各个字符进行解码,最终生成latex格式的字符串,完成对公式的识别,如图7所示公式完成识别后的latex字符串应为“w=\frac{sin^2\theta}{1+cos^2\theta}”。
在本实施例中,cnn提取特征后的特征图维度为256,blstm进行编码后的特征图维度为256,blstm中隐含层神经元数量为256,解码器中lstm的隐含层神经元数量为512,最长解码字符串长度为150。
需要说明的是,上述实验中所涉及的尺寸大小、特征维度、神经元数量、字符串长度的具体数值仅为举例说明并非构成限制,在实际应用中尺寸大小可以做适应性调整。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。