APP下载

基于图像的工业在线条码识别算法研究

2018-10-29赵琪高美欢

软件导刊 2018年8期
关键词:条码条形码形态学

赵琪 高美欢

摘要:条码技术是一种自动识别技术,其应用范围越来越广。针对工业生产线上条形码识别问题,首先介绍了几种常见的条形码,分析了工业中用于标识与跟踪的Code128条形码的结构、编码原理和译码方法。基于工业生产检测中常见噪声条形码和模糊条形码的特点,对条码图像进行图像裁剪、图像灰度化和图像形态学处理等预处理后,选用灰度形态学的腐蚀算法将条形码条中的间隙腐蚀掉,使其变为连续的线状,以便于后期条码识别,并借助第三方库Zbar完成条形码识别。实验验证了该方法的有效性。

关键词:

条形码;图像处理;zbar

DOIDOI:10.11907/rjdk.181903

中图分类号:TP312

文献标识码:A 文章编号文章编号:1672-7800(2018)008-0125-04

英文摘要Abstract:Bar code technology is an automatic identification technology. Its application scope is increasingly extensive. For the identification of bar codes on industrial production lines, several common bar codes were first introduced, and the structure, coding principle, and decoding method of Code 128 bar codes used for identification and tracking in the industry were analyzed. Based on the characteristics of noise bar codes and fuzzy bar codes commonly used in industrial production inspection, after preprocessing such as image cropping, image graying, and image morphology processing of bar code images, a gray morphology morphological erosion algorithm was used to remove gaps in bar code strips. It is eroded away, making it a continuous line for easy barcode identification and using the third-party library Zbar for barcode recognition. The effectiveness of the method was verified by experiments and good results were obtained.

英文关键词Key Words:bar code;image processing;bar code recognition

0 引言

随着科学技术发展和信息技术进步,条码识别技术得到了迅猛发展。条形码技术作为一种全新的自动识别技术,已广泛应用于社会生活各个领域,如商场、大型超市、交通运输、定位导航[1]、物流管理[2]、图书出版、医疗卫生和邮政快递等。由于准确可靠、数据输入速度快、信息量大、价格便宜、灵活实用及易于操作等[3],条形码是迄今为止最经济实用的一种自动识别技术。

最初,国外研究人员早期主要通过精准定位条码边缘识别条码,在这期间提出了一阶差分方程[4]和傅里叶变换[5]等。在模糊条形码图像处理方面,奥拉齐奥和罗伯特[6]于2009年提出了基于可變条码模型算法,该算法采用最大似然函数对模糊的条码图像进行处理;赛义德[7]于2010年提出了另一种解决模糊条形码的方法即双峰特性法,但该方法仅能处理水平模糊问题;Kresic-Juric[8]于2006年提出了隐性马尔科夫链模型,该方法需要探测条形码的边缘;奥拉齐奥和罗伯特在2010年又提出了新的条形码识别算法,该算法基于灰度图像和可变模型完成条形码识别,不仅精度高,而且算法简单,对条形码识别作出很大贡献。

国外研究人员早期主要通过精准定位条码边缘识别条码,提出了一阶差分方程[4]和傅里叶变换[5]等。在模糊条形码图像处理方面,Gallo等[6]提出了基于可变条码模型算法,采用最大似然函数对模糊的条码图像进行处理;Yahyanejad等[7]提出了另一种解决模糊条形码的方法即双峰特性法,但该方法仅能处理水平模糊问题;Krei-JuriKreˇsi′c-jiri′c s等[8]提出了隐性马尔科夫链模型,该方法需要探测条形码的边缘;Gallo[9]又提出了新的条形码识别算法,该算法基于灰度图像和可变模型完成条形码识别,不仅精度高,而且算法简单,对条形码识别作出了很大贡献。

我国对条形码技术的研究始于20世纪80年代中期,20世纪90年代开始研究二维条码技术。有些学者从条形码解码方面进行研究,有效提高了条形码的正确识读。姚俊等[10]对具有复杂背景的条码图像提出来基于模板匹配的区域分割方法,将条码图像从复杂背景中分离出来;徐益峰等[11]提出用双平方边缘直线拟合算法对图像进行校准,该方法在进行图像校正的同时也使算法复杂度得到降低。

