扭曲文本图像

2024-10-06

扭曲文本图像(共3篇)

扭曲文本图像 篇1

摘要:针对传统二维层面的倾斜校正算法难以处理扭曲文本的倾斜,提出一种基于点云数据的扭曲文本图像倾斜校正方法。首先,通过三维扫描仪采集文本的数据信息,重建文本的三维点云模型,接着通过检测文本在空间中的位置,定义为空间倾斜与平面倾斜,最后实现文本的自动倾斜校正。实验结果表明,基于点云数据的倾斜校正算法在处理扭曲文本的倾斜校正正确率达到95%以上。

关键词:点云数据,扭曲文本,倾斜检测,空间倾斜,平面倾斜,倾斜校正

0 引言

随着信息技术快速发展,信息化成为人们提高办公效率、生活品质的重要途径。电子文档具有保存方便,并易于在互联网中传输等特点,因此将纸质文档转换为电子文档的技术越来越重要。目前通过电子设备来进行这种转换的方法主要是通过摄像头获取文本资料数字图像,经过一系列的图像预处理、OCR(光学字符识别)等将其转化为电子文档。而在这种转换过程中,文本的倾斜会对整个转化过程产生不利的影响,因此图像的倾斜校正在图像的预处理中始终占据一个非常重要的地位。实际采集文本数字图像时,若整个文本处于一个斜面上时或者拍摄角度不对而出现射影文本情况,导致采集的文本图像出现像素的堆积,影响OCR识别率。同样若文本为具有一定厚度的书籍时,采集文本数字图像时会由于书籍的厚度出现文本扭曲,无法直接进行倾斜校正处理。

传统的二维文本图像倾斜校正算法主要分为以下几类:基于Hough变换的方法、基于投影的方法、基于K-最近邻方法以及基于Fourier变换方法。文献[1,2]中基于Hough变换的方法使用图像空间目标像素的坐标去计算参数空间中参考点的可能轨迹,是目前用得较多的一种倾斜角检测方法,但对扭曲文本图像因无法准确提取文本线而出现难以处理的情况。文献[3]以文字行之间存在一固定的行间距为基础再使用基于投影的方法来确定倾斜角度,同样无法处理扭曲文本。文献[4]使用基于投影轮廓的方法来求得倾斜角度,之后对整幅图片进行等角度旋转,而非像素的旋转,经此方法校正后的扭曲文本图像很难再接着进行扭曲恢复等处理,影响最终的OCR识别率。文献[5]使用近邻法则是找出所有中心点的K个最邻近点,计算每对近邻的矢量方向并统计生成直方图,直方图的峰值对应着整幅图像的倾角,同样对原始扭曲文本校正效果一般。文献[6]基于Fourier变换方法则以Fourier空间密度最大的方向对应于倾斜方向。虽然该方法倾斜校正较为精确,但由于空间复杂度很高,计算的时间长,因此在实际中使用较少。

由以上文献可知,传统的二维倾斜校正算法无法有效处理原始扭曲文本的倾斜。而本文将三维处理技术应用于文本图像倾斜校正领域,提出一种基于点云数据的扭曲文档倾斜校正方法,能有效处理扭曲文本的倾斜状况,并通过实验进行了验证。

1 算法思路

若文本模型存在噪点,会对后续的处理产生极大的影响,因此需要先对文本点云模型进行去噪。去噪后将倾斜检测分为两步:空间倾斜检测与平面倾斜检测。空间倾斜检测通过提取模型边界特征点,采用鲁棒方法求得文本模型边界所在平面的法向量,最后通过与一平行于Z轴的单位向量之间的叉乘、内积等计算出空间倾斜角,并进行判断,若倾斜则采用空间旋转算法进行旋转校正。平面倾斜检测时,由于文本模型是扭曲、非平面的,因此先对文本模型进行平面投影。接着提取投影的边界特征点,采用空间最小二乘法对其进行空间线性拟合,计算出其平面倾斜角,进行平面倾斜校正。图1是本文的算法流程图。

2 点云去噪

在三维扫描仪获取结构光的投影并进行处理的过程中,不可避免地会产生一些噪点数据,这些噪点数据将会对后续的处理产生较大的干扰作用,因此必须先对其进行点云去噪。由于三维扫描仪都有配套的处理软件,可以对采集的模型数据进行初步分割,去除那些不需要的部分。但有时个别单点或者微量点云会由于人眼无法观察到而导致人工清除失败,因此进行去噪的主要目的就是去除那些遗漏的离群点。本文采用的方法是基于K-近邻的散乱点云去噪算法。

2.1 K-近邻搜索

文本模型是由无数个孤立的点组成的,因此我们读入到内存中的数据点都是混乱的、无序的,这和传统的BMP位图有着显著区别。所以在对模型进行其他处理前,必须先将模型中的散乱点通过某种结构关联起来,建立数据点之间的空间拓扑关系。本文采用K-近邻结构[7]。

目前最常用的K-近邻计算方法有八叉树法、空间单元格法和K-d树法。其中前两种方法都是基于空间包围盒的划分,后一种方法则用来查找相距最近的两点。本文采用空间单元格法进行K-近邻计算。首先设P=Pi(i=0,1,…,n)是文本点云模型S上的一个采样点集,将S中与当前点Pi距离最近的k个数据点称为点Pi的K-近邻,记作Nb(p)。接着读入文本模型数据点集,将整个点集的坐标存入三个一维数组中,得到模型点集在X、Y、Z三个坐标轴方向上的最大值与最小值,然后根据极值信息,k值及点的总数n,计算出子立方体边长L。同时将文本点云模型划分成m'×n'×l'个子立方体,记录每个子立方体所包含的数据点以及每个点所在的立方体索引号,并删去不包含任何点的子立方体。最后通过子立方体内点的信息遍历数据点进行K-近邻搜索。

定义三个方向上最小坐标为:Min_x、Min_y、Min_z;最大坐标为:Max_x、Max_y、Max_z,则式(1)文本点云模型的子立方体的长度L:

其中β为调节立方体编程L大小的比例因子;n为数据点的总个数;k为可调整的近邻点的个数。那么由式(2)可以推导出子立方体在三个坐标上的个数:

同样由式(3)可推导出当前点P(x,y,z)在子立方体中三个坐标方向的索引号:

在此为每一个立方体子空间建立一链表。该表存储每个子立方体内的所有点,并统计该子立方体内点的个数,其结构如下:

求取当前点的K个近邻点的步骤为:

1)根据当前点的坐标值,确定其所在子立方体的索引号,同时将此子立方体视为初始搜索区域;

2)计算当前点到所在立方体六个面的最短距离ds;

3)计算当前搜索区域点的总个数N1,若N1不小于K,则接着计算当前点与搜索区域内其他点的最大距离dmax。若dmax小于ds,取前k个点为当前点的K近邻点,否则以当前区域为中心向周围扩展建立新的搜索区域;

4)为每一个数据点建立一个k邻近表。该表保存每个点的k个邻近点以及它与邻近点的距离,其结构如下:

2.2 邻域平均算法

建立好散乱点之间的空间拓扑关系之后,就可以使用二维图像处理中的滤波算法对点云模型进行去噪处理。遍历模型搜索每个数据点的K-近邻,采用邻域平均法进行去噪。具体算法描述如下[8]:

1)读入三维文本模型点云数据;

2)建立散乱点云之间的空间拓扑关系;

3)搜索当前点Pi的K-近邻Nb(p);

4)计算当前点Pj与其各K-近邻点之间的距离,取其平均值Dmid(pi)可由式(4)求出:

5)判断该平均距离Dmid(pi)是否大于设定的阈值D,若超过,则认为该点是噪点,将其删除;

6)重复3)~5),直到处理完所有的数据点。

3 倾斜检测

首先对文本模型可能发生的倾斜情况进行分类,在此共分为三大类:空间单倾斜、平面单倾斜、空间平面双倾斜。以图2(a)所示图像为例,文本点云模型在空间上存在倾斜,同时如图2(b)所示,模型在平面上也存在倾斜,因此模型属于空间平面双倾斜类。图中曲面部分为扭曲文本模型,平面部分为一垂直于Z轴的对照平面,用于观察文本模型在空间中倾斜状况。因此结合分类情况以及文本模型本身特点,将对文本点云模型的倾斜检测分为两步:空间倾斜检测与平面倾斜检测。

3.1 空间倾斜检测

由于本文研究的文档模型是扭曲的,也就是说其所有的点并不落在同一个平面上。因此,需要先选择某一斜切面为切入点,通过它来研究完整文本模型的特征。结合实际情况,选择文本模型左右边界所在的平面为我们所需要的平面。确定平面后,采用曲面边界提取算法采集模型的边界特征点。

点云去噪阶段已获得当前点p的K近邻点集X={x0,x1,…,xk-1},设X的中心点v,可由式(5)计算[9,10]:

建立一过p点、以为平面法向量的平面L。设p=(xp,yp,zp),v=(xv,yv,zv),则平面L的方程表达式由式(6)表示:

其中A=xp-xv,B=yp-yv,C=zp-zv,D可由式(7)计算:

把X中的点投影到L平面上,得到一投影点集X'={x'0,x'1,…,x'k-1},接着在L上建立一以p为原点的坐标系。设αi为向量pxn(n=1,2,…,k-1)与向量px0之间的夹角,若其中有一个角度满足|αi-αi+1|>β,i=1,2,…,k,αk=α1,β是预先设置的一阈值,则视p为边界点。

得到模型的边界特征点集之后,通过限制边界点的X值与Y值得到模型左右边界特征点,如图3所示。

通过鲁棒的方法求得左右边界所在平面的法向量[11]。由式(8)计算平面法向量m的分向量(mx,my,mz):

这里的N是特征点集中的顶点总数,(xi,yi,zi)是第i个特征点的位置坐标,next(i)=(i+1)mod N是点i的下一个顶点序号。取模运算保证了第(N-1)号顶点的后一个顶点是顶点0。这种方法在计算法向量的每一个分量过程中,只需对每一条边使用一次乘法运算,而且不需要做共线测试。

得到m向量后先将其单位化,得一单位法向量m'。接着选取一平行于Z轴的单位向量n(0,0,1),并由式(9)计算向量m'与n的夹角:

计算出夹角后设一阈值D=0.5°,若夹角位于(-D,D)内,则认为模型在空间中无倾斜,否则继续对两个向量进行叉乘运算,得到一新向量即空间旋转所需要的转轴,并使用空间旋转算法对其进行空间旋转。

图4(a)中曲面部分为原始模型,平面为一垂直于Z轴的对照平面,图4(b)为空间校正后模型,黑色线条为上文中所提到的向量m'、n以及它们叉乘后得到的向量。

3.2 平面倾斜检测

经过空间倾斜检测及校正,此时整个文本模型垂直于Z轴。先将文档模型垂直投影到Z=0平面上,投影到此平面上后的模型Z坐标值皆为0,可减少计算量,提高检测精度。

投影后采集投影四条边界的特征点,使用基于最小二乘法的空间线性拟合算法,对模型的四条边界进行线性拟合,分别计算上下两条直线与左右两条直线的斜率,并判定两对倾斜角的差值是否在一个范围(-1°,1°)内。结果可能存在三种情况:

1)若每对倾斜角的差值都在范围内,则对两对边界直线的倾斜角取两轮平均值,这样可以得到一个高精度的倾斜角;

2)若其中一对差值在范围内,另一对差值不在范围内,则取差值在范围内的一对的平均值为倾斜角;

3)若两对边界线斜率均不在,则提示模型不合格。

基于初期采集模型时已经过选择与处理,因此后两种情况较少。

设空间内方向向量为s=(m,n,p)且过(x0,y0,z0)点的直线方程由式(10)表示[12,13]:

当点(xi,yi,zi)不在直线上时,分别记其在x方向、y方向、z方向的误差为(εi2,εi2,εi3)。作为最佳拟合直线,必须同时考虑这三个方向的误差。根据最佳平方逼近原理,最佳直线应满足式(11):

最小。因为各测量点在x方向、y方向、z方向的误差(εi2,εi2,εi3)服从正态分布,所以最佳直线也应满足式(12):

据此我们在约束条件式(11)式(12)下求由离散点(xi,yi,zi),i=1,2,…,N,所确定的最佳直线。

3.3 空间旋转算法

本文使用的是由薛文风[14]提出的空间坐标旋转算法。设一个点通过轴(x0,y0,z0),其方向余弦为(nx,ny,nz)。其中θ为坐标点(x,y,z)绕该轴的旋转角度。则旋转后的点经式(13)计算:

当(x0,y0,z0)=(0,0,0)时,该轴通过原点绕任意轴旋转的变换关系表达式比较长,而且需要浮点数来表示,所以在程序编写时,最好在计算表达式之前先把sinθ和cosθ算出,以提高程序的执行速度。值得注意的是,当进行空间检测得到所需数据后,若存在倾斜需先进行空间倾斜校正,以免干扰平面倾斜角的计算。

4 实验结果

本算法在Visual Studio 2005环境下采用C++语言实现,测试环境为:IntelCoreTM7 cpu;内存8 GB;操作系统为Windows 7的机器上进行。本文先使用三维扫描仪对5本不同厚度的书籍共采集了50个书籍点云模型,其中空间域平面倾斜角皆在(-45°,45°)范围内。所用书籍均为16开普通中文书。接着使用普通摄像头采集了50幅BMP图像,拍摄摄像头像素为500万,图像的获取均在光照均匀的环境下进行,忽略噪声的干扰。

表1将传统的Hough变换法、投影法与本文方法对重度扭曲文本倾斜检测精度进行了对比分析。传统的Hough变换法、投影法与K近邻法总体检测正确率都低于50%,而本文方法对三种情况的正确率都达到95%以上。此处的正确率是指经倾斜校正后视觉上无倾斜的文本图像个数与参加测试的样本个数之比。由实验结果可知传统的二维倾斜校正方法只能对扭曲程度较轻的文本进行有效校正,对于厚度较大、扭曲程度较高的倾斜文本处理能力很差。而本文方法则具有很大的适用范围,对于以上情况均有很高的校正正确率。

用本文算法对选取模型进行倾斜校正,部分实验效果对比图如图5-图7所示。其中图5为扭曲文本空间单倾斜对比图,图6为扭曲文本空间平面双倾斜校正效果对比图,图7为非扭曲文本倾斜校正效果对比图。

5 结语

本文结合当前快速发展的三维处理技术,将三维点云处理技术应用到文本图像倾斜校正领域,克服了传统二维倾斜校正方法对原始扭曲文本、射影文本倾斜校正效果不佳的缺点。提出的基于点云数据的扭曲文本倾斜校正方法,对于复杂文本如扭曲文本、射影文本可以直接进行倾斜校正处理。经试验表明,本文方法对于扭曲文本倾斜校正正确率能达到95%。本方法已试用于本实验室开发的辅助阅读器改进项目,实现了对于市面上大部分不同厚度的书籍的自动倾斜校正处理,扩大了阅读器使用范围,提高了用户操作容错率。

扭曲文本图像 篇2

在图像的采集过程中,由于受到纸质文档自身几何形状和拍摄角度的影响,采集到的图像可能发生扭曲,而文档图像的扭曲将严重影响到OCR识别的效果。当文档图像是图文混排等复杂版面的情况时,将进一步影响到OCR识别。这就需要对复杂版面文档图像进行有效的校正。近年来,国内外对扭曲图像校正技术的研究在日趋增加,但目前大部分的研究主要针对于纯文本的图像,对图文混排类的复杂版面文档图像的扭曲校正研究较少。对纯文本扭曲图像的校正方法主要分为基于3D模型的校正技术和基于2D的图像处理技术,其中基于2D的校正技术有很好的实用性和易推广性。基于2D的校正技术主要包括:1)基于连通域的处理[1,2,3],这种方法有很好的校正效果,然而由于处理精度较高,对复杂版面敏感度较高,校正效率有待进一步提高。2)基于文本线的处理[4,5],这类方法要很高的校正效率,但由于是从整体文本行入手,因此校正精度有细节上的损失,且对复杂版面的文档图像同样不适用。3)基于模型的校正方法,该方法可以对含有表格等非文字的文档图像进行检测校正,但其校正粒度较为粗糙,效果欠佳。

通过以上分析总结,各种校正方法各有特点,但应用到复杂版面文档图像时都不易获得理想的校正效果,其原因在于复杂版面中的非文字元素影响了各种校正方法中的处理步骤。因此如何在复杂版面上进行有效的校正成为关键所在。本文针对复杂版面的扭曲文档图像提出一种基于组件分析的文本线校正方法,实现了对图像中的文字区域和非文字区域的有效区分,进而精准定位扭曲文本行,最后基于窗口扫描的方法以文本线为基准校正图像。该方法解决了对复杂版面扭曲图像的有效校正,并兼顾效率与校正精度。

1 复杂版面扭曲文档图像特征及校正分析

在获取图像的过程中,相机位置及书籍的摆放,都可能使获得的图像发生扭曲,如图1所示。

在纯文本文档图像扭曲的情况下,识别率将会大大降低;而在复杂版面的扭曲的情况下,识别率将进一步降低,甚至无法识别。在这种情况下,文字和非文字混合排入图像中,对扭曲图像的处理难度将进一步增加。文献[6]在提出一种基于连通域的提取文档图像中的复选框组件的方法,但无法对文档图像中的图像元素进行处理。在对文本行进行扭曲校正之前,必须排除非文字区域的影响。为了提高识别精度,最终也需要剔除非文字区域,保留纯文本。这是本文所选用的处理思想。

2 基于组件分析的扭曲校正算法

对于复杂版面扭曲文档图像,扭曲校正的重点是文本行的定位。本文就此提出一种基于形态学组件分析的校正方法。算法实现均采用C++编程语言。解决方案流程如图2所示。

2.1 图像预处理

图像预处理包括两个步骤:灰度化和二值化。灰度化是将具有R,G,B分量的真彩色图像转换为灰度图像。具体转换规则采用以下公式:

灰度化处理后需要将图像转为二值图像,即只包括背景色和前景色的图像。传统的二值化方法较多,如双峰法、大津法(OTSU)、Niblack法等。由于在光照均匀的情况下大津法可以很好地处理本文的研究图像,得到效果较好的二值图像,因此本文在研究中选用大津法进行处理。预处理后的图像如图3所示。

2.2 8-邻域填充目标像素

对目标像素进行8-邻域填充是为了更好地进行形态学组件分析[7]。由于文字笔画有的地方较细,有可能出现断笔等情况,在进行形态学分析时可能导致精确度不高。而8-邻域填充可以使文字变得更饱满,充实笔画,提高形态学组件分析的精确度。

目标像素的8-邻域示意如图4所示。

具体填充规则如下:

(1)对任意一个目标像素点T,扫描其8-邻域的像素值,分别记为E1,E2,E3,E4,E5,E6,E7,E8。

(2)由式(2)判断其邻域内是否有空白列或行。

若α为1,则目标像素为外部点,不予处理;若α为0,则为内部点,对其8-邻域像素进行置黑操作。

(3)判断若无置黑操作则退出,否则重复(1)、(2)。

8-邻域填充的局部效果如图5所示。

2.3 形态学组件分析

对于图像的版面分析,文献[8]提出了一种基于K-means的聚类分析算法,通过对图像像素进行聚类分析将图像内容分类。但是,这种方法的效率有限,在处理文字图像时体现不出其优越性,因此本文在版面分析算法上主要参考基于形态学组件的分析方法。

形态学组件分析的目的在于区分出图像中的文字行区域和非文字区域。采用以下步骤进行组件分析:

(1)扫描图像,统计图像中的基本元素。

(2)根据各元素的形态学特征区分为不同的组件。

(3)提取文本行组件,并对其进行去噪修正。

由于在复杂版面的文档图像的识别中,关键在于定位文本区域信息。区分文字区域和非文字区域只要考虑各个组件的形态学特征即可[9,10]。因此,在扫描完图像得到图像各个组件后,分别计算其形态学特征,本文主要采用计算各组件的形态学高度和宽度来区分区域。计算规则如下:

用C表示组件元素集合:

在编程实现中,首先定义结构体Component,用来保存各个组件的信息。结构体中包含组件的宽度、高度以及编号信息。统计每个组件的形态学宽度和高度,分别用集合H和W表示:

并由式(3)、式(4)计算组件的平均高度和平均宽度:

由经验值可知计算出来的平均高度可以视为文档图像中文本行组件的近似平均高度。所以,在所有组件元素中,其形态学特征明显不同于平均特征的组件被视为非文字行组件。对这些组件进行标注。对于文本行组件则进行编号记录,并存储这些文本行组件的坐标信息。本文采用一种基于组件边界属性的合并方法[9]。具体步骤如下:

第一步由组件分析的结果将文字组件按照以下规则合并文本行组件;

用left,right,top,bottom,width,height分别表示组件的左右上下边界如果max(right1,right2)-min(left1,left2)<width1+width2并且max(bottom1,bottom2)-min(top1,top2)<height1+height2则合并成新矩形:

组件合并之后的初始状态下,各文字组件都处于属性未定状态。修正文本行组件的过程就是采用一种渐近的过程,首先,根据组件的宽度和高度形态学特征,区分为文字和非文字;然后,把属性已经统计为文字的各组件按照它们的间距从小到大的顺序加以逐步合并。在这一合并过程中,只有属性未定组件将被处理。该过程最终将各个文字组件合并成为文本行。

第二步对文本行组件进行修正,对于不连续的文本行进行不同编号标记。

对上一步中合并出来的文本行进行水平膨胀,这样处理的目的是为了快速统计各个文本行,并对各个文本行进行编号。

第三步记录所有文本行位置信息。

利用上一步中水平膨胀后的文本行可以准确地标记各个文本行在图像中的坐标位置。对所有文本行进行标记,以进行下一步处理。

2.4 提取文本线

组件分析完成后,由于对非文本元素进行了标注,因此,可以对文本行组件进行文本线的提取。具体的提取方法为:提取每个文字行组件的中心点,将这些中心点组成文本线,保存这些文本线的坐标信息。

提取文本线的效果如图6所示。

2.5 窗口扫描校正

已有的文献的研究方法中,一种校正方法是先对文本线进行拟合,再进行几何变换来重构文本行;另一种方法是先将文字切分,再通过移动单个文字到正确位置来重构文本行。本文提出一种兼顾两种方法优点的重构文本行方法,即以适当大小的窗口为单位扫描文本线,对目标像素进行位置变换,来达到重构文本行。本方法相比于完全的文本线拟合重构方法提高了效率,相比于以文字为单位重构方法又可以更好地保留文本行细节。

利用已经获得的文本行平均高度,以及文本线位置信息,以文本线为基准,以一定大小的窗口对文本行进行扭曲校正。窗口扫描的程序流程如图7所示。

第一步设定扫描窗口大小,对于文档图像来说,其中的文本信息除去标题等少数特殊文本之外,其余文本的特征基本统一。所以,在设定扫描窗口大小时可以以文本行的平均高度为参照。本文选定的窗口大小遵照以下规则:

用window_H表示窗口高度,用window_W表示窗口宽度,其大小分别按式(5)、式(6):

第二步选取每条文本线的中点作为扫描起点,首先记录扫描起点的高度坐标,分别向左向右移动窗口,每移动一次,记录此次窗口内文本线中点的高度,并计算其与扫描起点的高度差,记此高度差为window Gap,然后对于每一条文本线设置一个保存高度差的数组Height_Gapn(n为文本线编号),将每个窗口相应的高度差window Gap记录在这个数组中。扫描过程如图8所示。

第三步根据高度差数组中的数据文本行进行重构。在经过组件分析后的图像中,文本行已经定位,因此在这一步中,对于每一条文本行,利用扫描文本线所得出的高度差结果,同样从文本行的中点处开始向两边分别移动窗口,在窗口内的目标像素统一移动其相应的窗口高度差window Gap,直至扫描移动完成当前文本行。对每一条文本行执行上述过程,直至全部文本行完成。这时,图像的所有文本行已经完成校正。其校正效果如图9所示。

3 方法测试及实验结果分析

3.1 测试环境

本实验在VS2005开发环境下采用C++语言实现。测试环境为:Inter(R)Core(TM)2 Duo CPU E7400@2.80 GHz;内存2 GB;操作系统为Windows 7。实验样张取自16开普通中文书本,共对100张样张进行测试。拍摄摄像头像素为500 W像素。使用汉王OCR文字识别软件进行文字识别。

图像的获取均在光照均匀的环境下进行,本文校正方法忽略噪声的干扰。图像数据为:24位真彩图像,大小为1944×2592像素。本文算法主要是针对横排的文档图像进行研究的,图像的版面特征主要是文档图像中混入了图像,简单图形(如线条)以及表格线等非文字元素,对这些文档图像均能进行有效的扭曲校正。对于任意复杂的版面,本文方法还不能有效处理,有待改进。

3.2 校正效果对比

实验结果如图10所示,图10为文献[3]方法校正结果,图11为本文方法校正结果。可以看出,对于复杂版面的文档图像,文献[3]的校正效果明显较差,不但没有排除非文字元素的干扰,而且有的文字行已经损失,识别率也会因此大大降低。而本文的算法进行校正的效果明显,且已经剔除非文本元素的干扰,这样可以较高地提升识别率。相比于文献[11,12]中所提出的相应校正算法,较之本文提出的算法都有明显不足。在所有进行测试的样张中,只有3张的校正效果不是很理想,其余的样张在校正后不论是可识别字符数还是识别率都有大幅度提升,其中识别率可达95%以上。对实验结果进行统计分析,其结果如表1所示。

由于本文所提的方法首先需要对文档的版面进行分析以确定文本行,所以相对于已有的基于文本线拟合的方法在时间效率上的提升并不是很明显,但是在校正精确度和校正后识别率以及可识别字符数上都有明显优势。对于这种复杂版面的文档图像大多数已有的校正方法的校正效果很差,甚至无法校正。本文方法相比于基于连通域文字分割的校正方法就有着较为明显的效率优势。其中所测试的样张中平均识别率可以达到95%以上,而可识别字符也比其他方法明显多出。同时本文方法有较强的鲁棒性,对于不同的复杂版面都能有较好的校正效果。

4 结语

本文针对复杂版面扭曲文档图像进行研究,提出基于组件的窗口扫描校正方法。首先通过形态学特征对文档内容进行组件分析,确定文本行;然后提取文本线,最后以文本线为基准,以适当大小窗口扫描校正文本行。该方法能在900毫秒内校正1944×2592像素的图像,而且校正效果良好,其校正后的OCR识别率可以达到95%以上。经过进一步测试,对于复杂版面的英文文档图像也可以准确进行校正。本文方法在本实验室开发的智能阅读机进行了应用,无需人工干涉的情况下已能实现复杂版面扭曲文档图像的快速校正,校正后的实时识别率能达到95%。因此,本文提出的方法可以推广到实时文字图像识别系统中进行应用。

摘要:在对复杂版面扭曲文档图像进行OCR识别时,识别率较低。针对这类文档图像提出一种基于形态学文本行定位的扭曲校正方法。首先根据形态学特征在复杂版面中定位文本行,区分处理文字区域和非文字区域,利用文本行信息提取文本线;再以文本线为基准利用窗口扫描法进行文字行校正,最终重构图像。实验结果表明,该方法校正效果明显,对于复杂版面的扭曲文档图像有较好的校正效果,校正后识别率大幅度提高。

关键词:复杂版面,扭曲文档,形态学组件,窗口扫描校正

参考文献

[1]Liu Hong,Ye Lu.A method restore Chinese warped document images based on binding characters and building curved lines[C]//International Conference on Systems,Man and Cybernetics:ICSMC2009:2009:989-993.

[2]Li Zhang,Yip Andy M,Brown Michael S,et al.A unified framework for document restoration using inpainting and shape-from-shading[J].Pattern Recognition,2009,42(11):2961-2978.

[3]宋丽丽,吴亚东,孙波.改进的文档图像扭曲校正方法[J].计算机工程,2011,37(1):204-206.

[4]张伟业,赵群飞.读书机器人的版面分析及文字图像预处理算法[J].微型电脑应用,2011,27(1):58-61.

[5]Liu Hong,Ding Runwei.International Conference on Systems Man and Cybernetics[C]//ICSMC 2009:Restoring Chinese warped document images based on text boundary lines,2009.

[6]Zhang Shengnan,Yuan Shanlei,Niu Lianqiang.Automatic Recognition Method for Checkbox in Data Form Image[C]//Sixth International Conference on Measuring Technology and Mechatronics Automation,2014:159-162.

[7]于明,郭佥,王栋壮.改进的基于连通域的版面分割方法[J].计算机工程与应用,2013,49(17):195-198.

[8]Hamed Behin,Afshin Ebrahimi,Sepideh Ebrahimi.Incorporated Preprocessing and Physical Layout Analysis of a Binary Document Image Using a Two Stage Classification[C]//International Conference on Computer and Communication Engineering:ICCCE2010:2010.

[9]付芦静,钱军浩,钟云飞.基于汉字联通分量的印刷图像版面分割方法[J/OL].计算机工程与应用,2013,49(3):4[2013-07-31].http://www.cnki.net/kems/detail/11.2127.TP.20130731.1817.001.html.

[10]石蒙蒙.基于结构化局部边缘模式的文档图像分类[J].厦门大学学报,2013,52(3):349-355.

[11]Amir Reza Ghods,Saeed Mozaffari,Farhad Ahmadpanahi.Document Image Dewarping using Kinect Depth Sensor[C]//21stIranian Conference,Electrical Engineering:ICEE2013:2014:1-6.

扭曲文本图像 篇3

手持数字成像设备具有成像简单、快速以及非接触的特点,其极大地丰富了文档图像的获取方式,但是在成像过程中会不可避免地产生扭曲形变和透视失真,导致光学字符识别(OCR)软件中的版面分析和切分算法失效,从而使文档图像无法被识别。因此必须首先通过图像校正的方法对这种变形文档进行图像恢复。目前, 在国内外已经提出了一些针对这种变形文档图像的校正技术。我们已经了解到以下几种方法:

(1)通过建模恢复文档表面形状,并运用参数化插值的方法实现了变形文档图像的校正[1]。

(2)基于文本行重构的扭曲文档快速修正方法。应用形态学膨胀和游长平滑的方法对图像进行初始化,利用可变长模板进行搜索样本点,拟合出个文本行中心线,根据中心线估计出每行文字的上下位置,利用提出的模型和重构算法进行文本行重构[2]。

(3)基于内容的文档倾斜自动校正方法,通过小波变换、游长平滑和细化处理,提取表格中的水平线和垂直线或文字行。针对不同的文字版面采用相应的倾斜校正策略[3]。

本文将在现有方法和研究基础上,基于文本域分割和文本行检测对中文扭曲文档图像进行恢复处理,本文连通域检测中的文本分割可以精确将每个汉字分割出来,甚至标点符号,这将有助于文本行检测,提高文本行的检测效果。本文中检测文本行时检测效果较好,基本可以将属于同一文本行的连通域都检测出来并恢复到同一水平位置上,使得图像扭曲恢复处理后的文档图像的文本线倾斜度接近于0,校正后的文本图像基本可以达到标准的Word文档。

2 本文方法

本文采用7个步骤对扭曲的文档图像进行处理:(1)扭曲文档图像灰度化;(2)利用中值去噪法对图像做去噪处理;(3)二值化处理;(4)连通域检测、生成文本框;(5)文本行检检测;(6)文档图像扭曲校正;(7)去除文本框、图像背景色恢复。

2.1 灰度化

彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255) 的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。研究采用RGB颜色分量加权和的全局映射,进行彩色到灰度的变换算法。根据彩色像素在不同颜色分量的统计信息,自动生成各颜色分量的灰度化权重,同时结合主客观图像质量标准,探索自适应的全局映射灰度化算法。[4]

设图像f大小为M行N列,彩色图像的三个分量为r、g、b,则这三个分量的像素点的灰度化值为m。

每个像素点灰度值(m)的计算公式为:

对图像像素点计算得到的m即为该点的r、g、b的新值(注:r、g、b值均为m)。对所有像素点处理完后即可得到灰度化图像。

2.2 中值法去噪

首先确定一个window Size*window Size大小的窗口,这里的window Size是一个奇数,因此这个窗口一定会有一个中心的像素,中值滤波的过程就是不断的移动这个窗口,然后对窗口内的所有像素的像素值按照灰度级来排序,最后把排序后中间那个像素的灰度级赋值给窗口中心那个像素。

例如是3*3的窗口(数字表示灰度级):

排序后,就成了18,20,25,34,79,100,122,128,201,可以看到79就是中间那个数,因此这个3*3的窗口就变成了如下:

以上所述即为中值去噪法原理,本文采用中值去噪法处理灰度化图像。

2.3 二值化

从照相机拍摄的图像需要经过二值化处理, 去除噪声和阴影才能用于下一阶段的校正。文档图像二值化是绝大多数字符识别系统所必需的过程。二值化效果的好坏直接影响着光学字符识别 (optical characterrecognition,OCR)系统的识别质量[5]。本文在二值化处理时采用的方法是取一合适的定值作为二值化的阈值。当图像像素点的R、G、B值大于该阈值,则将它们的值都设置为255。反之,当图像像素点的R、G、B小于该阈值,则将它们的值都设置为0。从而得到二值化后的文本图像。

二值化处理后效果如图1所示:

2.4 连通域检测

对图像进行灰度化、除噪和二值化处理以后,接下来是连通域的检测,把文档图像中的每个字用文本框标记出来,这是最理想的标记结果。也可能会出现几个字或符号离得太近而被标记在一个文本框中的情况。

具体方法为:从文本图像的下往上、从左至右逐个像素点进行扫描,若扫描到黑色像素点,判断该像素点是否已被标记(连通域检测时,已检测过的黑色像素点将会被标记),若是,则继续扫描检测下一个像素点。若否,则对该点做已扫描标记,然后以该点为中心进行K*K(K=1、3、5、7、9......)的矩阵扫描。若矩阵扫描过程中扫到未被标记的黑色像素点,则以该点为中心重复上诉标记和矩阵扫描...... 直至矩阵扫描找不到黑色像素点,然后返回到上一个中心像素点,当返回到第一个中心像素点时,表明该连通域分割结束即已检测出一个连通域,同理检测出所有连通域。

生成文本框时,是根据属于同一连通域的黑色像素点的坐标信息找出处于边界上的点,即上界、下界、左界和右界,然后将边界用某一种颜色标记,从而生成文本框。

文本框标记效果如图2所示:

2.5 文本行检测

从文档图像左下角开始向右以一定的宽度进行扫描,宽度一般为0-100之间。先向右扫描,找到属于当前文本行的所有连通域。然后再向上扫描检测出所有文本行。

具体方法:(1)向右扫描,扫描到连通域后,将该连通域标记到当前文本行并做好已扫描标记;(2)根据扫描到的连通域,找到连通域的右边界,以右边界为初始位置继续向右扫描,若扫描到连通域,返回步骤(1);(3)直到向右扫描不到连通域,即该文本行检测完毕,然后再从图像最左边向上扫描,检测下一行。

2.6 扭曲校正

通过第五步中,图像所有文本行已检测完毕,以文本行的第一个连通域为基准,剩下连通域进行上下平移,把所有连通域移到第一个连通域所在的水平位置上,同理处理所有已检测出的文本行即完成图像的扭曲校正工作。

具体方法如下:(1)找到文本行第一个连通域的下边界x_down ,计算出x_down与该行所有连通域下边界的差值,即x_down -x_down (注意前后顺序,不可反过来相减,i=1,2,3.......)(2)根据第一步所得差值加上原来下边界的值即可对连通域进行上下平移,注意要区分上移和下移,上移先从上边界开始,下移先从下边界开始。

校正后图像:如图3所示:

2.7 去除文本框、恢复图像背景色

去除文本框、恢复背景色后效果如图4所示:

3 实验结果分析

经过扭曲恢复处理后,图像中文字识别率大大提升,见表1:

4 结束语

上一篇:酒店安全管理与防范下一篇:多功能新古典家具设计