基于深度学习的数学公式粘连符号的切分∗

2019-11-12 06:38郭蓉蓉
计算机与数字工程 2019年10期
关键词:数学公式公式符号

郭蓉蓉 李 涛 魏 琦

(西安邮电大学计算机学院 西安 710100)

1 引言

科技文献检索以及查重一直是人们关注的问题,在将书籍资料从纸质到电子文档转换的过程中OCR技术逐步成熟,但是对数学公式识别效果并不理想。主要原因有:1)数学公式具有复杂的二维嵌套结构,容易导致符号之间的粘连。2)数学符号种类繁多,包括特殊符号、数字、希腊字母、英文字符等。3)数学公式符号含义具有多样性,如:‘s’,和‘sin’里面的‘s’所表示的含义完全不同。4)字符之间的逻辑关系种类多样。数学公式通常是一些科技文献的核心,而手工输入数学公式又比较繁琐,另外数学公式以图片格式存储需要占用大量空间,所以对数学公式的识别尤为重要,在数学公式识别中粘连符号的切分对符号识别有很大的影响。

Anderson[1]于1968 年 首 次 提 出 数 学 公 式 识别。不论是印刷体的数学公式识别还是手写体数学公式识别,国内外学者都做了大量的工作,他们使用不同的方法对数学公式进行识别。随着Anderson 对这一问题的提出,进入90 年代,人们对数学符号分割尤其是粘连符号分割的研究不断增加,国外较早的是文献[2~3]提出的基于图像分析的直接切分法,主要是通过分析图像来寻找字符之间较为合理的切分点。Okamoto[4~5]等采用递归的水平和垂直投影切割方法对符号进行切分。Garain[6]提出了基于模糊多因子的粘连切分方法,其主要从水平、垂直、和对角线三个方向对粘连符号切分。而国内李宁[7]提出了基于模糊多音字的粘连符号切分方法,切分方向和文献[6]相同。侯利昌[8]和朱并队[9]提出了一种新的SOM 神经网络权值更新算法,其主要使用于印刷体粘连字符分割,也称为修改的自组织特征映射,简称M-SOM。

分析上述方法后,不难发现国内外数学符号分割一直是停留在传统的分割上面,对数学公式粘连符号的处理效果一直不是很好。本文利用Faster R-CNN 网络对数学符号进行分割,为了满足深度学习训练需要的大量数据,本文制定了一系列建立数据库的方法和规范,由此提高分割的正确率。

2 FasterR-CNN网络结构

Faster R-CNN[10]从2015 年底至今已经接近两年,但依旧还是目标检测领域的主流框架之一,虽然后续推出了R-FCN[11],Mask R-CNN[12]等改进框架,但是基本结构变化不大。同时也有SSD[13],YOLO[14]等针对目标检测的框架,但是在精度上面依然以Faster R-CNN 为最好,因此本文选用它作为数学符号分割的网络。

Faster R-CNN 主要是由RPN(Region Proposal Network)候选框模块和Fast R-CNN 检测模块两大模块组成,RPN 为全卷积神经网络,主要用于提取候选框;Fast R-CNN 主要是将提取的候选框传输给RPN,它的另外一个作用是:检测并识别候选框中的目标,具体如图1所示。

图1 Faster R-CNN模型

由图1 可知Faster R-CNN 可以分成四个主要内容:

1)Conv layers。卷积层是CNN 网络目标检测的一种方法。Faster R-CNN 首先使用一组基础的conv+relu+pooling 层提取图像的特征图,这些特征图会被用于后续RPN层和全连接层。

2)Region Proposal Networks。RPN 网络主要用于生成候选区域。该层通过soft max判断anchor属于前景或者属于背景,接着利用边框回归修正anchors获得精确的候选窗口。

3)ROI Pooling。该层收集输入的特征图和候选窗口,综合这些信息后提取候选窗口的特征图,送入后续全连接层判定目标类别。

4)Classification。利用候选窗口的特征图计算窗口的类别,同时再次对边框回归获得检测最终的精确位置。

