基于机器视觉的一维和二维条码高速在线识别

2020-05-08 02:41李少波朱书德全华凤
计算机集成制造系统 2020年4期
关键词:条码条形码二维码

李少波,王 铮,杨 静,朱书德,全华凤

(1.贵州大学 机械工程学院,贵州 贵阳 550025; 2.贵州大学 现代制造技术教育部重点实验室,贵州 贵阳 550025)

0 引言

随着大数据时代的到来,数据量愈加庞大,而在数据的存储方式中,条码是存储数据的良好介质,具有存储信息量大、解码速度高、稳定强等特点。对生产线上产品的信息数据分类与保存具有重要的意义[1]。当今科技迅猛发展,现代企业正朝着高效、大型和集成化方向转型,传统依赖于人工的信息入库与分类方法具有主观性强、成本高和易产生视觉疲劳的缺点,已不能满足市场对生产数据在线处理的需求。因此,在数据采集过程中,如何采用高速度、高精度和高效率的数据分类与存储技术,保障企业生产节奏与产品信息精准追溯已逐渐成为企业生产领域的首要任务[2]。

在条码分类、识别和存储技术的前期研究中,文献[3]针对QR(quick response)码图像捕捉中的噪声问题,运用图像预处理与中值滤波算法优化了传统QR码识别算法,但在识码速度方面略有不足。文献[4]通过图像混合将二维码赋予视觉效果,保留了码值的错误修正预算,但该方法在具有复杂的环境噪声中识别率较低。文献[5]对条码信息进行加密并搭建了二维码检测系统,提出了具有较高安全性的二维码识别方法。为提高QR码的识别速度,文献[6]研究了图像的编码和解码过程,将QR码转换成不同像素的黑白图像,并设计了一种QR码解码系统,该方法对静态的条码检测具有较好的检测效果。针对贴在圆柱体表面的扭曲二维码,文献[7]提出一种圆锥曲线纠偏方案,实验表明该方案有效纠正了扭曲的二维码图像,但其识别速率较低且无法实时扫码。文献[8]提出一种基于二维码识别的光缆标签,通过对具有光缆标签二维码的定位与识别,实现信号回路的实时查看,但该方法需人工手持光缆标签设备进行码值识别。针对拍摄的PDF(portable data file)二维条码图像的特点,文献[9]利用梯度特征并结合数学形态学的方法,提出一种复杂背景下条码图像的定位方法,对复杂背景中的条码具有较好的分割效果。文献[10]构建了西克激光条码与PLC(programmable logic controller)可编程控制器相结合的仓储配送系统,通过对一维条码进行扫描检测,完成商品的自动分拣与配送,但该系统只适用于一维条码,没有对二维条码进行有效处理。文献[11]通过在条码溯源电子秤上集成条码识别模块,构建了社区菜店交易管理与追溯系统,实现了产品称量、身份验证、标签打印和数据上传等功能。也有学者尝试对工业生产中复杂背景下的条码识别,文献[12]提出一种基于边缘及水平集的复杂背景金属零件二维条码精确定位方法,实现了金属零件表面二维条码识别。文献[13]提出一种改进的SUSAN(smallest univalue segment assimilating nuclues)角点检测和半监督机制下的DPM(direct part marking)条码定位算法,实现了不同材料上基于角点聚类结果的DPM条码定位。针对车间的作业流程,文献[14]结合机器视觉光源优化问题,分析了不同类型和不同强度的噪声对恢复信息可分辨性的影响,提出一种基于图像溢出的信息恢复方法。而针对二维码定位的准确性,文献[15]提出了基于机器学习和级联过滤器结合的方法去除背景区域,实现复杂背景下二维条码区域的快速定位,但该方法处理时间较长,不适宜定位高速运动中的条码。文献[16]提出一种基于计算机视觉、FPGA(field-programmable gate array)和DSP(digital signal processing)混合设计的条码识别系统,对高速移动的二维码进行定位与识别。文献[17]提出一种基于不变矩和BP(back propagation)网络结合的条码识别方法,提取不变矩特征向量作为特征值输入BP网络,对其进行训练与测试,在一维条码中的识别准确率为92.9%。文献[18]提出一种改进的EAN-13(European article numbel-13)条形码定位和识别算法。

