一种复杂结构文档图像倾斜快速检测方法

文档序号:6613639阅读:195来源:国知局
专利名称:一种复杂结构文档图像倾斜快速检测方法
技术领域
本发明涉及一种复杂结构文档图像倾斜快速检测方法,属于文档图像处理范畴。

背景技术
文档图像处理一般包括图像获取,图像增强,噪声减除,倾斜检测和校正,页面分析,图像检索或者光学字符识别(OCR)等内容。其中,文档图像的获取过程是通过扫描仪或者数码相机等数字化设备将纸张文档转化成数字图像,在这个过程中,由于纸张摆放等原因,难以避免地会造成生成图像存在一定程度上的倾斜。
以OCR或者图像检索为目的的文档处理系统,倾斜检测通常在系统中属于预处理部分。由于文档图像后续处理通常对图像的倾斜非常敏感,因而倾斜检测是这些系统的重要组成部分,对系统的性能有很大的影响,因而对倾斜检测问题的研究就逐渐成为文档图像处理的一个重要的独立分支。
随着时代的发展,科技的进步,国际化交流的日益频繁,现在的文档已经不再是传统意义上单种语言文字的纯文本了,取而代之的是包含大量图表,混合多种语言文字和版式的复杂结构文档。在这种背景下,为适应现代化文档图像处理系统的需要,研究和开发适合复杂结构文档图像特点的倾斜检测算法就成了一项意义重大并富有挑战性的工作。本文的研究目的就是针对复杂结构文档图像的倾斜检测问题展开研究,在兼容普通文档图像的基础上,设计并实现可以适用于复杂结构文档图像的倾斜检测算法。
由于倾斜检测在文档图像处理中的重要性和必要性,因而近些年来吸引了国内外大量科研人员和机构致力于文档图像倾斜检测问题的研究,取得了许多成果。现有的文档图像倾斜检测方法可分为如下几类(1)截面投影法(Project Profile);(2)交叉相关法(CrossCorrelation);(3)Hough变换法(Hough Transform);(4)近邻聚类法(Nearest Neighbor); 但是,对于复杂结构的文档图像(这类图像在现实生活中十分常见),以上所列的一些方法都存在缺陷,而本发明也正是在针对处理复杂结构文档图像上,比之前的方法效果上有明显改进。
图像结构的复杂性主要体现在以下几点 (1)文档中不仅有纯文本,还包括图表等各种非文本区域,甚至非文本区域占明显优势。
(2)文档的版式结构复杂,包括横版(文字主方向为横向)/纵版(文字主方向为纵向);单栏/多栏等。
(3)文档中包含多种语言文字,包括中文、英文、日文。
(4)文档中文字的字体和字号多种多样。
(5)文档中文字部分可能分布零散或稀少。
本文算法的输入是倾斜的二值文档图像,经过倾斜检测计算图像的倾斜角度,按照倾斜角度进行旋转校正后,输出为校正后的二值文档图像,

