APP下载

工业ECC200码快速定位算法研究

2017-09-29丁真真陈庆然许义宝李新华

软件导刊 2017年9期

丁真真 陈庆然 许义宝 李新华

摘 要:二维码优点众多,被广泛应用于各行业特别是工业生产领域,但由于工业环境差、工业生产产品有效二维码比例小、产品材质导致的二维码打印显示图案不同等原因,采集到的二维码图像存在光照不均或无法检测等情况,阻碍二维码优点的有效发挥。鉴于此,以工业ECC200码为研究对象,首先采用多尺度Retinex算法对因光照因素造成的异常图像进行处理,然后采用图像平面漫游的方式对复杂背景下的ECC200码进行定位,对圆点式ECC200码使用模板匹配的方式进行精确定位,从而提高识别准确率和识别时间。与常见二维码识别软件进行对比实验表明,提出的方法在识别时间和识别率上都更胜一筹。

关键词:工业ECC200码;多尺度Retinex;图像平面漫游;模板匹配搜索

DOI:10.11907/rjdk.171520

中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2017)009-0061-04

Abstract:The many advantages of two-dimensional code is the main reason why it is widely used in various industries, especially in industrial production.However, due to poor industrial environment, industrial products effective two-dimensional code is small,the different two-dimensional display caused by the product material, the two-dimensional code image is uneven illumination, or can not detect ,which hinder the advantages of the effective play of two-dimensional code. In this paper, the industrial ECC200 code is used as the study object. Firstly, the multi-scale Retinex algorithm is used to deal with the abnormal image caused by the illumination factor. Then, the ECC200 code in the complex background is located by image plane roaming. The dotted ECC200 codes are located using template matching to improve recognition accuracy and recognition time. Compared with the common two-dimensional code recognition softwares, it is shown that the method proposed in this paper is superior to recognition time and recognition rate.

Key Words:industrial ECC200 code; multi-Scale Retinex; image plane roaming; template matching search

0 引言

相较于一维码,二维条码具有信息量大、可靠性高、保密性好等优点[1]。近年来,二维条码技术广泛應用于工业控制领域,很多工业零部件、电子芯片和产品包装均采用二维条码技术进行标识,完成质量、产品溯源等功能[2]。较常用的一种是矩阵式二维条码(Data Matrix,以下简称DM码),Data Matrix码又可分为ECC000-140与ECC200码两种。其中, ECC200码因其容易演算、信息容量大及容错率高等优点,被广泛应用于工业领域。

依据ECC200码的图案特征,邹沿新等[3]提出根据码型特征搜索“L”型寻边区,实现了ECC200码的自动识别算法,可以克服背景噪声、几何失真等影响,但如果条码背景过于复杂,感兴趣区域难以精确会发生误检现象。王伟等[4]提出通过峰度值排序法及模块区域微调法进行条码定位,再利用遗传算法提取二维码信息的算法,其优点是鲁棒性好、可靠性高,缺点是处理速度慢,很难实现实时应用。工业ECC200码图像拍摄于工业生产流水线,需要考虑工厂环境(如曝光程度)、打印材质如纸张、金属零件、塑料等合成材料等对ECC200码识别的影响。由于环境光照、背景纹理等因素影响,传统识读算法不能有效对ECC200码图像进行译码,究其原因,主要是无法对图像中的ECC200进行定位。因此,针对工业ECC200码中的图像定位更加重要。

1 算法框架

针对目前工业条码检测算法的缺点,以工业ECC200码为例,研究工业环境中二维条码的定位识别技术,首先对捕获到的工业ECC200图像灰度化后使用多尺度Retinex算法进行局部增强[5],提高图像质量。再利用平面漫游粗定位选取条码图像,相对的圆点式条码图像经过搜索匹配精定位后加以识别,大大提高了解码效率。相比于现存的条码检测算法,本算法能够实现更快速有效的识别。具体流程如图1所示。

2 工业ECC200码预处理

