APP下载

基于智能手机的拍摄文档的预处理系统

2022-08-29董屹晨张严严赵鹏飞

现代信息科技 2022年12期
关键词:结点校正纸质

董屹晨,张严严,赵鹏飞

(江苏大学 计算机科学与通信工程学院,江苏 镇江 212013)

0 引 言

随着科技的飞速发展,各种图像信息也在办公、学习方面得到了广泛的应用。我们一般会将纸质文本拍照或扫描成图像,经过计算机处理得到相应的电子材料。然而,拍照得到的纸质文本往往会出现大量问题。例如,由于光线环境的不同,文本往往会出现大量的阴影。若重新打印该文本图像,会使得阴影严重影响文本的观感。由于手机的角度与文本的角度都存在倾斜,会导致图像出现透视的问题。印刷纸张存在一定的质量问题,也会导致文本图像中产生大量的噪点,文字本身也会显得粗糙,能够明显看到纸张本身出现的痕迹,从而进一步影响文本图像的观感。由于书本较厚,书本的页面会弯曲,导致拍摄的文本也变得扭曲。因此,在对文本图像进行进一步处理(如光学字符识别(Optical Character Recognition, OCR))之前,需要消除文本的失真感。

1 文本粗糙问题的解决

在目前,针对文本出现的阴影现象的解决方法渐渐趋于成熟,市面上出现了大量软件能够实现自适应二值化。在背景灰度渐变情况下,各类自适应二值化的算法能够很好地将文本前景与图像背景分离,从而实现阴影的去除。针对图像的出现倾斜与透视的问题,其解决方案也较为容易,利用透视变换也能很好地将文本图像进行校正。然而,针对印刷纸张粗糙的文本图像,部分文本扫描类软件可能会产生误识别的行为,将纸面的粗糙处与噪点错误地认作文本前景并进行锐化与增强。针对文本所在页面的扭曲现象,仅仅使用透视变换仍然不能很好地解决文本行弯曲的问题。

如图1所示,我们一般会将纸质文本拍照或扫描成图像,再经过计算机一系列的处理,得到相应电子材料,以便互联地交流和分享。而拍照或扫描出的图像可能会出现模糊、歪斜、不平整等状况,影响人们的日常使用。

图1 拍照扫描示例图

在本文中,将着力于解决文本粗糙与页面扭曲的问题。经过本文的算法的处理,可以将其内容变得清晰校正歪斜等,结果如图2所示。很大程度上提高了原图像的可读性。

图2 软件处理效果示例图

1.1 文本粗糙问题简介

文本图像有以下几个特点:首先,纸张中存在需要去除的细节。纸张本身的褶皱与噪点即为需要去除的、不重要的细节。其次,文字本身是存在大量细节的。与外文文本的区别是,在中文文本图像中,文字本身的细节更为丰富。由于文字的笔画的宽度较小,所以中文文字的每一个笔画都可以视作图像的边缘信息。因此,边缘保持平滑(EPS)能够很好地解决文本图像的处理问题。边缘保持平滑(EPS)本身作为一个计算机视觉领域的热门课题,有两种方法得到了广泛的发展:基于加权平均的方法和基于全局优化的方法。

基于加权平均的方法也称为基于滤波器的方法或卷积方法。然而,传统的滤波器方法难以兼顾边缘保持与平滑。若卷积核导致过大的平滑强度,可能导致文字变得更模糊,也可能导致梯度翻转。

基于全局优化的方法包括总变差平滑、加权最小二乘平滑、梯度范数平滑和相对总变化平滑等。比起基于加权平均的方法,全局优化的方法可以更好地避免诸如梯度反转和光晕等伪影等诸多问题。

基于金字塔的方法也能够进行边缘保持的平滑。然而,其运行效率仍然低于基于全局优化的方法。局部拉普拉斯滤波器是一种边缘察觉型图像处理技术,它通过构造输出图像的拉普拉斯金字塔{[]}得到最终结果。非规范化双边滤波是一种基于双边滤波和局部拉普拉斯滤波器折中的滤波,有着与局部拉普拉斯滤波器相似的策略:基于非线性的且依赖参考值。文献[4]基于这个策略,设计了一个快速局部拉普拉斯滤波器,在保持局部拉普拉斯滤波器细节与边缘处理细腻的优点的同时使运算更加快速。

基于深度学习的方法利用不同的深度神经网络架构模仿现有滤波器的平滑效果。然而,训练深度神经网络需要的参数难以确定且可解释性较差。

基于结构提取的方法针对自然场景、布艺品以及手工艺品等都包含不同的纹理结构,例如毛衣、沙发、墙面涂鸦等。这些图像中,有意义的结构图和不同样式的纹理融合在一起。然而,面对拍摄的纸质文本图像,结构提取的算法却会错误地将文本的前景进行过度的平滑,反而将文本模糊化,达不到预期的效果。

因此,本文使用基于全局优化的方法进行图像的平滑。本文将着重介绍文献[1]提出的迭代最小二乘法平滑与文献[2]提出的范数平滑。

1.2 迭代最小二乘法平滑

迭代最小二乘法的整体流程为:

第二步,对于迭代次数,循环地计算(1)和(2),循环次。

第三步,得到u,即为最终处理完成后的图像。

迭代最小二乘法的处理速度非常快,且在大部分情况下能够较大程度地完成图像去噪、平滑的任务,且文字本身的细节能够被保留。基本满足文本图像修复工作,提高了文本图像的可读性。

1.3 L0 梯度平滑

香港中文大学徐立等人所做的范数梯度平滑是一种经典的边缘保留的平滑算法。尽管这一算法较为经典、处理效果也较好,然而,其处理速度相比于迭代最小二乘法接近实时的效果,效率较为低下,不适用于需要批量处理文本图像时的应用场景,且在处理尺寸较大的文本图像时也需要较长的时间。该算法整体流程为:

第一步,输入原图像,平滑权值,参数和,迭代率κ。

第二步,进行初始化,←,←,←0。

最后更新,←κ。直到≥时,循环结束。

第四步,输出最终图像。

2 文本扭曲问题的解决

2.1 文本扭曲问题简介

在拍摄纸质文档时,由于纸质文档角度的倾斜,手机本身角度的倾斜,所以利用手机拍摄出的纸质文档也会出现倾斜与透视的现象。对图像的倾斜、透视进行校正的方法很简单,使用透视变换即可。然而,由于纸质书籍存在一定的厚度,书本的页面会存在扭曲、弯曲的现象,使得原本应当处于同一行、同一条直线上的文字没有正确地被处理到同一行。如图3所示,左半页书由于页边的弯曲出现了扭曲的现象,在拍摄的图像中,每一行都被弯曲了。而在右半页书中,由于拍摄角度的问题,出现了透视的现象。透视变换的流程较为简单,在此不赘述。

图3 扭曲与透视

2.2 行连通域的判断与获取

本文采用了字符分割的方法,使用文献[5]中基于文本域的检测的方法,并使用基于文献[6]的基于连通域的扭曲图像校正方法,对其进行一定的改进,一定程度上减小了该方法的耗时。本文使用的文本扭曲校正算法整体流程如下:首先,输入待处理图像,对其进行形态学腐蚀操作,并将其映射为一维形式。然后,逐步对点连通域、字连通域和行连通域进行搜索。最后,根据每一行中心点的位置进行图像的校正。整体流程如图4所示。

图4 整体流程

在腐蚀时需要设定卷积核参数。若卷积核参数元素过小则会导致某些文字仍有一部分与其主体未连通,若参数元素过大则会导致文字与相邻文字被连通。经测试,卷积核参数中,卷积核内部元素均为3 较为合适。

由于图像是二维化存储的,为了在遍历图像时提高效率,需要将图像映射成一维。记图片的高为,长为,则对于(,)点,可得pos=*+。在将pos 点映射回二维点位时,=mod,=/。

由于对图像的扫描与遍历时从上到下,从左到右的,所以在判断某点与其邻域的关系时,只需判断其左上结点、左结点与上结点。若当前结点为黑色,且其左结点为黑色,认为当前结点与左结点在同一连通域内。对于上结点、左上结点,同理。为了提高对判断连通域时的效率,可以用到并查集的算法。

首先,每个点自成一个并查集。

然后,从上到下,从左到右扫描所有结点。每次扫描到某个结点,就逐次遍历其左上结点、左结点以及上结点。当判断结点与其像素值都为1 时,则认为所判断结点与当前结点同属一个连通域,并将其加入当前结点的集合。

最后,完成对所有结点的搜索,将所有结点划分为若干个点连通域。

由于汉字的特性,部分汉字的偏旁与部首不一定与汉字的主体直接连通而会存在空隙,所以需要将点连通域合并成字连通域,使得每一个字连通域与每一个汉字一一对应。

对于每一个点连通域,首先创建一个矩形将该点连通域包裹住。该矩形具有六个属性:up,down,left,right,CC,对应这个矩形的顶边、底边、左边、右边,中心点横轴坐标、中心点纵轴坐标。

其次,统计每个矩形的高度,即down-up 的值,并将down-up≤5的矩形视为噪点或标点符号,不进行计算。同时,对该值取平均,得到文字的平均高度值。

接着,按照一定的顺序,对上下结构的文字进行循环相邻合并。其合并的过程是与文献[6]是一致的。先判断是否存在重叠的矩形区域,进行重叠合并。在进行重叠合并完成后,合并具有上下结构或左右结构的汉字。该合并过程循环进行,直到没有能够合并的汉字为止,构建字连通域。

对于文本行的检索,本文循环地查找某一文字与行内与该文字最近的文字,从而构建行连通域。

