采用GPU并行计算与图像匹配的工件条码识别算法

2017-01-13 09:04董夙慧孙中廷徐永刚
关键词:并行计算图像匹配

董夙慧, 孙中廷, 徐永刚

(1. 中国矿业大学 信息与电气工程学院, 江苏 徐州 221008;2. 江苏联合职业技术学院 徐州财经分院, 江苏 徐州 221011)

采用GPU并行计算与图像匹配的工件条码识别算法

董夙慧1,2, 孙中廷1,2, 徐永刚1

(1. 中国矿业大学 信息与电气工程学院, 江苏 徐州 221008;2. 江苏联合职业技术学院 徐州财经分院, 江苏 徐州 221011)

设计基于图形处理器(GPU)并行计算与图像匹配的条码识别算法.首先,设计基于归一化协方差的图像匹配算子,定位每个条码的位置.然后,根据条码面积、周长、形状因子,确定条码种类.最后,采用GPU并行计算方式完成条码解析.实验数据显示:与当前条码识别技术相比,所提算法能够同步识别多种条码,且在面对光照强度较暗或过高时,该算法具有更高的稳定性与抗干扰性,其仍具有更高的识别精度与效率. 关键词: 条码识别; 图形处理器; 图像匹配; 并行计算; 归一化协方差

制造工厂生产产品或中间件,都需要使用条码标识产品信息与状态[1-2].因此,各行各业要对大量的条码完成解析.目前,主流的条码解析机制分为人工机制和智能读码器.人工机制由人力手持激光条码扫描枪,对条码逐个扫描入终端PC;智能读码器机制由架设好的品牌读码器完成自动读码[3-4].但是,人工机制效率低且易受主观差异影响,智能读码器机制价格昂贵.当同一产品具有多个且多种类型的条码时,由于需要切换扫描枪或读码器模式,这两种机制往往不能完整解码且切换效率低.对此,研究人员将图像处理与计算机视觉技术引入条码识别中,对其展开研究,取得了一定成果.胡大辉[5]提出了边缘检测算法在污损条码识别,达到了多条码的目的.王鹏[6]提出了基于CPU和GPU结构的条码识别,使用GPU并行计算技术,实现了快速读码的目的.胡智宏[7]提出了基于平移匹配的倾斜条码快速识别系统,达到了多条码解析的目的.然而,上述图像处理技术在多种条码混合的情况下,难以用于高效率的条码识别中.为了提高条码识别系统的适应性,使其在多种条码且码制种类不同的环境下仍然能够精确高效地完成条码识别,本文提出了基于GPU并行计算与图像匹配的多种类条码同步识别算法.

图1 文中算法的机制架构Fig.1 Architectural mechanism of this algorithm

1 多类条码同步识别算法

首先,产品随传送带运动到工业相机镜下采集图像,随后基于归一化协方差的图像匹配完成每个条码定位,再提取每个条码的几何信息(面积、周长、形状因子).由于不同码制的几何信息不同,因此,可根据这些特征完成码制的判断.然后,构建GPU并行计算平台,对多个条码进行同步解析,达到高效识别的目的.最后,根据条码黑白条宽度与排序规则,完成多条码的快速识别.算法流程,如图1所示.

图2 多条码图像Fig.2 Bar code images

多条码图像,如图2所示.图2中,表面含有多个条码,且含有Code3,Code128两种码制的条码,而文中研究的码制种类有UPC,Code3,Code128,Codabar,且同一个产品可能最多同时出现这4种条码.因此,所提算法的目的是对多条码完成同步识别.

2 基于图像匹配的多类条码定位与分类

图3 文中算法的定位流程Fig.3 Locations flowchart of this algorithm

为了有效地对多码制条码进行同步识别,需要准确定位条码位置与码制判断,定位流程如图3所示.由于不同条码的长度、宽度不同,颜色主要为黑白色,其中,黑条与背景颜色差别明显,且黑色、白色子条间隔的区域灰度分布特征不同,因此,文中利用这些特征作为定位依据.首先,采用Otsu算法[8],对图2进行分割,得到包含条码的二值图,如图4(a)所示.把两个条码的区域分割出来,便于续图像匹配与细定位,分割阈值的确定公式为

(1)

式(1)中:σ2为背景区域与条码目标区域间的灰度方差,方差最大时的灰度为分割阈值;u0为背景区域的灰度均值;u1为目标区域的灰度均值;w0为背景区域在整张图像的所占比例;w1为目标区域在整张图像的所占比例.

