本发明属于计算机视觉和条码识别领域,具体涉及一种在移动端部署的深度学习条码检测方法。
背景技术:
1、随着物流行业的发展,条码技术在商品追踪和管理中起到了至关重要的作用。快速、准确的对条形码进行检测扫描,是条形码识别技术的核心所在。因此,亟需一种能够在复杂物流场景中高效检测条码的方法,并且能够在移动端设备上实现实时检测的方案。
2、现有的条码检测方法主要依赖于静态环境下的高精度摄像设备,利用光的反射原理,通过条码符号中“条”(一般为黑色)、“空”(一般为白色)对光线的不同反射率,将光信号转换成电信号,从而达到对条码的检测识别。但这种依赖于专业的条码扫描设备对条码进行识别的方法,其应用场景比较单一,对于动态和复杂环境下的条码检测效果较差。随着计算机视觉相关技术的发展,深度学习模型也被应用于条码检测任务,进一步提升了条码检测在复杂环境下的准确率,扩大了条码检测适用范围。
3、上述基于深度学习的方案虽然可以实现多种场景下的条码检测任务,然而直接在条码数据集上训练深度学习模型可能会遇到很多问题,模型会浪费过多关注度在无意义的残缺码、模糊码上面的现象,从而造成模型精度损失;在将训练得到的模型部署到高通平台的移动端设备上时,又会遇到量化维度不匹配等一系列的问题。
技术实现思路
1、本发明目的在于提供一种在移动端部署的深度学习条码检测方法,本发明在高通平台部署,提高模型运行效率。在深度学习基础上对训练流程加以改进,提高动态和复杂物流场景下模型条码检测准确率。
2、为实现上述目的,本发明采取的技术方案如下:
3、一种在移动端部署的深度学习条码检测方法,包括以下步骤:
4、s1,利用两种真实物流场景下的条码图像构建数据集,并对数据集进行标注和划分;
5、s2,使用数据增强技术对s1的训练集做数据增强;
6、s3,初步构建条码检测网络,利用s2中增强后的训练集将条码检测网络训练成最终的条码检测模型;
7、s4,利用s1中的验证集对s3得到的条码检测模型做性能评估,得到条码检测模型的准确率;
8、s5,对s3得到的条码检测模型进行转化和量化,得到适合在高通骁龙设备上运行的移动端条码检测模型;
9、s6,将s5得到的移动端条码检测模型部署到移动设备上,并在移动端完成性能评估。
10、优选的,所述s1中,利用两种真实物流场景下的条码图像构建数据集,并对数据集进行标注和划分的具体步骤如下:
11、s101,采集两种真实物流场景下的条码图像数据集,包括传送带场景下扫描头固定的场景和移动端手持扫码场景;
12、s102,对采集的数据集进行标注;
13、s103、将标注完成的数据集按照7:2:1的比例划分为训练集、验证集和测试集。
14、优选的,所述s3中,利用训练集训练条码检测网络并对网络进行剪枝操作,得到条码检测模型的具体步骤为:
15、s301,初步构建条码检测网络;
16、s302,利用s301初步构建的条码检测网络对增强后的训练集做特征提取和条码检测结果预测,得到条码检测结果;
17、s303,根据s302得到的条码检测结果,对s2中训练集的训练损失进行加权;
18、s304,在完成s303的训练损失加权后,计算训练集上的训练损失值,得到初步训练完成的条码检测网络;
19、s305,对s304得到的初步训练完成的条码检测网络进行剪枝操作,从而得到剪枝后的条码检测网络;
20、s306,对s305得到的条码检测网络重新进行s302-s304的训练过程,并对该网络做进一步的调优,从而训练得到最终的条码检测模型。
21、优选的,所述s303中,对s2的训练集中不同状态的条码采用不同的权重赋值方式,具体损失权重值公式如下:
22、
23、其中,ω表示损失权重值,x表示条码所属标签类别。对完整码数据,对应标签类别为0,其权重赋值为1;对残缺码和模糊码两类数据,对应标签类别分别为1、2,其权重赋值为0。
24、优选的,所述s305中,剪枝操作的具体步骤为:
25、s30501,输入图片尺寸为640*640,yolov5n网络训练;
26、s30502,输入图片尺寸为640*640,保留yolov5n最长单通道训练;
27、s30503,输入图片尺寸为640*640,yolov5n最长单通道删除spp模块,主干网络保留三个c3模块训练;
28、s30504,输入图片尺寸为640*640,yolov5n最长单通道删除spp模块,主干网络保留两个c3模块训练;
29、s30505,输入图片尺寸为1280*1280,保留yolov5n最长单通道训练;
30、s30506,输入图片尺寸为1280*1280,yolov5n最长单通道删除spp模块,主干网络保留三个c3模块训练;
31、s30507,输入图片尺寸为960*960,保留yolov5n最长单通道训练。
32、优选的,所述s306中,调优利用课程学习策略实现,具体步骤包括:
33、s30601,计算每张训练集中的条码图的损失并保存下来;
34、s30602,根据每张图片的损失值大小,为其对应的预测框附上一个损失权重系数
35、优选的,所述s4中,码检测模型的评估步骤主要包括:
36、a1,设置召回率阈值为0.99;
37、a2,在保证召回率超过0.99的前提下,选择一个置信度阈值以确保准确率达到最高;
38、a3,使用上一步选定的置信度阈值对验证集进行推理;
39、a4,识别并标记被误检为正常码的残缺码,在计算正常码的检测正确率时,排除这部分误检的残缺码。
40、优选的,所述s5中,对s3得到的条码检测模型进行转化和量化,得到适合在高通骁龙设备上运行的移动端条码检测模型的具体步骤为:
41、s501,将s3得到的条码检测模型从pt格式转为onnx格式;
42、s502,在条码检测模型有五维向量输出的位置将onnx文件切分开来,分为前后两部分,并分别保存为step1和step2两个onnx文件;
43、s503,将s502所述step1和step2两个onnx文件分别转为适用于高通平台的step1和step2两个dlc文件;
44、s504,对step1的dlc文件进行模型量化,得到适合在高通骁龙设备上运行的移动端条码检测模型。
45、优选的,所述s6中,将s5得到的移动端条码检测模型部署到移动设备上,并在移动端完成性能评估的具体步骤为:
46、s601,将s5得到的移动端条码检测模型部署到移动端设备上,借助androidstudio实现对条码图像的预处理、模型推理和模型输出结果的后处理;
47、s602,利用s1中的验证集和测试集分别对s5得到的移动端条码检测模型做性能评估。
48、优选的,所述s602中,利用s1中的验证集和测试集分别对s5得到的移动端条码检测模型做性能评估的具体步骤为:
49、s60201,计算部署在验证集上的条码检测模型的准确率;
50、s60202,对比部署后的条码检测模型的准确率和s4中的条码检测模型的准确率的差值,若不一致则需要检查并重复s5和s6的过程是否有误,直到差值在合理的范围内;
51、s60203,计算部署在测试集上的条码检测模型的准确率,得到移动端条码检测模型的条码检测准确率。
52、本发明的有益效果在于:
53、本发明提供了一种条码检测方法及其移动端部署系统,确保模型具有出色的泛化能力和鲁棒性。首先,通过对物流传送带和手持移动设备场景的数据集进行标注和增强,为不同场景提供了数据集支持。其次,通过掩码策略有效地处理了数据集中的残缺码和模糊码,确保这些干扰不会影响模型的训练效果。然后,通过课程学习策略和模型剪枝操作,本发明不仅确保了模型能够从简单样本平滑地学习到难样本,还在保持高性能的同时,提高了模型的运行速度。此外,通过建立适合条码检测的评估体系,确保了模型的高效、准确和鲁棒性。本发明创新地采用混合并行方式解决了高通平台在dsp上无法运行五维向量的部署问题。总体来说,本发明为物流、工业制造等行业的移动条码扫描提供了一种实用、高效且准确的条码定位解决方案。
1.一种在移动端部署的深度学习条码检测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的在移动端部署的深度学习条码检测方法,其特征在于,所述s1中,利用两种真实物流场景下的条码图像构建数据集,并对数据集进行标注和划分的具体步骤如下:
3.根据权利要求1所述的在移动端部署的深度学习条码检测方法,其特征在于,所述s3中,利用训练集训练条码检测网络并对网络进行剪枝操作,得到条码检测模型的具体步骤为:
4.根据权利要求3所述的在移动端部署的深度学习条码检测方法,其特征在于,所述s303中,对s2的训练集中不同状态的条码采用不同的权重赋值方式,具体损失权重值公式如下:
5.根据权利要求3所述的在移动端部署的深度学习条码检测方法,其特征在于,所述s305中,剪枝操作的具体步骤为:
6.根据权利要求3所述的在移动端部署的深度学习条码检测方法,其特征在于,所述s306中,调优利用课程学习策略实现,具体步骤包括:
7.根据权利要求1所述的在移动端部署的深度学习条码检测方法,其特征在于,所述s4中,码检测模型的评估步骤主要包括:
8.根据权利要求1所述的在移动端部署的深度学习条码检测方法,其特征在于,所述s5中,对s3得到的条码检测模型进行转化和量化,得到适合在高通骁龙设备上运行的移动端条码检测模型的具体步骤为:
9.根据权利要求1所述的在移动端部署的深度学习条码检测方法,其特征在于,所述s6中,将s5得到的移动端条码检测模型部署到移动设备上,并在移动端完成性能评估的具体步骤为:
10.根据权利要求9所述的在移动端部署的深度学习条码检测方法,其特征在于,所述s602中,利用s1中的验证集和测试集分别对s5得到的移动端条码检测模型做性能评估的具体步骤为:
