商品条码印制质量检测参数
——缺陷度的算法研究
2022-07-05中国物品编码中心刘睿智郝元胡敏苑静王惠永
中国物品编码中心 刘睿智 郝元 胡敏 苑静 王惠永
商品条码是用于标识商品及其属性的全球通用的条码符号,包括零售商品、储运包装商品、物流单元、资产、服务关系、参与方位置等的编码与条码表示。商品条码是商品包装的重要组成部分,商品条码被广泛应用于零售、流通仓储、图书、建筑、医药卫生等行业。商品条码的印制质量关系到商品条码在商品流通过程中识读的准确性和效率。
条码识读原理
条码是由条和空组成的,条、空的宽度不同,反射率也不同,空的反射率很高,条的反射率很低。条和空按照相应的码制规则排列组合,用于表示数字、字母或字符信息所形成的符号。
条码的识读是采用光电转换原理进行的。不同颜色的物体,其反射率是不同的,条码符号中的条单元反射率低,空单元的反射率高,条码识读器的光源通过光栏和第一个凸透镜后,将光照射到条码符号上,反射光会透过第二个凸透镜并聚焦照射到光电转换器上,光电转换器接收到条空单元不同强度的反射光并将光信号进行光电转换,转换成相应的电信号,电信号经过放大、滤波和整形后最终形成方波信号。由于条和空的宽度不同,电信号持续的时间也不同,进而可以得到条单元和空单元的宽度。根据条单元和空单元的宽度及数量,按照相应码制的参考译码算法进行解码,得到条码符号中所表示的数字字母等信息,再通过数据接口将这些信息传输到计算机中进行处理,就完成了条码符号的整个识读过程。
商品条码质量评价参数
商品条码符号的印制质量是条码能否被准确、高效识读的关键。扫描反射率曲线是沿扫描路径,反射率随线性距离(时间)变化的关系曲线,如图1所示(见下页)。通过条码检测仪扫描条码符号中的条与空,获得条码符号的扫描反射率曲线并进行分析,从而得到评价商品条码印制质量的参数,包括参考译码、光学特性参数、可译码度、Z尺寸、宽窄比、空白区宽度、条高、印刷位置等,见表1(见下页)。其中,光学特性参数由五个参数组成,分别是:最低反射率、符号反差、最小边缘反差、调制比和缺陷度。缺陷度是商品条码质量评价的重要参数。
表1 商品条码印制质量检验项目
图1 扫描反射率曲线及其特征参数示意图
缺陷度的定义
整体阈值是区分条单元与空单元的反射率界限值,等于最高反射率与最低反射率之和的二分之一,在整体阈值以上的各区域被认为是空单元,在整体阈值以下的各区域被认为是条单元。
缺陷度用最大单元反射率非均匀度除以符号反差表示。ISO/IEC 15416:2016《信息技术.自动识别和数据采集技术.条码符号印制质量测试规范.一维条码符号》中定义的单元反射率非均匀度(ERN)是指在扫描反射率曲线上,一个单元(包括空白区)中反射率最高峰值与最低谷值之差,或经过特定算法修正的最高峰值与最低谷值之差。单元反射率非均匀度是用于评价条码中条单元出现脱墨,空单元或空白区出现污点等情况对条单元/空单元局部的反射率所造成影响的重要参数,脱墨会导致在条单元的反射率曲线上出现峰;污点会导致在空单元的反射率曲线上出现谷。如果条单元中无峰或空单元中无谷时,其ERN为0。符号反差是反射率曲线上最高反射率和最低反射率之差。
缺陷度的影响因素包括条空单元中脱墨/污点的大小及对应的反射率值、测量时的孔径、条码符号的符号反差等。当测量孔径保持不变时,脱墨或污损的面积越大,缺陷度数值就会越大;如果符号反差越小,则缺陷度会越大;条码识读器在扫描识读的过程中的障碍就会越大,如图2所示。当脱墨/污点的大小大于测量直径时,在扫描反射率曲线上脱墨/污点的部分达到整个空/条单元时,就会导致不能译码或译码错误的现象发生。
图2 脱墨、污点及光孔直径、最大反射率非均匀度、符号反差与缺陷度的关系图
缺陷度算法分析
ISO/IEC 15416:2016与ISO/IEC 15416:2000相比,缺陷度的计算方法进行了改进,下面对改进前后的缺陷度计算方法分别进行分析。
改进前的缺陷度算法及示例
改进前的缺陷度算法
改进前算法中的单元反射率非均匀度是扫描反射率曲线上条空单元(包括空白区)中最高反射率与最低反射率的差值,若在条单元中无峰或空单元中无谷时,单元反射率非均匀度为0。取所有ERN中的最大值作为该次测量扫描反射率曲线的最大单元反射率非均匀度(ERNmax)。缺陷度用最大单元反射率非均匀度与符号反差的比值来表示,计算公式见公式(1)。
改进前的缺陷度算法示例
图3是条码符号某个条单元的反射率曲线示意图,该单元最大反射率非均匀度为最高反射率即B点的反射率(RB=23%)与最低反射率即C点的反射率(RC=5%)之差。假定该单元ERN值为所有条空单元的ERN值的最大值,该条码符号的缺陷度为公式(2):
图3 条码符号某个条单元的反射率曲线图
改进后的缺陷度算法及示例
改进后的缺陷度算法
改进后算法中ERN是指扫描反射率曲线上,一个单元(包括空白区)中反射率最高峰值与最低谷值的差值,或经过特定算法修正的最高峰值与最低谷值之差。当条单元中无峰或空单元中无谷时,其ERN为0。取所有ERN中的最大值作为该次测量扫描反射率曲线的最大单元反射率非均匀度(ERNmax)。缺陷度的计算公式见公式(1)。
改进后算法中的单元反射率非均匀度的计算方法发生了改变。改进后单元反射率非均匀度的计算方法如下:
A)定义一个缺陷调整系数“c”其值为0.075。
B)计算条单元的ERN值
1)对条单元的各峰值分别做如下计算:
(1)定义峰值为Maximum:
(2)峰值左侧的最低谷,定义为RminLeft;
(3)峰值右侧的最低谷,定义为RminRight;
(4)计算Maximum – RminLeft得出ERNleft;
(5)计算Maximum – RminRight得出ERNright;
(6)取 ERNleft与ERNright的较小值作为 ERN';
(7)设置参数F,当 ERN'≥c,F取值为1;当ERN'<c,F=ERN'/c;
(8)F乘以(ERNleft,ERNright)中较大值作为临时的ERN值。
2)上述各峰值计算出的临时ERN值的最大值,作为该单元的ERN值。
C)计算空单元的ERN值
1)对空单元的各谷值分别做如下计算:
(1)定义谷值为Minimum:
(2)谷值左侧的最高峰,定义为RmaxLeft;
(3)谷值右侧的最高峰,称为RmaxRight;
(4)计算RmaxLeft– Minimum得出 ERNleft;
(5)计算RmaxRight– Minimum得出ERNright;
(6)取 ERNleft与ERNright的较小值作为 ERN';
(7)设置参数F,当 ERN'≥c,F取值为1;当ERN'<c,F=ERN'/c;
(8)F乘以(ERNleft,ERNright)中较大值作为临时的ERN值。
2)上述各谷值计算出的临时ERN值的最大值,作为该单元的ERN值。
D)将所有条空单元的ERN值的最大值作为整个扫描反射率曲线的ERNmax。
改进后的缺陷度算法示例
改进后的缺陷度算法示例分为两种情况:一种情况是计算得出的ERN'<c,F=ERN'/c,单元反射率非均匀度是一个单元内(包括空白区)经过特定算法修正的最高峰值与最低谷值之差,见示例一;另一种情况是ERN'≥c,F=1,单元反射率非均匀度是指在一个单元内(包括空白区)最高峰值与最低谷值的差值,见示例二。
示例一:
以图3为例,计算该条单元的单元反射率非均匀度和缺陷度。
A)定义缺陷调整系数“c”其值为0.075。
B)计算条单元的ERN值
1)对该条单元的峰值即B点做如下计算:
(1)定义峰值即B点反射率为RB即23%:
(2)峰值左侧的最低谷即点A,定义为RA即20%;
(3)峰值右侧的最低谷即点C,定义为RC即5%;
(4)计算RB– RA得出ERNA=3%;
(5)计算RB– RC得出ERNC=18%;
(6)取 ERNA与 ERNC的较小值即ERNA作为ERN’;
(7)0.03<0.075,则F=ERNA/c=0.03/0.075=0.4;
(8)F乘以 ERNC即 0.4×18%=0.072作为临时的ERN值。
2)假定该峰值计算出的临时ERN值为该条单元的ERN值。
C)假定该条单元的ERN值是所有条空单元ERN值中的最大值,整个扫描反射率曲线的ERNmax=0.072。
条码符号的缺陷度计算公式为公式(3):
因此,当ERN’<c时,算法改进后得到的ERNmax是算法改进前的F倍,又因为F<1,算法改进后得到的ERNmax小于算法改进前的值,如图4所示(见下页);算法改进前后SC值固定不变,在这种情况下,算法改进后得到的缺陷度比改进前小。
图4 示例一中单元反射率非均匀度示意图
示例二:
以图5(见下页)为例,计算该条单元的单元反射率非均匀度和缺陷度。
图5 示例二中单元反射率非均匀度示意图
A)定义缺陷调整系数“c”其值为0.075。
B)计算条单元的ERN值
1)对该条单元的峰值即B点做如下计算:
(1)定义峰值即B点反射率为RB即23%:
(2)峰值左侧的最低谷即点A,定义为RA即10%;
(3)峰值右侧的最低谷即点C,定义为RC即5%;
(4)计算RB– RA得出ERNA=13%;
(5)计算RB– RC得出ERNC=18%;
(6)取 ERNA与ERNC的较小值即 ERNA作为ERN';
(7)0.13>0.075,则F=1;
(8)F乘以ERNC即1×18%=0.18作为临时的ERN值。
2)假定该峰值计算出的临时ERN值为该条单元的ERN值。
C)假定该条单元的ERN值是所有条空单元ERN值中的最大值,整个扫描反射率曲线的ERNmax=0.18。
条码符号的缺陷度计算公式为公式(4):
因此,当 ERN'≥c时,F=1,算法改进后得到的ERNmax等于算法改进前的值,如图5所示;算法改进前后SC值固定不变。因此,这种情况下,算法改进前后计算得到的缺陷度相同。
当条单元中出现微小的脱墨现象,脱墨处的反射率与一侧的反射率差小于缺陷调整系数c时;或当空单元出现微小的污损、油墨噪点现象,污损处的反射率与一侧的反射率差小于缺陷调整系数c时,算法改进后计算得到的单元反射率非均匀度是改进前的F(F<1)倍,即算法改进后得到的单元反射率非均匀度小于改进前的。因此,改进后算法计算得出的缺陷度小于改进前的缺陷度。由此可见,改进后的缺陷度算法削减了微小的脱墨、污损、油墨噪点等现象带来的单元反射率非均匀度,降低了缺陷度。
当条单元中出现严重的脱墨现象,脱墨处的反射率与一侧的反射率差大于缺陷调整系数c时;或当空单元出现严重的的污损、油墨噪点现象,污损处的反射率与一侧的反射率差大于缺陷调整系数c时,算法改进后计算得到的单元反射率非均匀度是改进前的F(F=1)倍,即算法改进后得到的单元反射率非均匀度等于改进前的。因此,改进后算法计算得出的缺陷度等于改进前的缺陷度。
综上所述,缺陷调整系数“c”的设置能够减少在条空边缘的微小孔隙或者污点的影响,以消除测量的不稳定性,使检测仪忽略极小的反射率差对缺陷度计算产生的影响。缺陷度算法的改进仅对非常微小的脱墨、污损、油墨噪点等现象导致的单元反射率非均匀度有一定的削减作用,降低了缺陷度;对于严重的脱墨、污损、油墨噪点等现象导致的单元反射率非均匀度并无影响,缺陷度与改进前完全相同。