一种基于线扫描的受损一维条形码识别方法

2021-09-12 03:49杨鑫黄诗浩李建刚欧海燕谢文明林金阳
关键词:解码

杨鑫 黄诗浩 李建刚 欧海燕 谢文明 林金阳

摘 要:针对受损情况下的一维条形码识别问题,基于线扫描技术提出一种准确、稳定、高效的识别方法。分析了一维条形码EAN码制的解码原理以及用线扫描方式处理一维条形码信息的过程;根据一维条形码出现的污点、划痕、弯曲等受损情况,设计了对应的算法,并且应用线扫描技术完成解码;最后,采集了1 000张一维条形码实验样本验证识别方法的准确性。结果表明:该方法能有效应对受损情况下的解码问题,且解码成功率维持在了较高水平;其中,受一维条形码弯曲程度的影响,弯曲样本的解码成功率为88%,略低于污点样本的95%以及划痕样本的91%;基于线扫描技术的受损一维条形码识别方法具有较强的鲁棒性。

关键词:一维条形码;解码;受损;扫描线

中图分类号:TP391.41

文献标志码:A

一维条形码(以下简称“一维码”)作为条形码的重要分支,在日常生活中十分常见,其本质是按指定编码规则排列的不同宽度的黑白条。它能存储包含产地、日期、商品类别等诸多信息,具有经济实用、输入快、可靠性高、信息量大以及易转移等优点,广泛应用于工业、农业、生物医疗等领域[1-3]。传统条形码识别技术依赖于便携式光电转换设备,其原理是扫码装置发出光线照到条形码上,利用黑白条码的不同反光率,将不同反射强度的光线通过光电传感器转化为电信号,再处理为数字信号还原成字符信息。该方法在单一条码的应用场景方面具有操作方便、简单快捷、可移植性高等优点;但是在识别受损条形码时,不仅存在错误率高,甚至是无法识别的情况,在批量处理条形码时还会存在速度过慢、人力成本高、效率低等缺点。

为了提高条形码的识别效率与准确度,基于图像处理的条形码识别方法在实际应用中扮演着重要的角色。首先,通过摄像头对条形码进行拍照;其次,应用图像处理算法对条形码进行定位、识别;再次,返回条形码字符信息[4-5]。目前,该方法的研究方向主要是针对不同的应用场景,开发不同的条形码识别系统。例如:文献[6]基于电子商务与快递行业的快速融合,将条形码识别技术应用于快递的快速分拣派送中。文献[7]将条形码集成技术应用于企业生产作业流程,大幅提升了流水线上的物料使用效率。文献[8]在电机等设备的辅助下,应用开发的条形码识别系统实现了图书信息的快速检索。这些应用仅仅针对完整无受损的条形码的识别。然而,条形码在使用、运输过程中,不可避免会出现划痕、污点、打印不全、重影等条形码受损的问题。针对这一问题,文献[9]提出了一种改进的RS纠错算法,提高了受损条形码的识别率,但是复杂度较高,计算机解码耗时长,图像处理前涉及大量的矫正问题,而且算法的鲁棒性也有待加强。文献[10]提出了一种新的基于机器视觉的识别方法,通过对计算机算法资源的合理配置,实现解码,存在可行性,但实际的解码过程却是对受损条形码进行重构,在重构的基础上完成解码,工作量大。因此,提高受损条形码的识别准确率有待进一步加强研究。

本文以一维码为研究对象,采用图像处理方法,提出基于扫描线的一维码识别方案,能有效提高受损一维码的识别效率,对一维码识别系统的开发与应用具有实际指导意义。

1 基于线扫描的一维码识别原理

1.1 完整一维码的线扫描识别方法

完整的一维条形码图像可分为两侧空白区、起始符、数据字符、检验符、终止符,它包含了若干宽细不等的黑白条和一串数字信息[11]。取一个二进制位的宽度为n,则对于一维EAN码,每0.33 mm宽的竖条代表一个二进制位,黑色竖条代表二进制“1”,白色竖条代表二进制“0”。标准EAN码由13个字符组成,其中代表数据符的字符由7个二进制位组成,如图1所示。

线扫描识别解码简单来说,就是处理过程中对一维码几个关键信息点内容的获取,包括单位二进制位寬度,扫描线相对于基准方向的角度等等。识别过程中计算机处理的伪代码如下所示:

处理完整的无受损一维码时,通过扫描线得到全部的有效黑白条的宽度信息,根据宽度信息能100%得到所需的一维码解码信息。

1.2 受损一维码的线扫描识别方法

生产实践中遇到的部分条形码的具体情况如图3所示。图3(a)是完整的无受损的一维码。此类型一维码直接采用与基准方向角度为零的扫描线就可以直接读取出一维码的相关信息。图3(b)是有污点或划痕缺陷的一维码。该类型一维码最佳解码方法是找到合适角度的完整的扫描线,扫描线避开不可处理区域且能贯穿整个一维码,进而准确识别一维码相关信息。图3(c)—(e)是有破损情况的一维码。其中,图3(c)的一维码部分破损,只要破损区域不联通,我们仍能寻找到合适角度的扫描线贯穿整个一维码,识别一维码的相关信息。图3(d)一维码的破损区域相互联通,一维码信息缺失过多,需要通过分段扫描线拼接的方法,将破损的一维码完整解码出来。标准EAN码包含95个0.33 mm宽的二进制位,宽度为3.135 cm,其中,11个二进制位属于起始符编码101、终止符编码101以及分隔符编码01010。根据一维码的宽度,我们可以将分段的信息拼接起来。图3(e)显示的一维码不仅破损区域联通,而且丢失了整段黑条或白条的具体信息。此类型的一维码属于不可处理的一维码,需要重新打码或借助其它信息进行人工判断。

除上述情况外,还会出现一维码弯曲的情况,如图4所示。若一维码弯曲程度过大,解码所需的有效信息缺失,即使通过矫正[14-15],也可能无法顺利还原有效信息,无法实现解码。若一维码弯曲幅度小,本文通过设定阈值、结果投票的方式确定竖条宽度信息。由图4可见:图中很多竖条出现不同程度的形变,导致同一竖条不同高度的宽度会出现偏差,通过扫描线、分隔线得到的宽度信息也会出现偏差。

平整状态时,称一维码的竖条宽度为标准宽度,其值为基本二进制位宽度的1~4倍。设弯曲时分隔线阈值为10%,通过扫描线、分隔线识别出的竖条宽度信息可接受范围为该竖条标准宽度的90%至110%。图4有10条扫描线,以图中从左往右第6根黑色竖条为例,扫描线、分隔线识别的竖条宽度信息依次为:1.27、1.27、1.21、1.15、0.99、0.94、0.88、0.99、0.99、1.01 mm。该竖条标准宽度为3个基本二进制位宽度,即0.99 mm,所以10%阈值下的竖条可接受范围为0.89~1.09 mm。低于0.89 mm的宽度信息归于2n,高于1.09 mm的宽度信息归于4n。最终由识别出的10个竖条宽度信息可知:2n占10%,3n占50%,4n占40%,取多数投票结果为3n,则该竖条宽度信息确认为0.99 mm。如果投票没有产生一个占多数的结果,就要考虑增加扫描线的数量。

面对一维码出现的污点、划痕、弯曲等受损情况,通过角度调整、扫描线拼接、设定阈值、结果投票等方法,能成功解码出一维码信息。

1.3 系统识别流程

条形码的识别流程如图5所示。为了提高识别精度,对图像的一维码区域进行码区去噪预处理。识别时首先判断一维码是否为无受损的平整状态,若无受损情况,扫描线直接解码。当一维码出现污点、划痕时,根据污点、划痕区域是否造成联通以及联通面积的大小判断是否需要分段扫描线。当一维码弯曲程度小时,通过设定扫描线分隔线阈值以及结果投票判断弯曲竖条的宽度信息,实现解码;否则,无法解码。

2 实验分析与对比

2.1 弯曲情况下的识别结果

当商品包装因外力等作用发生形变时,附着于商品上的一维码也有可能发生形变,出现弯曲现象,如图6所示。过度弯曲的一维码会解码失败,在实际操作过程中,应尽量避免一维码过度弯曲。

弯曲图片仍可以处理出足够数量的扫描线。由图6可以看出,有的竖条经由不同扫描线处理出来的分隔线宽度信息是不一致的。通过设定阈值、结果投票的方式确定弯曲竖条的宽度信息,最终得出一维码的解码信息为6911410829034(一些商品的一维码在印刷数字信息时会默认隐去前置码,图6中一维码的前置码是6),与标签上显示的一维码完全一致,证明了本文方法的有效性。