发明内容
本文设计一个基于鲁棒边界段的文档图像倾斜检测方法(以下简称RBL算法),其流程如图1所示,主要包括如下几个步骤 预处理这部分的目的是为后续处理做准备,主要包括噪声减除,图像增强等。
第一次提取边界段经过预处理后,文档图像中可能存在一些大连通区域。这些大连通区域绝大多数由非文字区域的对象构成,它们的存在会影响到后面的处理;另一方面,这些非文字区域的大连通区域可能存在可靠的倾斜特征。因此,在预处理后,提取大连通区域的边界段,之后将这些区域从图像中移除。
Run-Length算法连接文字行经过上一步,图像中剩下的基本上是文字区域了。此时的文字区域中,文字大多是单独的连通区域,文字行之间并不连通。为了便于文字行区域的倾斜特征提取,需要使处于同一行的文字相连通,并尽量避免不同行的文字相连通。在这里,先判断图像的主方向,即是横向还是纵向。之后沿图像的主方向,采用Run-Length算法对文字行进行连接。
第二次提取边界段通过上一步,文字行得以连通,形成大的连通区域。从这些大的文字行连通区域中提取边界段,作为候选的倾斜特征。
边界段过滤通过一个基于PCA(Principle Component Analysis,又称主成分分析)分析的过滤算法,判断边界段的线性程度,从中选取线性程度足够好的边界段,作为可靠的倾斜特征,用来进行倾斜角度计算。
边界段优化通过一个基于加权PCA分析的迭代优化方法,减弱线性边界段中少量噪声点的影响,使边界段成为鲁棒边界段,并计算得到每个鲁棒边界段的倾斜角度。
计算倾斜角度选取所有鲁棒边界段倾斜角度的加权中值作为整幅文档图像的倾斜角度。
旋转校正图像按照得到的倾斜角度,对图像进行旋转校正,得到校正后的文档图像。
本发明为一种复杂结构文档图像倾斜快速检测方法,其步骤为 1)预处理文档图像,对原始图像进行噪声减除,标定连通区域; 2)提取大连通区域边界段,同时移除大连通区域,若不存在大连通区域则跳到下一步; 3)连接文字行和相邻区域,提取边界段; 4)对提取的边界段进行过滤,得到可靠的倾斜特征; 5)根据倾斜特征计算整幅文档图像的倾斜角度。
进一步,所述预处理文档图像还包括对噪声减除后的图像进行归一化处理,图像增强,填补小背景区域。
进一步,所述填补小背景区域的方法为首先反着用LC算法标定连通背景区域;对于该区域所包含的前景像素的个数sum值小于一定阈值的连通背景区域,将属于该区域的所有背景像素设为前景像素。
进一步,连接文字行和相邻区域的方法为 1)计算横向和纵向平均距离,其方法如下 ①定义两个参数横向有效距离个数h_sum和总距离dist,并将二者初始化为0; ②对图像进行逐行遍历对于同一行的两个相邻的前景像素,计算相邻两个像素之间背景像素的个数n,如果满足0<n<n_max,则有h_sum=h_sum+1,dist=dist+n,其中n_max为最大间隔阈值; ③通过h_dist=dist/h_sum得到横向平均距离h_dist; 同理,定义并求出纵向有效距离个数v_sum,纵向平均距离v_dist; 2)判断文档图像的主方向,其规则如下 ①若h_sum>3×v_sum,则主方向为横向; ②若v_sum>3×h_sum,则主方向为纵向; ③若①,②均不满足,则比较h_dist,v_dist,如果h_dist<v_dist,则主方向为横向,反之,主方向为纵向; 3)采用Run-Length算法沿主方向进行相邻区域连接。
进一步,上述提取边界段的方法为 (1)对每个连通区域,判断其宽度大小,如果其宽度大于某一阈值min_size,则转到(2),否则,转到(7); (2)从上到下提取该区域的上边界从左到右,对该区域的每一列进行遍历,记录遇到的第一个前景像素的位置(x,y),然后退出对这一列的遍历,开始对下一列进行遍历; (3)对(2)已经提取的边界点序列,按从左到右的顺序,每10个点一组,选取最靠上的一个点,如果有若干个点y值相同,选x最小的一点;将选出的点组成抽样边界序列; (4)抽样边界点序列可记做pi(xi,yi),i=1,2,…,n,其中,pi-1是pi左邻的抽样点,初始化两个变量start和end,令它们的值为1; (5)遍历抽样点,对每个i,如果(i=n)或者(dv=|yi-yi+1|>max_fall),则令end=i;其中,max_fall为落差阈值; (6)如果(end-start)>min_length则记录i值从start到end的抽样点,作为候选边界段,令start=end+1;其中,min_length为边界段长度阈值; (7)结束;同理可以实现其他边界的提取。
进一步,所述边界段包括文字区域边界段和图表区域边界段。
进一步,上述边界段过滤的方法为 1)采用主成分分析方法计算边界段的两个特征值λbig和λsmall,其对应的特征向量表示该边界段的主方向和垂直主方向的方向; 2)定义参数δ,δ=λsmall/λbig,用于度量边界段的线性程度; 3)判断每个边界段的δ值,如果δ大于设定的阈值,则将该边界段视为不可靠边界段,予以舍弃;反之,则视该边界段为可靠的倾斜特征。
进一步,采用迭代算法进行边界段优化得到鲁棒边界段。
进一步,所述迭代算法中采用指数形式的权重函数w(p)=exp(-dis)计算边界段的权重值,其中dis为点p到拟合直线的距离。
进一步,采用加权中值的方法计算整幅图像的倾斜角度,其步骤为假设图像中N条鲁棒边界段,每个边界段对应的含有其倾斜角度s_ai和采样点数量mi,i=1,2,...,N (1)通过计算倾斜角度的数目,记做Angle_Sum; (2)建立长度为Angle_Sum的数组Weight_Angle,用来储存所有的倾斜角度,从i=1到i=n,在数组中存储mi个s_ai,然后对该数组进行排序; (3)如果Angle_Sum是奇数,则加权中值为数组中第K1大的值;如果Angle_Sum是偶数,则加权中值为数组中第K2大的和第K3大的值的平均值,其中K1=(Angle_Sum+1)/2,K2=Angle_Sum/2,K3=(Angle_Sum+2)/2,计算出的加权中值,为整幅图像的倾斜角度。
本发明的积极效果如下 一、实验环境和数据库 为了检验RBL算法,本发明从CJDIR系统(冯所前,“大规模复杂文档图像检索系统的研究与实现”,2005,北京大学硕士毕业论文)的转换数据库中(包含10385幅无倾斜的文档图像)随机选取了2000幅文档图像作为测试数据库的数据来源。CJDIR系统转换数据库的特点是混合了多种语言文字(Chinese,Japanese,English),页面结构复杂(包括单栏,多栏,横排,纵排,混合字符图像表格),其中大约30%为中文文档,20%为英文文档,15%为日文文档,其余的为混合文档或者非文字区域占明显优势的文档图像;超过60%的图像都含有非文字区域。
本发明将随机选取的文档图像通过PhotoShop进行二值化和旋转处理,最终形成本发明的测试数据库。由于原始数据没有倾斜,因此用PhotoShop进行旋转时的旋转角度即为测试图像的倾斜真值,倾斜角度的范围为[-10°,10°]。根据图像中文字区域占的比例,本发明将2000幅测试图像分为(A),(B),(C)三组。其中(A)为文字区域占有明显优势的文档图像,共有1079幅;(B)为文字区域和非文字区域大致相当的文档图像,共有700幅;(C)为非文字区域占明显优势的文档图像,共有221幅。
实验在一台CPU主频2.8GHz,内存512MB的台式电脑上进行,算法用C++编写。
为了检验算法的相对性能,本发明还实现了3种现有的有代表性的倾斜检测算法用作对比实验,包括Lu(Y.Lu,C.L.Tan,“A Nearest-Neighbor Chain based Approach to SkewEstimation in Document Images”,Pattern Recognition Letters,2003,Vol.24,Page(s)2315-2323),Das的算法(A.K.Das,B.Chanda,“A Fast Algorithm for SkewDetection of Document Images using Morphology”,International Journal on DocumentAnalysis and Recognition,2001,Page(s)109-114),以及基于Hough变换的倾斜检测算法(D.S.Le,G.R.Thoma,H.Wechsler,“Automatic Page Orientation and Skew AngleDetection for Binary Document Images”,Pattern Recognition,1994,Vol.27,Page(s)1325-1344)。
二、RBL算法的检测结果 表1-1各种算法的检测正确率 A,B,C图像分组(A),(B),(C) 表1-2各种算法的检测精度 表1-1和1-2给出了RBL算法和对比算法对2000幅测试图像进行检测的结果。其中,表1-1为检测结果的正确率,即检测结果中误差小于0.1°的结果所占的比例,A,B,C对应的表示上述测试图像所分的三个组(A),(B),(C);表1-2则显示了结果的精度,包括平均误差和误差的标准偏差两项。从表1-2中可以看到,另三种算法在正确率和精度上表现不相上下,而RBL算法则具有明显的优势。具体到每个组的结果,由于Hough变换方法采用全局特征,因而对于组(A)的结果相对其他两个算法较好;对应的,Lu的方法采用局部特征,因而在非文字区域占优的组(C)中结果相对较好。同时,由于这些算法没有从非文字区域提取倾斜特征,因而对于非文字区域占优的(C)组图像,检测的正确率均有较为明显的下降,这表明非文字区域对于倾斜检测的影响是客观存在的;而RBL算法由于同时利用文字区域和非文字区域的倾斜特征,并通过PCA分析过滤非线性边界段,最大限度的利用了文档图像中存在的鲁棒倾斜特征,因而在三组中表现比较一致,且明显好于其它三个算法。而表1-2从统计的角度显示了各个算法的精度期望和稳定性。从中可以看出,RBL相对于其他三个算法,不仅检测精度高(平均误差小),而且稳定性好(误差的标准偏差小)。
本实施例详细地介绍了为检验RBL算法各项性能所设计的实验及实验结果,并对实验结果进行了深入的分析。通过对比实验结果及实验分析,可以发现本发明的RBL算法确实具备精度和准确率高,算法速度快、鲁棒性强的特点。