根据在3.2.4 章节中得到的字连通域,计算每个文字C所在的字连通域的中心坐标(CC)。对于文字CC,若C的上边界小于C的下边界或C的下边界大于C的上边界,则认为这两个字块不在同一行。根据中心坐标,计算C与左右两侧文字的中心间距,并分别选取左右两侧间距最小的文字CCCC即为C的左右邻居字块。

最后,将文字聚合成行。通过遍历各连通域,找出行首文字,即没有左邻居的文字。然后,从每个行首文字开始,逐个查找其右邻居,直至行末文字,即没有右邻居的文字。

此时的文档图像可能的层次结构如图5所示。

图5 图像可能的层次结构

2.3 基于行连通域的文本扭曲校正

本文利用已经确定的文本行和文字位置信息,移动单个文字即可完成校正过程。由于每个文字的面积接近,只需要将所有文字移到适当位置即可完成校正操作。

首先,对图像按从上到下的顺序进行逐行遍历,同时每行按照从左至右的顺序进行遍历。例如,对于第行L的最左文字作为标记文字C,然后遍历其他文字C,并计算其校正位移。对于,有计算公式如下:=C-C

同时,由于当前字连通域块的高度小于或等于5,则认为该连通块为标点符号。此时,校正位移为最左文字下边界与当前字连通域下边界的差值,即=C-C

然后,将C按照校正位移进行垂直移动,并绘制在新图像上,避免相邻两行出现重叠。测试时使用了文献[6]提供的图像。

图6(a)是原图,图6(b)是校正后图像。在图6(a)中文字所在行区域是歪斜的,而在图6(b)中文字所在的行区域变得平整了,歪斜能够得到校正如图6所示。

图6 歪斜能够得到校正

3 实验与测试

本文在Pycharm2021 社区版环境下采用Python3.8 语言采用OpenCV 库进行编码与实验,在前端使用PyQt5 并集成了第二章与第三章涉及的算法。利用手机拍照获取数据与原图像。

针对图像的平滑问题,进行以下测试。

如图7(a)所示,原图像为纸质文本图像,然而由于纸张本身质量较差,显得较为粗糙,再经过反复地放大与缩小后出现了失真的现象,一定程度上影响了观感。使用迭代最小二乘法处理,得到图7(b)中。可以明显观察到:这种粗糙感与图像在放大后的失真感在一定程度上成功地被缓解了。与此同时,比起较为传统的线性加权平均值算法,文字的边角等细节却能得到较为完好地保存。从而得以改善文本的可读性。使用梯度最小化平滑,得到图7(c)。尽管算法运行了较长时间,但是效果较好地平滑了纸张的褶皱质感。

图7 针对图像的平滑问题测试

以图像中的某一行为例,在原图像中该行的灰度级曲线为曲折,保留了大量的无意义的细节。在经过迭代最小二乘法平滑的处理之后,灰度级曲线明显地变得平滑了,且文字前景与图像背景部分的对比度变得更大,以便于后续的二值化处理。梯度最小化的平滑效果,其平滑的效果较好,但运行时间较长。截取某行得到的灰度级对比如图8所示。

图8 截取某行得到的灰度级对比

以“双边滤波”四字为例,在未经过平滑处理的图像中,直接运用二值化时,仍然可以看到文字周围存在大量的噪点,如图9(a)。而在经过平滑后,噪点数量明显变少,文字本身的笔画线条被更为清晰地提取了出来,如图9(b)与图9(c)。

图9 处理效果图

10(a)是生活中较为常见的一种场景:拍摄书本上的一个歪斜、弯曲的页面,而这一页面内的行在经过第二章与第三章所使用的算法的综合处理后,得到了图10(b)。其扭曲的现象被成功地校正了,一定程度上提升了文本的可读性。

图10

处理前后对比在图11 的实例中,可以观察到其印刷纸张粗糙、泛黄。其背面页文字的阴影也能在当前页面中看到。

图11 纸质明显粗糙的图像

针对本示例,本文的平滑效果能够成功地将文本前景与背景很好地分离,并在二值化中处理出文本的前景,如图12(a)。市面上常用的文本图像扫描处理软件为扫描全能王。而使用扫描全能王却会错误地将需要去除的背景当做前景进行增强,如图12(b)。

图12 处理效果对比

4 结 论

针对手机拍摄的文本图像,本文先利用边缘保留的平滑对其进行平滑去噪,将文本内容与纸张进行分离,基于行连通域的文本行校正方法对分离出来的文本的扭曲现象进行校正。相比其他方法,本文提出的方法能够取得较好的效果。

目前本文使用的算法只能处理纯文字的文本图像,带有图片与表格等复杂信息的文本图像的处理亟待后续研究与进一步处理。同样,汉字本身的存在倾斜扭曲现象的判断、检测与校正也亟待进一步的研究。

猜你喜欢

结点校正纸质
再分析降水资料的适用性评估与偏差校正
为什么要读纸质书
炫酷ACR
一种具有自动校正装置的陶瓷切边机
电子疲劳
基于地理位置的AODV路由协议改进算法的研究与实现
独立书店浪漫的纸质生活
投影机的梯形校正