但是,目前工业生产检测线由于存在光照不均、角度倾斜等限制因素,现有扫码器很难完成对运动过程中条形码的识别。条码在印刷过程中存在的质量问题,如条码展宽、漏印等,更对条码识别带来困难,严重影响了条码的正确识读。本文结合机器视觉将图像处理技术应用于条码识别,大大减少了图像质量对条码识别的影响,从而能提高条码识读率,提高工作效率。

1 条形码

条形码是由一组宽度不等的条和空按照一定编码规则排列,从而表达一组信息的图形。条形码主要分为一维条形码和二维条形码。一维条码比较常用,如商品外包装袋上印刷的条码就是一维码, 但其信息存储量小。二维码是近几年发展起来的,它能在有限空间内存储更多信息,包括文字、图像、指纹、签名等,并可脱离计算机使用。二维条码根据构成原理和结构形状可分为行排式与矩阵式[12]。

1.1 条形码分类

条码种类很多,常见的码制大概有20多种,其中包括:Code39码(标准39码)、Codabar码(库德巴码)、Code25码(标准25码)、ITF25码(交叉25码)、Matrix25码(矩阵25码)、UPC-A码、UPC-E码、EAN-13码(EAN-13国际商品条码)、EAN-8码(EAN-8国际商品条码)、中国邮政码(矩阵25码的一种变体)、Code-B码、MSI码、Code11码、Code93码、ISBN码、ISSN码、Code128码(包括EAN128码)、Code39EMS(EMS专用的39码)等一维条码和PDF417等二维条码。一维条码分类及用途见图1。

Code128码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。其由于优良的特性,因而被广泛应用于企业内部管理、生产流程、物流控制系统等方面。本文主要以工业生产线上的一维Code128码为研究对象。

1.2 Code128码编码规则

Code128码每个字符由3个条、3个空、11个单元构成,符号内含校验码。Code128码有3种不同版本:Code128A(数字、大写字母、控制字符)、Code128B(数字、大小字母、字符)和Code128C(双位数字)。其中,Code128A包括標准数字和大写字母、控制符、特殊字符;Code128B包括标准数字和大写字母、小写字母、特殊字符;Code128C包括[00]-[99]的数字对集合,共100个。

Code128码主要有以下特性:①Code128码具有A、B、C 3种不同编码类型,可提供标准ASCII中128个字元的编码使用;②Code128码允许双向扫描,既可以从左到右,也可以从右到左,主要得益于其编码规则;③Code128码可自行决定是否加上检验位;④Code128条码长度可调,但包含开始位和结束位在内,不可超过232个字元;⑤同一个128码可由A、B、C 3种不同编码规则互换,既可扩大字元的选择范围,也可缩短编码长度。

Code128编码规则:开始位+[FNC1(为EAN128码时加)]+数据位+检验位+结束位。

Code128检验位计算:(开始位对应的ID值 + 每位数据在整个数据中的位置×每位数据对应的ID值)%103。

以95270078为例,Code128编码:Code128A开始位对应的ID为103,第1位数据9对应的ID为25,第2位数据5对应的ID为21,依此类推,可以计算检验位:(103 + 1×25 + 2×21 + 3×18 + 4×23 + 5×16 + 6×16 + 7×23+8×24)%103=21,即检验位的ID为21。95270078编码表示为:开始位StartA+数据位[9+5+2+7+0+0+7+8]+检验位21+结束位Stop,对照Code128编码表即可生成Code128A码。128B与128A类似,128C只能对长度为偶数的数字串编码,每两个数字为一位,使输出的信息压缩了一半,打印的条形码因此也较短。

1.3 条形码识别常用方法

条形码识别过程即对条形码进行译码的过程,得到条形码包含的文本信息。识别技术是条形码应用的关键技术。要辨别一个条码,必须知道条码的条、空间隔和1个字符的宽度。常用的条形码识别方法主要有两类:一类是根据条形码的编码规则,利用编码原理进行条形码识别,主要包括平均值译码法和相似边距离译码法[13]。该类方法需要相应的识别算法,且程序编程作业量大,受干扰影响强度大,对图像质量要求高。另一类是利用开源的条形码识别工具包进行条码识别[14]。该类方法简单方便,识别速度快。目前用于条形码识别的工具包很多,但是开源的并不多。用于条码识别的开源工具包主要有两个:Zbar工具包、ZXing工具包。两者都适用于多种格式的一维二维条形码识别,并支持多平台开发使用。

针对工业流水线上条形码识别的特殊性,算法在满足正确识读精度的前提下,还要满足工业生产的实时性要求。依据简单、便捷、快速的原则,针对工业流水线上条形码的识别要求,本文选用后一种方法进行条形码识别算法研究。

