基于霍夫变换与像素疏密程度票据分割算法研究

2019-10-21 03:24孙玥杨国为

孙玥 杨国为

摘要:为了解决传统基于边缘检测的票据分割遇到的抗噪性及检测精度问题,本文以国家普通发票为研究对象,提出了一种基于霍夫变换与像素疏密程度的票据分割算法。通过对发票进行采集、缩放、灰度化、二值化、边缘检测和膨胀等预处理后,采用霍夫变换和像素疏密程度进行分割。同时,为验证分割出的部分发票的有效性,采用基于OCR技术的字符识别软件进行识别。识别结果表明,该算法将每一部分进行了有效的定位与分割,有较高的识别精确率,且速度快,具有一定的抗干扰性,达到了预期要求。该研究对普通发票的分割具有实际意义。

关键词:霍夫变换;像素疏密程度;票据分割;图像预处理

近年来,尽管电子支付方式层出不穷,但纸质票据的使用仍然是不可或缺的一部分。随着银行各种业务的推出,各种发票数据量也越来越多,如果单靠人力处理会耗费许多时间,因此采取一种高效、高准确率的票据分割方法,不仅能提高工作效率,而且还能提高银行的整体竞争力。随着人工智能时代的来临,发票识别技术得到了发展,票据图像识别是票据处理的重点,而票据的分割是票据识别的关键,分割效果的好坏直接影响识别的准确性。由于票据中的文本方向不定,字体大小不一,字符行间距较小等,为票据的分割带来了较大的困难,因此,人们提出了许多图象分割的理论和算法。目前,常用的分割算法主要有阈值法[1-3]、连通体分析法[4]、基于纹理特征的方法[5-6]和基于边缘的方法[7]。其中,阈值法是对灰度图像取一个阈值,按照这个阈值对图像进行二值化分割,该方法对于复杂图像计算量较大;连通体分析法是将图像中各连通区域找出并标记,该方法计算量大,对于有噪声的情况计算效率不高;基于纹理特征方法是提取文字图像所具有的纹理特征,但是纹理的提取具有一定的困难;基于边缘的方法是先检测图像中边缘点,连接成轮廓后构成分割区域,其难点在于噪声产生的伪边缘会导致不合理的轮廓,从而产生位置偏差。经典的边缘检测方法是构造roberts梯度算子和Sobel梯度算子等微分算子,该方法虽然边缘检测速度快,但往往会得到断续的、不完整的结构信息,且对噪声较为敏感。因此,本文提出一种基于霍夫变换与像素疏密程度的新方法,该方法能够实现票据的精确分割。该研究具有实际应用价值。

1 研究对象及实验环境

本文以票据为研究对象,主要对发票的不同区域进行分割,实验中选用的发票是国家普通发票,实验环境采用Matlab软件。国家普通发票样票如图1所示。

2 算法总体流程与图像的预处理

2.1 算法总体流程

对采集的图像进行预处理,处理内容主要包括灰度化、二值化、边缘检测和膨胀等,对预处理后的图像进行霍夫变换,检测出想要得到的最长的5条直线,按照直线对发票进行初步分割,将发票分成6部分,按照每个部分不同的特点进行预处理,处理好后,按照像素的疏密程度,对6块区域进行分割,得到最终想要的结果。算法流程图如图2所示。

2.2 图像的预处理

预处理是票据分割系统中的重要环节,预处理结果的好坏,直接影响分割系统中分割正确率的高低[8]。图像预处理是特征提取至关重要的步骤,一般直接输入的图像都会存在噪声的干扰等质量问题,直接对原图像进行处理,识别精度不大。本文对图像的预处理主要包括缩放、灰度化、二值化、边缘检测、膨胀等。预处理框图如图3所示。

1) 缩放。缩放可以精确的将图像处理为理想的大小。为便于处理,要合理选择图像的高度和宽度,以防图像发生畸变。

2) 灰度化。由于图像大部分是RGB颜色模式,但实际上RGB并不能反映图像的形态特征,对图像分割没有实质性作用,因此要对图像进行灰度化处理。常见的灰度化处理方法有3种:最大值法、平均值法和加权平均法[9]。

