结合列边缘提取的PDF417 条码检测方法

2013-02-22 08:12汪鲁才易锡年
计算机工程与应用 2013年7期
关键词:梯度方向角点条码

汪鲁才,刘 鑫,易锡年

湖南师范大学 工学院,长沙410081

1 前言

二维条码(2-dimensional bar-code)PDF417 作为一种新的信息存储和传递技术,经过若干年的发展,已广泛应用于国防、公共安全、交通运输、医疗保健、工业、商业、金融、海关及政府管理等领域。而近年来条码的识别设备已由光笔、激光、线阵CCDS 发展到第四代的图像,使用数字摄相机、摄相头等来采集和获取二维条码图像,并利用数字图像处理技术对条码进行识别,已成为国内外发展的主流。然而实际应用中所采集的条码图像背景复杂,往往会伴有出现文字、数字、表格等,且有着不同程度噪声污染,若对条码定位和分割不够准确,将直接影响到后续的识别和解码工作。

针对上述问题,专家学者们进行了大量研究探索,并提出了许多有效的算法。文献[1]提出基于小波纹理分析的检测方法;文献[2]提出了一种基于数学形态学运算和Canny 边缘检测的定位算法;文献[3]提出一种基于支持向量机的条码检测方法;文献[4]提出了一种利用角点特征来筛选一维条码区域的方法,由于PDF417 条码中指示符模块分布不连贯,以及类似纹理的干扰,如:英文文字直接使用会导致提取不完整;文献[5]提出一种子区域多特征的方法来筛选条码区域,但对于和PDF417 条码内部区域有着相似的边缘强度和线性尺度的文字区域区分度不高;文献[6]提出一种基于边缘方向特征的数据矩阵码定位方法,但是无法区分背景纹理中的文字和表格区域。

本文在上述成果的基础上,提出针对PDF417 二维条码的检测提取方法。首先分析条码本身的结构特点;其次采用子区域多特征分析法[5]来提取感兴趣的区域;最后在这些区域存在的连通域中,将条码定位并提取出来。

2 PDF417 码的结构特征分析

由图1 可知PDF417 的条码结构特点:条码由指示符和数据字符组成,指示符中起始符和终止符由宽度比例特定的黑白条空按特定方向排列而成[7],各条空边缘相互平行。除起始符和终止符外,条码每列字符都以黑条开始白空结束,各列字符之间形成明显的边缘,这些边缘与起始符、终止符的条空边缘有着相同的长度和斜率。因此只要在包含条码的候选区域中确定条码起始符和终止符,并提取出边缘像素梯度方向信息来标注强边缘,就能够定位条码在图像中的准确位置。

图1 PDF417 条码

3 子区域特征

对于条码图像背景往往十分复杂的情况,将采集到的图像按网格状分隔成大小相等的若干个子区域,有利于分析起始模块、终止模块区别于其他背景纹理的区域特征,并利用区域特征对候选子区域进行筛选合并,达到定位目标区域的目的。

3.1 梯度方向特征

由于条码起始符与终止符由一组排列整齐的条空组成,该区域梯度方向直方图上会有高能单峰值出现[8],因此可用这个特性来区分背景中除直线外的其他纹理。

子区域中像素的梯度向量的模和方向分别定义为:

其中,GH和Gv分别由图像与以下两个掩膜卷积运算得到:

构造用于表达θ 值的直方图H ,横坐标表示角度,纵坐标表示该方向像素的数目。对该直方图的θ 值域进行量化,将梯度直方图的范围定为0°~360°,考虑到图像存在畸变,为了不漏掉近似平行的列边缘,量度为每10°一柱,总共36 柱。对区域内梯度幅值大于设定阈值Gm(取图像的梯度均方根值)的像素点统计方向直方图,通过对比直方图中各峰值的能量比Tp来判断该区域的梯度是否具有单一的方向性。

3.2 角点特征

由于PDF417 条码的起始符和终止符有着类似一维条码且不同于其他字符的独特结构,可采用角点特征[4]来区分条码中不同的字符区域。

Harris 角点检测算法[9]是一种基于信号的点特征提取算子,这里认为只要对于一个向任意方向发生微小移动就能引起灰度值大幅变化的点即为角点。算法如下:

(1)计算子区域内像素点在水平和垂直方向上的梯度Ix、Iy,并得到矩阵M :

(2)使用离散二维零均值高斯函数Gs在原图像上进行卷积滤波,得到新的矩阵M :