2 条码识别主要算法

识别技术是条形码应用的关键技术,而图像处理技术将直接影响条形码识读效果。本文以生产线上喷码机喷制的Code128条形码为研究对象,利用图像处理技术提高条码图像质量,最后运用条码识别工具实现条形码识别。条码图像预处理是条码识别前的关键步骤,主要包括图像裁剪、图像灰度化和图像形态学处理等。工作流程见图2。

2.1 图像裁剪

在对生产线上的条形码进行识别时,首先要获取条形码图像。实验所用相机获取的视野范围是12 801 024,条形码区域大小为934 125,占整个视野的8.9%。过多的背景不仅降低了条形码识别速度,还增加了条形码识别难度。所以需要将条形码图像从背景中裁剪出来,以去除不必要的背景信息,提高后期处理速度和识别准确度。本文根据条形码在图像中的位置信息,手动将条形码从图像中裁剪出来。

2.2 图像灰度化

实验所用相机是大华A5131CG75型号的彩色相机,拍摄图像为真彩色图像,包含很多与条形码信息无关的颜色信息。彩色图像中每个像素点颜色由R、G、B 3个分量决定,每个分量有255种选择,一个像素点就有1 600多万种选择。而灰度图像是R、G、B 3个分量相同时的一种特殊彩色图像,一个像素点的颜色只有255种选择。所以,为了降低数据计算量,本文采用图像灰度化法将相机获取的彩色图像变换成灰度图像,以过滤掉与条形码无关信息。

灰度图像的描述与彩色图像一样,仍反映了图像整体或局部的色度和亮度等级分布及特征[15-17]。常用的灰度化处理方法主要有最大值法、平均值法和加权平均值法。

最大值法是将一个像素点的R、G、B 3个分量等同于该像素3个分量的最大值。平均值法是将一个像素点的R、G、B 3个分量等同于其平均值。加权平均值法就是在平均值基础上根据人眼对每个分量颜色的最佳敏感度设计权重,再取平均值的方法。处理结果如图3所示。

由图3对比分析可知,最大值法结果图较亮,加权平均值法次之,平均值法结果图较暗。根据条形码图像 “条”、“空”排列组合的特点,图像灰度差异较大,所以本文选取适合人眼敏感度的加权平均值法对条形码图像进行灰度化處理。灰度化结果如图4所示。

2.3 数学形态学处理

数学形态学是一种非线性的图像处理和分析理论,其基本思想是用具有一定形态的结构元素,度量与提取图像中的对应形状,以达到对图像分析和识别的目的[18]。数学形态学的基本运算有4个:膨胀、腐蚀、形态开和形态闭[19-20]。本文以相机采集到喷码机喷制的Code128条形码为研究对象[21]。由于组成条形码的条不是连续的线状,而是中间有间隙,为了将颗粒不连续状条形码中的条变换成连续的线状,定位出条形码位置,选用数学形态学对条形码图像进行腐蚀操作[22-23]。腐蚀处理将背景变为白色,条形码变为黑色,腐蚀掉条形码图像中的白色间隙,从而定位出条形码图像的位置[24],得到利于后续识别的条形码图像。数学形态学方法主要有二值形态学和灰度形态学。因研究对象为灰度图,所以本文选用灰度形态学方法对条形码图像进行腐蚀操作。

3 实验及结果分析

实验平台:win7+vs2010+opencv2.4.10+Zbar

实验数据由相机在工业生产线上采集获得,根据前文条形码识别主要算法的研究成果,通过实验验证该算法的有效性。

图像处理算法主要有图像裁剪、图像灰度化和形态学处理等。其中,根据人眼对颜色的敏感度特点,选用加权平均值法对条形码图像进行灰度化处理,R、G、B权值分别为λR=0.30、λG=0.59、λB=0.11。根据图像特点,形态学处理选用灰度形态学中的腐蚀算法处理图像。图像处理结果如图6所示。

实验在Win7操作系统下,使用VC++开发工具,利用Zbar条形码识别功能完成条形码识别。识别结果如图7、图8所示。

图7显示了条形码图像包含的文本信息,其中包括加载的图像位置、条形码类型、条形码对应数字以及条形码倾斜角度。图8表示将识别结果显示在条形码图像上,以便与条形码图像上带有的数字进行对比分析。由图7与图8可知,条形码图像识别结果为:92679-216907-177E-07131,与条形码标示的结果一致,识别正确。