获取条码大致区域后,采用基于归一化协方差进行细定位[9],即目标模板与图像间的区域灰度协方差为

(2)

式(2)中:R(i,j)为图像区域左上角(i,j)与目标模板的相似性度量值;E为区域灰度期望值;S为图像区域灰度能量;T为模板区域灰度能量.

基于归一化协方差的图像目标匹配具有统计模型简单、定位精度高、收敛速度快的优势[9].图像匹配结果,如图4(b)所示.由图4(b)可知:2个条码的位置被精确定位.完成精准定位,再提取条码长度、宽度、面积、周长和形状因子,构成码制判断向量.文中算法的形状因子的定义为

(3)

式(3)中:X为形状因子;c为长度;w为宽度;s为面积;l为周长.通过提取以上信息构成码制向量,由于不同码制的几何信息各不相同,因此,利用码制向量可以完成码制判断.

(a) 分割二值图 (b) 条码定位结果图4 文中算法的分割二值图和条码定位结果Fig.4 Segmentation binary image and locating result of this algorithm

3 基于GPU的多类条码同步识别

图5 条码识别结果Fig.5 Recognition results of bar code

得到多个条码的精确区域坐标和对应码制后,基于GPU并行计算平台,对多个条码进行同步解码,以节约系统运行时间.算法采用Navida公司主流独立显卡GPU430,开发环境为CUDA与VS2010.该GPU与传统的普通CPU(i5)相比,不但能高速解决图像复杂运算,而且可以并行处理多项运算任务整体效率.因此,文中算法采用该公司生产的GPU对多种条码同步解析.解码准则:首先,识别条码区域的白条、黑条宽度;然后,确定顺序;最后,依据国际统一编码规则,完成解码.

由于已经精准定位条码位置和码制,逐一累计条码白条、黑条的像素宽度,即可为解码提供数据[10],从而完成条码识别.计算复杂度由基于OpenCV的GPU模块完成,在并行计算平台上实现像素计数功能.该方法使用简单,利用GpuMat管理CPU与GPU之间的数据传输,且不需要关注内核函数调用参数的设置,使用过程中,只需要关注处理的逻辑操作[11].同步精准解析出2个条码,并实时显示结果,如图5所示.

图6 GPU条码同步识别流程Fig.6 Flow chart of GPU bar code synchronization recognition

通过采用GPU并行计算技术,在加快条码宽度运算的同时,也提高了计算精度,整个基于GPU的多条码识别机制,如图6所示.

4 实验与讨论

为了验证文中算法的抗干扰性与适应性,选择2组不同光照强度下的条码作为实验对象,分别为光照强度较弱(50 lx)和较强(2 000 lx),如图7(a),图8(a)所示.若工件上有污渍,先用酒精轻微擦洗,待吹干后,采集图像,每种光照强度下包含4种不同种类的条码.

为了体现文中算法的优势,将当前多条码识别性能较好的技术(文献[5],[7],[12])设为对照组.采用最大方差自动阈值分割,精准分割出包含条码区域的二值图像,如图7(b),图8(b)所示.基于归一化协方差的图像匹配精确定位每个条码位置坐标,并提取其几何特征向量,以判断码制.采用GPU并行计算平台完成对条码的解析,实现多种条码同步识别的功能,结果如图9(a)所示.由图9(a)可知:产品上的4个条码被精确锁定并提取,得到条码信息并在界面显示.

利用文献[5]识别技术对图7(a)进行处理,如图9(b)所示.由于单纯采用几何轮廓粗定位,条码解析采用单线程模式,且缺乏码制模式转换,在多个条码且条码种类不一的复杂应用背景下,往往对目标定位不准或识别失误.由图9(b)可知:右上角条码定位错误,第1,3个条码识别失误.

(a) 条码待识别图像 (b) 二值图 图7 光照强度较弱的条码待识别图像和二值图Fig.7 Bar code recognizes image and binary image in weak light

(a) 条码待识别图像 (b) 二值图 图8 光照强度过高的条码待识别图像和二值图Fig.8 Bar code recognizes image and binary image in strong light

