APP下载

科技文档中数学表达式的结构分析与识别

2017-01-12徐晓宇宗亚辉胡欣宇

物联网技术 2016年11期
关键词:基准线识别识别率

徐晓宇++宗亚辉++胡欣宇

摘 要:与科学技术相关的文档中,针对数学表达式的识别通常可分为字符的分割与结构的识别。文章在这一框架下讨论了数学表达式的识别,尤其是在表达式结构的分析上,采用了优化的基准线结构分析方法。实验结果表明,采用上述方法后,数学表达式的识别率得到了显著提高。

关键词:数学表达式;识别;基准线;识别率

中图分类号:TP391 文献标识码:A 文章编号:2095-1302(2016)11-00-03

0 引 言

数学作为自然科学的通用语言,在科技的发展中有着举足轻重的地位。而数学表达式作为重要的数学载体,在科学技术相关文档中有着广泛的应用。光学字符识别(Optical Character Recognition,OCR)系统能够高效准确地识别文档中的文字,但对数学表达式却一直无法取得较高的识别率[1]。与普通的文字相比,数学表达式在字符和结构等方面都具有其特殊性[2]。为了能够更加快捷方便地共享科技文档等信息,对数学表达式识别技术的研究就变得非常重要。

数学表达式识别的本质是从图片格式的数学表达式得出其空间结构与逻辑含义。在实际处理的文档图像中,除数学表达式外,还有文本与图表等,因而表达式处理的第一步通常是表达式位置的定位[3-5]。将定位好的表达式中所包含的所有符号进行切割,并根据符号库进行相应的识别。识别符号之后,需研究符号间的空间关系及对应的逻辑含义[6,7]。最后将分析结果按照一定的格式输出,达到复用和易于传输的目的[8]。

国际上对数学表达式的识别研究始于20世纪60年代,但直到90年代,相关研究才越来越受重视。回顾已有的结构分析方法,所谓的数学表达式结构分析法是指依据字符含义、字符大小及空间位置等信息从整体上确定各字符间的位置关系,相应得出数学表达式的结构信息。在最初阶段,Anderson提出使用自上而下的结构分析方法,但这种方法略显粗糙,只能识别一些简单的数学表达式。Lee提出了关系树结构分析方法和矩阵分析方法,Lee的方法能够处理很多稍显复杂的单行数学表达式,但对结构更加复杂的多行表达式识别效果并不好[9]。Okamoto在总结已有研究成果的基础上,综合运用自顶向下和自底向上这两种常用的方法,针对字符间的水平及垂直方向的位置关系,统一使用自顶向下的策略,从而将表达式划分成多个子表达式。对于略显复杂的上下标、包含等关系,则采用自底向上的分析方法[10]。Okamoto的分析方法取得了较为满意的识别率,但对矩阵等特殊类型结构的识别上,仍然无法得到满意的识别率。Ha提出使用具有一定层次结构的表达式树,通常使用表达式树的节点表示对象。在更进一步的划分中,规定整体的表达式使用根部节点代表,而简单对象和复合对象分别使用叶子节点和内部节点表示[11]。Fukuda提出以数学元件代表各个符号,并详细说明了所有元件的空间关系,之后按照位置关系判定表达式的结构。Winkler使用有向图描述数学表达式,字符以节点表示,字符间的关系则用Yuko,使用网络图表示数学表达式,使用相关的数学方法计算出符合条件的生成树,以其来代表数学表达式的空间分析结果[12]。该方法受个别字符识别错误的影响不大,且局部识别错误对整体的正确率影响不大。Dimitriadis规定了句法和语义准则,将空间位置关系比较繁杂的表达式依据语义准则划分为简洁的式子,而具体各组成单元间的简单关系则依据句法准则分析[13]。Zanibbi和Blostein采用基准线对数学表达式进行结构分析,通过创建基准线结构树(Baseline Structure Tree, BST)描述数学表达式的结构[14]。这种方法能够克服诸如方言等特殊符号的限制,提高了结构分析的准确率。

本文在借鉴上述文献所提方法的基础上,对基准线结构法作了优化。本文所用的基线结构分析法中,采用过分割方法对数学表达式的字符进行分割,使用字符比较、特征点提取等手段完成对数学符号的识别;而在对数学表达式的结构进行解析时,采用基准线结构分析方法。完成字符识别和结构解析后,以Latex的形式输出最终的数学表达式解析结果。

1 字符分割