4 结语

本文主要基于图像处理技术对条形码图像进行去噪去模糊处理。首先,介绍条码的种类及编解码原理;其次,对工业生产中常见问题条形码的处理算法进行介绍,如噪声条形码和模糊条形码;第三,根据条形码图像特点,通过算法比较,选择合适的形态学处理方法对图像进行腐蚀;第四,利用Zbar提供的一维条形码译码算法对条形码进行识别。通过实验对本文条形码识别算法的有效性进行了验证,结果表明,本文算法能够有效提高条形码识别算法的准确性,满足工业生产需求。

参考文献:

[1] 邹冬旭,张维存,孟宇.编码信标识别方法在定位导航系统中的应用[J].计算机仿真,2014,31(5):415-418.

[2] 陆祥瑞.物流动态管理信息系统设计、开发及建立[J].计算机仿真,1994(4):17-23.

[3] 刘艳洋,曹玉东.EAN-13条形码图像的识别[J].计算机技术与发展,2015,25(6):202-205

[4] JOSEPH E,PAVLIDIS T.Waveform recognition with application to bar codes[C].Proceedings of 1991 IEEE System, 1991:129-134.

[5] LIU N Z,YANG J Y.Recognition of two-dimensional bar code based on fourier transform[J].Journal of Image and Graphics, 2003(8), 877-882 .

[6] GALLO O,MANDUCHI R.Reading challenging barcodes with cameras[C].IEEE Workshop on Applications of Comput Vision,2009:1-6.

[7] YAHYANEJAD S,STRM J. Removing motion blur from barcode images[C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops,2010:41-46.

[8] KREˇSI′C-JURI′C S, MADEJ D, SANTOSA F. Applications of hidden markov models in bar code decoding[J].Pattern Recogn Letters,2006,27(14):1665-1672.

[9] GALLO O, MANDUCHI R. Reading 1D barcodes with mobile phones using deformable templates[J].IEEE Transactions on Pattern Analysis & Machine Intelligence, 2010, 33(9):1834-1843.

[10] 姚俊,范永法,潘树国.基于模板匹配的有复杂背景的条码图像区域分割[J].河海大学常州分校学报,2003(4):24-27+67.

[11] 徐益峰,金晅宏,戴曙光.基于EAN-13条形码识别的改进算法[J].计算机与数字工程,2011,39(7):127-131.

[12] 陈丹晖,刘红.条码技术与应用[M].北京: 化学工业出版社,2006.

[13] 黄以群,董湘陵.条形码技术[M].北京:国防工业出版社,1991.

[14] 吴兆林.基于Zbar条形码图像识别的实现[J].数字技术与应用,2016(08):128-129.

[15] 赵雪青.基于自适应神经网络模糊推理系统的图像去噪算法研究[D].西安:陕西师范大学,2010.

[16] 咚成,王士同,满丽红.一种改进的PD图像去噪方法[J].计算机工程与应用,2010,46(15):176-178.

[17] 武丹,汪国昭.基于差分扩张和差分平移的无损信息隐藏算法[J].吉林大学学报,2010,40(4):1071-1074.

[18] 崔屹.图像处理与分析——形态学方法与应用[M].北京: 科学出版社,2000.

[19] 章毓晋.图像处理和分析[M].北京:清华大学出版社,2000.

[20] 章毓晋.图像分割[M].北京:科学出版社,2001.

[21] 刘东,高西全.QR码图像处理及识别算法的研究[J].电子科技,2003(22):42-44.

[22] 税午阳,周明全,耿国华,等.基于数字图像处理的 EAN13码识别[J].计算机工程与应用,2008,44(26):177-179.

[23] 衛权岗,马建红,吴非洋,等.使用手机进行ENA-13码的识别及应用[J].电脑编程技巧与维护,2011,1(16):107-111.

[24] 邓泽峰,熊有伦,黄小鹏.图像式一维条码识别的三重编码方法[J].光学工程,2010,37(3):133-137.

[25] 黄小英.基于图象的条形码识别的算法研究及设计[J].电子技术,2011,38(5):21-22.

(责任编辑:何 丽)

猜你喜欢

条码条形码形态学
中国条码技术与应用协会
条码微站
热线互动
创意条形码
从条形码到二维码
从条形码到二维码
条形码大变身
医学微观形态学在教学改革中的应用分析
基于固定条码与电子标签比对设备的设计
数学形态学滤波器在转子失衡识别中的应用