利用文献[7]算法对图7(a)进行处理,如图9(c)所示.图9(c)中:条码定位正确,但是第3个条码识别失误.由于使用倾斜算子优化条码成像,提高了条码定位准确率,但是缺乏健壮的识别运算平台,只是单纯依靠普通CPU串行计算各个条码宽度,在多个条码且条码种类不一的复杂应用背景下,往往对目标识别失误.

(a) 文中算法 (b) 文献[5]技术

(c) 文献[7]技术 (d) 文献[12]技术图9 4种算法对光照强度过弱的条码识别结果Fig.9 Bar code recognition result of four algorithms in weak light

文献[12]采用水印条码检测,水印不可见性良好,与普通条码图像一致,其采用灰度纹理定位识别条码的技术具有通用性.因此,选择文献[12]技术与文中算法进行对比.利用文献[12]的识别技术对图7(a)进行处理,如图9(d)所示.由于文献[12]采用图像纹理特征定位条码,与文献[5],[7]采用的灰度或几何特征相比,其抗光照干扰较强,因此,定位精准度与文中算法相当.但是,其GPU是非并行模式,在多条码同步计算时,往往存在丢帧现象,导致条码最后几位识别的失误或遗漏,部分条码识别错误.

采用文中算法和文献[5],[7],[12]技术分别对图8(a)进行处理,结果如图10所示.图8(a)光照强度较强,由文中算法处理后的二值图(图8(b))可知:由于文中的定位方法采用灰度协方差,即区域特征,对区域整体灰度特征分布差分析特征,对光照过高有抗干扰性,所提算法仍然能准确解析条码,具有更高的精度(图10(a)).文献[5],[7]均采用局部极值特征,在光照变化中,容易受到影响,从而导致定位不准和识别失误(图10(b),10(c));文献[12]通过设计相应的提取算法获取图像纹理特征,具有较好的抗光照干扰能力,在面对光照强度较强时,仍然具有较高的定位精度(图10(d)),但该算法只能对单一的条码进行识别,无法对多条码同步识别,从而导致条码识别失败.

(a) 文中算法 (b) 文献[5]技术

(c) 文献[7]技术 (d) 文献[12]技术图10 4种算法对光照强度过高的条码图像的解码结果Fig.10 Bar code recognition result of four algorithms in strong light

为了体现算法的有效性与抗干扰性,测试6组不同光照条件下,4种算法的识别准确率,共计1 200个条码,测试结果如表1所示.表1中:Ev为光照强度;η为识别准确率.依据电脑CPU运行负荷,每次同步识别30个条码,同一光照条件下采集的1 200个条码,分40组进行,通过统计每组试验中完全识别正确的数量表征识别准确率,而测试识别失误或漏识别均为失效(η=完全识别正确数量/1 200).

表1 不同光照强度下的各算法的条码识别准确率Tab.1 Bar code recognition rate of different algorithms in different light intensity

由表1可知:在各种复杂的光照条件下,文中算法的识别正确率始终保持最高,由于文中算法依据区域整体灰度特征分布差定位识别,降低了光照强度的干扰,即使当光照亮度达到8 000 lx时,其识别正确率仍为89.26%;而文献[5],[7]两种算法受光照干扰影响较大,导致其识别正确率最低,即使在光照强度正常的条件下,由于这两种算法均非同步识别技术,其识别正确率只有60%左右;文献[12]由于采用图像纹理特征定位条码,定位精度较高,但是其GPU计算是非并行模式,在面对多条码同步识别时,易导致漏识别与局部识别错误.

再次以图7(a)为目标,利用4种算法进行测试,记录各算法的识别时耗,结果如图11所示.由图11可知:文中算法的识别效率最高,时耗仅为43 ms;而文献[5],[7],[12]的识别效率较低,分别为78,101,62 ms.原因是文中算法采用了Navida公司主流独立显卡GPU 430,通过对条码完成并行计算实现条码识别,有效缩短了识别时耗,而对照组技术则是利用传统的CPU(i5)处理机制,该GPU属于非并行模式,只能逐一对条码完成识别,使解码时耗较高.因此,文中识别技术具有更高的解码速度.

(a) 文中算法 (b) 文献[5]技术 (c) 文献[7]技术 (d) 文献[12]技术 图11 4种算法的识别效率测试Fig.11 Test for recognition rate of four algorithms

可见,文中算法具有较高的抗干扰性与适应性,在复杂环境下(光照强度较弱或过高),仍然能够准确识别定位条码,继而精确完成解码,使所提算法兼顾了较高的条码识别精度与效率.

