数学公式识别编码方法

文档序号:6610293阅读:551来源:国知局

专利名称::数学公式识别编码方法
技术领域
:本发明属于公式识别领域,涉及一种应用于集成开发环境的数学公式识别编码方法。更具体地,在面向对象的可视化编程环境中引入数学公式可视化识别和编码,识别手写/扫描数学公式,并将其编码为可编辑的计算机公式表达语言,更进一步,可将其转化为可实现该数学公式计算的计算机语言命令行,以简化程序设计过程和难度。
背景技术
:目前可视化的集成开发环境(如Visualstudio)越来越普及,这些开发环境以控件的形式,可以方便地实现表格、列表、按钮、浏览器等复杂工具的设计,但是目前还没有开发环境支持数学计算相关程序的快速设计方案。当开发人员要实现数学计算的程序设计时,需要详细地设计变量、操作优先级、功能函数等细节。复杂的数学计算任务非常复杂。现有的数学公式结构分析方法主要有基于语义导向的方法(参见参考文献[3,4]);轮廓投影切分的方法(参见参考文献[5,6]);基于图改写的方法(参见参考文献[7,8]);基于过程导向的文法方法(参见参考文献[9]);和基于基准线分析的方法(参见参考文献[IO])。语义导向的方法(参见参考文献[io])的语义识别能力较强,但因为数学公式的形式是无穷无尽的,而且有的数学符号具有二义性,所以单纯依靠语义分析的公式类型有限。轮廓投影分割方法(参见参考文献[5,6])在一定程度上节省了计算开销,但轮廓投影方法在上/下标和矩阵处理上还不完善,而且不能处理类似^这样一个符号在多个符号上方的修饰符表达式。图改写方法(参见参考文献[7,8])受字符识别错误和局部结抅分析错误的影响较小,但该方法认为设定不同关系的代价值的计算方法降低了该方法的适应性且计算量较大。基于过程导向的方法(参见参考文献[9])分析过程过于简单,难以分析复杂的数学公式。基于基准线分析的方法(参见参考文献[10])具有分析速度快的优点,但鲁棒性较差。
发明内容本发明的目的在于提供一种数学公式识别编码方法,可以对手写的数学公式笔画和扫描的数学公式图像直接进行识别,并自动编码为可编辑的计算机公式表达语言,更进一步地,可用于可视化的数学计算程序设计方案,这种方案利用上述数学公式自动识别编码技术识别,将识别出的可编辑计算机公式表达语言转化为可实现该数学公式计算的计算机语言命令行,减少开发人员的程序设计工作量。为了实现上述目的,根据本发明,提出了一种数学公式识别编码方法,包括采集并输入印刷体数学公式图像或者联机手写笔画序列;对输入的印刷体数学公式图像或者联机手写笔画序列进行符号分割;进行符号识别处理;合并常见函数名,设置与识别出的常见函数名相对应的自定义代码;对符号分割、识别、函数名合并后的结果进行结构分析处理,获得整个公式的结构关系树;按照可编辑的计算机公式表达语言的格式,编码表示所得到的整个公式的结构关系树。更进一步地,根据本发明,在集成开发环境中,增加公式输入按钮;在需要进行较复杂的计算程序设计时,打开数学公式输入界面,采集手写数学公式笔迹或者数学公式图像,对手写数学公式笔迹或者数学公式图像进行分析识别,然后将数学公式识别结果自动转化为函数代码,并插入集成开发环境。本发明的有益效果利用数学公式识别技术,对数学公式进行可视化程序设计。本发明的关键点在于利用数学公式识别技术进行可视化的数学公式程序设计。本发明提出了一种基于公式的整体结构重建的公式结构分解方法,200710121679.X说明书第3/10页在该方法中,通过重建公式的整体结构,将公式分解成多个相对简单的表达式。通过下面结合本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中图1示出了根据本发明的数学公式识别编码方法的流程图;图2示出了根据本发明的符号识别步骤的详细流程图;图3示出了根据本发明的符号分割步骤S101的示例;图4a和4b示出了与图3相对应的、根据本发明的矩阵分析步骤S104的示例,其中图4a所示为矩阵行分析处理,图4b所示为矩阵列分析处理;图5示出了与图4a和4b相对应的、矩阵分析步骤S104的结果的示例;图6示出了与图5相对应的、子表达式分析步骤S105的结果的示例;图7示出了用于说明根据本发明的角标关系分析步骤S106的示例;图8示出了根据本发明的角标关系分析步骤S106中的语义分析的示例;图9示出了与图6相对应的、角标关系分析步骤S106的结果的示例;图10示出了与图3相对应的、以Latex语言描述的公式表达形式;以及图11示出了与图3、图10相对应的、以C语言描述的计算机程序命令行。具体实施例方式下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说不必要的细节和功能,以防止对本发明的理解造成混淆。图1示出了根据本发明的数学公式识别编码方法的流程图。首先,在步骤SIOO,采集并输入印刷体数学公式图像或者联机手写笔画序列。然后,在步骤SIOI,对输入的印刷体数学公式图像或者联机手写笔画序列进行符号分割,将单个符号分离出来。在本发明中,符号分割采用通用的连通域分割方法,如图3所示。例如,在图3中,通过符号分割,将左侧所示矩阵示例分割为以下多个符号(,P,2,j,+,t,一[分数线],n,1,0,);应当注意,在此步骤S101中,仅进行了符号分割,而并未进行符号的识别,因此,所得到的结果仍为各个符号所占用连通区域的图像表示形式。接下来,在步骤S102中,进行符号识别处理。数学公式识别系统中的符号识别要求识别正体英文字母、斜体英文字母、数字、希腊字母、数学运算符号、数学关系符号、箭头符号、定界符号等各种符号。分割好的符号图像采用统计模式识别的方法进行识别,给出每个符号的UNICODE编码。如图2所示,具体方法如下步骤S1201,将切分好的符号进行非线性放縮,即曲线拟合归一化(参见参考文献[l]:C丄Liu,KazukiNakashima.Handwrittendigitrecognition:investigationofnormalizationandfeatureextractiontechniques.PatternRecognition,2004:265-279),归一化到大小64*64;步骤S濯,提取感知方向特征(参见参考文献[2]:H.W.Hao,X.H.Xiao,R.W.Dai.HandwrittenChinesecharacterrecognitionbymetasyntheticapproach.Patternrecognition,vol.30,no.8,1997:1321-1328)(步骤S1202);步骤S1203,计算所提取的特征与已经采集的模板之间的相似度,例如,欧式距离的倒数,或者计算所提取的特征与已经采集的模版的特征之间的相关;步骤S1204,相似度最大的字符作为正确的符号识别结果。结合图3所示示例,在步骤S102中,识别出所分割的各个图像区域对应于何种符号。即,在此步骤中,已经获得了上述符号(,p,2,j,+,t,一[分数线],n,1,0,)。接下来,在步骤S103中,对常见函数名进行合并,如sin,cos,sec,scs,tan,cotan,ctg,tg,lg,ln,cov,inf,sup,lim,liminf,exp,min,max,arc,log,cov,mod,rad,arg,det,将符号识另lj结果中有函数名组合的符号串合并为函数名,并设置一个自定义的UNIC0DE码,例如,sin用0xelbl表示,如表1所示。表l:函数名与UNICODE码间的对应关系<table>tableseeoriginaldocumentpage8</column></row><table>应当注意的是,上述关于函数名的UNICODE码定义并非唯一的,此处仅给出以上表1作为示例,本领域普通技术人员可以根据需要对函数名的UNICODE码进行适当的定义。因此,这部分内容绝不倾向于限制本发明的范围,而只是用作对本发明的示例。至此,已经识别出构造数学公式的基本符号集合。在完成步骤S103之后,输出符号分割的结果。接下来,对符号分割、识别、函数名合并后的结果进行结构分析处理。结构分析处理包括矩阵及多行表达式分析步骤S104、子表达式分析步骤S105和角标关系分析步骤S106。在步骤S104,进行矩阵及多行表达式分析。首先,合并符号串中的左定界符和右定界符形成定界符组,然后,根据定界符之间的空间位置关系建立定界符组之间的结构关系树,再根据定界符组结构关系树重建矩阵层公式的整体结构,这样矩阵层公式分析就转化成多个基本矩阵的结构分析。在基本矩阵结构分析中,首先分析基本矩阵的行,如图4a中矩阵为两行矩阵,然后再分析基本矩阵的列,如图4b中矩阵为两列矩阵,得到矩阵的行和列候选后,从中选择可信度较高的行候选和列候选形成矩阵的元素候选,并得到基本矩阵的分析结果。依次对所有的基本矩阵进行分析,最后合成这些基本矩阵的分析结果,即得矩阵层公式分析的结果(图3所示公式的结构关系树),如图5所示。在步骤S105,进行子表达式分析,主要包括对分式、求和表达式、连乘表达式、根式、修饰符等的分析。相应的具有结构关系的符号被称为控制符号,包括s、n、A、v、n、/、iim等。在子表达式层公式分析中,首先建立子表达式控制符间的结构关系树,并通过该关系树重建子表达式的整体结构,然后分析每一个子表达式,即得子表达式的结构分析结果,如图6中子表达式&62的分析结果为一分式,分子为符号'r,分母为待分析的符号串"1,n"。在完成所有的子表达式分析后,即得子表达式层公式分析结果,如图6所示。在步骤S106,进行角标关系分析。首先,利用符号之间的位置关系,确定两两符号之间的角标关系图,例如,在图7中,左边的符号图像(真实身份为'P')的识别结果为字符"P"的概率是0.4、识别结果为字符"P"的概率是0.3、识别结果为字符"p"的概率是0.2;右边的符号图像(真实身份为'2')的识别结果为字符"2"的概率是0.5、识别结果为字符"z"的概率是0.4、识别结果为字符"Z"的概率是O.1;这样左边符号和右边符号的角标分析结果为字符'p'上标字符'2,的概率为0.8,为字符'P,上标字符'2,的概率为0.2。然后,使用语义分析剪枝,如图8所示,可参见参考文献[11][12][13],最后得到角标表达式的角标关系分析结果。如图6中的角标表达式&^3的分析结果为;^w。在完成所有的角标表达式分析后,即得公式的分析结果,如图9所示。在步骤S107,在得到公式的结构关系树图9后,按照一定的格式例如Latex语言、MathML、MathType等,将公式识别的结果表示出来,本实施例采用Latex格式。首先,按照自底向上的方法依次将结构关系树中的每一个结构关系按照Latex格式表示。例如,图9中&63对应的Latex字符串为p—j~{2}+t;&&6对应的Latex字符串为n+l;S—对应的Latex字符串为\fracUHn+lh&64对应的Latex字符串为\frac{l}{n+l}+t;A6,对应的Latex字符串为\frac(p一j一{2}+t}{\frac{l}{n+l}+t};S—对应的Latex字符串为\frac{l}{n}。由此,整个公式的结构关系树对应的Latex字符串为\left(\begin{array}{1,r}\fracb一j]2i+t){\frac{l}{n+l}+t}&\frac{1}{n}\\0&1\end{array}\right)至此,公式的结构关系树就转化为Latex格式的字符串,如图IO所示。通过上述步骤,实现了根据本发明的数学公式识别编码方法。更进一步地,根据本发明,可以将已被编码为可编辑的计算机公式表达语言的数学公式如Latex格式、MathML格式、Mathtype格式等转化为可实现该数学公式计算的计算机语言命令行((:语言、0++语言、汇编语言等),以简化程序设计过程和难度。例如,图ll示出了与图3、图10相对应的、以C语言描述的计算机程序指令行。至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。参考文献列表C丄丄iu,KazukiNakashima.'7/am/wn'"ewd妙reco炉'"ow.'/weWg""o"o/wormafea"ow朋d/e她reex加"/ow^c/zm々wW.PatternRecognition,2004:265—279C丄丄iu、KazukiNakashima,"手写数字识别规一化技术和特征提取技术研究";PatternRecognition,2004:265-279H.W.Hao,X.H.Xiao,R.W.Dai."i/a"dwW"ewC/n"e"c/zorac^T-recog""/o"mefos^wf/zeZ/capproac/z".Patternrecognition,vol.30,no.8,1997:1321-1328H.W.Hao、X.H.Xiao、R.W.Dai,"基于综合集成的手写汉字识别方法";Patternrecognition,vol.30,no.8,1997:1321-1328AbdelwahebBelaidandJean-PaulHaton."爿5y齒"/c4p/^oac/zybr//awdwWewMaf/zewaf/ca/Forww/aiecogm'"o",,.IEEETransactionsonPatternAnalysisandMachineIntelligence,1984,PAMI-6(1):105-111.AbdelwahebBelaid和Jean-PaulHaton,"一种手写数学公式识别的句法分析方法";IEEETransactionsonPatternAnalysisandMachineIntelligence,1984,PAMI-6(1):105-111.AndreasKosmala,GerhardRigoll,S鄉haneLavirotteandLoi,cPottier."(9"-ZiweZ/aw<iHr/"ew_For/WM/aiecogw"/o"Afar&ovMoc/e/s(7ow&;cfDepewdawfGVap/zGnammo^s".Proceedingsof5thInternationalConferenceonDocumentAnalysisandRecognition,ICDAR'99,1999,107-110.AndreasKosmala、GerhardRigoll、StiphaneLavirotte禾卩LoicPottier,"使用马尔可夫模型和上下文图文法的联机手写数学公式识另ij";Proceedingsof5thInternationalConferenceonDocumentAnalysisandRecognition,ICDAR'99,1999,107-110.MasayukiOkamotoandB.Miao."iecogm'"o"o/Proceedingsof1stInternationalConferenceonDocumentAnalysisandRecognition,ICDAR'91,SaintMalo,France,1991,242-250.MasayukiOkamoto和B.Miao,"使用符号层次结构的数学公式识另ij方法";Proceedingsof1stInternationalConferenceonDocumentAnalysisandRecognition,ICDAR'91,SaintMalo,France,1991,242-250.MasayukiOkamotoandA.Miyazawa."^"Ex尸eW膨"^a/AfaAemadca/jExpresw'ows".InStructuredDocumentImageAnalysis,H.S.Baird,H.Bunke,K.Yamamoto(Eds.),Berlin,SpringerVerlag,1992,36-53.MasayukiOkamoto和A.Miyazawa,"针对数学公式文档的文档识别系统一种实验实施";InStructuredDocumentImageAnalysis,H.S.Baird,H.Bunke,K.Yamamoto(Eds.),Berlin,SpringerVerlag,1992,36-53.AnnGrbavecandDorotheaBlostein."Ma/ze廳"'csiecogm'"owieHT"/"g".Proceedingsof3rdInternationalConferenceonDocumentAnalysisandRecognition(ICDAR'95),1995,417-421.AnnGrbavec和DorotheaBlostein,"使用图改写方法的数学公式识另U";Proceedingsof3rdInternationalConferenceonDocumentAnalysisandRecognition(ICDAR'95),1995,417-421.BenjaminP.BermanandRichardJ.Fateman."Qp"ca/CTwraCeriecog""/ow_/br2^pesefMa^emahW.Proceedingsofthe1994InternationalSymposiumonSymbolicandAlgebraicComputation,Oxford,UK,1994,348-353.BenjaminP.Berman和RichardJ.Fateman,"用于印刷体数学的光学字符识另'J";Proceedingsofthe1994InternationalSymposiumonSymbolicandAlgebraicComputation,Oxford,UK,1994,348-353.Hsi-JianLeeandMin-ChouLee."[/"cfens她(i/"gPatternRecognition,1994,27(3):447-457.Hsi-JianLee和Min-ChouLee,"使用过程导向变换的数学公式理解";PatternRecognition,1994,27(3):447-457.RichardZanibbi,DorotheaBlostein,andJamesR.Cordy."iecog"/z/wgA/ia^zema//ca/E!x/resw.o"st/s/wg2>ee7h2ws/o;-ma/oM,,.IEEETransactionsonPatternAnalysisandMachineIntelligence,2002,24(11):1455-1467.RichardZanibbi、DorotheaBlostein禾卩JamesR.Cordy,"使用树变换方法识别数学公式";IEEETransactionsonPatternAnalysisandMachineIntelligence,2002,24(11):1455-1467.权利要求1.一种数学公式识别编码方法,包括采集并输入印刷体数学公式图像或者联机手写笔画序列;对输入的印刷体数学公式图像或者联机手写笔画序列进行符号分割;进行符号识别处理;合并常见函数名,设置与识别出的常见函数名相对应的自定义代码;对符号分割、识别、函数名合并后的结果进行结构分析处理,获得整个公式的结构关系树;按照可编辑的计算机公式表达语言的格式,编码表示所得到的整个公式的结构关系树。2.根据权利要求l所述的数学公式识别编码方法,其特征在于所述符号识别处理包括以下子步骤对分割后的符号进行非线性放缩;提取感知方向特征;以及计算所提取的特征与预定义模板之间的相似度;以及选择相似度最大的字符作为正确的符号识别结果。3.根据权利要求2所述的数学公式识别编码方法,其特征在于所提取的特征与预定义模板之间的相似度是欧式距离的倒数,或者是所提取的特征与预定义模版的特征之间的相关。4.根据权利要求l所述的数学公式识别编码方法,其特征在于所述结构分析处理包括以下子步骤矩阵及多行表达式分析,合并符号串中的左定界符和右定界符形成定界符组;建立定界符组之间的结构关系树;以及根据定界符组结构关系树,重建公式的整体结构;子表达式分析,建立子表达式控制符间的结构关系树,并通过该关系树重建子表达式的整体结构,然后分析每一个子表达式;以及角标关系分析,利用符号之间的位置关系,确定两两符号之间的角标关系图,然后使用语义分析剪枝,得到角标表达式的角标关系分析结果。5.根据权利要求4所述的数学公式识别编码方法,其特征在于所述子表达式分析步骤对分式、求和表达式、连乘表达式、根式、修饰符进行分析。6.根据权利要求4所述的数学公式识别编码方法,其特征在于所述子表达式控制符包括E、n、A、V、n、/、lim。7.根据权利要求16之一所述的数学公式识别编码方法,其特征在于所述自定义代码是自定义UNICODE码。8.根据权利要求16之一所述的数学公式识别编码方法,其特征在于所述可编辑的计算机公式表达语言是Latex、MathML或MathType。9.根据权利要求18之一所述的数学公式识别编码方法,其特征在于还包括将已被编码为可编辑的计算机公式表达语言的数学公式转化为可实现该数学公式计算的计算机语言命令行。10.根据权利要求9所述的数学公式识别编码方法,其特征在于所述计算机语言命令行是C语言命令行、0++语言命令行、汇编语言行。全文摘要数学公式识别编码方法属于公式识别领域。本发明包括采集并输入印刷体数学公式图像或者联机手写笔画序列;对输入的印刷体数学公式图像或者联机手写笔画序列进行符号分割;进行符号识别处理;合并常见函数名,设置与识别出的常见函数名相对应的自定义代码;对符号分割、识别、函数名合并后的结果进行结构分析处理,获得整个公式的结构关系树;按照可编辑的计算机公式表达语言的格式,编码表示所得到的整个公式的结构关系树。文档编号G06K9/52GK101388068SQ200710121679公开日2009年3月18日申请日期2007年9月12日优先权日2007年9月12日发明者刘昌平,刘迎建,郭育生,磊黄申请人:汉王科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1