基于图像的二维条形码识别技术研究
2010-09-04赵群礼周秋平
赵群礼, 周秋平
(合肥师范学院计算机科学与技术系,安徽合肥230061)
基于图像的二维条形码识别技术研究
赵群礼, 周秋平
(合肥师范学院计算机科学与技术系,安徽合肥230061)
简要阐述了条形码技术国内外发展状况和二维条形码的编码方法,并对图像式条形码识别过程进行了概述,提出了其中存在的技术难点并给出了解决方案,最后文章指出了条形码识别技术的发展趋势。
条形码;二维条形码;图像式条形码识别技术
1 引言
条形码技术起源于20世纪40年代的美国,随着信息技术的飞速发展,条形码技术发展迅速,在国际上已得到了广泛的应用。目前应用较多的是一维条形码技术,如:UPC-E、EAN-8、EAN-13等[1]。但一维条形码存在包含信息量小、没有纠错能力、保密性不高、需要数据库支持等缺点,随着社会的发展,物品的丰富,一维条形码技术越来越满足不了实际的需求,因此促使人们开始对二维条形码技术进行研究。
目前二维条形码技术已有较深入的发展,出现了多种编码标准,应用比较广泛的有 QR Code (Quick Response Code)码、PDF417(Portable Data File 417)码、Code49码、Code 16K码、Data Matrix码、MaxiCode码等[2,3]。二维条形码的出现,促使条形码识别技术也得到了进一步发展,由于二维条码要比一维条码复杂的多,广泛应用于一维条形码识别中的光电技术,已不适合二维条形码的识别,这促使新的条码识别技术——图像式识别技术的出现。在国外,二维条码技术已经处于应用阶段,并已制造出性能较好的图像式条码识别设备。例如:美国HHP公司生产的IT4600系列、IT5800的二维图像式条码识别器。国内图像式识别技术的研究起步比较晚,还处在研究阶段,与国外水平还有很大差距。虽然条码的标准和压缩算法早已公开,然而由于技术保密原因,核心技术不公开,并受到严格的专利保护。所以国内的图像模式的二维条码大多依赖于进口,但价格非常昂贵,影响了二维条码的普及。目前国内的产品大都是满足客户的某种需要而设计,有很大的局限性。本文将结合二维条形码的编码原理,对图像式二维条形码的识别技术进行探讨。
2 二维条形码的编码方法
二维条形码的编码过程就是将可读信息转换成用于绘制条码的码字,然后加上必要的附加信息。其流程为:运用编码算法将有用信息转换成二维条形码码字,再通过数据库查询把码字转换成对应的条空相间的符号字符,最后在计算机上将那些层层相叠的条空绘出,即二维条形码图像。二维条形码按照其编码原理和结构形状的差异主要分为堆积或层排式和棋盘或矩阵式两大类,本文以层排式二维条形码为例简要介绍二维条形码的编码方法。
层排式二维条形码是一种多层、可变长度、具有高容量和纠错能力的连续型二维条码。如图1所示每一个二维条形码可以包括3~90层,每一层由起始符/终止符、左/右层指示符及1~30个符号字符组成。每一个符号字符由17个模块构成,其中包括4个条和4个空,每一个条、空由1~6个模块组成。由于层数及每一层的符号字符数是可变的,故二维条形码符号的高宽比可以变化以适应不同的需要。
图1 层排式二维条形码结构示意图
对于层排式二维条码,编码方法从根本上与一维条码有相似之处,但也存在很大不同。二维条码编码最重要的还是将数据(汉字或ASCII码)转换成符号的过程,这一过程主要采用文本组合模式。可以将数据与文本模式下的值的对应关系保存在一个数据库的一张数据表中,通过数据库查询得到的是各个字符对应的文本码,将这些文本码两两组合在一起就可以生成二维条形码字。组合公式为:码字=30×H+L,式中H、L分别表示字符对中的高位和低位字符值。
根据这些数据码字以及选择的错误纠正等级计算纠错码字。错误纠正码字根据里德——索洛蒙(Reed-Solomn)错误控制码算法计算,包括如下几个步骤:
(1)建立符号数据多项式,该多项式的表达式是:
式中多项式的系数由数据码字区的码字组成。其中包括符号长度码字、数据码字和填充码字,排列位置如图2所示,其中Li,Ri为左、右行指示符,di为数据码字,Ci为纠错码字[3]。
图2 行指示符、数据和纠错码字
(2)建立纠错码字的生成多项式,具有k个错误纠正码字的生成多项式为:
(3)计算错误纠正码字,对于一组给定的数据码字和一个选定的错误纠正等级,错误纠正码字为符号数据多项式 d(x)乘以 xk,然后除以生成多项式 g (x),所得余式的各项系数的补数。得到纠错码字之后,根据码字数量选择条码的行数和列数。然后可以根据数据码字、左/右行指示符、纠错码字以及各行的族号查询各个码字对应的符号字符,并根据这些符号字符绘制条形码,这一过程可以仿照一维条码的绘制方法。
3 图像式条形码的识别方法
采用数字图像处理技术对二维条码进行识别,是二维条形码识别中较常用的方法,它在处理污损的条形码方面有光电识别方法无法比拟的优势。另外图像式识别方法对识别角度的要求没有光电识别方法那么严格,对有些二维条形码(如QR Code码)可以以任意的角度识别。
3.1 图像式条形码识别过程
在图像式条形码识别过程中,首先使用图像采集设备采集二维条形码图像,然后利用图像处理技术对条形码图像进行去噪和分割处理,最后调用条码特征读取算法,读出条码值并显示识别结果,图3是图像式条形码识别过程,其中各模块的功能如下:
(1)图像采集。通过数码相机、扫描仪或专用的图像传感器,如CCD图像传感器或CMOS图像传感器等设备采集条形码图像。
(2)图像预处理。图像预处理过程主要包括图像降噪、背景分离、图像校正等环节。由于采集系统或其他原因产生的噪声,采集的图像有些比较模糊或存在黑白孤立点,这对条码图像的进一步处理极为不利,因此要根据条码图像噪声是否严重,选择一种或多种滤波器进行滤波,去除噪声。目前采用较多的是中值滤波法。背景分离是将条码区与背景分离,从而避免在没有有效信息的区域进行特征提取,提高后续处理的速度。背景分离一般采用标准差阈值跟踪法,图像条码部分由黑白相间的条块组成,灰度变化大,因而标准差较大;而背景部分灰度分布较为平坦,标准差较小。将条码图像分块,每个小块的标准差若大于某一阈值,则该小块中的所有像素点为有效;否则为背景。由于采集进来的图像总会出现一定的倾斜和偏移产生几何畸变,给快速、正确地识别条码带来困难,因此必须进行图像校正,一般方法是:利用行差运算与Hough变换相结合,快速、准确找到条码图像边界线,计算出倾斜角度,通过双线性插值对条码图像进行校正。
图3 图像式条形码识别过程
(3)二值化处理。条码识别是以二值图像为基础的,图像二值化算法很多,条码图像直方图具有很好的双峰特性,一般采用大津阈值法[4]就能够对于条码图像进行很好地分割。图像二值化之后,二值图像中“1”像素代表黑条部分,“0”像素代表白条部分。
(4)边缘检测。条码识别问题的实质是边缘检测的问题,传统的条码识别算法是根据二阶导数零交叉来检测条码边缘[2,6]。
(5)条码读取。根据确定的条码边缘确定条码黑白模块宽度,利用不同的条码编码规则编制相应的译码程序,确定条码字符值,这一算法是非常成熟的。
(6)结果显示和处理。一般由计算机显示条码识别的结果,并可根据结果进行实际应用中的处理。
3.2 图像式条码识别技术难点
在图像式的条形码识别过程中,若能知道条码条空宽度值,对于不同的条码都有很成熟的算法来确定条码符号值。因此在图像式条码识别过程中,图像处理部分的算法是十分重要的,不同的图像处理方法将影响后续的条码识别结果。图像处理过程中的技术难点如下:
(1)图像模糊问题。因条码印刷质量差、光照较弱、摄像设备质量等原因,采集的条形码图像比较模糊,黑白条块之间的边缘不清晰,甚至黑白条的边缘几乎融合在一起。针对这一问题,目前国内的一些处理方法都采用各种经典滤波技术对条码图像进行去噪,如广泛采用的中值滤波技术。当采集图像非常模糊时,这种处理方法具有一定局限性,有时甚至导致条码无法识别。
(2)边缘检测问题。在传统算法中一般是根据二阶导数零交叉来检测条码边缘。由于图像采集、图像滤波过程中在条码图像边缘处会有一定程度的模糊。又由于在条码图像去噪时,大都选用经典的中值滤波算法,该算法对椒盐噪声去噪声效果很明显,但对高斯噪声去噪效果却较差。而在实际应用中,图像采集产生的模糊基本上都是高斯噪声,而中值滤波法对该噪声不能有效地去除。在边缘模糊情况下采用二阶导数零交叉来检测条码边缘会有1~2个像素的偏差,这对条码的条空宽度的确定会产生影响,从而影响识别。因此边缘模糊是影响条码识别的重要因素。
3.3 解决技术难点的方法
要解决边缘模糊问题,必须对噪声进行分析。我们知道平滑的图像主要集中于中低频部分,噪声信息或边缘信息主要集中在高频段。通常的滤波方法都是不加区分的滤掉高频信息,不可避免地也会滤掉边缘信息,从而造成图像边缘模糊。文献[6]提出了一种基于边缘检测的小波去噪方法,该方法利用小波变换良好的时频特性,只要沿着梯度方向检测小波变换系数模值的局部极大值点,即可得到图像的边缘点,但小波系数的模值极大值点也可能对应着噪声点。因此在检测出小波系数的极大值后,还要去除与噪声点对应的小波系数。噪声的Lipschitz指数为负,信号的Lipschitz指数为正,它们随着尺度的增大信号系数逐渐变大,而噪声系数逐渐变小。根据这一特点可除去噪声造成的虚假边缘,将非噪声点的模值极大点连接起来得到图像的边缘。这种方法既可达到去噪目的又可保持图像的边缘,这种把去噪和边缘检测结合起来的新思路在一定程度上解决了去噪引起图像边缘模糊的难题。
4 结束语
随着二维条形码的应用普及,图像处理技术在识别二维条形码中的应用将会越来越广泛。和传统的光电识别技术相比,采用图像处理技术对有污染、残缺、产生几何畸变的条形码的识别率更高,也更具有优势,因此研究高效的图像式条码识别方法是今后条码识别技术发展的方向。由于我国对图像式条码识别方法研究起步较晚,还处于研究阶段,目前的很多识别算法都具有局限性,因此开发出更具有通用性的图像式条码识别算法,将具有十分重要的意义。
[1] 李金哲.条形码自动识别系统[M].北京:国防工业出版社,1991.
[2] Normand N,Viard-Guadin C.Two Dimensional Bar Code Reader[J].Proceedings of SPIE,1994:125-132.
[3] 中华人民共和国国家标准 GB/T17172-1997四一七条码[S].国家技术监督局1997.12.25批准,1998.8.1实施.
[4] 李了了,邓善熙,丁兴号.基于大津法的图像分块二值化算法[J].微计算机信息,2005,21(8-3):76-77.
[5] Joseph E,Pavlidis T.Bar Code Waveform Recognition Using Peak Locations[J].IEEE Trans.PAMI,1994,16(6): 630-640.
[6] 王雅静,窦震海.一种新的条码图像去噪方法[J].包装工程, 2007,28(11):75-77.
A Research on Two-Dimension Barcode Recognition Technology Based on Image Processing
ZHAO Qun-li, ZHOU Qiu-ping
(Department of Com puter Science and Technology,Hef ei Normal University,Hef ei230061,China)
The paper introduces the actuality of barcode technologies development and the coding method of two-dimension barcode by describing the procedure of barcode recognition based on image processing.In the meanwhile,the paper puts forward the difficulties of barcode recognition technology,and solutions to solve those difficulties are also offered.In the last place,it gives the development trend of the barcode recognition technologies.
Barcode;Two-dimension barcode;Barcode recognition technology based on image processing
TP391.4
A
1674-2273(2010)06-0057-03
2010-07-10
合肥师范学院科研项目(2010kj06)
赵群礼(1974-),男,合肥师范学院计算机科学与技术系教师,研究领域为模式识别、数据挖掘等。