Faster R-CNN 与Ross Girshick 提出的另外 两个网络R-CNN[15]和Faste R-CNN[16]相比最大的改进就是提出了RPN 网络,RPN 网络结构如图2 所示。

图2 RPN网络结构

由图2可知RPN 网络分为两条线,上面一条通过softmax分类anchors,获得前后背景,下面一条用于计算对于anchors 的边框回归偏移量以获得精确的候选窗口,由此可知anchors是RPN网络的核心,在进行目标检测的时候需要确定每个滑窗中心对应感受野是否存在目标,因为目标大小和宽度不一,需要多个尺度的窗,Anchors恰好可以解决这个问题,它给出一个基准窗大小,按照倍数和长度比例得到不同大小的窗如。在文献[10]中基准窗大小为16,给了三种尺度{1282,2562,5122},三种比例{1:1,1:2,2:1}因此每个位置都有3*3=9 个anchor,如图3。

图3 9种anchor

9 种anchors 主要作用如图4 所示,在遍历卷积层获得特征图以后,为每一个点配置9种anchors作为初始的检测框。

图4 RPN网络

给每个anchor后面连接两部分,一个是二分类soft max,有两个score 输出用来表示其是一个物体的概率与不是一个物体的概率(pi)。另一个是边框的回归输出代表一个anchor 的4 个坐标位置(ti),因此RPN的总体LOSS函数可以定义为

上述式(1)里面的i表示有i个anchor,pi是anchor预测为目标的概率,p*i表示如下:

由式(2)可知当anchor 为正样本的时候p*i为1,当anchor 为负样本的时候p*i为0。ti={tx,ty,tw,th}是一个向量,表示预测框相对于anchor 框的偏移,而t*i表示标定的框相对于anchor 框的偏移,ti和t*i具体计算如下:

式(3)里面的x,y,w,h 是框的中心坐标、宽、高,整体表示为χ ,变量χ 指预测框,变量χa表示锚点,而变量χ*是指标定的框。

式(1)里面的Lcls(pi,p*i)是指目标和非目标的对数损失,而Lreg(ti,t*i)是指回归损失,这两个损失的表示如式(4):

3 数学公式数据集建立

为了实现数学符号的分割,本文数据库共包含30530 张图像,这些数据可以分成两部分,第一部分是带标记的测试和验证的数据;第二部分是没有进行标记的测试数据。在进行数学符号分割的时候,创建了四组图像,分别如下:

1)train:训练数据;

2)Val:验证数据。验证数据可用于额外的训练数据;

3)trainval:训练数据(train)和验证数据(val)相加的总数据集;

4)test:测试数据。数据库中没有提供测试集,这个数据集合是在进行测试的时候随机可以产生的数据。

因为数学符号的多样性,所以在进行数学公式分割的时候,不仅需要考虑各种类型的公式,如:分式,根式以及积分等,另外还需要包含所有类型的符号,比如字母,数字,希腊字母等,详细如表1 所示。

表1 数学符号分类

从表1可知数学符号总共178类。起初建立数据库里面包含了134类字符集,每类字符包含了45种字体,总共6030 种,后面为了使得数据库完善又陆续增加44 类字符集,如此单个数学符号总共建立8010 种。因为需要进行的数学公式分割,所以使 用 了Suzuke 等 人 为Infty 项 目[17]创 建 的InftyCDB-1数据集,此数据集主要包括字符信息以及一些特征,如边框、大小、与父符号的关系等,它摘自与30 篇发表的英文科学论文。虽然InftyCDB-1里面包含的公式类型比较多,但是如果要进行深度学习训练数据量远远不够,因此为了定向的产生所需要的不同类型的数学公式,本文利用C 语言结合Latex 创建出不同类型的数学公式,创建公式的流程如下:

1)首先利用C 语言输出Latex 格式的数学公式,分别用不同函数创建分式,根式,积分,指数等,然后将其组合起来,形成多个不同形式的数学公式。

