百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

一种多类型条码批量识别系统设计(批量条码生成器app哪个好用)

itomcoil 2025-05-08 01:58 17 浏览


摘要传统条码识别系统无法满足企业与日俱增的生产管理需求,为此设计了一种能够批量识别且兼容多种类型的条码自动识别系统。首先在Linux开源系统上开发系统软件,实现大华工业相机焦距调节,图像采集等操作;其次利用OpenCV计算机视觉库对采集图像进行滤波、二值化、特征提取等图像处理,完成一维或二维条码的定位;最后利用QZING条码识别库解析条码中的产品SN信息,并通过QT上位机软件将SN信息上传至数据库完成生产管理。实验验证系统具有良好的准确性和稳定性。

关键词:条码识别、Linux、图像处理、OpenCV算法、生产管理


一、引言


随着工业4.0时代的到来,制造型企业向智能工厂转型升级成为必然趋势。智能工厂的智能仓储、智能物流管理要求产品在原料入库、生产工艺、运输物流——供应链全过程都可视化、可追踪[1],因此要在供应来料、产品部件、生产成品上打印识别码作为物料号进行生产数据信息存储和追溯。而条码自动识别技术能使物料号识别减少人工干预、提高识别效率及准确率、降低制造成本。传统的条码识别采用人工持枪扫描的方式,有兼容性差、准确率低,易漏检、效率低等缺点,难以满足产线满载运行的检码流程要求。

在条码识别术的前期研究中:文献[2]针对QR码图像捕捉中的噪声问题,运用图像预处理与中值滤波算法优化了传统算法。文献[3]基于Halcon条码高速识别算法和XLD边缘检测识别方法构建了兼容一维和二维条码高速在线识别系统,可以识别3.75m/s速度下运行的一维或二维条码。文献[4]提出一种基于不变矩和BP网络结合的条码识别方法,在一维条码中的识别准确率为92.9%。文献[5]采用了几何定位与基于位置探测图形相结合的方法构建了二维码批量识别的系统,在0.296m/s的运行速度下识别率达到100%,但该系统只识别二维码。

本文以条码识别技术为研究对象,通过图像处理技术对采集到的图像进行图像预处理、图像分割、特征提取等。基于Linux开源系统,对工业摄像头调节焦距,利用Opencv计算机视觉库的算法对料号进行识别,再通过上位机QT软件上传料号,更新数据库资料,构建出一种能够兼容条形码、QR二维码,能够批量、准确、稳定、且快速的料号识别系统。该系统能够减少企业人力成本投入,提升产线加工效率,对企业有着普遍的实用价值和较高的经济价值。


二、系统设计


1.系统硬件框架设计

本文设计的多种条码批量识别系统由工业相机、辅助光源、工控一体机、数据库服务器组成,系统硬件框架如图1所示。工业相机选取大华2000W像素CMOS 工业相机,型号A3B00MG000;工控一体机选用NXP I.MX6ULL型号CPU,Cortex_A7架构,800MHZ主频,512MB内存。辅助灯源选择条形LED光源至于检测区域两侧,提高图像采集清晰度。

系统运行时,贴有条码的产品由传送带输送至工业相机正下方的检测区域,工业相机拍摄照片并传输给工控一体机,由自主开发的多码识别软件读取条码中产品SN信息,同时将数据上传至SQL数据库完成出入库、盘点等生产管理操作。

2.系统软件框架设计

工控一体机是Linux系统架构,在其上调用计算机视觉算法,实现条码识别以及相关功能,系统软件框架图如图2所示。其中QT软件开发平台,用于完成识别结果上位UI显示和相应设置操作;Opencv提供料号识别的开源算法;Linux开源系统为整个软件的运行提供必要的运行环境。



三、条码批量识别算法


传统的条码识别算法需要进行图像采集、图像处理、边缘检测、特征提取,条码定位等步骤。在本设计中,系统需兼容一维条码与二维码识别,算法流程图如图3所示。

1.图像预处理

条码识别过程中,工业相机采集的原始图像传输至工控一体机后,首先要进行图像预处理。

灰度处理是将彩色原图转换成灰度直方图,即对图像内部每个像素的灰度等级进行统计并表述,使图像的整体灰度分布更加清晰,方便后期处理。本设计采用OpenCV提供的cv2.calcHist()函数完成灰度直方图的计算。