5 结束语

为了解决多种条码环境下难以同步识别的问题,设计了基于GPU并行计算与图像匹配定位的多条码同步识别系统,实现对产品多条码的准确定位、码制判断、GPU并行计算.实验结果表明:与当前多条码识别技术相比,文中方法在多种条码同步识别的应用背景下,具有更好的精度和效率,为多种条码的快速识别提供了技术保障.

[1] 殷锐,陈金亮.面向DNC车间的刀具全寿命周期管理技术研究[J].组合机床与自动化加工技术,2013,2(3):134-136.

[2] 王宇,黄富贵,李兴旺.平面度误差统计特征实验[J].华侨大学学报(自然科学版),2014,35(5):487-491.

[3] 胡辉.检测算法在条码识别中的应用研究[J].计算机工程,2015,32(14):18-25.

[4] NARAYAN G R,JAMES M V.Barcode recognition from video by combining image processing and xilinx[J].Procedia Engineering,2012,38(12):2140-2146.

[5] 胡大辉.边缘检测算法在污损条码识别中的应用研究[J].包装工程,2015,43(2):71-76.

[6] 王鹏.航空信息系统中基于CPU & GPU结构的条码识别技术的研究[J].计算机科学,2015,33(10):86-100.

[7] 胡智宏.平移匹配在倾斜条码快速识别中的应用研究[J].包装工程,2015,21(21):283-287.

[8] ZHOU Shengbo,SHEN Aiqin,LI Gengfei.Concrete image segmentation based on multiscale mathematic morphology operators and otsu method[J].Advances in Materials Science and Engineering,2015,11(7):124-135.

[9] LUO Nan,SUN Quansen,CHEN Qiang.A novel tracking algorithm via feature points matching[J].PloS One,2015,10(1):e0116315-e0116324.

[10] PENG Shiyou,DONG Qinghua.GPU-based parallel prewitt algorithm implementation and its application on GPR[J].Computer Science and Application,2013,3(3):153-158.

[11] HUANG Yao,XIAO Bingjia,LUO Zhengping,etal.Implementation of GPU parallel equilibrium reconstruction for plasma control in EAST[J].Fusion Engineering and Design,2016,34(10):134-145.

[12] SATOSHI O.Coevolutionary design of a watermark embedding scheme and an extraction algorithm for detecting replicated two-dimensional barcodes[J].Applied Soft Computing,2015,710(24):34-35.

(责任编辑: 黄晓楠 英文审校: 吴逢铁)

Workpiece Barcode Identification Algorithm Using GPU Parallel Computing and Image Matching

DONG Suhui1,2, SUN Zhongting1,2, XU Yonggang1

(1. College of Information and Electrical Engineering, China University of Mining and Technology, Xuzhou 221008, China;2. Xuzhou Branch of Finance, Jiangsu Lianhe Technical Institute, Xuzhou 221001, China)

The workpiece barcode synchronization identification algorithm based on graphics processing unit (GPU) parallel computing and image matching was proposed in this paper. Firstly, the position of each barcode was located by designing image matching operator based on normalized covariance. Then the type of barcode was determined according to the barcode area, perimeter, and shape factor. Finally, the analysis of the barcode was finished by GPU parallel computing method. Experimental data shows that: compared with the current barcode recognition technique, this algorithm can identify a variety of barcode, this algorithm had a higher stability under the light intensity is dark or too high, and it had a higher recognition accuracy and efficiency. Keywords: barcode identification; graphics processing unit; image matching; parallel computing; normalized covariance

10.11830/ISSN.1000-5013.201701015

2016-03-04

董夙慧(1977-),男,副教授,主要从事图像识别与应用、网络安全、大数据的研究.E-mail:dongsuhui1977@aliyun.com.

江苏省自然科学基金资助项目(BD2011129)

TP 391

A

1000-5013(2017)01-0080-06

猜你喜欢
并行计算图像匹配
基于多特征融合的图像匹配研究
图像匹配及其应用
一种用于光照变化图像匹配的改进KAZE算法
基于初匹配的视频图像拼接技术
基于自适应线程束的GPU并行粒子群优化算法
云计算中MapReduce分布式并行处理框架的研究与搭建
矩阵向量相乘的并行算法分析
并行硬件简介
基于GPU的超声场仿真成像平台
基于Matlab的遥感图像IHS小波融合算法的并行化设计