2.2 污点、划痕情况下的识别结果

图7是有污点的一维码解码情况。这种情况下,一维码竖条的宽度信息缺失,无法处理宽度信息。在一维码识别时,扫描线以一定的角度穿过一维码的有效区域,避开污损区域,从而实现有效的一维码解码。通过对扫描线的宽度处理,得到一维码信息为6954176874245,与实际一维码完全一致。有划痕的一维码的解码和污点情况类似。

2.3 破损情况下的识别结果

图8是一维码出现破损无法处理完整扫描线的解码情况。此类情况,按照步骤处理出合适数量的扫描线,通过综合多条扫描线上的有效信息实现解码,注意要选取足够数量的扫描线以覆盖解码所需的有效信息。图8(a)由于扫描线数量过少,扫描线拼接时有的分隔线处理的宽度信息缺失,出现了有效信息遗漏的情况,导致无法正常识别。实验结果表明,扫描线过多会造成处理时间的延长,一般来说,扫描线的数量选择10条。图中基于该方法的解码信息为6927073409193,与实际一维码信息一致,解码正确。对于图中黑白条内容缺失的部分,扫描线上无分隔线,无法给出有效信息,但将不同扫描线带有分隔线的有效信息拼接起来即可获取完整解码信息。

2.4 组合受损情况下的识别结果

受损一维码不仅有污点、划痕、弯曲、破损等单一受损情况,还有包含多种单一受损的组合受损情况,如图9所示。组合受损一维码解码时,综合单一受损一维码的解码方法,线扫描的解码方式也能实现一维码解码,解码结果与实际一维码信息一致;但由于受损情况的叠加,所以识别时间较单类受损的情况更长。

2.5 解码成功率

本文采集了1 000张一维码样本,其中,完整、污点、划痕、弯曲和破损的样本各200张。对1 000张一维码样本进行识别,解码情况见表1。由表1可以看出:污点、划痕这2种受损情况的一维码的解码成功率相对较高,为90%~95%;污点与划痕的解码原理类似,两者的解码成功率接近;弯曲和破损的样品存在缺失有效信息的情况,解码成功率相对较低。4种受损一维码的综合解码成功率能达90%。

文献[16]基于R-CNN神经网络,以两级目标检测体系结构为基础搭建了一个条形码精确检测网络,通过该网络可完成对一维码的解码。该方法摆脱了传统特征提取的限制,可应用于针对复杂环境下的条形码解码,但网络的训练过程较为复杂,同时区域定位偏差对结果影响较大。文献[17]基于PCA特征提取以及SVM算法完成一维码解码。该方法计算效率高,一维码解码时间较短,但解码准确率受SVM参数影响较大。文献[18]联合了亚像素内插的条码图像分辨率增强算法和灰度投影曲线的条码高分辨率重构算法,对检测到的一维码图像进行处理,面对混合样本集,其综合识别成功率能达到85.9%,但算法较为复杂。将本文的方法与文献[16-18]进行比较,对比结果见表2。针对污点、划痕、弯曲、破损等受损一维码的识别,本文提出的扫描线的解码方式具有较高的准确性和較强的鲁棒性。

3 结语

本文针对传统识别方法难以处理污点、划痕、弯曲等受损一维码的情况,提出了线扫描的识别方法。针对实际受损情况对一维码造成的影响,设计了对应的识别方案。一维码平整时,根据一维码有效信息的缺失情况判断扫描线角度以及是否需要分段扫描线处理。一维码弯曲时,根据弯曲程度设定阈值,通过结果投票实现解码。本文提出的线扫描识别方法能有效应对污点、划痕、弯曲、破损的受损情况,其中,污点、划痕样本的解码成功率能达到95%和91%,弯曲、破损样本的解码成功率为88%和86%。未来将该识别方法与视觉系统紧密结合,相信能为受损一维码的识别提供一种更加高效、准确的识别方案。

参考文献:

[1]RUSSELL S M, DOMNECH-SNCHEZ A, ROBERTO D L R. Augmented reality for real-time detection and interpretation of colorimetric signals generated by paper-based biosensors[J]. ACS Sensors, 2017, 2(6): 848-853.