(3)角点响应函数定义为:

其中k 为经验值,取值为0.04。

(4)选取邻域内R 大于某个阈值的局部极大值点,设为角点。

3.3 梯度特征

由于条码起始符和终止符的灰度在梯度方向上呈规律性跳变,利用该特征可以很好地区分灰度跳变频率低的直线和明暗边界区域。

4 子区域特征分析

图2 为条码区域与其他常见纹理区域的梯度方向直方图和角点分布图。

图2 特征分析图

图2 中第一列从上往下依次为:条码起始符边缘区域;起始符内部区域;条码数据字符边缘区域;条码数据字符内部区域一。第二列从上往下依次为:条码数据字符内部区域二;直线区域;汉字区域;表格区域。第三列从上往下依次为:英文区域;数字区域;公式区域;图案区域。

结合图2 与梯度特征分析,对比其他纹理区域,包含有指示符或终止符的子区域符合以下准则:

(1)直方图呈单一尖峰状分布。

(2)区域内角点数为零;若不为零须呈线性分布且直线方向与梯度主方向大体一致。

(3)梯度主方向轴上灰度跳变较为频繁。

5 条码定位提取算法

上述准则为基础制定条码定位算法,图3为算法流程图。

图3 算法流程图

5.1 条码候选区域的生成

PDF417 条码由黑白条空模块堆叠而成,其区域内有着明显的黑白对比反差,在这里将所采集到的图像分为若干个大小相等的子区域,计算子区域的对比度[5]。对于对比度大于一定阈值tc(阈值的大小取决于子区域的大小、图像分辨率等因素)的区域保留为候选子区域,将这些子区域按照8 邻接原则合并生成一组候选连通域,其中某个区域被认为包含有PDF417 条码,按序抽取候选区域执行后续子区域筛选。

5.2 子区域筛选

(1)梯度方向特征区分。计算各子区域的梯度方向直方图,设置直方图中主、辅峰的能量比阈值tp,对能量比Tp≥tp的子区域予以保留,以此滤除梯度方向不具单一性的背景区域(如汉字区域、表格区域、英文区域、数字区域、公式区域、图案区域等以及一些条码内部区域),保留有单一直线区域和条码部分组成区域(其中图2 第一列第三个示例为一种特殊情况,一些条码数据字符边缘处的直方图分布符合该步骤筛选要求)。最后,将各保留区域子块的主峰值θp保留进峰值矩阵Mθ。

(2)角点特征区分。针对上步保留的子区域,计算和统计其内的角点数以及对呈线性分布的角点区域使用霍夫变换,查看角点数是否为零或直线方向角是否与梯度方向一致,对满足条件的子区域予以保留。可排除上步骤遗留下的条码内部区域和条码数据字符边缘区域(图2 第一列第三个示例因角点直线方向与梯度主方向相差较大,在这一步得到排除)。

(3)梯度特征区分。在梯度方向上进行灰度梯度跳变扫描。按照峰值方向矩阵Mθ中各子区域的梯度主方向值,将具体扫描角度量化为0~7 共8 个方向(如图4 所示)。方向角在内为0方向;在内为1方向;内为2 方向;依次类推。

扫描具体过程为:选取子区域中心像素点,以及4 条边界的中点,按上述扫描方向和相反方向在区域内扫描该直线上的像素。设上述所形成的3 条扫描线中的第i 条(1 ≤i ≤3)扫描线上,第j 个像素的灰度值为,其量化值定义为:

其中,tostu为对子区域求得的大津阈值。统计第i 条扫描线上像素量化值的跳变次数,记为Ji,若存在Ji多于4 次(排除单一直线子区域和明暗边界区域的最小取值)的情况,认为该子区域符合目标区域的梯度特征,予以保留。

图4 量化方向图

5.3 标注列分隔线和定位条码

经过上述3 个特征的筛选而保留下的子区域则被认为包含有目标模块。统计区域子块的梯度主方向角,出现次数最多的方向角即为条码的列边缘的梯度方向,记为θ′p。标记该子区域所存在的连通域,认为该区域包含有完整的PDF417 条码。若筛选过程中没有找到全部符合上述3 个特征的子区域,则选择下一个连通域重复子区域筛选。

标注所标记连通域内所有具有梯度方向为θ′p的边缘像素,标注准则为:

其中,θ 为边缘像素的梯度方向角。这些标注的像素组成一系列连通分量,删除长度较短的噪声,即可得到列与列之间的分隔边界。

