APP下载

基于改进YOLOv5s 的工件识别检测算法*

2024-04-14苗鸿宾苏赫朋申光鹏

制造技术与机床 2024年4期
关键词:特征提取工件聚类

余 浪 苗鸿宾② 苏赫朋 申光鹏

(①中北大学机械工程学院,山西 太原 030051;②山西省深孔加工工程技术研究中心,山西 太原 030051)

为实现智能化工业生产的发展,结合深度学习[1]以及机器学习[2]等技术到工业生产流程当中得到了越来越多的应用,如何实现工业的自动化生产也越来越成为智能制造领域的研究热点。工业自动化生产中对目标工件进行智能化装配、无序分拣和自动化维修等过程中需对目标工件进行准确的识别检测,传统的对工件的识别与检测方法主要有基于图像Hu 矩[3]、Blob 特征[4]、Sobel 算子[5]等模板匹配算法,但这些检测算法受环境因素影响较大,鲁棒性差,检测精度不高,并不能够满足实时的高精度工件识别检测要求。

近年来,随着智能化技术的不断发展,如何利用神经网络模型对工件进行准确地识别越来越成为制造领域内的研究热点。苏维成等[6]提出基于改进Tiny-YOLOv3 算法的工件识别,通过在特征提取网络中增加Ghost 模块、SE 模块和SPP 结构3 个网络模块,并用卷积层代替池化层来改进Timy-YOLOv3模型,改进后的模型对小目标工件检测准确率达到84.8%,平均精度均值达到94.9%,同时减小了网络模型的大小;张宇廷等[7]结合机器视觉与Faster-RCN 的识别检测算法到Delta 机器人上,提高了对工件的识别平均精确度;崔新霞等[8]以YOLOv3 网络作为基本框架开展机器人工件识别方法研究,通过对数据集进行增强处理,改进YOLOv3 的损失函数,并应用空间金字塔池化层进行YOLOv3 中特征金字塔网络改进,改进后的网络平均检测准确率均值达到 98.05%,检测每张图片的时间为137 ms。以上基于深度学习的工件识别与检测虽然均取得了较好的检测效果,但大多只适用于工件无遮挡的情况,并且存在检测模型普遍较大、检测速度较慢等问题。

基于此,本文提出基于改进YOLOv5s 的工件识别检测算法,在特征融合网络中添加CBAM 注意力机制,利用加权双向特征金字塔Bi-FPN 结构进行特征融合,并通过采用α-IoU 作为边界框回归损失函数,提高边界框回归精度以及模型的收敛效果,以解决工件遮挡识别检测定位问题、网络模型速度慢和网络大小问题,为智能生产线上目标工件的识别检测问题提供解决方案。

1 YOLOv5 算法

随着深度学习神经网络技术的发展,YOLOv5算法基于其对目标进行检测定位的精度高以及速度快的优点,在工件识别检测领域也得到了越来越多的应用。相比于传统的目标检测方法,深度学习技术具有更强的特征提取能力以及更快的特征检测速度。目前对于目标的识别与检测常用到的网络模型主要包括基于两阶段检测的Faster R-CNN 检测算法[9]和基于一阶段检测的YOLO 系列算法[10]。相比于两阶段的检测,一阶段的检测算法在进行检测的过程中只需要将图像输入到网络中,然后直接输出对象的位置坐标值和类别概率,与两阶段的检测算法相比,虽然其精度相对较低,但检测速度有了显著提高,更适用于实时性要求高的检测系统。