[2]ZHANG Y, SUN J S, ZOU Y, et al. Barcoded microchips for biomolecular assays[J]. Analytical Chemistry, 2015, 87(2): 900-906.

[3]YANG M Z, ZHANG W, YANG J C, et al. Skiving stacked sheets of paper into test paper for rapid and multiplexed assay[J]. Science Advances, 2017, 3(12): 1-6.

[4]熊川, 嵇建波. 基于CCD的二维条形码检测系统[J]. 电讯技术, 2012, 52(10): 1670-1674.

[5]冯月春, 陈惠娟. 基于机器视觉的激光条形码识别技术研究[J]. 激光杂志, 2019, 40(6): 98-102.

[6]张萍, 谢子平, 史雪薇. “一扫而光”快递配送辅助软件的开发[J]. 河北工业大学学报, 2014, 43(3): 6-9.

[7]刘德智, 张范军. Barcode技术在ERP框架下生产过程管理中的应用研究[J]. 现代制造工程, 2010(5):16-20.

[8]赵文娇. 基于条码识别技术图书检索系统设计与实现[J]. 现代电子技术, 2019, 42(17): 124-128

[9]郭明. 残缺和破损条形码的图像识别技术研究[D]. 哈尔滨: 哈尔滨理工大学, 2014.

[10]严小红. 计算机视觉在条形码缺陷检测中的应用[J]. 华侨大学学报(自然科学版), 2017, 38(1): 109-112.

[11]张琪建, 李为民. 基于图像的一维条形码可识别性研究[J]. 制造业自动化, 2014, 36(9): 45-50.

[12]李慧, 欧阳鑫玉, 张锋. 基于图像技术的EAN-13条码识别系统设计[J]. 信息技术与网络安全, 2020, 39(3): 73-77.

[13]刘惠兰, 贾永泽, 石亚楠. 基于线阵CCD的条形码识别综合实验设计[J]. 实验技术与管理, 2018, 35(6): 159-161, 165.

[14]易帆, 李功燕, 许绍云. 基于多任务目标检测的条形码倾斜矫正算法研究[J]. 计算机应用与软件, 2019, 36(10): 139-144.

[15]刘婀娜, 罗予频, 华成英. 变形文档图像的矫正方法研究[J]. 微计算机信息, 2007, 23(3): 260-262.

[16]TIAN Y, CHE Z H, ZHAI G T, et al. BAN, a barcode accurate detection network[C]// 2018 IEEE Visual Communications and Image Processing (VCIP). United States: IEEE, 2018.

[17]MULYANINGTYAS C, IMAH E M. Barcode recognition using principal component analysis and support vector machine[C]// Mathematics, Informatics, Science, and Education International Conference (MISEIC 2018). Paris, France: Atlantis Press, 2018.

[18]WANG H, GUO C A. A novel method for barcode detection and recognition in complex scenes[C]// International Conference on Image & Graphics. Cham, Switzerland: Springer International Publishing, 2015.

(責任编辑:周晓南)

Abstract:

Aiming at the problem of one-dimensional barcode recognition under damaged condition, an accurate, stable and efficient identification method based on line scan technology is proposed. Firstly, the decoding principle of EAN code system and the process of processing one-dimensional barcode information by line scanning are analyzed. According to the characteristics of the damaged barcode, the corresponding algorithm is designed, and the line scan technology is applied to complete the decoding. In order to verify the accuracy of the recognition method, 1 000 samples of one-dimensional barcode are collected. The results show that the method can effectively deal with the decoding problem under damaged conditions, and the decoding success rate is maintained at a high level. Affected by the bending degree of one-dimensional barcode, the decoding success rate of curved samples is 88%, which is slightly lower than 95% of stain samples and 91% of scratch samples. The experimental results show that the damaged one-dimensional barcode recognition method based on line scanning technology has strong robustness.

Key words:

one-dimensional barcode; decoding; damage; scan line

猜你喜欢
解码
解码 四十五度仰望天空
文化解码
文化 解码
溯汉字之源 为阅读解码——识字教学与阅读教学结合策略探析
文明 解码
“软硬”兼施看视频 高清解码深入解读
软解码or硬解码?
祈使句的用法解码
3G信道解码芯片TV3G的设计
解码破译