2.1 图像灰度化

由图像采集设备获取的一般为彩色图像,在保持图像基本特征不丢失的前提下,减少图像的计算量,因此对彩色图像进行灰度化处理。彩色图像由红色、绿色、蓝色3个通道组成。在RGB模型中,R=G=B时,表示图形灰度化,R=G=B的值叫作灰度值。彩色图像的灰度化有3种常见方法:加权平均法、平均值法、最大值法。其中,最常用的是加权平均值法,其灰度化公式如下:Gray=R0.30+G0.59+B0.01endprint

(1) 通过式(1)求得Gray后,将原来RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)后就是灰度化的图像。

2.2 多尺度Retinex图像增强

多尺度Retinex(MSR)算法[6]是对多个单尺度Retinex算法[7](SSR)的综合,是一种既可很好完成图像的动态范围压缩,又可保证图像颜色保真度的图像增强方法。其数学表达式为:Ri(x,y)=∑Kk=1Wk(logIi(x,y)-log[Fk(x,y)*Ii(x,y)])

i=1,2…N

(2) 其中,i为颜色通道个数;N表示光谱带个数,N=1时代表灰度图像,N= 3 代表彩色图像(RGB);Ri(x,y)为第i个通道的增强图像;Ii(x,y)为输入图像的第i个颜色通道或第i个波段;*表示卷积运算。Wk是对应第K个尺度的权重因子,且∑Kk=1Wk=1,K表示尺度函数的个数,当K=1时,多尺度MSR转化为单尺度SSR,此时权重Wk=1。Fk(x,y)表示第K个环绕函数,一般Fk(x,y)取高斯函数为F(x,y)。F(x,y)=Ce-(x2+y2)/σ2

(3) 其中,σ为高斯函数的标准偏差,归一化条件为∫∫F(x,y)dxdy=1 ,σ的选取标准请参阅文献[8]。在实际应用中,尺度个数一般选择大、中、小3个尺度,大尺度选择80及以上,中尺度选择30~80,小尺度选择30以下。这样的MSR可以实现图像动态范围压缩、颜色恒常和色彩重现。

通常利用MSR(Multi-Scale Retinex)方法处理后的图像像素值会出现负值, 而且会出现超出显示器显示范围的情况,这就需要将其平移和压缩到显示器显示的范围内,于是利用gain/offset方法对图像像素进行修正,如式(4),再将修正后图像的灰度值利用式(5)映射到显示器显示的灰度范围(0~255)内:R0i(x,y)=G×Ri(x,y)+offset

(4)

R1i(x,y)=255×R0i(x,y)-rminrmax-rmin

(5) 其中,Ri(x,y)和R1i(x,y)分别为图像的输入及输出灰度值。对增益系数G和偏移量offset的选取做了大量研究,结果表明,由于利用MSR处理后各种图像具有非常类似的直方图分布,因此对于大多数图像,这两个量可以取固定值,而不会影响图像的增强效果,选取G= 3和offset=50,rmax和rmin分别为修正后图像的最大灰度值和最小灰度值,R1i(x,y)为映射后用来显示的图像灰度值。

多尺度Retinex算法实现步骤如下:

步骤1:将灰度图像中像素点的灰度值的数据类型转化成double型。

步骤2:确定高斯环境函数,根据式(2)与式(3)可以计算出式(3)中C=1πσ2,此处选取3个不同的标准偏差σ值为15、80、250。

步骤3:在3种尺度下,使用3种不同的高斯环境函数对图像进行卷积操作,其实现过程为:DFT[DFT(F(x,y))DFT(R(x,y))];

步骤4:利用(2)式计算3种尺度下得到结果的加权平均Ri(x,y)。

步骤5:对灰度值进行修正,方法如下:①根据增益系数G和偏移量offset的选取,利用式(4)计算得修正后图像R0i(x,y);②计算修正后图像像素的最大灰度值rmax和最小灰度值rmin;③利用式(5)得到可在显示器显示范围内的灰度值R1i(x,y),即得到图像经过增强后的图像R=R1i(x,y)。

