APP下载

基于深度学习的条码识别算法

2021-03-07周为鹏徐白龚佳卿朱霞

电子技术与软件工程 2021年19期
关键词:条码条形码解码

周为鹏 徐白 龚佳卿 朱霞

(金陵科技学院网络与通信工程学院 江苏省南京市 211100)

1 引言

随着我国经济的飞速发展,人们的收入水平也不断提高,消费者对便利快捷的网上购物越来越热衷起来,电商也从无到有的迅猛发展起来。国家邮政局局长马军胜曾表示,我国已经成长为世界上发展最快、最具活力的新兴寄递市场,包裹快递量超过美、日、欧等发达经济体总和,对全球增长贡献率超过50%,已经成为全球邮政业的动力源和稳定器,快递行业在国民经济的发展中越来越重要。据调查数据显示,2019年全国快递业务量突破600亿件,累计完成635.2亿件,同比增长25.3%,增量规模连续两年超过100亿件。全国快递企业日均快件处理量超1.7亿件,同比增长25.3%,最高日处理量达5.4亿件,同比增长28.5%。快递业务收入累计完成7497.8亿元,同比增长24.2%。2020年快递业受疫情影响巨大,但是随着企业复工复产,进入6月以来,我国快递日均业务量接近2.6亿件。但是,中国的快递业发展时间过短,整个行业的运行机制还不够健全,导致快递终端的效率低下,容易发生爆仓等问题,引起了很多消费者的不满,给快递公司也造成了经济上的损失。

随着“智慧物流”的首次提出,如何提高物流系统的智能化、自动化便成了当今物流领域的研究重点。 于是物流领域就出现了利用条形码来存储信息,通过识别条形码可以检索到放在数据库中的客户信息以及快递信息。条形码的出现让物流变得智能化起来,但还是存在一些问题。比如条形码印刷不合格或者快递在传输过程中条形码遭到破坏,都会导致条形码读取的成功率。

针对上述条形码的局限性,本文重点研究了一种高效提取快递单面上的条形码的算法,该算法基于深度学习,进行快递面单上条形码的定位与识别。从最后结果上来看,该算法可以显著提高条形码的识别效率,从而推动“智慧物流”的建设。

2 相关技术介绍

2.1 Yolov5目标检测算法

Yolov5相较于Yolov4,模型体积缩减了近90%,与此同时模型的精度与Yolov4不相上下。得益于超轻量级的模型,Yolov5拥有了目前最快的目标检测推理速度,同时也非常适合部署在移动端。此外,Yolov5采用了pytorch框架,这使得用户可以更加方便快捷地训练自己的模型,并且pytorch权重文件可以轻松地转化成onnx开放神经网络交换格式,这极大地降低了模型部署在移动端的难度,综上条件使得Yolov5能更加易于应用在实体产业中。

Yolov5提供了四个版本的目标检测网络,分别是Yolov5s、Yolov5m、Yolov5l和Yolov5x。这四个版本网络的宽度和深度依照上文所示顺序依次递增,权重文件的大小也会逐渐增加,推理耗时会更长,但与此同时,推理的精度也会有相应的提升。在coco数据集上的具体表现可参考图1。

图1:Yolov5各版本网络性能

2.2 系统架构设计

该论文中的系统设计架构如图2所示,先输入待检测的图片,再使用Yolov5算法框出条码,并截取BoundingBox框选出的部分,得到一张主要信息为条形码的图片。使用OpenCV的最小外接矩形方法(minAreaRect())得到图片的偏转角度,再使用仿射变换对存在偏转的图片进行矫正,最后使用Zbar算法对处理完成后的条码图片进行解码,并以字符串格式输出解码出的信息,最终实现对快递运单上条码的标定与解析。

图2:系统架构

3 软件仿真

3.1 电脑软硬件配置

本文中的Yolov5训练环境在Ubuntu 20.04上搭建,PyTorch版本为1.8.1、CUDA版本为11.1。硬件方面使用了i7-7700HQ CPU、GTX 1070 8G 显卡,内存为16GB。

3.2 数据来源

本文中数据集的制作分为三个步骤,首先使用小米mix2s的摄像头对快递运单实物进行拍照采集,然后使用labelimg工具对采集到的快递面单上的条形码进行框选标注,其中包括不同快递公司(不同样式),不同大小,不同角度以及不同光照条件下的图片样本。最后,在训练时采用Mosaic对所有样本进行数据增强,提升了模型对小目标的检测能力。此外,通过调整色调、饱和度、明度、旋转角度、平移、缩放、翻转等一系列数据增强系数,进一步对训练数据进行增强,提升了模型的泛化能力及推理精度。

3.3 实验参数设定

如表1所示。

表1:实验参数

3.4 实验过程

为了提高解码的成功率以及算法的鲁棒性,将包含条码的图像送入解码器进行解码之前,需要先提取出包含条码的区域,尽可能地减少无关信息的干扰,并对存在偏转的条码进行矫正。

目前对于实现条形码的定位,存在两种方案。一种是opencv的边缘检测算法;另一种是Yolov5深度学习目标检测算法。本文中采用Yolov5深度学习目标检测算法完成条形码的定位。由于快递面单上带有大量的个人隐私信息,这导致数据的采集工作异常困难,采集的数据完全由团队内成员提供,数据量严重紧缺。因此,在使用Yolov5进行训练时,使用了多种数据增强来避免模型的过拟合,增强模型的泛化能力。从可视化的训练结果可以看出:GIoU损失函数均值在训练轮数达到100轮时趋于恒定,精度及召回率波动极小,mAP@0.5 &mAP@0.5:0.95接近100%,由此可见取得了极佳的训练效果。实验结果如图3、4所示。

图3:yolov5实验结果

图4:yolov5实验结果

使用Zbar算法对矫正完成后的图像进行解码,以字符串格式输出解码出的信息并写入文本文件,最终实现功能。输出结果如图5所示。

图5:输出结果

4 结论

本篇文章介绍了利用Yolov5目标检测算法,OpenCV 计算机视觉和机器学习软件库,及Zbar解码器,实现对快递运单上条形码的标定与解析的过程。基于Yolov5s网络在自制条形码数据集上进行训练,训练时通过对一系列超参数的调整以及多种数据增强的使用,在训练数据稀缺的情况下,使模型具有了较强的泛化能力。实验结果表明,本次实验成功实现了一个鲁棒性较强的条码识别算法。

猜你喜欢

条码条形码解码
中国条码技术与应用协会
条码微站
《解码万吨站》
热线互动
创意条形码
解码eUCP2.0
从条形码到二维码
从条形码到二维码
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机