一种基于工业视觉相机缺陷条码识别及纠错补全算法的制作方法

摘要: 本发明涉及条码识别,更具体地说,本发明涉及一种基于工业视觉相机缺陷条码识别及纠错补全算法。背景技术:1、一维条码作为产线物料标识与信息追溯的重要载体,广泛应用于...
一种基于工业视觉相机缺陷条码识别及纠错补全算法的制作方法

本发明涉及条码识别,更具体地说,本发明涉及一种基于工业视觉相机缺陷条码识别及纠错补全算法。

背景技术:

1、一维条码作为产线物料标识与信息追溯的重要载体,广泛应用于制造现场的自动化检测与分拣环节。工业视觉相机安装于产线传送带上方,对进入视场的条码标签进行成像,识别设备依据所采集的条码图像提取条纹结构信息并解码得到条码对应的字符信息,进而支撑产线物料流转与质量追溯管理。在实际产线环境中,条码标签会出现局部条纹缺损、边缘残缺或污渍覆盖等情形,识别设备需要在此类情形下仍对条码图像进行条纹结构分析与解码处理。

2、现有技术存在以下不足:

3、目前,现有技术在条码存在局部缺损的情况下,缺乏对缺损位置的精确划定与残留结构信息的有效利用,容易将存在缺损的条码直接判定为无法识别,或依赖人工目视复核进行补录,导致条码自动识别通过率降低,进而造成产线物料追溯效率降低与人工复核成本增加的问题,因此,提出一种基于工业视觉相机缺陷条码识别及纠错补全算法。

4、在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

1、为了克服现有技术的上述缺陷,本发明的实施例提供一种基于工业视觉相机缺陷条码识别及纠错补全算法,通过运用条纹结构归一化、缺损区定位与规格清单生成、编码规则约束下的候选补全生成以及校验位筛选还原相结合的方式以解决上述背景技术中提出的问题。

2、为实现上述目的,本发明提供如下技术方案,一种基于工业视觉相机缺陷条码识别及纠错补全算法,具体操作流程如下:

3、步骤s1:采集条码图像的条纹宽度序列,读取条码首尾静区边界位置,通过条纹宽度序列以及静区边界位置对各条纹按模块尺度归一化生成完好位结构特征;

4、步骤s2:检测缺损区沿条码方向的缺损区跨度,结合完好位结构特征对缺损区跨度进行重新划分,定位缺损覆盖的数据位边界后输出缺损位规格清单;

5、步骤s3:调取字符条纹映射编码规则,基于缺损位规格清单在字符条纹映射编码规则约束下对各缺损位逐位枚举合法宽度组合,筛除违反编码规则的组合并生成缺损位候选补全序列;

6、步骤s4:读取码制校验位,利用校验位对缺损位候选补全序列筛选满足校验关系的合法补全组合,将合法补全组合与完好位合成还原后完整条码,解码输出完整条码识别数据。

7、在一个优选的实施方式中,在步骤s1中,以产线光电触发信号的上升沿作为采集起点,选取一个采集周期作为图像采集时间窗,由工业视觉相机对进入视场的条码标签成像,获得条码图像;

8、沿垂直于条纹延伸方向的扫描线逐像素读取灰度值,对相邻像素的灰度值差值取极值位置作为灰度跳变边缘,登记各灰度跳变边缘的横坐标,将相邻两个灰度跳变边缘的横坐标作差得到条纹宽度序列;

9、沿扫描线自图像两端向条码中心方向搜索第一个灰度跳变边缘,将图像首端搜索到的灰度跳变边缘横坐标作为首静区右边界横坐标,将图像尾端搜索到的灰度跳变边缘横坐标作为尾静区左边界横坐标,以尾静区左边界横坐标与首静区右边界横坐标之差得到条码本征跨度。

10、在一个优选的实施方式中,在步骤s1中,在条纹宽度序列中取最小元素作为初始模块宽度,以条码本征跨度与初始模块宽度的比值取整得到本征模块总数,再以条码本征跨度与本征模块总数的比值得到精化模块宽度;

11、以各条纹宽度与精化模块宽度的比值取整得到条纹模块数,以其比值与取整结果之差的绝对值得到量化残差;

12、采用中位数绝对偏差法,依据全部条纹量化残差的中位数及其绝对偏差中位数确定量化残差容差。

13、在一个优选的实施方式中,在步骤s1中,将各条纹的量化残差与量化残差容差比较:

14、量化残差大于量化残差容差的条纹判定为失真条纹,不计入完好位模块数序列;

15、量化残差小于或等于量化残差容差的条纹判定为完好条纹,其条纹模块数按位置顺序计入完好位模块数序列;

16、在完好位模块数序列基础上采用自相关运算提取字符模块步长;由精化模块宽度、字符模块步长与完好位模块数序列共同构成完好位结构特征。