YOLOv5 算法是YOLO 系列算法之一[11],YOLOv5 包 括YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x 四种结构,它们之间的主要区别在于特征提取深度和宽度的不同。YOLOv5 算法在检测目标的过程中将整个图像作为网络的输入,然后在输出层中直接返回目标边界框的类别及其位置信息。YOLOv5 算法以CSPDarknet53 作为主干网络,在颈部网络中采用路径聚合PANET 网络结构,以及以多尺度特征融合预测的方式提取图像特征。YOLOv5是在YOLOv4 基础上进行的改进,与YOLOv4 相比,YOLOv5 网络不仅实现了更快以及更高精度的检测,同时也显著减小了网络模型的尺寸大小。在YOLOv5的四种结构中,YOLOv5s 是模型参数最小、检测速度最快、最简单的版本,由于自动生产线上需对目标工件进行实时准确的识别检测,对其检测的实时性有着较高的要求,因此本文选用YOLOv5s 模型作为研究对象,通过对YOLOv5s 算法进行改进,以达到对目标工件的检测要求。YOLOv5s 算法结构如图1 所示。

图1 YOLOv5s 算法结构

2 YOLO v5s 算法的改进

2.1 Anchor Boxes 的聚类分析

为了使得模型在运算的过程中能够快速地收敛、加快计算的速度以及提高检测精度,在目标识别检测的过程中提出Anchor Boxes 的设计。在Faseter RCNN 和SSD 中对于Anchor Boxes 的聚类分析设计主要通过人工进行设计,针对性差,受人的主观性影响较大。原YOLOv5s 算法中对于Anchor Boxes的计算是通过k-means 算法[12]由COCO 数据集聚类得到的,避免了模型训练时进行过多的盲目寻找,加快了模型训练的收敛速度,最后得出9 种不同大小的Anchor Boxes,分别用于3 种不同尺度上的特征检测,每个尺度特征图上分别有3 个Anchor Boxes。

k-means 聚类算法在聚类计算Anchor Boxes 的过程之中主要依据曼哈顿距离、欧氏距离等作为距离度量,但这些度量方法并不适用于本文对工件的识别检测,因此本文对k-means 聚类算法进行改进,采用如下的距离公式来度量边框之间的相似度。

式中:X为真实框;Y为聚类框;Iarea为X与Y之间的交集;Uarea为X与Y之间的并集。

同时由于在采集图像的过程中不可避免地会存在干扰的异常点而造成最终聚类出来的结果出现较大偏差,因此本文首先引入DBSCAN 算法对异常点进行处理。DBSCAN 算法能够有效地检测出数据集中的异常点,提高Anchor Boxes 的聚类效果。

本文通过改进k-means 聚类算法得到不同的聚类簇数k值,对于k的取值再结合平均交并比Avg IoU 作为目标函数做进一步分析。取值k=1~15,分别得到对应的Avg IoU 值,如图2 所示。

图2 改进k-means 聚类分析结果

由图2 可知:随着k值的不断增大,Avg IoU值也在不断增大,但增长的趋势随着k值的不断增大在不断地减缓。随着k值的不断增加,预测出来的结果会更好,但同时也会增加模型的计算量以及产生过多的冗余Anchor Boxes 导致模型的收敛速度降低。观察图2 中的曲线走势可知,在k值等于9之后的曲线增长速度大幅降缓,k值在等于9 与k值等于15 之间的Avg IoU 差值并不是很大,所以本文选择k=9 作为k的最终取值。由此根据本文的数据集进行重新聚类得出最终的9 个聚类中心的维度分别为(18,15)(38,42)(84,66)(88,163)(142,128)(186,244)(226,212)(246,412)(322,346)。

2.2 引入CBAM 注意力机制

针对在工件在堆叠以及遮挡的复杂环境下能够准确地识别目标工件、提高工件的检测效果,本文给系统的主干网络卷积层间引入注意力机制CBAM模块[13]。

注意力机制是一种模仿人类注意力的深度学习优化策略,目的是将计算资源分配给更重要的任务,并解决信息超载的问题。CBAM 注意力机制具有尺度小、不会占用太多内存的特征,同时CBAM 注意力机制通过在通道和空间2 个维度上进行独立的运算,大大提高了对图片注意力信息的提取效果。选择在网络结构中添加CBAM 注意力机制,相比于添加其他注意力机制能够达到更好的特征提取效果,同时也不会明显地增加网络模型的大小。CBAM结构如图3 所示。

