摘要
物料分拣和瑕疵检测是工业生产领域最常见的两种作业场景,物料分拣是指参照生产需求,对杂乱摆放的物料按序挑选;瑕疵检测是指检测产品或零部件外观和性能,筛选出瑕疵品,提高产品良品率。这两项工作重复性高,实施背景单一,人工操作效率低,随着用工成本逐年增加,二者已成为工业自动化生产领域重要应用场景。在工业自动化生产中,计算机视觉研究方向上的目标检测技术运用最为广泛。传统自动化生产中目标检测算法多为机器学习方法,随着基于深度学习的目标检测算法日趋成熟,其在实际应用中的表现远好于传统机器学习算法。本文围绕相关企业提出的两项自动化生产需求进行研究。这两项需求为:物料分拣任务,该任务旨在识别物料盘中散乱的电子元器件,将其种类与位置信息传递给机械臂,机械臂按序夹取并准确放置在生产崔盘内;瑕疵检测任务,该任务旨在将面板瑕疵状况传递给机械臂,机械臂剔除瑕疵面板,无瑕疵面板进入下一轮生产。本文基于上述需求,分别评测了SSD,YOLOv5s、Faster-RCNN和Mask-RCNN四种基于深度学习的目标检测算法在任务数据集上的性能,选择性能最优的YOLOv5s算法作为基础算法,同时,结合物料分拣和瑕疵检测两项任务目标的不同,分别对算法进行改进,最后的实验结果表明,算法能够满足企业自动化生产需求。自动化生产系统包括图像处理部分和动力传输装置部分,本文主要研究图像处理部分的目标检测算法,不涉及整个自动化生产系统的流转与运作。本文的研究内容包括三个方面: (1)数据集制作和四种算法性能评估。目标检测算法均需数据集进行训练,本文是基于特定任务的工程应用研究,没有符合要求的公共数据集,因此,任务数据集需要笔者自己收集。企业无法提供生产环境下的数据集收集条件,仅提供相应物料,本文依据任务特点和需求,在实验室环境下完成了数据集收集和标注工作。其次,为两项任务分别设计了算法性能量化评估标准,基于任务数据集,每项任务分别评测三种目标检测算法,根据评测结果,两项任务均选择性能最优的YOLOv5s目标检测算法,作为完成任务的基础算法。 (2)基于瑕疵检测数据集,改进YOLOv5s算法,提高瑕疵面板检测能力。首先,在瑕疵检测任务中,本文针对数据集数据量少,数据收集困难,数据集制约算法训练效果的问题,提出了一种二次迁移学习的方法,该方法能够缓解数据集数量上的制约;其次,本文针对良品面板误检率高的问题,改进了YOLOv5s模型中的锚框生成策略,使先验框大小与目标实际大小更接近。实验结果表明,改进后的算法能够满足企业生产需求,提高生产效率。 (3)基于物料分拣数据集,本文深入分析了YOLOv5s算法检测性能,基于算法几类检测缺陷,加强了数据集设计,有针对性地扩充了数据集,此外,根据算法邻近目标检测能力弱,时常会漏检小目标的问题,重新设计了算法输出端的非极大值抑制方法,强化了算法检测重叠目标的能力。实验结果表明,改进后的算法性能较基础算法有较大提升,漏检、误检现象明显减少。