17、在一个优选的实施方式中,在步骤s2中,沿条码方向以一个字符模块步长对应的像素长度为窗口逐段滑动,在每一窗口内取灰度最大值与灰度最小值之差与两者之和的比值作为局部条空对比度;

18、将连续多个局部条空对比度均低于对比度判定下限且窗口内不存在灰度跳变边缘的相邻窗口合并为缺损区,取该缺损区终点横坐标与起点横坐标之差作为缺损区跨度;

19、结合精化模块宽度将缺损区跨度换算为缺损模块总数;

20、以首静区右边界横坐标为原点,将缺损区起点横坐标换算为缺损区起点模块偏移,结合字符模块步长确定起始缺损位索引与终止缺损位索引,得到缺损位数量与各缺损位左边界横坐标,各缺损位应有模块数取为字符模块步长;

21、起始缺损位索引至终止缺损位索引之间的全部数据位索引构成缺损位索引集合。

22、在一个优选的实施方式中,在步骤s2中,对起始缺损位与终止缺损位划定可见子区间,在完好位模块数序列中读取落入可见子区间的条纹模块数登记为部分可见模块约束,对于完全落入缺损区跨度所占区间的中间缺损位,其部分可见模块约束记为空集;

23、当缺损模块总数小于字符模块步长且部分可见模块约束已覆盖对应缺损位全部模块位置时,将对应缺损位从缺损位索引集合中剔除,缺损位数量相应减一;

24、将缺损位数量与可补全位数上限比较:

25、缺损位数量大于可补全位数上限时判定为不可补全条码并输出复核指令;

26、缺损位数量小于或等于可补全位数上限时,由缺损位索引集合、各缺损位左边界横坐标、各缺损位应有模块数与各缺损位部分可见模块约束构成缺损位规格清单。

27、在一个优选的实施方式中,在步骤s3中,按码制标识调取字符条纹映射编码规则,字符条纹映射编码规则记载合法字符值与各自对应的条纹模块数向量;

28、对缺损位索引集合中的每一缺损位,按缺损位应有模块数在字符条纹映射编码规则中检索模块数向量各元素之和等于应有模块数的行,将对应字符值与模块数向量登记为初始候选集合;

29、对部分可见模块约束非空的缺损位,采用切比雪夫距离计算各候选在可见模块位置上与实测模块数之间的候选结构偏差,将候选结构偏差大于模块数容许偏差的候选从候选集合中筛除,保留候选结构偏差小于或等于模块数容许偏差的候选;

30、对部分可见模块约束为空集的缺损位,不执行候选结构偏差筛除,保留其初始候选集合。

31、在一个优选的实施方式中,在步骤s3中,将各缺损位保留的候选按缺损位索引顺序作笛卡尔积得到候选完整编码集合;

32、对完好位模块数序列中每一完好位,在字符条纹映射编码规则中检索模块数向量一致的行,取字符值按位序登记构成完好位字符值序列;

33、由候选完整编码集合构成缺损位候选补全序列。

34、在一个优选的实施方式中,在步骤s4中,在完好位字符值序列的末位数据位处读取校验位;对缺损位候选补全序列中每一候选完整编码,计算候选校验值;

35、将各候选校验值与校验位比较,满足相等关系的候选个数等于一时,将对应候选作为合法补全组合;

36、满足相等关系的候选个数大于一时,在满足相等关系的候选中取候选结构偏差最小者作为合法补全组合;

37、满足相等关系的候选个数为零时,输出不可补全条码标记与复核指令。

38、在一个优选的实施方式中,在步骤s4中,当完好位字符值序列不含末位数据位时,不执行候选校验值与校验位比较,直接取候选结构偏差最小的候选作为合法补全组合;

39、将合法补全组合中的各字符值按缺损位索引回填至相应数据位,与完好位字符值序列按位序拼接得到还原后完整条码;

40、按字符条纹映射编码规则对还原后完整条码逐位转译输出完整条码识别数据。

41、本发明的技术效果和优点:

42、本发明通过采集条码图像的条纹宽度序列,读取条码首尾静区边界位置,通过条纹宽度序列以及静区边界位置对各条纹按模块尺度归一化生成完好位结构特征,检测缺损区沿条码方向的缺损区跨度,结合完好位结构特征对缺损区跨度进行重新划分,定位缺损覆盖的数据位边界后输出缺损位规格清单,调取该码制的字符条纹映射编码规则,基于缺损位规格清单在编码规则约束下对各缺损位逐位枚举合法宽度组合,筛除违反编码规则的组合并生成缺损位候选补全序列,读取码制校验位,利用校验位对缺损位候选补全序列筛选满足校验关系的合法补全组合,将合法补全组合与完好位合成还原后完整条码,解码输出完整条码识别数据,存在局部缺损的条码得以在产线现场完成自动纠错补全与识别,无需人工目视复核介入。