在字符分割这一阶段,通过一定的数字图像处理技术,将整体的数学表达式切分成多个字符块,然后进一步切分为独立的单一字符。分割作为后续工作的基础,必须进行正确的分割才能保证之后的识别具有较高的有效性。比较常见的数学表达式符号切割方法有投影分割法及连通域分割法。但由于数学表达式自身的特殊性,这些常规的切割方法应用于数学表达式时,识别率一般会降低。为了取得更高的识别率,常常先通过连通域分割法进行初步分割,提取特殊的包围结构类型的字符,然后通过投影分割法切割出更多的字符块。

此外还需分析解决常见的字符粘连,即由于某些字符聚集程度稍大,需要进行再分割。对数学表达式符号作再分割处理时,常选用投影法,并以投影图的波谷作为分割依据。在通常情况下,波谷不止一个,若要从中选择正确的分割点,则应通过可信度对各种分割组合进行排序,并选择可信度较高的分割方案作为最后的分割结果。但是需要注意的是,数学表达式中的=、÷、<<、>>、i等字符是一个整体,不能被进一步分割。假如这种类型的符号在过分割切断被切割,则需进行复合。首先确定各被分割部分所处的位置,然后将它们重新合并,构成新的正确的识别结果。

2 结构分析

在进行结构分析之前,先介绍一些相关概念:

(1)字符属性。每个需要处理的字符应有以下属性:

①输入属性:字符的身份及边框属性;

②附加属性:不同数学表达式符号的类型,各符号的质心所属种类,数学符号的质心所处位置。

(2)域。文字节点的域指嵌套基准线的类型,有Above,Below,Super,Subsc,Tleft,Bleft,Hor共7种,其定义如图1所示。

(3)基准线结构树(BST)。以BST为工具解析数学表达式的空间位置关系。

在基本的结构树中,比较常见的有文字节点和域节点。文字节点通常作为数学表达式中的基准线,以便于数学表达式的结构分析。这两种类型的节点按照相关层次结构交替排列。

为了能够更加高效方便地解析数学表达式的结构,需要提前对数学表达式的结构进行预处理。在此过程中,某些诸如sin、cos之类的数学公式符号需要合并;如果存在某些明显的语法类错误,都需要在预处理过程中进行纠正。常见的函数型字符有三角函数(如sin(),tan()),数值函数(如abs()),逻辑符号(如if,and,or)。在进行数学表达式的预处理时,必须将这些逻辑上为统一整体的符号有效整合,并将对应的特征属性等进行相应更正。更正之后表达式中的组成成分更加清晰,在对表达式结构进行解析时能够更加高效快捷。如图2所示,表达式中的“min”在进行过分割之后,若不整合,简单的解析会使得其下的“2”被遗漏,造成分析失败。

在对空间操作进行处理时,需按照邻近的符号间特征属性和空间位置分析。如果确实存在,则需增添相应的操作符,从而有效提高对数学表达式的空间结构和逻辑含义的分析。如果缺少匹配字符,则加入相应的替代符,以顺利分析表达式的结构。操作码的误识可根据前后字符的关系加以分析,如可得出数学表达式字符的特征属性,即可认定改正是准确的;否则要用相应的标志符替代。结构分析预处理之后就是正式的数学表达式结构解析,其目标是针对解析识别的结果得到一颗结构树。本文采用基准线结构方法,其过程如图3所示。

输入为以字符特征属性所表示的字符串,除此之外,还需添加使用边框代表的相应空间位置,这些信息在数学表达式的结构分析与识别中具有无可替代的重要作用。最终的分析识别结果则按照结构树的格式输出,另外一种常见的输出格式为Latex。基准线结构法的大致过程如下所示:

(1)采用SF()表示搜索算法,根据这种算法确定数学公式的起始字符。

(2)采用SFP()表示另外一个搜索算法,根据此算法确定主基准线的确切位置。

(3)针对每个字符的域内,使用搜索函数SFS()搜索得到次基准线的开始字符。

(4)使用搜索函数SFP()求得次基准线,按照这样的步骤循环,得到整个数学表达式的结构树。

需要说明的是,极限、矩阵等相关数学表达式其结构相对更加复杂,经常需要在常规方法的基础上加以引申,使用更加符合其结构特征的结构分析方法提高识别率。

此外,由于脱机表达式的结构是固定的,不像联机数学表达式那样能够进行调整,便于结构分析,故需要对上述算法作出以下调整:

(1)SFP()函数域值的选用:阈值选用通常由字符的高度来决定,其选用非常宽松,但假设字符是“-”或“=”,比较小,除了要选用规定的最小阈值外,还要按照邻接字符的尺寸大小得出阈值。灵活选用阈值可以更准确的分析结果。

