发明名称 一种结合投影和结构特征进行图像中数学公式检测方法
摘要 本发明是一种结合投影和结构特征进行图像中数学公式检测的方法。本方法是对任意文本图像进行灰度化、二值化、分割,获取分割字符的投影特征与字符间的结构特征,并与给定字符的投影和结构特征进行对比,进而检测出数学公式文本图像。给定的字符包括:分式/矩阵/大于等于号/小于等于号、乘号、含根号字符/未完全分割的分式、数学向量、含有上标或者下标的字符,以及数学公式中的特殊字符。本发明主要通过投影和结构特征来进行检测,与常见的模式识别等检测方式相比,无需大量样本进行训练,检测方法简单,计算量少,便于实现,且对图像的清晰度、矫正度等要求不严格,识别率高。
申请公布号 CN105913057A 申请公布日期 2016.08.31
申请号 CN201610223354.1 申请日期 2016.04.12
申请人 中国传媒大学 发明人 黄祥林;宋格格;杨丽芳;陶竹林;刘守训
分类号 G06K9/20(2006.01)I;G06K9/32(2006.01)I 主分类号 G06K9/20(2006.01)I
代理机构 代理人
主权项 一种结合投影和结构特征进行图像中数学公式检测的方法,具体步骤为:本发明是对任意文本图像进行二值化、字符分割,对分割出的字符进行水平投影与垂直投影,获取字符的投影特征,通过分割出的字符位置获取字符间的结构特征,将分割出的字符与给定字符进行投影特征的对比,分割出的字符间的结构特征与给定结构进行对比,判断是否为数学公式图像;其特征在于:所述的将分割出的字符与给定字符进行投影特征的对比,分割出的字符间的结构特征与给定结构进行对比,判断是否为数学公式图像的具体方法如下:步骤1,对需要进行检测的图像进行灰度化、二值化预处理,并对图像先进行一次垂直投影分割,对分割出的图像在进行一次水平投影分割,得到分割字符的位置链表为S1;步骤2,对S1中的字符依次进行小于等于号(<img file="490231dest_path_image001.GIF" wi="11" he="12" />)/大于等于号(<img file="407371dest_path_image002.GIF" wi="11" he="12" />)检测、分式检测、矩阵检测:步骤2.1,对S1中的字符进行水平直线或者矩阵的矩阵符号([…])检测,通过字符的垂直投影与水平投影特征判断字符是否为水平直线或者矩阵的矩阵符号,若检测的字符为水平直线,则跳转到步骤2.2进行检测,若为矩阵的矩阵符号,则直接跳转到步骤2.4检测,若未检测到水平直线或者矩阵的矩阵符号,对S1中的字符进行再次分割(再次分割是指对字符进行水平投影分割和垂直投影分割,直到无法再进行分割为止)得到分割字符的位置链表S2,对S2中的字符进行步骤3检测;步骤2.2,若字符为水平直线,检测在水平直线下方是否含有字符存在,如果水平直线下方没有字符,则进行步骤2.3检测,若水平直线下方含有字符,则进行分式的检测:步骤2.2.1,判断水平直线与下方字符间的距离l<sub>b</sub>,若l<sub>b</sub>小于设定的第一阈值,则进行步骤2.2.2检测,否则停止分式的检测,接着对S1中的字符进行步骤2.1检测,步骤2.2.2,判断水平直线的上方是否存在字符,且字符与水平直线之间的距离小于设定的第一阈值,如含有符合条件的字符则进行步骤2.2.3检测,否则停止分式的检测,接着对S1中的字符进行步骤2.1检测,步骤2.2.3,判断水平直线上下字符是否均位于水平直线的中间位置,且水平直线左右两侧超过上下字符中长度较长的字符的左右两侧的长度均不超过一个字符的宽度,若上下字符符合条件,则判定为数学分式,停止对图像进行检测,将图像判定为数学公式图像,否则停止分式的检测,接着对S1中的字符进行步骤2.1检测;步骤2.3,若水平直线下方没有字符,则进行小于等于号/大于等于号检测:步骤2.3.1,判断水平直线的上方是否存在字符,且字符与水平直线之间的距离小于设定的第二阈值,字符的水平投影为一条垂直直线且垂直投影为一条水平直线,如含有符合条件的字符则进行步骤2.3.2检测,否则停止小于等于号/大于等于号的检测,接着对S1中的字符进行步骤2.1检测,步骤2.3.2,判断水平直线上方字符的左右边界值是否与水平直线的左右边界近似相等,且字符宽度小于设定的第三阈值,若有字符符合条件,则判定为数学公式中的大于等于号或者是小于等于号,停止对图像进行检测,将图像判定为数学公式图像,否则停止小于等于号/大于等于号的检测,接着对S1中的字符进行步骤2.1检测;步骤2.4,若检测的字符为矩阵的矩阵符号([…]),则进行数学中的矩阵检测:判断矩阵符号之间的字串行、字串列是否排列整齐,即判断位于同一行的字符下边界是否近似相等,同一列的字符左边界是否近似相等,若排列整齐则判定为数学中的矩阵,停止对图像进行检测,将图像判定为数学公式图像,否则停止矩阵的检测,接着对S1中的字符进行2.1检测;步骤3,对S2中的字符进行乘号检测:步骤3.1,对S2中的字符进行字符宽度高度的对比,乘号字符呈正方形,若宽度与高度近似相等,则进行步骤3.2判断,否则接着对S2中的字符进行宽度高度检测;若未检测到符合条件的字符,则进行步骤4检测,步骤3.2,对字符进行水平投影、垂直投影,获得水平投影直方图X1与垂直投影直方图X2;步骤3.3,寻找X1、X2中最小值的位置local1、local2;步骤3.4,判断local1、local2是否位于字符的中心位置,若两位置中有一个位置位于非中心位置则停止进行字符的乘号检测,接着对S2中的字符进行步骤3.1检测;若两位置均位于中心位置,接着判断local1两侧水平投影是否为两条垂直直线以及判断local2两侧垂直投影是否为两条水平直线,若均符合条件则进行步骤3.5检测,否则停止乘号检测,接着对S2中的字符进行步骤3.1检测;步骤3.5,检测字符最左侧中间的位置是否存在像素点,若不存在像素点则判定字符为乘号,停止对图像进行检测,将图像判定为数学公式图像;否则停止乘号检测,接着对S2中的字符进行步骤3.1检测;步骤4,对S2中大的分割模块依次进行根号检测与分式检测:步骤4.1,对S2中的字符进行大的分割模块的选取,选取的标准为:宽度大于设定的第四阈值,高度大于设定的第四阈值,且分割字符某一范围内的像素数的宽度与字符总宽度之比rat大于设定的第五阈值;若不含规定范围内的大模块,则进行步骤5检测;步骤4.2,判断分割模块的顶部是否含有直线,如果有则假定是在根号下的图像,进行步骤4.3检测,没有则假定是未分割开的分式图像,进行步骤4.4检测;步骤4.3,对于根号图像,判断字符左侧区域的像素点是否位于字符的下半部分,若字符左侧区域的像素点位于字符的下半部分,则图像为含有根号的数学公式图像,否则进行步骤4.5检测,进行分式检测;步骤4.4,对未分割开的分式图像查找直线位置,为了防止图像倾斜,在查找直线位置时,先获取右侧从上到下、从下到上两个方向查找的第一个像素点的两个位置A、B;通过A、B两位置获取左侧从上到下、从下到上两个方向查找的第一个像素点的位置A1、B1,判断四个位置所形成的区域内的字符是否为直线;如果是直线则对直线下方区域重新进行检测,获取下方区域新的左边界与右边界,进行步骤4.5检测,进行分式检测,否则停止检测,接着对S2中的字符进行步骤4.1检测;步骤4.5,检测直线上下两侧的字符是否位于直线的中心位置区域,同时判断直线两侧超过上下两侧字符中字符长度较长的字符的左右两侧的长度均小于一个字符的宽度,如果满足条件,则判定为数学公式中的分式,停止对图像的检测,将图像判定为数学公式图像;否则接着对S2中的字符进行步骤4.1检测;步骤5,对S2中的字符进行数学向量、分式的检测:步骤5.1,对S2中的字符进行水平直线检测、水平箭头检测,若字符为水平直线或者水平箭头,进行步骤5.2检测;若未检测到水平直线或者水平箭头,则进行步骤6检测;步骤5.2,若图像检测出字符e为水平直线或者水平箭头,检测e下方是否含有字符,若不含字符,则停止该部分的检测,接着对S2中的字符进行步骤5.1检测;若下方含有字符,判断字符e与下方字符之间的距离,若距离大于设定的第六阈值,则停止该部分的检测,接着对S2中的字符进行步骤5.1检测;若距离小于设定的第六阈值,判断e上方是否含有字符,若e上方不含字符则进行步骤5.4的向量检测;若e上方含有字符且e为直线,则进行步骤5.3分式检测;若e上方含有字符且e为箭头,则接着对S2中的字符进行步骤5.1检测;步骤5.3,判断水平直线与上方字符之间的距离,若距离大于设定的第六阈值,则停止该部分的检测,接着对S2中的字符进行步骤5.1检测;若距离小于设定的第六阈值,直线上下两侧相邻区域字符进行合并,判断上下两侧合并后的字符是否均位于水平直线的中间位置,且直线左右两侧超过上下字符中长度较长的字符的左右两侧的长度均不超过一个字符的宽度,若上下字符符合条件,则判定为数学公式中的分式,停止对图像进行检测,将图像判定为数学公式图像,否则接着对S2中的字符进行步骤5.1检测;步骤5.4,对字符e下方相邻区域的字符进行合并,判断下方合并后的字符是否位于字符e的中间位置,且字符e的左右两侧超过下方字符左右两侧的长度不超过一个字符的宽度,若下方字符符合条件,则判定为数学中的向量,停止对图像进行检测,将图像判定为数学公式图像,否则接着对S2中的字符进行步骤5.1检测;步骤6,对S2中的字符进行右侧上标与右侧下标检测:步骤6.1,通过S2中分割出的字符的位置判断字符间的位置关系,若字符a位于字符b的右侧,进行步骤6.2检测,否则接着对S2中的字符进行位置检测, 若没有字符a位于字符b的右侧,则停止检测,进行步骤7检测;步骤6.2,判断字符a的高度、宽度、上边界值、下边界值,字符a的高度、宽度位于设定的第七阈值与设定的第八阈值范围内,a的高度小于b的高度,两字符间的距离应小于设定的第九阈值,a的上边界位于字符b上边界的上方且a的下边界应高于字符b设定的第十阈值处或者a的下边界位于字符b下边界的下方且字符a的上边界应低于字符b设定的第十一阈值处;步骤6.3,判断字符b的上方有无其他字符存在,若不含字符,则判定为数学公式中含有上标或者下标的字符,停止对图像进行检测,将图像判定为数学公式图像,若含有字符,则对S2中的字符接着进行步骤6.1检测,直到字符检测完为止;步骤7,对S2中的字符进行特殊字符模板匹配检测:步骤7.1,选取一定数量的宽度高度均小于第十二阈值的字符进行归一化处理;步骤7.2,通过欧式距离计算待检测字符与二值化的模板的相似距离d<sub>1</sub>、二值化的模板与待检测字符的相似距离d<sub>2</sub>;步骤7.3,对d<sub>1</sub>、d<sub>2</sub>中的最大值与设定的第十三阈值进行对比,若小于设定的第十三阈值,则判定两字符匹配,否则判定两字符不相匹配;若含有数学中的特殊的字符则判定图像为数学公式图像,否则为非数学公式图像。
地址 100024 北京市朝阳区定福庄东街1号