2)将C 语言输出的Latex 格式的数学公式输出到txt 文档里面,接着利用WinEdt7.0 将Latex 格式的数学公式转换成标准数学公式,最后以pdf 格式输出

3)利用shutter 截取pdf 文档里面的公式,如此获得数学公式数据集。

虽然利用Latex 可以创建大量数学公式,但是创建出来的数据都是标准的数学公式,不会产生粘连的数学符号,因此为了实现对粘连符号的分割,本文单独建立粘连符号数据库500张。

为了获取到更多的数据集,对已创建的数据(除了数学符号以外)进行各种图像处理,如:加噪和滤波等。本文主要通过对原图像增加椒盐、斑点和高斯噪声,另外分别对原图像、斑点图像和高斯图像进行滤波。

整理上述方法,汇总出数据获得的方法以及总的数据集,如表2所示。

表2 数据集

数据集除了图像数据外还包括标签数据,本文通过LabelImage 来标定图像中的目标进而获取到标签数据。LabelImag 是一个可视化的图像标定工具,本文在Ubuntu16.04下安装配置了它,因为通过LabelImage 制作的格式和PASCALVOC 一样,所以将它用于Faster R-CNN 目标检测非常方便与合适。通过使用此软件本文总结了一些使用方法,可以灵活对其操作与修改,总结如下:

1)在进行标记之前可提前将需要的各个分类存储在predefined_classes 文档里面,在进行标注工作的时候直接选择即可;

2)在进行标记工作的时候可以用快捷键w 直接进行绘制标记,另外用a 和d 分别对图像进行前后页的切换;

3)当标注出现错误的时候可打开file文件下面的Open Annotation对已经标记的文件进行修改。

对表2 中的数学符号、InftyCDB 数据、Latex 获取的公式以及粘连公式都需要使用LabelImage 进行标记而图像处理以后的公式则不需要,因为其是通过前面已经创建好的公式经过图像处理得到的,图像里面需要标记的目标坐标未发生改变,因此可直接使用之前已经标记好的文件。因为Faster R-CNN 数据集要求的是统一的命名格式,所以本文使用Replace Pionner对数据集进行统一的命名。

4 实验结果

4.1 实验配置及数据

实验的机器软硬件配置见表1 所示。本文使用的是深度学习计算框架Caffe,并参考使用了Caffe上面的一些层次结构,实验配置如表3所示。

表3 实验配置

4.2 实验数据及结果

为了测试深度学习是否可以对数学公式进行分割,本文首先对普通的数学符号进行了分割,接着对粘连符号进行分割。本文将粘连符号分成三类:水平粘连,垂直粘连和对角线粘连。为了能够准确描述分割的精确度,本文引入了符号切分正确率(Accurate Rate,AR)这个性能指标,AR 是指系统正确切分的符号数在总测试样本里面所占的比例,其定义为

上述公式中WN 表示的是公式里面总的符号数,AN 表示正确分割的符号数。AR 越大,那么表示符号分割算法设计的越合理,通过实验对比得出如表4。

表4 分割结果

图5~6 是数学公式符号分割的最终效果图,通过实验数据可知,深度学习能够有效地对数学公式符号进行定位与分割,尤其是在对粘连符号进行分割的时候,降低了分割的难度,提高符号分割的正确率。

图5 无粘连数学符号切分结果

图6 粘连数学符号切分结果

5 结语

本文利用深度学习Faster R-CNN 网络对数学符号进行了分割,为了建立完善的数据集制定了一系列的规范,以方便其他人对数据集的增加以及修改。在对水平粘连符号进行分割的时候因为其多变性导致分割不是很理想,在接下来的研究中将着重解决这一问题。

猜你喜欢
数学公式公式符号
形神兼备,聚焦小学数学公式定律教学策略
组合数与组合数公式
排列数与排列数公式
学符号,比多少
“+”“-”符号的由来
数学难题解开啦
例说:二倍角公式的巧用
活用数学公式 优化数学课堂
草绳和奇怪的符号
中国符号,太美了!