灰度直方图均衡化是对灰度直方图进行图像亮度归一化和对比度增强处理。均衡化处理对后期边缘与轮廓检测的效果有较大的提升作用。本文采用cvEqualizeHist()函数完成该计算。

图像二值化是将上述灰度图中的每个像素点的灰度值设为0或255,使图像转化为黑白图像,在缩减图像数据量的同时,使条码的轮廓更加凸显。本文采用cvThreshold()进行二值化。

2.条码特征提取

边缘检测用于检测图像中灰度值变化迅速的像素点,将这些点连成线条就可以得到图像中物体的边缘。一维条码与二维条码都是由黑白色的条纹或矩形组成,边缘检测可以快速锁定条边缘。本文采用Canny边缘检测算子,具有较高的准确度和稳定性。

轮廓检测是在图像的边缘检测基础上,提取与目标特征吻合的目标轮廓。本设计需兼容一维与二维条码,因此需创建两种不同的轮廓模型。其中一维条码的轮廓检测需对图像进行腐蚀与膨胀,然后查找一维条码的矩形区域轮廓,检测轮廓数量并绘制最小外接矩形框。如数量为0,则检测二维条码轮廓,二维条码的典型特征是用于定位的 “回”型框,再利用minAreaRect函数构建最小的外接矩形框。

定位完成后需解码提取SN信息,本文采用QZXing实现解码。解码完成后与上次解码信息比对,避免重检。


四、实验测试


1.少量样本静态测试

按照系统设计进行实验平台搭建,如图4所示。首先选取少量条码样本进行识别检测,验证算法正确性。

将2个不同的一维条码贴在PCB板不同位置与不同方向上,将PCB板放置到工业相机检测区域,触发检测流程,检测结果如图5所示。检测耗时13.5ms,提取出的2个SN信息正确率100%。

将4个不同二维码贴在PCB板的不同位置与不同方向上,放置到检测区域进行识别,结果如图6所示。检测耗时24ms,提取出的4个SN信息正确率100%。

2.批量样本动态测试

将实验平台安装至PCBA生产线,进行批量条码检测。产线传送带以不同速度运输,将贴有不同类型条码的PCBA板送至检测区进行识别测试,实验结果如表1所示。当传送带运行速度≤0.4m/s时,一维码、二维码的批量识别准确率可达100%,平均识别时间分别为13.69ms与25.17ms。当传送带运行速度≥0.5m/s时,一维条码与二维码批量识别的准确率不达100%。生产线在生产过程中实际运行速度在0.1m/s~0.3m/s范围内,识别系统准确率满足企业要求。

3.生产管理系统

生产管理系统是基于QT开发的上位机软件,条码检测获得的SN信息可在其可视化界面上显示,并可进行出入库、查询等生产管理操作,同时可以生成数据报表便于直接查看物料状态,上位机界面如图7所示。点击入库或出库按钮,料号、工号、操作时间等数据信息将被上传至SQL数据库,实现入库或出库操作。点击查询按钮可查询该料号产品在数据库内的登记信息,如在架数量、外借次数等,同时生成图表报告,实现生产数据可视化。



五、总结


本文设计一种能够兼容一维二维条码批量检测系统,通过实验验证,该系统能够实现目标功能,在0.4m/s移动速度范围内,正确率100%,检测耗时20ms左右,能够满足生产线需求,对企业有着普遍的实用价值。



参考文献:

[1]戚卫峰,张宁.自动识别技术在企业物流过程中的应用[J].企业导报,2012.

[2]Xiong Zou,Liu Guodong, et al. Study on the sequence of steps in the QR code image preprocessing[C]// IEEE,2010.

[3]李少波,王铮,杨静,朱书德,全华凤.基于机器视觉的一维和二维条码高速在线识别[J].计算机集成制造系统,2020.

[4]田秋红,孙政荣.基于不变矩和BP网络的条形码图像识别方法[J].计算机工程与设计,2012.[5]LI Jiangang, HUANG Shihao, et al. Identification system for batch of two-dimensional code with high speed based on machine vision[J].Journal of Applied Optics,2021.


相关推荐

最强聚类模型,层次聚类 !!_层次聚类的优缺点

哈喽,我是小白~咱们今天聊聊层次聚类,这种聚类方法在后面的使用,也是非常频繁的~首先,聚类很好理解,聚类(Clustering)就是把一堆“东西”自动分组。这些“东西”可以是人、...