图1本发明实现流程图 图2Run-Length算法进行邻近区域连接示意图 图3边界段提取过程示意图 其中(a)连通区域 (b)顶部边界 (c)抽样的顶部边界 (d)提取的边界段 图4边界段的过滤图 其中(a)一幅倾斜的原始图像 (b)提取的边界段 (c)经过PCA过滤后的边界段结果图
具体实施例方式 一、预处理 预处理部分的目的是对输入的二值图像作一些必要的处理,使之适合RBL算法后续部分的需要。预处理部分主要由以下几个步骤组成 噪声减除通过扫描等方式得到的文档图像,或多或少都会存在噪声。由于二值图像的噪声一般从概率的角度认为是均匀分布的,因而噪声大多是以孤立点的形式存在。基于此,RBL算法通过移除小连通区域的方法进行噪声减除。首先通过LC算法(L.Di Stefano,A.Bulgarelli,“A simple and efficient connected components labeling algorithm”.International Conference on Image Analysis and Processing,1999,Page(s)322-327)对图像进行连通区域标定,定义sum为该区域所包含的前景像素的个数,然后将sum值小于一定阈值的连通区域移除。
归一化对于RBL算法,不需要输入图像具有很高的分辨率,一般100dpi足够。而高分辨率的文档图像数据量大,会影响算法的运行速度。因此,预处理部分首先根据图像的分辨率,采用等距采样的方法,将图像归一化到100dpi。
图像增强归一化的缺点是会造成原图像连通区域的连通性的改变,这种改变会给后续处理带来麻烦。为保持原有的连通性,RBL算法对归一化后的图像作如下增强处理将每个前景像素的上、下、左、右四个位置设为前景像素。
填补小背景区域常见的语言文字,都会有一些字/字母是由闭合曲线组成的。如“O”,“日”。这样就会有一些小的连通背景区域存在,这些小的连通区域的存在会影响对图像主方向的判断,因此需要填涂这些小的背景区域,使其变成前景像素。具体做法如下 (1)首先反着用LC算法,即标定连通背景区域。
(2)对于sum值小于一定阈值的连通背景区域,将属于该区域的所有背景像素设为前景像素。
二、Run-Length算法连接文字行 2.1、Run-Length算法的基本原理 Run-Length意即行程长,是指从图像中某点开始沿某个方向连续具有相同特征的像素个数。Run-Length在图像处理中有广泛的应用,如图像的边缘噪声去除(K.Fan,Y.Wang,T.Lay,“Marginal noise removal of document images”,International Conference on DocumentAnalysis and Recognition,2001,Page(s)317-321),压缩编码(Y.Wang,J.M.Wu,“VectorRun-Length coding of Bi-level images”,Data Compression Conference,1992,Page(s)279-288)等。具体到文档图像处理,通常利用Run-Length算法连接相邻的前景区域(B.Gatos,N.Papamarkos,“Applying fast segmentation techniques at a binary imagerepresented by a set of non-ovcrlapping blocks”,IEEE International Conference onDocument Analysis and Recognition,2001,Pagc(s)1147-1151),使之形成以行或段落为单位的大连通区域。
Run-Length算法对相邻区域进行连接的方法如下 对于一幅二值图像,逐行(或逐列)地扫描图像。对于处于同一行(或列)的两个相邻的前景像素,如果两像素间的背景像素个数小于某一阈值r,则将这两个像素之间的背景像素全部变为前景像素。图2为用Run-Length算法进行邻近区域连接的示意图,这里r=3。
2.2、图像主方向判断 采用Run-Length算法进行相邻区域连接,最主要的是要判断图像的主方向--即实施Run-Length算法的方向。RBL算法通过两个直观的原理对图像的主方向进行判断(1)文字区域的行间距大于字间距。(2)如果一个方向上有效的距离(run length)数目远大于另一方向,则图像的主方向为这个方向。为了有效的利用这两个原理对图像的主方向进行判断,RBL算法的具体做法如下 (1)去除非文字区域。由于主方向判断的原理是基于文字区域的特点的,因而为了能够准确的判断图像的主方向,应当尽可能的将非文字区域去除。经过预处理部分后,图像中的非文字区域大多以大连通区域的形式存在,因而在预处理之后,先对图像中具有一定长度或宽度的大连通区域进行边界段提取,之后将这些连通区域从图像中移除,为主方向判断做好准备。
(2)计算横向和纵向平均距离以计算横向平均距离为例,平均距离的计算方法如下 ①定义两个参数横向有效距离个数h_sum和总距离dist,并将他们初始化为0。
②对图像进行逐行遍历。对于同一行的两个相邻的前景像素,计算相邻两个像素之间背景像素的个数n,如果满足0<n<n_max,其中,n_max为最大间隔阈值,则有h_sum=h_sum+1,dist=dist+n。
之所以要设定最大间隔阈值n_max,是因为即使文档的主方向为横向,也会有属于同一行的两个相邻前景像素的距离较大的情况。比如处于同一文字行但相隔较远的i,j或p,y;按分栏进行排版的文档等等。而对于倾斜的文档图像,由于倾斜造成的遮挡,使这种情况更为普遍。这样,如果没有设定n_max,则会使平均距离大大增加,从而造成主方向判断的错误。
③横向平均距离h_dist可通过下式得到 h_dist=dist/h_sum (1.1) 同理,还可以求出纵向有效距离个数v_sum,纵向平均距离v_dist。
(3)判断主方向主方向判断的规则如下 ①若h_sum>3×v_sum,则主方向为横向。
②若v_sum>3×h_sum,则主方向为纵向。
③若①,②均不满足,则比较h_dist,v_dist。如果h_dist<v_dist,则主方向为横向,反之,主方向为纵向。
2.3、Run-Length算法连接相邻区域 判断出主方向后,就可以对整幅图像用Run-Length算法沿主方向进行相邻区域连接了。用Run-Length算法进行相邻区域连接的算法在已经在2.1节中说明了,这里主要讨论一下Run-Length算法中阈值r如何设定。
阈值的设定一般有两种方式——固定阈值和可变阈值,其中,可变阈值又可细分为分段阈值,分段函数阈值和函数阈值。固定阈值是指对所有的情况都采用同一个阈值,而可变阈值是指通过和该阈值相关的一些特征进行阈值设定。通常,固定阈值根据经验进行设定,具有简单,开销小的特点,但对于一些极端的情况,其适应性往往较差,与之相对应的可变阈值,由于需要对相关特征进行提取和计算,往往需要一定的开销,但其适应性也相对较强。
具体到RBL算法的邻近区域连接问题,可行的阈值定义方向有如下两种 (1)固定阈值固定阈值是最直观简单的阈值定义方式。如果能够找到一个固定阈值,对于绝大多数情况都能较好的适应,那么就可以节省下为计算阈值而进行的特征提取和阈值计算的开销。权衡极少数情况的不适应,这些开销的节省在一些场合是值得的。
(2)函数阈值一般的,可以把主方向上前景像素的行程距离分布看作正态的,因此主方向上前景像素的平均行程距离mean和标准差s var是与Run-Length阈值相关的主要特征,采用mean+λ×svar计算阈值具有统计上的意义,并且可以通过λ的值来估计主方向前景像素的连接程度。一般说来,λ的值不能太小,因为需要主方向上的前景像素进行较为充分的连接才能得到较为完整的边界段;λ的值也不能太大,因为这样会造成误连接,从而影响结果的精度。
由于RBL算法自身的适应性较强,因而采用两种方式都能找到较好的阈值,可以根据具体系统对于时间开销的要求而选择阈值的定义方式。
三、边界段提取 边界段提取的目的是从连通区域的上,下,左,右四个方向提取边界段,作为候选的倾斜特征。之所以提取的是边界段,而不是整条边界,是因为有些情况下,区域边界的某一部分可能准确反映倾斜方向,而整条边界不能。为了适应这些情况,尽可能多地提取有效特征,因而本发明首先提取整条边界,然后对边界进行裁减,将边界中不符合条件要求的部分去掉,保留符合要求的边界段作为选取鲁棒边界段的候选者。具体的操作步骤如下(以提取上部边界段为例) (1)对每个连通区域,判断其宽度大小。如果其宽度大于某一阈值min_size,则转到(2),否则,转到(7)。
(2)从上到下提取该区域的上边界从左到右,对该区域的每一列进行遍历,记录遇到的第一个前景像素的位置(x,y),然后退出对这一列的遍历,开始对下一列进行遍历。
(3)对(2)已经提取的边界点序列,按从左到右(x从小到大)的顺序,每10个点一组,选取最靠上的一个点(即y最小的一个点)。如果有若干个点y值相同,选x最小的一点;将选出的点组成抽样边界序列。
(4)抽样边界点序列可记做pi(xi,yi),i=1,2,…,n,其中,pi-1是pi左邻的抽样点。初始化两个变量start和end,令它们的值为1。
(5)遍历抽样点。对每个i,如果(i=n)或者(dv=|yi-yi+1|>max_fall),则令end=i。
(6)如果(end-start)>min_length则记录i值从start到end的抽样点,作为候选边界段。令start=end+1。
(7)结束。
其中,max_fall为落差阈值,min_length为边界段长度阈值。如图3所示,为边界段提取过程的示意图。
四、边界段分析 4.1、基于PCA的边界段分析方法 PCA分析简介PCA分析(Principle Component Analysis,又称主成分分析)是一种常用的数据分析方法,在模式识别(边肇祺,张学工等,《模式识别》第二版,2000,清华大学出版社),三维视觉计算,医学分析等领域有着广泛的应用。
PCA算法的基本原理对于一个n维的样本空间X,对其协方差矩阵A(A=(Xi-EX)T(Xi-EX),其中,Xi表示样本空间的一个向量,EX为样本空间的期望)进行最优的正交线性变换(K-L变换),得到矩阵A的一组正交基(η1,η2,……,ηn),使得其中,λ1≥λ2≥……≥λn。经过上述变换得到的λ1为A的特征值,对应的ηi为A的特征向量。每个特征向量对应n维空间的一个方向,且这些方向在n维空间中是彼此垂直(正交)的。而与其相对应的特征值的大小则表明样本空间在该特征向量方向上的分量大小。
PCA算法的主要应用在模式识别领域,经常用PCA的方法进行特征提取。在进行PCA变换后,样本空间的特征集中分布在若干个特征值较大的方向上,选取样本在这些方向上的投影作为新的特征向量,可以在尽量保持样本特征的情况下达到降维的目的。而在三维视觉计算领域,则通常用PCA方法计算若十的空间点主方向(即最大的特征值对应的方向)。
基于PCA的边界段分析如果不考虑权值因素,文档图像中任意一个像素可由有序对(x,y)确定。而考虑到边界段不同点对于计算该边界段倾斜方向的贡献可能不同,因而在实际的边界段分析中,本发明加入权重因素。考虑空间一组点pi(xi,yi),其对应的含有权重wi,权重的含义为该点的“质量”(mass)。协方差矩阵为可通过下式得到 其中,这些点的质心(x,y)为 由于矩阵A为2*2的实对称矩阵,因而有两个非负特征根。该特征根可通过下式求得 其中,Δ=(a11+a12)2-4(a11a22-a12a21)。
通过大特征根λbig可求出对应的特征向量该特征向量对应这些点的主方向;而与小特征值λsmall相对应的特征向量则表示与主方向垂直的方向。通过表示主方向的特征向量

