分段Radon变换的弯曲文本基线提取
2019-01-24罗晓萍朱金好
罗晓萍,朱金好
1(安徽师范大学 计算机与信息学院,安徽 芜湖 241003)2(皖南医学院 医学信息学院,安徽 芜湖 241002)
1 引 言
随手照拍文档图像常因纸张弯曲不能正确有效分析理解,需进行图像几何纠正预处理.纠正技术文档图像摊平(Document Image Dewarping)常用到文本基线[1-6].文本基线是指文档中文本、图片、表格的对齐线,常不显现但平行.文本基线提取越准确,图像摊平效果越好.这并不容易实现,因为有多项因素影响:纸张弯曲破损、背景多变、图像模糊、成像低分辨率、明暗不匀等.
文档图像基线提取技术分为2类:倾斜文本基线提取和弯曲文本基线提取.倾斜文本基线提取针对成像时文本纸张平整没有弯曲或皱褶的图像,主要方法有投影轮廓法(projection profile)、Hough变换、互相关、最近邻聚类,其次还有基于小波分解、矩、形态学和傅里叶分析等[7].弯曲文本基线提取针对成像时纸张有卷曲、拱起或者扭曲的图像,主要有以文本行特征为起点和以文字连通域特征为起点的方法.
以文本行特征为起点的弯曲文本基线提取方法将文本行作为整体来对待,提取特定特征来区别于其它元素.若特征区别力不强,则会计算耗时或者产生误差.文献[1]根据文本行具有的自相似性,搜索文本行并采用优化方法逐步求精.对于满文文档算法效果良好,但有文本行搜索步长必须设置较小否则会漏行,行基线优化方法耗时问题.文献[8]采用Seam Carving和优化过程来分割文本行,但却易于受噪声影响和易在相邻行间串走.文献[9]将图像分成条状子图,使用Radon变换结合动态规划算法寻优检测出行基线,子图行基线再连接使用3次B样条曲线拟合.此方法所得行基线不能准确贴合文本边缘并且只适用于横排文档.
以文字连通域特征为起点的弯曲基线提取方法利用连通域分析、图或者聚类技术区别出每行,由下而上分析文档结构,思路简洁,多受关注.此法需构造合理的图结点间度量权值,也容易陷入局部优化状态.文献[2]在二值化图像连通域基础上设计距离度量,构造带权图,采用最小生成树实现连通域聚类再剪枝优化区别出每行,提取每行最低点来拟合曲线.其思路和文献[10]相似.当行连通域所含字符较少时,连通域方向和其所在行方向有较大差异,给连通域间的距离度量带来误差,文献[10]在图像子块上投影统计区域文本行方向作为连通域方向,避免连通域像素数目较少引起的误差.文献[2]采用字符最低点来拟合曲线,对英文字符有效,对中文字符存有误差[9].文献[11]连通域间采用多维特征度量构建超图,文献[12]采用间距检测行,皆没有充分考虑连通域之间的方向关系,当文本行间距较小时,相邻行易于相互影响.
受文献[9]启发,兼顾文档整体版面和局部特征,利用整体曲线可由分割直线拟合近似替代理论,文中提出一种准确提取弯曲文档图像基线的方法.首先根据文本排列方式将图像分割成竖排区域和横排区域,然后区域分成条状子图,对条状子图获取基直线,再连接各子图直线拟合得到弯曲基线.主要特点有:1)最近邻寻找最近方向并统计出主要方向得到文本的排列方式,由文本排列方式将图像分割再区别处理,适用较为复杂排版的文档页;2)使用连通域倾斜方向(Orientation)减少Radon变换次数,降低计算量;3)使用Radon变换对连通域进行分割和合并,综合了字符间相对位置;4)同一条状子图各基直线倾斜角度区别开来,不使用相同角度近似,获得更准确的弯曲基线.
2 方法过程
方法分2步.第1步通过最近邻寻找得到文本的排列方式,各局部排列方式可以不一样;第2步为弯曲基线提取.
2.1 最近邻寻找
一般情况下,印刷文本相邻字符较近,字符间距比行间距窄.采用最近邻聚类的倾斜方法检测即基于此.字符间距不是一定比行间距窄,常有比行间距宽的情形,当行末有标点符号或者行中有阿拉伯数字时,字符间距会比行间距宽,相机成像也会加剧这一情况,这使得通过分析行间距实现行间分割的方法失误[1].综合考虑,利用前一情况,本文根据连通域距离远近像素数增加情况寻找最近邻,避免后者干扰,在整体上统计确定区域主方向.
文中方法在二值化连通域上进行.文档图像二值化效果影响文档图像进一步的分析和识别[13,14].二值化易产生噪声,因为字符笔画有可能分断,特别是圆形字母,且图像偏暗部分影响被放大.图像文档中还常有插图、表格、图形、公式等,其连通域一般比文字要大.采用直方图统计连通域宽高,基于文字大小相近且量相对较多,分析出文字大小,剔除过滤较小的噪声和较大的图表、公式.
图1 连通域四周方向编号Fig.1 Direction numbers around CC
统计连通域周围相同距离内分布邻域像素数目来获得最近邻.对每一连通域,将其上、左、下、右四个方向编号为1,2,3,4,如图1所示.在四个方向分2次向外扩展矩形区域,如图2(b)(c)所示,计算矩形区域内占有像素数变化情况.若某方向在2次扩展中落入的像素数没有增加或者增加较少,说明此方向附近没有其它字符;若某方向在2次扩展中囊括的像素数明显增加并且增加数量多于其它几个方向,则说明该方向是字符行或列延伸方向,记录该方向.扩展矩形延伸宽度和前文所得文字宽高成比例.遍历方式采用深度优先方式,依据方向聚类结果见图2(d).连通域四周方向还可细分成8方向.
用连通域近邻方向编号取代连通域标记,图像自然分割成横排区域和竖排区域.
2.2 弯曲基线提取
竖排区域在其主方向旋转,和横排区域作相同处理.区域分成条状子图,获取每个条状子图基直线,基直线连接、拟合出区域弯曲行基线.若条状子图基直线斜率相同,则基直线的获取可以直接通过在条状子图上施加Radon变换获得,不需要首先连通域重心合并分行.实际上条状子图基直线斜率并不总是相同,当被拍纸张有圆弧隆起或下凹时,会出现相邻行斜率完全相反的情形,这时使用Radon变换找不出规律,连通域重心合并分行反而简单有效.
图2 连通域邻近区域和近邻聚类结果Fig.2 Neighbor regions of CCs and clusters
2.2.1 连通域重心排序和合并
计算连通域重心并在垂直方向上排序,重心相距在一定阈值内的连通域合并.当文本行间距比较大时,此方法简单有效;当文本行间距较小时,相邻行或者其部分常被合并在一起.因为后续基于连通域倾斜角度的Radon变换需要一定数据量才有效,所以合并阈值不妨大些,取数倍于文字连通域高度.
2.2.2 行连通域优化
使用Radon变换分拆包含多行文字的连通域成单行连通域,合并分散连通域成行连通域.
Radon变换用来计算图像矩阵在某方向的投影.设H和W为条状子图S的高度和宽度.投影坐标系定义为原点位于图像S中心,x、y轴平行于图像坐标系的x、y轴.图像S在给定角度上Radon变换定义为沿公式(1)直线上积分[9,15].公式(1)称为投影线.
xcosθ-ysinθ=ρ
(1)
图3(a)为72×230像素的文本图像,(b)(c)分别为θ是0°,90°时的Radon变换值曲线图,θ=0°时投影线垂直水平轴,θ=90°时投影线平行水平轴,投影线倾斜角度为文本行倾斜角度.图3(c)有很明显山峰和低谷,低谷处反映出行间留白位置,低谷向山峰、山峰向低谷过渡处为虚拟基线位置.由此得出利用Radon变换的低谷可以检测区域图像文本行数.见图4所示,图4(a)为区域图像,(b)为其在76°时的Radon变换值曲线图,低谷处即为行间留白投影.
图3 无倾斜和弯曲文本图像Radon变换Fig.3 Radon transform of document image without distortion
利用连通域的倾斜角度来减少Radon变换投影角度的范围.图4 Radon变换所用角度为连通域倾斜角度.连通域倾斜角度为囊括连通域像素且和连通域有相同二阶矩的椭圆主轴和图像水平轴的夹角.当连通域图像宽高比比值离1较远时,行倾斜角度接近连通域倾斜角度,比值接近1时,行倾斜角度和连通域倾斜角度之间误差较大,见图5.多行部分文字合并在一个连通域里、一行文本被拆成多个小连通域影响宽高比,连通域倾斜角度误差可能会较大.考虑到条状子图里的行都是相邻的行,即使在曲面情况下其相邻行倾斜角度变化不会太大,因此排除离群点统计大部分倾斜角度变化规律拟合多项式,用拟合多项式值来替代远离的倾斜角度.优化后的连通域倾斜角度被用来限制Radon变换范围,有效减少0°-179°上投影引起的计算量.
图4 轻微弯曲图像Radon变换Fig.4 Radon transform of slightly warped document image
在完整图像划分条状子图时,条状子图宽度设置需考虑图像的弯曲度、连通域方向、Radon变换所需数据量.若宽度设置过宽,文本虚拟基线不是近似直线,则Radon变换不能很好地进行行分割.若宽度设置过窄,后续Radon变换不能检测出基线,见图5所示.
图5 小连通域引起的检测错误Fig.5 Error produced by small CC
使用Radon变换分拆多行连通域算法如下.
1.计算每个连通域相对于图像水平轴的倾斜角度.
(2)
P=(HTWH)-1HTWA
(3)
(4)
3.对每个连通域i,若其宽度大于条状子图宽度一半,进行如下操作,否则转4.
2)在投影值零点最多的方向上,统计投影值间隔零点情况,有间隔零点则将连通域在间隔零点反映的位置进行分拆,被分拆的新连通域添加在i+1位置,连通域总数作相应增加.
3)计算行的上下边虚拟基线上两点.
4.将连通域i记入待合并队列.
待合并队列连通域寻找所在行.不同行区域之间交集为空,行区域和非本行文本连通域交集为空.若连通域和行区域交集非空,则说明连通域和行区域连通域在一行.
合并分行连通域成行连通域算法如下.
1.根据上述算法得到的行上下边虚拟基线,计算其所围区域得到行域.
2.对于每个待合并队列连通域,计算其与每个行域交集所包含的像素数.若像素数达到某阈值,则认为它们是同属一行.
2.2.3 基线点提取
对每个行连通域操作如下,图6为算法所获基线示意图.
图6 算法所获基线示意图Fig.6 Result images added baselines
1.形成行区域图像.
2.在行连通域倾斜角度的垂直角度上进行Radon变换.
3.计算非零区间宽度maxW,取前0.6maxW个最大值均值aver,获得大于aver区间首元素和末元素ρ值.
4.在条状子图左右两边取2点x坐标,使用公式(5)(6)计算行上下边基点的高度.
(5)
(6)
5.分上下2组记录基点坐标.
2.2.4 各条状子图行基线点聚集并拟合
原区域划分时要使相邻条状子图有一定宽度的重合.在重合部分的中间线上计算基线点位置,方便行基点聚集.聚集后基点集合采用3次多项式拟合.
3 实验与分析
数据集为CBDAR2007 dewarping contest dataset[16]和自备图像.前者为手持相机对科技类图书在办公环境下拍得,有灰度和二值图像,主要是横排文档,有几何和透视形变.
文中最近邻寻找时,探索矩形框宽度为1/5字符宽度像素.当子图行倾斜较大且行间距小时,为防止邻行影响,此值设置偏小,因后续连通域重心排序合并算法简单,偏小不会增加运行复杂度.合并时阈值为一个字高度.此阈值设置较小时,连通域分散,可能因数据量较少而使连通域方向不能反映文本方向.条状子图设置为10倍字符宽度,重合宽度为3倍字符宽度,依从于图像拼接技术中比例要求.
图7(a)(b)(c)为部分实验结果图,其宽高分别为1220×1084像素、685×458像素、800×600像素,皆为自备图像.图7为英文文档,图8为中文文档,行基线皆准确地检测出.
图7 部分实验结果Fig.7 Part of result images
分散的噪声对本文方法影响小,因为像素偏少的连通域会被移除.文本笔画断笔对检测方法无影响,因为基线提取在像素累和基础上进行.图6(d)的基线是(c)简单阈值二值化下提取,二值化丢失了部分笔画并没有影响基线提取效果.
图8(a)宽高为1072×1680像素,文档里有大小不同文字.(b)为文献[9]PDF文件“拍快照”所得图,近景文本线准确,远景标题行不能正确检出.文献[9]方法在文本边缘上进行.边缘检测对噪声敏感,为减弱噪声影响,需要对图像滤波,图像模糊时需要对图像作锐化处理,这些都增加方法时空复杂度,尤其图像分辨率较大时.
图8 和文献[9]结果比较Fig.8 Result compared with paper[9]
图9、图10(a)为原图,宽高分别为2112×2816像素、2448×3264像素,来自CBDAR2007 dewarping contest dataset.(b)为文献[8]方法所得图,黑色线为检测的文本中线,出现走行现象.(c)为本文方法结果图,提取的曲线和文本行基线一致.(d)上、下图分别为图(b)(c)细节.
在实验代码没有优化的情况下,文中方法和文献[8]方法都比较耗时.实验条件为Intel(R) Core(TM) i3 CPU1.8GHz,4GB内存,Windows8,MatlabR2015b编程实现.文献[9]比较快速,在其实验环境下图像6M大小时仅需6-8秒.
文中方法将基线点提取、聚集拟合操作修改成文本行像素聚合操作,便能实现文本行检测.文本行检测的召回率(Recall Rate)和正确率(Precision Rate)在CBDAR2007 dewarping contest dataset上评估.此数据集共102张图像约3119行文本.参照文献[17],当检测到的行i和标准行j之间重合比例MatchScore(i,j)大于0.95时,认为行i为正确.MatchScore(i,j)见公式(7),其中Ri为行i的像素集,Gj为行j像素集.本文和其它三种方法的召回率和正确率见表1.
表1 四种文本行检测方法性能评估
Table 1 Performance evaluation of four text line extraction methods
方法召回率正确率文中方法93.18%75.39%文献[10]92.67%69.91%文献[18]89.02%42.51%文献[1]66.28%56.50%
图9 和文献[8]结果比较Fig.9 Result compared with paper[8]
图10 和文献[8]结果比较Fig.10 Result compared with paper[8]
(7)
4 结束语
连通域近邻查找没有根据连通域重心而是基于相邻矩形区域像素分布情况,由像素标记得到其所在连通域,前期已有去除噪声步骤,所以部分像素数即使受到噪声干扰,也不会影响后期统计结果.Radon变换作用被充分应用于分割文本行、合并同行文字、提取分段行基线,为文本基线精确提取提供稳定支持.精确提取的文本基线为拟合文档平面、获取相机参数提供良好支持.
文中方法基于弯曲文本基线局部线性的假设.当此假设不成立时,方法可能会失效.当文档纸质有对折式弯曲时,所拍图像文本行在折痕处突然改变方向,折痕处文本行基线不能用直线近似,此时方法不适用.进一步研究深度学习强化学习实现更通用更鲁棒的文本行检测、弯曲文本图像纠正.