python决策树用于分类和回归问题实际应用案例

决策树(DecisionTrees)通过树状结构进行决策,在每个节点上根据特征进行分支。用于分类和回归问题。实际应用案例:预测一个顾客是否会流失。决策树是一种基于树状结构的机器学习算法,用于解决分类...

Python教程(四十五):推荐系统-个性化推荐算法

今日目标o理解推荐系统的基本概念和类型o掌握协同过滤算法(用户和物品)o学会基于内容的推荐方法o了解矩阵分解和深度学习推荐o掌握推荐系统评估和优化技术推荐系统概述推荐系统是信息过滤系统,用于...

简单学Python——NumPy库7——排序和去重

NumPy数组排序主要用sort方法,sort方法只能将数值按升充排列(可以用[::-1]的切片方式实现降序排序),并且不改变原数组。例如:importnumpyasnpa=np.array(...

PyTorch实战:TorchVision目标检测模型微调完

PyTorch实战:TorchVision目标检测模型微调完整教程一、什么是微调(Finetuning)?微调(Finetuning)是指在已经预训练好的模型基础上,使用自己的数据对模型进行进一步训练...

C4.5算法解释_简述c4.5算法的基本思想

C4.5算法是ID3算法的改进版,它在特征选择上采用了信息增益比来解决ID3算法对取值较多的特征有偏好的问题。C4.5算法也是一种用于决策树构建的算法,它同样基于信息熵的概念。C4.5算法的步骤如下:...

Python中的数据聚类及可视化分析实践

探索如何通过聚类分析揭露糖尿病预测数据集的特征!我们将运用Python的强力工具,深入挖掘数据,以直观的可视化揭示不同特征间的关系。一同探索聚类分析在糖尿病预测中的实践!所有这些可视化都可以通过数据操...

用Python来统计大乐透号码的概率分布

用Python来统计大乐透号码的概率分布,可以按照以下步骤进行:导入所需的库:使用Python中的numpy库生成数字序列,使用matplotlib库生成概率分布图。读取大乐透历史数据:从网络上找到大...

python:支持向量机监督学习算法用于二分类和多分类问题示例

监督学习-支持向量机(SVM)支持向量机(SupportVectorMachine,简称SVM)是一种常用的监督学习算法,用于解决分类和回归问题。SVM的目标是找到一个最优的超平面,将不同类别的...

25个例子学会Pandas Groupby 操作

groupby是Pandas在数据分析中最常用的函数之一。它用于根据给定列中的不同值对数据点(即行)进行分组,分组后的数据可以计算生成组的聚合值。如果我们有一个包含汽车品牌和价格信息的数据集,那么可以...

数据挖掘流程_数据挖掘流程主要有哪些步骤

数据挖掘流程1.了解需求,确认目标说一下几点思考方法:做什么?目的是什么?目标是什么?为什么要做?有什么价值和意义?如何去做?完整解决方案是什么?2.获取数据pandas读取数据pd.read.c...

使用Python寻找图像最常见的颜色_python 以图找图

如果我们知道图像或对象最常见的是哪种颜色,那么可以解决图像处理中的几个用例,例如在农业领域,我们可能需要确定水果的成熟度。我们可以简单地检查一下水果的颜色是否在预定的范围内,看看它是成熟的,腐烂的,还...

财务预算分析全网最佳实践:从每月分析到每天分析

原文链接如下:「链接」掌握本文的方法,你就掌握了企业预算精细化分析的能力,全网首发。数据模拟稍微有点问题,不要在意数据细节,先看下最终效果。在编制财务预算或业务预算的过程中,通常预算的所有数据都是按月...

常用数据工具去重方法_数据去重公式

在数据处理中,去除重复数据是确保数据质量和分析准确性的关键步骤。特别是在处理多列数据时,保留唯一值组合能够有效清理数据集,避免冗余信息对分析结果的干扰。不同的工具和编程语言提供了多种方法来实现多列去重...

Python教程(四十):PyTorch深度学习-动态计算图

今日目标o理解PyTorch的基本概念和动态计算图o掌握PyTorch张量操作和自动求导o学会构建神经网络模型o了解PyTorch的高级特性o掌握模型训练和部署PyTorch概述PyTorc...