可得到这些点的拟合直线方程 yb(x-x)-xb(y-y)=0 (1.4) 4.2、基于PCA的边界段过滤 在RBL算法中,为了最大限度地利用文档图像中的有用信息,不但要从文字区域提取边界段,而且需要从图表区域提取边界段。从图表区域提取的边界段当中,不仅有向页眉、页脚、表格边界等与文档图像倾斜角度一致的边界段,也有很多涉及图表内容的,与文档图像倾斜角度偏差较大的边界段。图4为边界段的过滤图,其中(a)为一幅倾斜的文档图像,(b)为从该图像中提取的边界段。从图中可以看出,由于原始图像中间区域为图像区域,且该区域得图形很不规则,因此从这部分区域提取的边界段大多与文档图像的倾斜角度偏差较大。
除了图表区域可能提取出与文档图像的倾斜角度无关的边界段外,扫描过程中的噪声污染,不佳的二值化效果,不同文字行之间的误连接都可能会使提取的边界段与文档图像的倾斜角度有较大偏差。这些偏差较大的边界段如果存在过多,就会在很大程度上影响检测结果的精度。
通过大量的观察和分析,发现绝大部分在上述因素影响下提取的边界段具有一个共同的特点边界段具有较强的非线性。因此,如果能够有很好的方法度量一个边界段的线性程度,就可以将线性程度不好的边界段过滤掉,从而最大限度的消除上述因素对结果精度的影响。
在4.1节中,通过边界段的协方差矩阵可求得两个特征值λbig和λsmall,其对应的特征向量表示该边界段的主方向和垂直主方向的方向,而其值的大小表示这些点在对应方向上的贡献。因此,若λsmall相对于λbig较大,则说明这些点在垂直主方向的方向上有较大的能量或聚集程度,偏离拟合直线的成分较多,也就说明这些点的线性程度不够好。基于上述分析,本发明定义参数δ来度量边界段的线性程度 δ=λsmall/λbig(1.5) 在RBL算法实际应用中,对每个边界段,初始化每个点的权重为1,通过公式(1.2)、(1.3)和(1.5)计算δ。如果δ大于某一给定的阈值,则将该边界视为不可靠边界段,予以舍弃。反之,则视该边界段为可靠的倾斜特征,应用于RBL算法的后续环节。图4(c)即为图4(b)的)的边界段经过上述方法过滤所剩下的线性边界段结果图。
4.3、边界段的迭代优化 对于线性边界段,其线性程度虽然较好,但仍不排除有少量的诸如噪声或文字的上(下)凸点这样的“干扰点”存在。由于4.2节中PCA分析所采用的点的权值相等,因而这些点的存在会对拟合的结果产生一定的影响,影响最终结果的精度。如果能够找到一种方法去除掉干扰点或尽量减低干扰点的作用,则可使结果更加精确。另一方面,由于边界段通过了PCA线性过滤器,因而其中的大部分点是正常点(与前面的干扰点相对)。由于拟合直线是所有点共同作用的结果,因此对于按(1.4)求出的拟合直线而言,占绝大多数的正常点到拟合直线的距离相对于干扰点到拟合直线的距离必然较小。因而,到拟合直线的距离就成为度量边界段中的点是否为正常点,或者度量其正常程度的一个标准。因此,如果根据到拟合直线的距离远近来改变点的权重(即点对拟合直线的贡献),则可以使拟合结果得到优化。进一步地,如果不断地通过拟合结果调整权重,则可以不断地优化结果,直到达到满意的效果为止。实际上,本发明采用的以距离为参量的权重函数为 w(p)=exp(-dis) (1.6) 其中,dis为点p到拟合直线的距离。而整个迭代优化的具体做法如下 (1)通过公式(1.7)计算边界段的倾斜角度skew_angle1 其中k=yb/xb为边界段拟合直线的斜率。如果xb=0,则Skew_Anglei为0。
(2)按照(1.6)更新边界段的权重。
(3)通过(1.2)、(1.3)、(1.4)和(1.7)重新拟合直线并计算倾斜角度skew_angle2。
(4)如果|skew_angle1-skew_angle2|足够小,则转到(5),否则将skew_angle2的值赋给skew_angle1,然后转到(2)-(4)直到迭代收敛。
(5)边界段的倾斜角度是skew_angle1和skew_angle2的中值。
由于该迭代算法采用的指数形式的权重函数,因而可以迅速降低干扰点权重的相对大小,使迭代快速收敛。经过迭代优化的边界段,在RBL算法中被认为是鲁棒边界段,可以作为检测整幅图像倾斜角度的倾斜特征。
五、整幅图像的倾斜角度计算 通过大量的观察分析,发现对于RBL算法中的边界段,边界段的长度和结果的精度是正相关的,即边界段越长,其结果在统计上就越精确。这是由于边界段越长,就越有可能是从页眉、页脚、图片边框或完整的文字行中提取出来的。因此,为了结合中值和加权的优点,在RBL算法中,本发明尝试采用加权中值的方式来计算整幅图像的倾斜角度。权值即为边界段包含的采样点的数目。
假设图像中N条鲁棒边界段,每个边界段对应的含有其倾斜角度s_ai和采样点数量mi,i=1,2,...,N。则所有鲁棒边界段倾斜角度的加权中值可通过如下方法进行计算 (1)通过下式计算倾斜角度的数目,记做Angle_Sum。
(2)建立长度为Angle_Sum的数组Weight_Angle,用来储存所有的倾斜角度。从i=1到i=n,在数组中存储mi个s_ai,然后对该数组进行排序。
(3)如果Angle_Sum是奇数,则加权中值为数组中第K1大的值;如果Angle_Sum是偶数,则e加权中值为数组中第K2大的和第K3大的值的平均值。这里K1=(Angle_Sum+1)/2,K2=Angle_Sum/2,K3=(Angle_Sum+2)/2。
经过上述步骤计算出的加权中值,就被认为整幅图像的倾斜角度。
六、旋转校正图像 求得文档图像的倾斜角度后,就可以根据倾斜角度对文档图像进行旋转校正了。下面就来介绍一下图像旋转的方法。
图像的旋转是一种比较耗时的结构变换。一般以图像的中心为原点,旋转一定角度。旋转后,图像的大小一般会改变。可以把转出显示区域的图像截去,也可扩大图像范围显示所有图像。在本发明的算法里,采用的是后一种显示方式。
设点(x0,y0)经过旋转θ后坐标变成(x1,y1)。
旋转前 其中, 旋转后 写成矩阵表达 其逆运算如下 上面的旋转绕坐标轴原点(0,0)的,如果是绕一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后平移回新的坐标原点。假设图像旋转前中心坐标为(a,b),旋转后中心坐标为(c,d),则旋转变换的矩阵表达式为 其逆变换矩阵表达式为 即 由上面的转换公式,可以非常容易的编写实现图像旋转的函数。在实现过程中,首先应计算几个参数,即,原图像的原点坐标(a,b),旋转后图像的原点坐标(c,d)以及旋转后图像的宽度NewWidth和高度NewHeight。其中,图像的原点为图像的中心。设原图像的宽度和高度分别为Width和Height,则原始图像的四个角的坐标分别为旋转后的新图中,这四个点的坐标分别为 则NewWidth=max(|fDstX4-fDstX1|,fDstX3-fDstX2|)(1.21) NewHeight=max(|fDstY4-fDstY1|,|fDstY3-fDstY2|)(1.22) 此外, 令 则 由(1.24),对新图像中的每个(x1,y1)进行遍历,找到对应的原图中的(x0,y0),并将(x0,y0)的值赋给(x1,y1),若(x1,y1)对应的(x0,y0)不在原图的显示范围内,则(x1,y1)点为背景像素。
经过旋转校正之后,就可以得到一幅基本无倾斜的文档图像了。
权利要求
1.一种复杂结构文档图像倾斜快速检测方法,其步骤为
1)预处理文档图像,对原始图像进行噪声减除,标定连通区域;
2)提取大连通区域边界段,同时移除大连通区域,若不存在大连通区域则跳到下一步;
3)连接文字行和相邻区域,提取边界段;
4)对提取的边界段进行过滤,得到可靠的倾斜特征;
5)根据倾斜特征计算整幅文档图像的倾斜角度。
2.如权利要求1所述的方法,其特征在于所述预处理文档图像还包括对噪声减除后的图像进行归一化处理,图像增强,填补小背景区域。
3.如权利要求2所述的方法,其特征在于所述填补小背景区域的方法为首先反着用LC算法标定连通背景区域;对于该区域所包含的前景像素的个数sum值小于一定阈值的连通背景区域,将属于该区域的所有背景像素设为前景像素。
4.如权利要求1所述的方法,其特征在于所述步骤2)中连接文字行和相邻区域的方法为
1)计算横向和纵向平均距离,其方法如下
①定义两个参数横向有效距离个数h_sum和总距离dist,并将二者初始化为0;
②对图像进行逐行遍历对于同一行的两个相邻的前景像素,计算相邻两个像素之间背景像素的个数n,如果满足0<n<n_max,则有h_sum=h_sum+1,dist=dist+n,其中n_max为最大间隔阈值;
③通过h_dist=dist/h_sum得到横向平均距离h_dist;
同理,定义并求出纵向有效距离个数v_sum,纵向平均距离v_dist;
2)判断文档图像的主方向,其规则如下
①若h_sum>3×v_sum,则主方向为横向;
②若v_sum>3×h_sum,则主方向为纵向;
③若①,②均不满足,则比较h_dist,v_dist,如果h_dist<v_dist,则主方向为横向,反之,主方向为纵向;
3)采用Run-Length算法沿主方向进行相邻区域连接。
5.如权利要求1所述的方法,其特征在于所述提取边界段的方法为
1)对每个连通区域,判断其宽度大小,如果其宽度大于某一阈值min_size,则转到2),否则,转到7);
2)从上到下提取该区域的上边界从左到右,对该区域的每一列进行遍历,记录遇到的第一个前景像素的位置(x,y),然后退出对这一列的遍历,开始对下一列进行遍历;
3)对2)已经提取的边界点序列,按从左到右的顺序,每10个点一组,选取最靠上的一个点,如果有若干个点y值相同,选x最小的一点;将选出的点组成抽样边界序列;
4)抽样边界点序列可记做pi(xi,yi),i=1,2,…,n,其中,pi-1是pi左邻的抽样点,初始化两个变量start和end,令它们的值为1;
5)遍历抽样点,对每个i,如果(i=n)或者(dv=|yi-yi+1|>max_fall),则令end=i;其中,max_fall为落差阈值;
6)如果(end-start)>min_length则记录i值从start到end的抽样点,作为候选边界段,令start=end+1;其中,min_length为边界段长度阈值;
7)结束;
同理可以实现其他边界的提取。
5.如权利要求1所述的方法,其特征在于所述边界段过滤的方法为
1)采用主成分分析方法计算边界段的两个特征值λbig和λsmall,其对应的特征向量表示该边界段的主方向和垂直主方向的方向;
2)定义参数δ,δ=λsmall/λbig,用于度量边界段的线性程度;
3)判断每个边界段的δ值,如果δ大于设定的阈值,则将该边界段视为不可靠边界段,予以舍弃;反之,则视该边界段为可靠的倾斜特征。
6.如权利要求6所述的方法,其特征在于采用迭代算法进行边界段优化得到鲁棒边界段。
7.如权利要求7所述的方法,其特征在于所述迭代算法中采用指数形式的权重函数w(p)=exp(-dis)计算边界段的权重值,其中dis为点p到拟合直线的距离。
8.如权利要求1所述的方法,其特征在于采用加权中值的方法计算整幅图像的倾斜角度,其步骤为假设图像中N条鲁棒边界段,每个边界段对应的含有其倾斜角度s_ai和采样点数量mi,i=1,2,...,N
1)通过计算倾斜角度的数目,记做Angle_Sum;
2)建立长度为Angle_Sum的数组Weight_Angle,用来储存所有的倾斜角度,从i=1到i=n,在数组中存储mi个s_ai,然后对该数组进行排序;
3)如果Angle_Sum是奇数,则加权中值为数组中第K1大的值;如果Angle_Sum是偶数,则加权中值为数组中第K2大的和第K3大的值的平均值,其中K1=(Angle_Sum+1)/2,K2=Angle_Sum/2,K3=(Angle_Sum+2)/2,计算出的加权中值,为整幅图像的倾斜角度。
9.如权利要求5所述的方法,其特征在于所述边界段包括文字区域边界段和图表区域边界段。
全文摘要
本发明涉及一种复杂结构文档图像倾斜快速检测方法,属于文档图像处理范畴。本发明首先从图像中的文本区域及非文本区域提取连通区域的边界段作为倾斜特征,然后通过对提取的边界段进行过滤,得到鲁棒边界段及其对应的倾斜角度,最后通过倾斜角度的加权中值得到整幅图像的倾斜角度。通过大量对比实验表明,该算法具有速度快,精度高,适用范围广的特点。
文档编号G06K9/32GK101149801SQ200710176208
公开日2008年3月26日 申请日期2007年10月23日 优先权日2007年10月23日
发明者宏 刘, 奇 吴, 查红彬, 叶 陆 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1