(2)域值界限的定义:通常情况下,在某些脱机公式中,数学表达式符号之间的关系有时是模糊的,即个别符号无法准确说明其所在的空间域或算法中出现叠加的域,Subsc延长到Upper Threshold,Super延长到Lower Threshold,Above延长到RightWall。为了减少如上重叠造成的多识,可以通过分析Super(Subsc)完成。

(3)域的合并:为了有利于表示和输出,常将带有Bleft与Tleft域的Limits字符与Super、Subsc合并,从而使结构描述更加真实。

3 实验结果和识别率计算

通过采用本文所属的字符识别和结构分析方法,能够有效识别数学表达式,识别率比较高。表达式识别结果如图4所示,上方是图片格式的数学表达式,下方为识别结果。

对于某些结构不清晰的表达式,识别效果并不太好,表达式识别失败示例如图5所示。由于“-”和“∫”的空间关系不清晰,所以没有被识别,而这些问题需要在后续算法中进一步优化和改进。

根据上述理论,本文分别从杂志和书本上选择了一些数学公式,并用如图6所示的三个指标作为识别结果的判断标准。

最终的识别结果如表1所列,分析可知,采用基准线法可使数学表达式的分析与识别能够得到较高的正确率,得到相对满意的结果。

4 结 语

针对数学表达式结构的分析,本文提出了优化的基准线结构算法,能够很好地识别结构较为复杂的数学表达式。由实验可知,本文所用方法具有较高的识别率。但数学表达式自身的二维结构决定了对其进行结构分析时还会面临很多难题,还需对其存在的诸多问题进行更深入的研究。例如某些操作符的空间结构比较复杂,仅通过位置关系很难分析,应根据上下文语义加以分析。另一个值得关注的问题即为数学符号本身的二义性,要解决该问题,只能结合上下文的语义信息进行辨别。针对这些问题,在后续的研究中将尝试通过建立语法规则、引入机器学习等以完善数学表达式的识别。

参考文献

[1]赵学军.手写数学表达式自动识别的研究[D].重庆:重庆大学,1998.

[2]张建成,洪留荣.联机手写数学表达式识别方法综述[J].淮北师范大学学报(自然科学版),2008,29(3):40-47.

[3]王科俊,林桂芳,王黎斌,等.数学表达式识别方法综述[J].自动化技术与应用,2003,22(8):1-6.

[4]徐晓蓉.印刷体数学表达式识别系统的设计与实现[D].桂林:广西师范大学,2005.

[5]陈洪波,王强,徐晓蓉,等.数学表达式的自动识别[J].广西科学,2004,11(1):20-26.

[6]李峰,吴微.英文科技文档识别中数学公式定位新方法[J].大连理工大学学报,2009,49(1):139-143.

[7]宋昭,李芬.基于专家系统的公式识别器的实现[J].计算机工程,2005,31(13):38-39,136.

[8]张志伟,孔凡让,刘维来,等.中文科技文档中的数学表达式定位[J].中文信息学报,2007,21(4):86-91.

[9]李中付,华宏星,宋汉文,等.模态分解法辨识线性结构在环境激励下的模态参数[J].上海交通大学学报,2001,35(12):1761-1765.

[10]田学东,吴丽红,赵蕾蕾,等.基于多特征模糊模式识别的公式符号关系判定[J].计算机工程与应用,2009,45(5):186-188.

[11]Chan K F, Yeung D Y. Error detection, error correction and performance evaluation in on-line mathematical expression recognition[J]. Pattern Recognition, 2001, 34(8): 1671-1684.

[12]Chan K F, Yeung D Y. Mathematical expression recognition:a survey[J]. International Journal on Document Analysis and Recognition, 2000, 3(1): 3-15.

[13]Awal A M, Mouchere H, Viard-Gaudin C. Towards handwritten mathematical expression recognition[C]. 2009 10th International Conference on Document Analysis and Recognition. IEEE, 2009: 1046-1050.

[14] Lee H J, Lee M C. Understanding mathematical expressions in a printed document[C]. Document Analysis and Recognition, 1993, Proceedings of the Second International Conference on. IEEE, 1993: 502-505.

猜你喜欢

基准线识别识别率
碳交易市场体系中的碳排放基准线:应用实践、研究进展与展望
基于类图像处理与向量化的大数据脚本攻击智能检测
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
提升高速公路MTC二次抓拍车牌识别率方案研究
青岛市中山公园园林树木易混淆品种识别
高速公路机电日常维护中车牌识别率分析系统的应用