细化保留的连通分量,取细化连通分量的端点进行霍夫变换,得到条码图像的上下边界方程,通过边界方程连接各点即得条码上下边缘,结合上步所标记的连通域和各字符列边缘,最终完成对条码的定位。

6 定位算法仿真

图5 以一个邮政快递封面的例子,分步骤显示了条码的检测定位过程。其中区域子块大小为30×30,Tc为90,Tp为3.0。

图5 条码的检测提取过程图

图6为条码检测结果对比。其中图6(a)为单一使用梯度方向特征检测的结果,虽然利用梯度方向特征可以排除大部分背景纹理区域,但是无法排除某些条码数据字符区域以及直线、明暗边界区域;图6(b)为单一使用角点特征检测的结果,利用角点特征能有效地滤除条码内部数据区域和文字区域,但对于纹理特征相似的某些英文文字、数字以及前述线型区域无法彻底排除,且PDF417 条码的起始符和终止符分布不连贯,单一使用将导致提取出的条码区域不完整;图6(c)为文献[5]方法的检测结果,由于PDF417 条码内部区域的边缘强度和线性尺度类似于文字区域,该方法对以上两种纹理区分度不高;图6(d)为本文算法的检测结果,通过多特征相结合的算法可以有效滤除大部分背景区域,并能够较为准确地定位条码区域。

图6 条码检测结果对比图

7 实验结果分析和结论

本文使用上述方法,用MATLAB.R2007a 环境编程,对50 幅条码图片(其中包括邮政信封、快递封面、机票以及自定义背景图片)进行实验。除去一幅褶皱变形严重以及一幅印刷问题导致条码部位无法识别外,其他均能够成功定位。图7 显示了几种不同背景下,以及带有倾斜、污渍等干扰情况下的检测结果。

图7 实验结果

该检测方法通过对比分析区域子块的梯度方向特征来剔除复杂背景区域的干扰,采用角点特征进一步去除可能影响到列边缘梯度方向取值的条码部分组成区域,后续结合梯度特征筛选出目标模块,确定包含条码的连通域并提取边缘梯度方向信息,标注条码列边缘,在背景中实现条码图像的准确定位。实验结果表明,对于复杂背景,条码位置、倾斜度未知以及污渍干扰的情况,该检测方法具有良好的效果,后续完成几何失真矫正,能够为以后的识别解码工作打下良好的基础。

[1] 吕佩卓,赖晓铮,赖声礼.基于小波多分辨率分析的PDF417 定位算法[J].自动化学报,2008,34(5):597-600.

[2] 刘发耀,殷建平,李宽,等.复杂背景下PDF417条码定位研究[J].计算机工程与科学,2010,32(6):55-57.

[3] Leong L K,Wang Y.Extraction of 2D barcode using keypoint selection and line detection[C]//Proceedings of the 10th Pacific Rim Conference on Multimedia,Bangkok,Thailand,2009.

[4] 王霞玲,吕岳,文颖.复杂背景和非均匀光照环境下的条码自动定位和识别[J].智能系统学报,2010(1):35-40.

[5] 刘宁钟.复杂背景中条码检测定位技术的研究[J].南京航空航天大学学报,2005,37(1):1-4.

[6] 高阿曼,何卫平,雷蕾,等.数据矩阵码检测定位技术研究[J].计算机工程与设计,2009(19):4532-4535.

[7] 中国物品编码中心.GB/T17172—1997 四一七条码[S].北京:中国标准出版社,1997.

[8] Ottaviani E,Pavan A,Bottazzi M,et al.A common image processing framework for 2D barcode reading[C]//Proceedings of the 17th International Conference on Image Processing and Its Applications,1999:652-655.

[9] Bellavia F,Tegolo D,Valenti C,et al.Improving Harris corner selection strategy[J].Computer Vision,2011,5(2):87-96.

猜你喜欢
梯度方向角点条码
热线互动
基于机器视觉的钢轨接触疲劳裂纹检测方法
浅析影响商品条码质量的主要因素
日杂商品条码质量现状研究
基于梯度方向一致性引导的边缘检测研究
基于FAST角点检测算法上对Y型与X型角点的检测
基于光谱上下文特征的多光谱舰船ROI鉴别方法
基于边缘的角点分类和描述算法
基于圆环模板的改进Harris角点检测算法
基于支持向量机的分类器训练研究