3) 二值化。即把灰度图像转换成二值图像。二值化的关键在于阈值选择,最实用的方法是选取一个阈值与图像中的所有像素點进行比较,如果图像中点的灰度值大于所选取的阈值,则将此值置为1;如果图像中点的灰度值小于选取的阈值,则将此值置为0[10]。

4) 边缘检测。边缘检测的目的是标记数字图像中亮度有变化的点,一般存在于文字与背景之间,即边缘。本文主要采用Sobel进行边缘处理,Sobel算子是一种基于一阶导数的用来检测边缘的算子,在该算子中加入采用局部平均的运算,所以对噪声具有很好的消除作用。对象素位置的影响,Sobel算子做了加权,与Prewitt算子和Roberts算子相比,Sobel算子效果更好[11-13]。

5) 膨胀。二值图像的膨胀是在一个大型二值图上,将一个小型二值图逐点运算,根据计算结果使图像实现放大,从而取名膨胀。在对图像做膨胀处理时,如果结构元素中只要有黑色点与它对应的大图像素点相同,即发生膨胀作用,使图像像素扩大[14-15]。

3 霍夫变换检测直线

图像处理中的一种特征提取技术——霍夫变换(Hough Transform),即在一个参数空间中,通过计算累计结果局部最大值,得到一个符合该特定形状的集合,为霍夫变换结果[16]。用来检测图像中的直线是经典的霍夫变换,后来霍夫变换扩展到对圆和椭圆等任意形状物体的识别。霍夫变换运用两个坐标空间之间的变换,将一个空间中具有相同形状的曲线或直线,映射到另一个坐标空间的一个点上,形成峰值,因此把检测任意形状的问题转

一般来说,对于点(x0,y0),可以将通过这个点的所有的一族直线统一定义为r=x-0cos θ+y0sin θ,也就是说每一对(rθ,θ)代表一条通过点(x0,y0)的直线。如果对于一个点(x0,y0),在极坐标平面绘出全部通过它的直线,将得到一条正弦曲线。如果存在两个不同点绘出的曲线在平面相交,也就是说它们通过同一条直线。而越多曲线相交于一点,即用该交点来表示直线时,由更多的点组成[17]。因此,可以通过设置直线上点的阈值大小,说明多少条曲线相交才认为这是一条直线;点数少的无法形成直线,识别出的是断断续续的虚线,出现误检;点数过多的可能会忽略了较细的直线,出现漏检[18]。霍夫变换就是要追踪图像中每个点对应曲线间的交点。只要超过了上述所说的阈值,就可以认为在原图像中为一条直线。

对发票图像进行预处理后,霍夫变换检测出最长的5条直线,根据检测出的5条直线,将发票横向分割成6部分。其中,含有单价的部分如图5所示。

4 按像素疏密程度分割

按照像素分割图像,即将每部分的图像像素纵向进行求和,观察横向像素的密度,如果像素为零或较小,说明横向像素为空或较少;同理,如果纵向像素比较高,说明横向有较多字符存在。在霍夫矩阵中,找到极坐标下的极值点,并在平面坐标中画出已找到的直线,每个极值点对应1条直线,实现了对发票各个部分的分割。

选取图5进行实验,求得其像素分布图如图6所示。由图6可以看出,图像各个部分的像素分布及疏密程度非常清晰,在霍夫矩阵中求其峰值,则可得到理想的直线。

5 实验结果与分析

5.1 分割实验结果

采用霍夫变换和像素疏密程度2种方法,在Matlab编程环境下,对发票部分进行分割,为了验证实验的有效性,采取噪声相对较大的发票(图片相对噪声较大,不与展示)进行实验,单价分割结果如图7所示,数量分割结果如图8所示。由图7和图8可以看出,基于霍夫变换与像素疏密程度的分割算法,有效的将发票部分进行分割,分割准确率较高,即使文字大小不一,本文仍然能够较为准确的进行定位与分割。

5.2 在线OCR识别