综上所述,在条码精准识别领域,针对图像背景、噪声等对条码识别率的影响,过滤背景噪声、利用聚类特征加快目标的检测速度和准确率是目前的主流方法,但对于高速运动条码识别的稳定性和准确性有待进一步提高。基于此,本文提出一种复杂背景下一维条码与二维条码同步定位与特征提取方法,计算出系统中各个参数与系统最高识码系数的关系,并提出了二维码和一维码混合的条码在线识别算法,以期为带条码包装、产品质量追溯、产品分类,故障诊断提供借鉴和参考。

1 条码在线检测和编码

随着目前数据存储形式的多样化发展,条码成为了产品信息的良好存储载体。通过识别条码信息,对相关产品进行分类、信息存储以及追溯是较为便捷的数据处理方式。如今,条码识别算法的识别时间已经控制在50 ms以内,可满足在线识别、分类,存储等一系列处理过程。经典的条码识别流程如图1所示。

如图1所示,条码随传送带高速移动,经过CCD(charge-coupled device)工业相机读取条码信息后将数据存入云端,系统将各个条码背景信息与条码信息一一对应,对条码进行分类与处理。针对条码背景复杂、背景动态变化快、噪声多等特点,利用高速CCD工业相机在条码高速运动时,迅速捕捉条码图像,并同时进行条码背景信息采集与信息云存储。具体编码方式原理如下。如图2所示为QR码的结构图。

二维码图形分为功能区和编码区两部分,每个QR码符号由一个正方形阵列组成,它由编码区域、寻像图形、分隔符、定位图形和校正图形等区域组成。符号的四周由空白区包围。编码过程中,实现在不降低识码速度的前提下,通过二维码纠错区进行码值纠错,保证二维码信息识别的准确性。以QR二维码为例,在任何q阶伽罗华域GF(q)中都能找到一个α,能用它的幂次表示q-1个非零元素。通过GF(28)生成QR条形码的纠错码,使用GF(28)中的元素组成一个循环队列:(1,α1,…,α254),其中α255=α0=1,称α是GF(28)的本原域元素。α0~α254可用0000 0001~1111 1111来表示。同时,α为P(X)=0的根。其中,以P(X)为模的多项式剩余类环构成28阶伽罗华域[19],可定义本原多项式为:

P(X)=X8+X4+X8+X3+X2+1。

(1)

设置校检矩阵与编码码字矩阵乘积即为编码码字多项式:

(2)

即编码码字多项式为:

C(X)=c0+c1x1+c2x2+c3x3+…+c25x25。

(3)

在编码过程中,编码机首先确定编码的字符类型,选择所需版本信息和纠错等级,采用既定规则,将数据字符转换为位流,再将位流转换为码字,将生成的纠错码字加到数据码字后,再按照设定的规则在QR结构图中将寻像图形、分隔符、矫正图形和码字,按规则排列,放入二维码矩阵。用8种掩模图形依次对符号的编码区域的位图进行掩模处理,生成版本信息和格式信息,构成QR结构图的符号区域。

在对二维码进行识别的过程中,利用CCD工业相机的高速曝光特性,实现每秒30帧以上的图像实时采集,当相机采集到完整二维码时,系统识码并返回码值。主要操作包括以下两步骤:①进行格式信息译码,确定二维码编码版本,消除码上的掩模,获得数据和纠错码字;②判断纠错码字是否错误,若无错误则进行数据码字译码,输出保存数据,若纠错码字检查出错,则进行纠错计算,将译码输出,保存。

2 复杂背景下图像高速定位与特征提取算法

2.1 系统识码系数与条码运动速度的关系模型

在高速视觉检测系统中,条码的不同属性和环境参数是影响系统稳定性的重要因素。通过分析系统各部分性能与实验参数,定义反映系统对条码识别优良情况的指标:单位时间内系统识别条码的能力系数φ。

当条码(以二维码为例)经过相机视野时,如图3a所示,定义相机视野为L视和W视,条码边长为L1和W1,待识别条码距视野底部边缘为d1,两条码间距始终为D1,传送带带速为v,运动方向为箭头所指方向。