多尺度Retinex算法的增强效果主要受尺度参数个数和尺度参数值的影响,尺度参数选择不同,会产生不同的增强效果,对于对比度低与光照不均的ECC200条码图像经过增强之后可以得到如图2(b)图所示的ECC200图像。可以看出,处理后的图像细节清晰、色调明显。

3 图像定位

图像定位是二维码译码之前的最后一步,也是最关键的一步,关系到能否译码以及译码的正确与否。在采集工业ECC200码图像中,发现存在工业零件过大,或背景复杂导致ECC200码过小无法有效检测的问题,以及ECC200码圆点式打印,普通算法无法识别的两个典型问题。针对以上问题,使用平面漫游和模板匹配搜索算法加以解决,定位准确且高效。

3.1 平面漫游与手动选取

在工业ECC200图像中,多数存在图像过大、背景复杂而ECC200码区域过小的难题。某些图像中,人眼都无法确定ECC200码的位置,平面漫游是解决该类问题的首选方法,利用主窗口、缩略图、预览框之间的比例关系,移动预览框,实现在大图中显示与缩略图标示区域对应的图像内容的功能,以类似“放大镜”的方式,将较小的ECC200条码标示出来。

平面漫游步骤如下:①将工业ECC200码图像加载到主窗口,如图3(a)所示;②拖动缩略图中红色矩形框,预览框就会显示红色矩形框中ECC200图像的放大细节;③使用定位框(绿色矩形框,见图3(b))选定放大后的有效ECC200码区域,并将其另存为如图4所示图像,另存为的图像作为解码的输入图像,使得对ECC200码的识别变得容易,如图5所示。

3.2 模板搜索匹配

传统ECC200码图像中,黑白模块是单位矩形模块,因而相关解码标准中在定位时只识别矩形模块。在工业

ECC200图像中,圆点式ECC200码(见图6)也很常见,传统识别算法不能定位识别。本文提出模板搜索匹配算法,按照标准模板样式对工业图像中的ECC200码进行精确定位,极大节约了定位时间。

模板搜索匹配就是在一幅图像中自动搜寻已知模板图像的算法 [9]。已知图像中有要找的目标图像,且该目标与模板有一定程度的相似,通过比较待检测图片和模板图像的相似性,可以在图中找到目标图像,确定其坐标位置,完成模板匹配。常用的模板搜索方法主要有平方差匹配與相关匹配等,本文采用标准相关匹配算法[10]。endprint

本文研究的目标就是检测工业ECC200图像中与ECC200码最匹配的区域,为了确定匹配区域,需要将滑动模板图像和工业ECC200图像进行比较。按照从左向右,从上至下的顺序,依此将滑动模板图像与待搜索图像进行比对,并度量计算它是“好”还是“坏”。

标准相关匹配中具体实现公式如下:R(x,y)=∑x′,y′(T′(x′,y′)·I′(x+x′,y+y′))∑x′,y′T′(x′,y′)2·∑x′,y′I′(x+x′,y+y′)2 (6) 其中,(x,y)表示子图在待匹配图形中的坐标值,T(x′,y′)表示待匹配图像中(x′,y′)點的像素数值,I表示待匹配图像,R(x,y)是计算的结果。利用这种方法进行匹配时,R(x,y)数值越大代表相似程度越高,当R(x,y)=1时,代表待匹配图像中有与模板完全一致的图形。

标准相关匹配搜索功能步骤如下:①加载模板(见图7(a))和待匹配的图片(见图6);②对待测图像进行灰度化和形态学膨胀处理;③对待匹配图像与模板图像执行标准相关匹配,并归一化结果,比较找到最匹配的点,以及该点的值;④在最匹配的图像附近画一个跟模板同样大的矩形(定位框,见图7(b)),提取和模板图像相同大小的码区域,即待匹配图像中的ECC200图像,并直接显示识别结果。

4 实验与分析

ZXing[11](Zebra Crossing)是Google Code提供的一个关于1D/2D条形码编码解码的图像处理库,它提供二维码和条形码的生成和解析方法。基于ZXing库,利用C#语言整合图像处理算法。在二维码识别软件中,Image-pro识别软件能够对2D和3D图像进行处理、分析和增强。Halcon识别软件是一款机器视觉软件,由德国MVTec公司研发,其中包含数千个图像处理的函数库[12]。Xpress Smart Scan是既可以生成,也可以识别二维条码的软件,它为用户提供了图像识别之前的很多图像预处理功能。

实验以图3(a)所示的117张图像样本集1和图6所示的57张图像集样本集2作为研究对象,以上述3种软件和本文软件对两样本集识别时间、识别率及结果作对比,验证本文软件的有效性。

从图8和图9中可以综合得出,本文软件相较于Image-pro、Xpress Smart Scan、Halcon在识别时间、识别数量及识别率3个指标上效果突出,采用模板搜索匹配算法,针对样本集2的识别率达到100%,在工业ECC200码的识读上有很强的应用价值。

5 结语

本文阐述了工业ECC200码的快速检测定位算法。由于工业ECC200码图像在获取时易受背景图像和光照环境因素等影响,提出一种实用的工业ECC200码识别算法,并开发出二维码识别软件。在对图像进行灰度化之后,采用多尺度Retinex算法增强工业ECC200码图像的细节及边界。然后,采用平面漫游与手动选取对工业ECC200码图像编码区域比例小的图像进行定位,利用模板搜索匹配对圆点式ECC200码搜索定位,检测结果正确且检测用时短。在一般二维码识别及工业二维码识别上都优于互联网上常用的二维码识别软件。

参考文献:

[1] LIU NINGZHONG,YANG JINGYU. Encoding theory and design of three-dimensional barcode[J].Chinese Journal of Computers,2007,30(4):686-692.

[2] LIU NINGZHONG,SU JUN,SUN HAN. QR code detection and recognition algorithm for industrial control[J].Acta Electronic Sinica,2011,39(10):2459-2463.

[3] ZOU YANXIN, YANG GAOBO.Study for datamatrix two-dimensional bar code decoder image preprocessing[J].Computer Engineering application,2009,45(34):183-185.

[4] 王伟.标刻在金属零件上的二维码数据提取方法[J].计算机辅助设计与图形学学报,2012,24(5):612-614.

[5] 邵振丰,白云,周熙然.改进多尺度Retinex理论的低照度遥感影像增强方法[J].武汉大学学报:信息科学版,2015,40(1):32-35.

[6] SHEN XIAOLE, SHAO ZHENFENG, YAN BEIBEI. A novel dodging algorithm for remote sensing images affected by thin clouds[J]. Geomatics and Information Science of Wuhan University,2013,38(5):543-547.

[7] JOBSON D J, RAHAMAN Z, WOODELL G A. Properities and performance of a center/surround retinex[J]. IEEE Trans on Image Processing,1997,6(3):451-462.

[8] JANG JH, KIM SD, RA JB.Enhancement of optimal remote sensing images by subband-decomposed multiscale retinex with hybrid intensity tranfer fuction[J].IEEE Geoscience and Remote Sensing Letters,2011,8(5):983-986.

[9] 杨勇成.一种新型的快速模板匹配算法[J].电子工艺技术,2010,31(3):128-129.

[10] ZLINGH.图像算法、图像匹配[EB/OL].http://blog.sina.com.cn/s/blog_5c6f79380101bf1h.html.2015.

[11] Project description[EB/OL].http://zxingnet.codeplex.com/.

[12] J TAN, L LI, Y WANG, et al. The quality detection of surface defect in dispensing dack-end based on HALCON[C]. International Conference on Cybernetics, Robotics and Control (CRC),2016.

(责任编辑:孙 娟)endprint