将感兴趣的部分(比如单价部分)进行识别,同时与文献[2]分割结果进行对比,以此验证分割出部分发票的有效性。本文采用基于OCR技术的字符识别软件[19-20],OCR识别结果如图9所示,其他分割方法OCR识别结果如图10所示。由图9和图10可以看出,采用本文分割方法识别出的单价部分非常清楚,说明该方法可用于普通发票的分割。

6 结束语

针对票据的分割问题,本文提出了一种改进的基于霍夫变换和像素疏密程度的分割方法。首先对采集的图像进行一系列预处理,然后进行霍夫变换求取直线,最后基于像素疏密程度方法完成整个票据的分割过程。由实验结果可以看出,与其他方法相比,本文方法在用于OCR识别时,具有较高的识别精确率,且速度快,具有一定的抗干扰性,达到了预期要求。该设计对普通发票的分割具有实际意义。接下来将对背景非常复杂的噪声发票图像进行研究,这也是实际中亟需解决的问题,同时还要注意开展不同识别技术的研究。

参考文献:

[1] 何俊, 葛红, 王玉峰. 图像分割算法研究综述[J]. 计算机工程与科学, 2009, 31(12): 58-61.

[2] 叶龙欢, 王俊峰, 高琳, 等. 复杂背景下的票据字符分割方法[J]. 计算机应用, 2012, 32(11): 3198-3200, 3205.

[3] 付云凤. 基于阈值的图像分割研究[D]. 重庆: 重庆大学, 2013.

[4] 甘玲, 林小晶. 基于连通域提取的车牌字符分割算法[J]. 计算机仿真, 2011, 28(4): 336-339.

[5] 陈强, 田杰, 黄海宁, 等. 基于统计和纹理特征的SAS图像SVM分割研究[J]. 仪器仪表学报, 2013, 34(6): 1413-1420.

[6] Li H P, Doermann D, Kia O. Automatic text detection and tracking in digital video[J]. IEEE Transactions on Image Processing, 2000, 9(1): 147-56.

[7] Shivakumara P, Huang W H, Tan C L. An efficient edgebasedtechnique for text detection in video frames[C]∥2008 The Eighth Iapr International Workshop on Document Analysis Systems. Nara, Japan: IEEE Computer Society, 2008.

[8] 谢文彬, 李新芳, 郑新. 一种基于结构特征的票据印刷号码识别方法[J]. 包装工程, 2018, 39(1): 202-206.

[9] 刘培根. 银行票据手写数字串识别的预处理与分割[D]. 南京: 南京理工大学, 2012.

[10] 宫义山, 王鹏. 基于模板匹配的发票号码识别算法[J]. 沈阳工业大学学报, 2015, 37(6): 673-678.

[11] 魏伟波, 芮筱亭. 图像边缘检测方法研究[J]. 计算机工程与应用, 2006, 42(30): 88-91.

[12] 张棋, 贾方秀, 殷婷婷. 基于改进Sobel算法的实时图像边缘检测系统设计[J]. 仪表技术与传感器, 2018(2): 101-104, 108.

[13] 袁春兰, 熊宗龙, 周雪花, 等. 基于Sobel算子的图像边缘检测研究[J]. 激光与红外, 2009, 39(1): 85-87.

[14] 邓仕超, 黄寅. 二值图像膨胀腐蚀的快速算法[J]. 计算机工程与应用, 2017, 53(5): 207-211.

[15] 孙继平, 吴冰, 刘晓阳. 基于膨胀/腐蚀运算的神经网络图像预处理方法及其应用研究[J]. 计算机学报, 2005, 28(6): 985-990.

[16] 白瑞敏. 基于图像处理的接触网吊弦和受电弓滑板的检测与识别[D]. 成都: 西南交通大学, 2017.

[17] 季婧婧. 非固定格式打印票据的自动分割与识别[D]. 南京: 南京理工大学, 2015.

[18] 孙丰荣, 刘积仁. 快速霍夫变换算法[J]. 计算机学报, 2001, 24(10): 1102-1109.

[19] 陈义, 李言俊, 孙小炜. 利用OCR识别技术实现视频中文字的提取[J]. 计算机工程与应用, 2010, 46(10): 180-183.

[20] 索玉秀. 基于OCR技术的名片识別方法研究[D]. 哈尔滨: 哈尔滨理工大学, 2015.