当只关注一张条形码的采集情况时,如图3b所示,根据条码尺寸,当镜头视野大于条码尺寸,此时有,W视>W1,L视>L1。条码的运动过程为:当条码上边缘与镜头视野边缘重合,即开始采集条码,当条码上边缘与镜头上边缘重合时,采集结束。

考虑计算机处理图像时间,假设T为程序识别的必要时间。若T≪t,即当程序识别的必要时间绝对小的情况下,采集一张图片并识别的必要时间为:

(4)

若超过时间t后仍没有识别图片,则产生漏检。单位时间内系统识别条码的能力系数φ计算公式可表示为:

(5)

φ值越高,表示系统识别运动中条码的能力越强,将式(4)代入式(5),建立识码系数与条码运动速度关系模型:

(6)

由式(6)可知,当条码尺寸与镜头视野保持不变时,系统识码系数φ与带速v成正比。若T>t,则表示计算机处理时间过长,会产生正在处理的条码未处理完,而待处理条码已经进入相机视野的情况。称其为滞后时间:

Δt=T-t。

(7)

因此,在起始阶段,Δt时间内条码运行的路程可表示为

ΔS=Δt·v。

(8)

当ΔS=W视时,此时刚好错过一张条码。则系统丢失率为

ε=50%。

(9)

系统此时识码系数为:

(10)

当d1≤ΔS≤W视时,若ΔS恰好等于d1,则第二张条码也可识别,但第三张却无法识别,造成数据丢失。按此推算,当ΔS>d1时,第n张条码与标准位置相差的距离为:

S差=n·ΔS。

(11)

则S差=W视时,即可认为是一个误差循环周期,此时有

(12)

将式(7)和式(8)代入式(12)可得:

(13)

考虑条码个数,假设一个视野中条码个数为

P=W视/(D1+W1),

(14)

此时条码丢失率为

(15)

将式(14)代入式(15)推导可得:

(16)

此时系统识码系数为

(17)

显然,当带速vv,相机视野范围W视,条码尺寸确定时,系统识码系数与程序识别速度T成反比。式(17)中出现v2项,说明当其他条件不变时,v对于系统识码系数的影响程度较大。

当W视≤ΔS≤2W视时,同理有:

(18)

依此类推,当2W视≤ΔS≤3W视时有:

(19)

当(m-1)W视≤ΔS≤mW视时(m>1且m为正整数),

(20)

将式(20)代入式(10),可计算出此时系统识码系数为

(21)

2.2 基于Halcon的条码高速识别算法

对于条码识别流程,传统方式为采用如图4所示的处理步骤对条码进行定位和识别。首先通过预处理将原来彩色图像或灰度图像转化为二值图像;其次,为了简化计算量,通过定位确定二维条码的大致区域,裁切图像,去除无用背景干扰;然后,通过边界检测算法,确定二维条码的四条边界,实现精准定位;最后划分网格对二维条码的数据信息进行提取,将提取的数据传给后续的解码程序[20]。

为了提高识码效率,本文将条码图像预处理,对条码识别区域进行尺寸偏好设置,具体处理流程如下:

步骤1将条码极性设置为条码较亮,而底色较暗。

步骤2设置实验中条码属性数值条码码粒数和码粒像素的大小。

步骤3设置条码扫描线的条数。

在图像预处理之后,采用改进XLD(extended line descriptions)算法进行二维码定位,直接在复杂背景中定位出二维码的准确位置,从而提高系统的识码系数。图5为XLD二维码定位图,表1为条码识别算法中应用的Halcon算子。

具体算法流程如下:

步骤1创建XLD,调用Halcon中的亚像素边缘提取算子进行轮廓提取。

步骤2对XLD轮廓进行分割,采用线段分割方式。调用Halcon中的select_obj函数选择条码分割的轮廓。

步骤3将圆、直线等形状进行拟合。

步骤4将前三步的结果转化成世界坐标,获得图像的坐标信息。

步骤5提取轮廓特征。

步骤6获得轮廓的原始数据或将其转化成其他的数据类型。

步骤7输出结果并进行保存。

为了使算法能同步识别一维码与二维码,提出一种双模板中间变量识别算法,具体算法流程如图6所示。

具体处理流程如下:

步骤1初始化中间变量μ0=0,μ1=0。

步骤2工业相机抓取一帧图片。

步骤3创建一维条形码识别模板ω1,尝试进行一维码预识别。

步骤4判断识别结果δ1是否为零,若结果为零,表示该条形码为二维码或未识别条码,则创建二维码识别模板ω2,尝试进行二维码预识别。

步骤5若在步骤3中识别码值不为零,表示该条形码为一维码,将码值δ1赋值给中间变量μ1。

步骤6若在步骤3中δ1为零,但二维码码值δ2不为零,表示该条形码为二维码,将码值δ2赋值给中间变量μ1,此时中间变量μ1为当前条码(一维或二维)的码值。

步骤7若μ1-μ0≠0,则说明与之前一张图片中的码值不同,将μ1赋值给μ0并保存μ0与采集的图片;否则,说明前后两张条码的码值相同,则返回步骤2重新采图。

表1 算法所应用的Halcon算子

3 高速条码检测平台设计

如图7所示为笔者设计的一维与二维混合高速条码检测实验平台系统流程图。如果图8所示为课题组搭建的一维与二维混合高速条码检测实验平台,包括传送带、数据处理器、数据采集传感器、光源和其他机械支架等部分,其中用于输入与显示数据的触摸显示屏是32寸的工业触摸屏;视觉传感设备采用的是具有电子滚动快门的MindVision高速工业相机,它可以实时采集高速运动的待检测样本。数据处理器为树莓派B3;为了保证系统箱体内光线充足,在箱体上安装亮度可调的带状环境光源LED光;在工业相机外部安装Microscope LED Ring Light专用环形光源对检测样本进行补光,便于获得清晰的样本图像。设备采用可调速的电机驱动传送带工作;箱体外侧配有显示器,用于将检测结果可视化,用于降低数据处理器运算负荷的工作站是GPU1080显卡的戴尔工作站,主要用于数据分析。同时,树莓派B3具有无线通讯模块,可以实现检测实验平台与工作站间端到端的通信。工作站中装有SQL SERVER 2008 R2数据库,实现本地数据实时抓取作业,并自动进行实时数据云端存储。

传送带上贴有条形码,光纤传感器探测到条形码经过后,向图像采集部分发送触发脉冲;图像采集部分按照事先设定的程序和延时,分别向工业相机和照明系统发出启动脉冲,工业相机开始图像抓取,Microscope LED Ring Light专用环形光源提供照明,照明开启时间与工业相机的曝光时间匹配。相机抓取图像后,图像采集部分接收模拟信号通过A/D(analog to digital)转换将其数字化;图像采集部分将数字图像存放在处理器或计算机的内存中;处理器对条码图像进行处理、分析、识别,获得检测结果并保存。

4 实验结果分析

4.1 数据生成

为了验证本文所提的方法,实验中所使用的一维条形码与二维条形码均采用条码生成软件Active Barcode自动生成。条码代表的内容由随机字母和数字以及不同位数的“1”组成。需要说明的是:为更好地模拟实际生产中条码反光以及背景模糊复杂等情况,在各条码上均贴有反光透明贴纸,并将条形码随机贴在实验台的传送带表面。

4.2 数据存储

为存储系统识别的条形码内容,本文采用SQL Server 2008 R2数据库对所识别的条形码进行存储,并通过数据库作业服务进行本地数据实时云存储并可视化,如图9所示。

系统识别条码之后,将码值数据上传于SQL Server 2008 R2数据库中储存,如图10所示,值得说明的是:data的数值表示为条码的内容。条码背景图片保存入本地文件以便实时调用查询识别情况。

4.3 实验分析与对比

4.3.1 实验参数设置

在搭建的实验平台上对所提出的方法进行应用验证。根据系统整体识码系数的计算分析,以及实验设备与待识别条形码结构,设置如表2所示的物理量值和参数值。同时根据式(21)推导求得实验参数下的条码最优运动速度,推导过程如下:

该函数为二次函数,且抛物线开口向下,导数为零的点为其唯一极大值点,对其求导后得:

令其导数为零,则有:

进而求得:

采用MATLAB工具对本文所提方法的系统识码系数和带速关系进行仿真分析,其结果如图11所示。

表2 实验系统物理量与参数

4.3.2 条码移动速度与系统识码系数的关系

基于Halcon算子实现了混合条码高速识别算法,实验中采样图片1 000张其中一维码500张,二维码500张,图像像素为520×520 pix。在采样过程中,结合实际生产线上的反光、复杂背景干扰等因素,识别条码情况与算法对比如表3所示,在带速处于系统最优识码系数左右时,在1 000张测试条码中,实验设备在条码高速运行状态下,准确识别了971张条码,准确率达97.1%。

观察图11可知,当运动速度从0 mm/ms增加到8.00 mm/ms的过程中,整个系统识码系数随着速度增加而逐渐增加到最大值,后又由于程序识别时间与条码运动速度的限制逐渐减小。实际上,当条码速度从0 mm/ms逐渐增加时,随着其运动速度增加,系统单位时间识别出的条码数量增加,表现为φ逐渐增加。当条码运动速度过快,会导致在条码经过镜头视野时,计算机程序没能完成识别的工作从而导致漏检,表现为φ逐渐降低。当条码运动速度达到3.75 mm/ms时,当前实验系统识码系数达到理论最优。但考虑到实际生产设备、实验中传送带的稳定性以及工业相机的曝光时间等实际参数的限制。在实验时,将带速控制在3.00 mm/ms左右,模拟实际生产中的实时条码信息抓取与存储。

由图12对比各参数对系统识码系数的影响可知,当条码运动速度保持不变(3.00 mm/ms)时,两条码间距越小、条码宽度越窄、系统处理时间越短、镜头视野越大,系统整体识码系数越高;反之系统识码系数越低。当两条码间距为2.00 mm,条码宽度为7.00 mm,镜头视野为36.00 mm时,实验平台识码系数较高。

4.3.3 不同算法的实验结果对比

为了进一步验证本文所提算法的有效性和优越性,与目前较优的条码识别算法进行对比,其中包括基于计算机视觉、FPGA和DSP混合设计的条码识别系统、基于不变矩和BP网络的条形码识别算法、中值滤波算法、基于二维码的光缆标签定位算法以及基于机器学习和级联过滤器联立算法,对比结果如表3与图13所示。

表3 不同算法的实验结果对比

续表3

对比图13可知,实验中所用条形码数量较多,较好地反映了系统识码的性能。本文提出的算法对条形码定位时间较短,由于实验中条码运动速度较快,以及相机等硬件设备的限制,识码准确性适当降低,但仍可满足实际生产中高速运动条形码定位识别的需求。图14给出了移动条码在实验设备中的部分检测结果。值得说明的是:本文提出的方法需要检测设备周期性运动,检测环境和外界光线保持恒定不变;条码运动速度在3 mm/ms左右时,算法在有效时间内的实时计算与数据存储能力较优。

5 结束语

本文针对高速运动中的一维和二维条码检测识别和高速运动中多类条码分类,摒弃了传统识码的冗杂流程,通过XLD亚像素边缘检测对多类条码进行边缘定位并进行特征提取,结合二维码校准编码方式,提高了条码高速运动过程中算法的稳定性与准确性。通过理论分析与实验得到以下结论:提出了一种基于Halcon的XLD边缘检测识码方法,有效提高了系统定位条码的速度与准确性;对反映系统整体运行情况的识码系数(φ)物理量并进行仿真运算,找到了针对实验中常量的系统最高识码系数点;本系统对于高速运动条码具有良好的鲁棒性。未来将针对喷码零件分类与表面缺陷检测进行研究,并提高系统的稳定性和执行效率,为高速运动产品的非接触检测提供一种高效可视化的检测方法。

猜你喜欢
条码条形码二维码
热线互动
创意条形码
二维码
小康二维码
浅析影响商品条码质量的主要因素
日杂商品条码质量现状研究
从条形码到二维码
从条形码到二维码
条形码大变身
让严肃的二维码呆萌起来