图3 CBAM 结构

2.3 特征金字塔结构的改进

在原YOLOv5s 算法中的特征提取网络采用的是PAN 网络,相比于FPN 网络多了一条自下向上的特征融合路径。本文的研究对象的是工件图像,若直接采用PAN 网络作为特征提取网络,最终达到的检测效果并不佳。因此,本文选择采用Bi-FPN[14]网络作为特征提取网络。Bi-FPN 网络是一种双向跨尺度连接和加权特征融合结构,一种加权双向特征金字塔提取网络,可以进行多尺度的特征融合。Bi-FPN 原理图如图4 所示。

图4 特征提取模块Bi-FPN 原理图

Bi-FPN 减少了一些不必要层的结点连接,同时给各个层赋予了不同权重去进行特征融合,加速了网络模型训练中的收敛速度,相较于PAN 网络具有更好的特征提取能力。

2.4 引入α-IoU 损失函数

为了获得精准的工件位置信息,需引入定位损失函数IoU。IoU 表示的是检测框与真实框之间的位置关系,其损失函数的计算方式如下:

式(2)表示的是真实框Bgt与预测框B之间的交并比关系,IoU 的值越大表示预测结果更好。

在IoU 损失的计算中,当预测框与真实框不相交时IoU 始终等于0,以及当预测框与真实框的交并比相同时,预测框与真实框的相对位置存在不同的情况,这时将不能准确的反向传播反映预测区域框与真实区域框的相对位置关系,所以需对IoU 损失进行优化。G-IoU、D-IoU、C-IoU 是对IoU 损失的不同改进,G-IoU 解决了预测框与真实框不相交时的问题,但当预测框处于真实框内部时也存在损失值不变、不能反向传播位置损失的问题,D-IoU通过计算预测框与真实框的中心距离解决了G-IoU存在的问题,同时提高了网络模型的回归速度。YOLOv5s 采用C-IoU 作为位置损失函数,C-loU 在D-IoU 的基础上增加了对长宽比的考虑,使得预测框与真实框的长宽比更接近,预测框更加接近真实框。所以本文选择采用在C-loU 的基础上进行改进的α-IoU[15]作为预测框的位置损失函数,其计算如下:

式中:w和h表示预测检测框的宽和高,α的不同取值大小可实现不同的预测框的回归效果。多次测试表明,当α等于3 时,α-IoU 损失相比于C-IoU有着更佳的检测效果,且不会增加过多的训练时间,所以本文选择将α设置为3。

3 实验验证与对比分析

3.1 数据采集与预处理

基于深度学习来实现对目标的识别与检测中,数据集起着重要的作用,它在很大程度上影响着检测模型的检测效果。本文采集包含6 种不同的类型工件图像共1 200 张,同时为增强模型的鲁棒性以及避免训练的模型出现过拟合现象,本文对采集到的目标图像进行旋转、镜像、增加噪声、改变亮度和对比度等方式进行数据增强处理,最后将图像数据集从1 200 张图像增加到3 000 张图像,并按照9∶1 的比例将图像数据集分成2 700 张训练集和300 张测试集。

3.2 实验环境

本文选择基于Windows 10 系统,使用Pytorch的深度学习架构进行实验,具体的配置见表1,训练参数见表2。

表1 训练平台配置参数

表2 训练参数设置表

3.3 实验结果与分析

本文将改进的YOLOv5s 算法与原YOLOv5s 算法分别进行训练实验,并记录每一次训练过程中的Loss值。Loss值的收敛速度以及最终的收敛状态是否稳定是评判模型性能的关键指标之一,本文训练得出的损失曲线如图5 所示。

图5 损失曲线

由图5 可知,改进后的网络模型有更快的收敛速度和更好的训练效果。

3.4 改进前后的算法性能对比

为了对本文改进前后的算法性能进行对比评估,在进行工件识别检测的过程中记录正确检测出的工件数量TP,被错误检测的工件数量FP以及没有被检测出的工件数量FN,然后通过计算目标的平均准确率AP对算法进行评价。AP计算公式如下:

式中:P(r)表示一条P-R曲线,AP是对P和R的综合考虑,适用于对单个工件进行检测评价,也可以用来衡量模型的检测性能。AP的值越高,则该模型的检测效果越好。同时计算平均准确率均值mAP,即AP值在所有工件类型上的均值,用于评价模型对检测所有工件种类的综合性能。计算结果见表3。

表3 YOLOv5s 改进前后算法的检测结果对比

由表3 的计算结果可知,改进后的YOLOv5s算法mAP值相较于原YOLOv5s 算法从90.90%提升到96.93%,提升了6.03%;速度从15.6 fps 提升到29.3 fps,提升了13.7 fps,也说明了改进的YOLOv5s算法有着更好的检测性能。

实验检测效果如图6 所示,分别是利用改进前后的YOLOv5s 算法进行检测的结果对比。从检测效果对比可知,改进后的YOLOv5s 算法检测结果更接近目标工件,未出现较大的图像边缘偏差,同时对于堆叠的工件图像能够更加准确地检测出受遮挡的工件,具有更高的检测准确度和检测精度。

图6 检测效果图

3.5 不同检测算法的性能对比

要实现对目标的准确识别检测,现如今也有着很多优秀的检测算法,例如Faster R-CNN 算法和SSD 算法。所以为了对本文改进的YOLOv5s 算法进行更加全面的评测,本文再利用Faster R-CNN 算法和SSD 算法对工件进行检测作为对比,并以mAP值和检测速度作为评价指标,得到的实验结果见表4。

表4 不同算法的检测结果对比表

从表4 可以得出,无论是检测的mAP值还是检测的速度值,相比于其他检测算法,本文改进的YOLOv5s 算法都有着更好的检测效果,这是因为本文通过改进k-means 聚类算法对Anchor boxes 进行重新聚类,避免了产生过多的冗余Anchor boxes,同时对原YOLOv5s 网络结构进行了改进,提升了网络对工件特征的提取能力,提升了工件的识别检测效果以及检测速度。由此可见,本文改进的YOLOv5s 算法在保证了检测准确性的同时也提高了检测速度,能够较好地完成工件的识别检测任务。

4 结语

为实现在智能化生产的过程中对目标工件进行准确的识别检测,本文提出一种基于改进YOLOv5s 的工件识别检测算法以提高对工件的识别检测效果。首先,通过改进k-means 聚类算法对Anchor Boxes 进行重新聚类,以减少冗余候选框的数量,加快模型计算速度,以及通过引入CBAM注意力机制在通道与空间两个维度上提取特征图的注意力信息,有效抑制背景信息干扰,提升对图像特征的提取效率以及检测的准确率。其次,使用多尺度特征融合网络 Bi-FPN,实现高效的加权特征融合和双向跨尺度连接,加快检测速度,同时使用a-IoU 损失作为位置的损失函数来提升模型的收敛速度和边界框的定位精度。最后,通过对SSD算法、Faster R-CNN 算法、原YOLOv5s 算法以及改进的YOLOv5s 算法进行对比实验,实验结果表明,改进后的YOLOv5s 算法对工件的检测准确性和检测速度都有了明显的提升,具有较好的工件识别检测效果,可用于工业自动化生产线上智能化装配以及工件无序分拣中对工件的识别检测。

猜你喜欢

特征提取工件聚类
考虑非线性误差的五轴工件安装位置优化
基于Daubechies(dbN)的飞行器音频特征提取
三坐标在工件测绘中的应用技巧
基于DBSACN聚类算法的XML文档聚类
Bagging RCSP脑电特征提取算法
基于高斯混合聚类的阵列干涉SAR三维成像
焊接残余形变在工件精密装配中的仿真应用研究
一种层次初始的聚类个数自适应的聚类方法研究
基于MED和循环域解调的多故障特征提取
一种非圆旋转工件支撑装置控制算法