APP下载

采用改进的YOLOv5s 检测花椒簇

2023-11-26熊举举彭佑菊何佳佳

农业工程学报 2023年16期
关键词:锚框花椒标签

徐 杨 ,熊举举 ,李 论 ,彭佑菊 ,何佳佳

(1. 贵州大学大数据与信息工程学院,贵阳 550025;2. 贵阳铝镁设计研究院有限公司,贵阳 550025)

0 引言

随着农业领域的快速发展与人工智能技术的广泛应用,农业生产逐渐朝着智能化、高效化的方向发展。作为中国常见的农作物之一,花椒被广泛种植和消费。然而,传统的花椒采摘主要依赖人工劳动。由于花椒枝干上遍布尖刺且枝叶杂乱,采摘的难度较大。因此,开发自动化采摘技术[1-2]对花椒产业的发展至关重要。

目标检测算法是实现自动化采摘技术的关键[3]。传统的目标检测算法通常需要先对花椒图像进行分割,去除背景信息,再提取尺度不变特征转换[4](scaleinvariant feature transformer,SIFT)或方向梯度直方图[5](histogram od oriented gradient,HOG)等纹理特质,然后进行目标定位和识别。万芳新等[6]利用红色和绿色的图像差异进行分割,使用优化腐蚀滤除噪点和隔离带法去除非目标花椒果实,实现对花椒的定位。齐锐丽等[7]利用HSV(hue,saturation,value)模型对花椒图像进行处理,然后使用Otsu 算法进行阈值分割,以达到对花椒目标的辨识。

上述传统的机器学习算法需要手工提取特征,难以获得较好的检测结果。基于深度学习的目标检测算法通过大规模的训练和端到端的学习取得了显著进展,能够有效应对农业工程中复杂的场景、光照变化、遮挡等挑战。它们能够适应不同尺寸、不同类别、不同比例和不同的形状目标,具有鲁棒性强、自适应性好、准确率高的优势。在农业自动化领域得到了广泛的应用,如猕猴桃花朵检测[8],茶叶杂质检测[9]、套袋柑橘检测[10]等。

常用的目标检测算法分为两类,第一类是基于候选区域的目标检测算法。主要有R-CNN[11]、Fast R-CNN[12]、Faster R-CNN[13]、SPPNet[14]等。另一类是基于回归的目标检测算法,代表性的算法有YOLO[15-18]系列和SSD[19]系列等。YOLO 系列算法具有高准确率和高检测速度的优点,被广泛应用在农作物的果实检测中。赵德安等[20]通过YOLOv3 卷积神经网络遍历整个图像回归目标的类别和位置,在效率与准确率兼顾的情况下实现了复杂环境下苹果的检测。杨坚等[21]改进YOLOv4,通过添加小目标检测头有效解决遮挡和小番茄识别准确率低的问题。

目前国内外对农作物果实的目标检测研究较为成熟,但是以花椒簇为对象的目标检测研究较少。李光明等[22]使用ShuffleNet 作为主干,轻量化YOLOv5 模型实现了对花椒簇的检测。杨前等[23]提出多任务上下文增强的花椒检测模型,向YOLOv4 目标检测网络中加入枝干分割模块,形成检测-分割多任务网络准确检测近景花椒。

本研究提出一种基于YOLOv5s 的花椒簇检测模型,通过改进YOLOv5s 的主干网络、使用OTA(optimal transport assignment)优化模型训练过程中的标签分配策略、使用WIoU 作为边界框损失函数实现对花椒测的快速检测。

1 材料与方法

1.1 数据集

本文以成熟的花椒簇为研究对象,部分图像采集于贵州省黔西南布依族苗族自治州晴隆县玄德花椒产业发展有限公司花椒种植基地,其经度、纬度及海拔分别是26.148°、105.942°和1 007 m。于2022 年6 月3 日,采用手机摄像头进行拍摄,拍摄照片分辨率为2 400×1 344 像素,经过筛选得到400 张图像。为了增强数据的多样性,从中国植物图像库获取了148 张花椒图像作为补充,以提供更多样化的花椒簇样本,覆盖更广泛的特征和变化。

对收集到的548 张图像,使用LabelImg 工具对目标以最小外接矩形框进行标注。为了增加数据的多样性及鲁棒性,对这些图像进行数据增强处理,针对每张图像及其标注框,采用随机旋转和亮度调整的方式进行数据扩充。具体来说,将图像在-15°到15°之间随机旋转、并对图像及标注框进行随机亮度调整,调整范围为-25%到25%。通过这种方式,为每张图像生成两张新的图像,最终得到共计1 644 张图像的数据集。将数据集按照7:2:1 的比例随机划分训练集、验证集以及测试集。数据集部分图像如图1 所示。

图1 数据集部分图像示例Fig.1 Example of some images from the dataset

1.2 改进YOLOv5s 模型的搭建

YOLOv5s 主要由骨干网络(BackBone)、颈部网络(Neck)和头部预测网络(Head)组成。YOLOv5s 的主干网络CSPDarkNet53 通过深层的卷积神经网络进行图像提取,卷积神经网络可以高效的提取图像特征,但是感受野较小,难以捕获较远距离的语义信息。此外,卷积神经网络通过在图像的不同位置应用相同的卷积核进行权值共享,难以准确识别具有不同尺度或上下文信息的目标。自注意力机制对图像的全局依赖关系进行建模,不进行权值共享,更适应不同尺度、形状和上下文信息的目标,可以提供更精准的定位和目标区分能力。

改进YOLOv5s 的结构如图2 所示,主要改进如下。首先,结合卷积神经网络与自注意力机制的优势,利用轻量级的卷积神经网络模块MBConv[24]和基于ReLU 的自注意力机制[25]改进EfficientViT 网络[26]。用其作为改进YOLOv5s 的主干网络,减少模型参数量的同时增强模型的感受野以及多尺度学习能力。其次,在训练过程中使用了OTA[27]标签分配策略,利用全局信息寻找最优的样本匹配结果,提高标签分配的质量。最后,用WIoU 损失函数[28]对原损失函数CIoU 进行替换,通过将高质量锚框的竞争能力降低,同时减少低质量锚框所产生的有害梯度,来优化边界框定位能力。

图2 改进YOLOv5s 网络整体架构Fig.2 Improved YOLOv5s network architecture

1.2.1 EfficientViT 网络

本文使用改进的EfficientViT 网络作为改进YOLOv5s 模型的主干,该网络使用一系列轻量化的卷积操作和轻量级自注意力机制提取图像特征。EfficientViT网络架构如图3 所示。输入维度为640×640×3 的三通道RGB 图像,通过Input Item 模块后,特征图依次通过Stage1、Stage2、Stage3、Stage4 进行处理,最终将Stage4 的输出输入到SPPF(fast spatial pyramid pooling)模块中。在特征提取的过程中,使用MBConv(MobileNetV3 block convolution,MBConv)模块来提取图像的特征。在Stage3 和Stage4 的MBConv 之后,添加LightweightViT 模块,以进一步的增强重要特征的表达能力。

图3 EfficientViT 网络整体架构Fig.3 EfficientViT network architecture

MBConv 模块的结构如图4 所示。首先,通过一个轻量级的1×1 卷积操作,降低输入特征图的通道数。然后采用深度可分离卷积DWConv(depthwise convolution,DWConv)对输入进行处理。经过DWConv 之后,将其输出通过SENet[29](squeeze-and-excitation networks,SENet)进行处理。接下来,通过一个1×1 卷积操作将通道数恢复到与输入特征图相同的数量。最后,将经过DWConv 和SENet 处理的特征图与输入特征图在相同维度的数值进行相加,避免梯度消失的问题。

图4 MBConv 模块Fig.4 MBConv module

其中,DWConv 分为深度卷积和逐点卷积。深度卷积将通道间的卷积分解为独立的卷积操作,在每个通道上进行独立的卷积。逐点卷积使用1×1 的卷积核对深度卷积的输出进行卷积操作,相当于对特征图的通道维度进行线性组合。两者相结合,使得网络在保持高效性的同时,能够更好地提取和表示特征。

SE 模块通过一个全局平均池化将特征图降维,然后通过两个全连接层生成每个通道的注意力权重,最后这些权重与输入特征相乘,得到新的特征图。SE 模块的输入是之前模块得到的特征图F∈RH×W×C,输出为

式中⊗表示基于元素的乘法,两个全连接层的激活函数分别是ReLU 函数和Sigmoid 函数。SE 模块的输出保留了输入特征图每个通道的重要信息,通过对每个通道的自适应调整,以突出关键特征,能够提高网络的表达能力和特征选择能力。

LightweightViT 模块如图5 所示。该模块由一个轻量级多尺度注意力Lightweight MSA(lightweight multiscale attention)模块和一个MBConv 模块组成。

图5 LightweightViT 模块Fig.5 LightweightViT module

Lightweight MSA 模块使用5×5 和3×3 的深度可分离卷积DSConv(depthwise separable convolution,DSConv)将附近的Q、K、V聚合起来。再通过轻量级的自注意力处理,增强了模块的多尺度学习能力。假设输入是x∈RN×f,自注意力可以表示为

式中Q=xWQ,K=xWK,V=xWV,Qi是矩阵Q的第i行,Kj、Vj分别是矩阵K、V的第j列。而WQ、Wk、WV∈Rf×d是可学习的线性映射矩阵。Oi是输出矩阵O的第i行。Sim(·,·)是相似性函数。

本文使用基于ReLU 的全局注意力,相似性函数Sim(·,·) 可表示为 Sim(Q,K)=ReLU(Q)ReLU(K)T。则式(2)可改写为

1.2.2 标签分配策略

目标检测网络通过预测一组预先定义的特征点或锚框(YOLOv5s 中使用锚框)的分类标签和回归偏移量完成密集的预测任务。为了训练检测器,需要为每个锚框定义分类标签和回归目标,这被称为标签分配。在YOLOv5 中,采用了基于形状匹配的标签分配策略,该策略通过计算真实标注目标和每个锚框的宽高比来确定正样本。

OTA 标签分配策略从全局的角度进行标签分配。将其视为一个优化运输(optimal transport,OT)问题。其目标是寻找一个运输计划 ω*={ωi,j|i=1,2,...m,j=1,2,...n},使得所有供应商的货品都能够以最小的运输成本提供给需求者,可表示为

式中m为供应商数量、n为需求者数量、s为供应向量、d为需求向量。对于目标检测任务,假设输入图像中存在m个真实标注目标和n个锚框(anchor)。把每一个真实标注目标视为持有k个单位正标签的供应商,而每一个锚框则是单位标签的需求者。将单位正标签从gti运输到一个锚框aj的成本可以表示为分类损失和回归损失的加权和

除了正样本之外,大量的锚框被当作负样本。假设这些负样本锚框的由输入图像的背景提供。因此将背景提供的负样本数设置为m-n×k。从背景到一个锚框aj运输一个单位的负标签的成本cbg∈R1×n定义为

式中∅表示背景分类。供应向量si可表示为

所以,完整的损失矩阵c∈R(m+1)×n,供应向量s∈Rm+1,需求向量d∈Rn,最优运输计划 ω*∈R(m+1)×n可以通过现成的Sinkhorn-Knopp[30]迭代法解决这个OT问题得到,将每个锚框分配给向其运输最多标签的真实标注目标来解码相应的分配方案。

1.2.3 WIoU 损失函数

⑤由于本工程模袋布长度比较长,底坡为新开挖土质,为防止滑坡,采用先充灌(标高35 m左右)和上沟底用于固定模袋布,再由潜水员充灌水下下平台(标高28.7 m)及自下而上充灌坡面,上平台与斜坡间采用临时隔断(人工缝隔断线),待整仓模袋布接近饱满时解除临时隔断线。

边界框定位损失直接决定了模型的目标定位能力。WIoU 使用了动态非聚焦机制,该机制使用离群度作为衡量锚框质量的指标,并提供了梯度增益分配策略。损失函数LWIoUv1可表示为

式中Wg、Hg是目标边界框与锚框的交集的宽和高,x、y表示锚框中心点坐标,xgt、ygt表示目标边界框中心点坐标、IoU(intersection over union)表示预测框与真实标注框的重叠面积与其并集面积的比值。RWIoU∈[1,e)会放大质量普通的锚框的LIoU、LIoU∈(0,1)会减少高质量锚框的RWIoU。

式中当 β=δ 时,使r=1。由于是动态的,使得LWIoU能够实时的做出梯度分配策略。

1.3 试验环境与评价指标

1.3.1 试验环境

本文方法基于python3.8 和pytorch1.12.1 框架实现。输入图像大小为640×640×3 的RGB 图像,在单张高性能NVIDIA GeForce GTX 3 090 显卡上训练。采用SGD优化器进行优化,模型的训练周期(Epoch)为300、批量大小(Batch size)为16、初始学习率为0.01,使用余弦退火函数动态降低学习率、权重衰减为0.000 5。WIoU 损失函数中设置 δ=2,α=2.2,对动量m设置n=300,t=25。

1.3.2 评价指标

mAP 由准确率(precision)和召回率(recall)计算得到。首先利用准确率何召回率绘制PR 曲线并求其积分可以得到每个种类的平均精度AP(average precision),即再对所有类别的AP 求取平均值便可得到mAP。P、R的具体计算可见参考文献 [31]。

2 结果与分析

2.1 消融试验

为了评估和验证提出的改进YOLOv5s 模型中不同组件和算法对检测模型的影响。以YOLOv5s 模型为基础,在试验中逐步移除或添加不同的组件,并通过不同的组件组合进行7 组试验,以验证各个组件的有效性。试验结果如表1 所示。

表1 消融试验结果Table 1 Result of ablation experiment

从表1 可以看出7 组试验对改进YOLOv5s 模型中不同组件或算法对花椒簇目标检测性能的影响。在第1组试验中,将YOLOv5s 模型的边界框损失函数替换为WIoU 损失函数,模型的mAP 从95.4%上升到96.1%。第2 组试验将YOLOv5s 的主干网络替换为EfficientViT 网络,模型的mAP 提升至96.3%,同时模型的参数量从7.0 M 减少到5.7 M、浮点运算数从15.9 G 减少到10.4 G,使用EfficientViT 作为主干在减少参数量的同时增强了多尺度学习能力和对重要特征的表达能力。在第3 组试验中,在YOLOv5s 的基础上使用OTA 标签分配策略,模型的mAP 提升0.8 个百分点,参数量增加了0.2 M,浮点运算数FLOPs 增加了1.1 G。OTA 标签分配策略略微增加模型的复杂度以和计算量,但提升了模型的精度。在接下来的第4、5、6 组试验中,将这些组件两两组合,添加到了YOLOv5s 的网络上,都使得模型的mAP 得到不同程度的提升。最后,将YOLOv5s 的主干网络替换为EfficientViT 网络,并在训练中采用了OTA 分配策略,将CIoU 损失函数更改为WIoU 损失函数,构成本文提出的改进YOLOv5s。在数据集上,改进YOLOv5s 模型的mAP 为97.3%。

此外,为了验证不同边界框损失函数的效果,在YOLOv5s 的基础上进行试验。将其边界框损失函数替换为目前常见的DIoU[32]、GIoU[33]、SIoU[34]、EIoU[35]及WIoU 损失函数,试验结果如表2 所示。

表2 YOLOv5s 与改进YOLOv5s 使用不同损失函数的mAPTable 2 mAP for YOLOv5s and improved YOLOv5s using different loss functions %

由表2 可知,YOLOv5s 使用CIoU、DIoU、GIoU、SIoU、EIoU、WIoU 作为损失函数时mAP 分别为95.4%、95.2%、95.9%、95.7%、95.3%、96.1%。改进YOLOv5s在使用DIoU 损失函数时mAP 最低,为96.3%,使用WIoU 损失函数时获得最高的mAP 为97.3%。两个模型均在使用WIoU 作为边界框损失函数时mAP 最高,充分证明了WIoU 的有效性。

2.2 不同目标检测模型的性能对比

为了验证本文方法的有效性,将常见的目标检测模型EfficientDe[36]、SSD、RetineNet[37]、YOLOX[38],ShuffleNet_YOLOv5s[22]进行对比试验。试验结果如表3所示。

表3 不同模型结果对比Table 3 Comparison of results from different models

由表3 数据可知,改进YOLOv5s 模型的mAP 为97.3%,比YOLOv5s 模型的mAP(95.4%)高出1.9 个百分点。同时,改进YOLOv5s 模型的参数量为5.9 M,比YOLOv5s 模型的参数量(7.0 M)减少了15.7%。改进YOLOv5s 模型的FPS 为131.6,比YOLOv5s 模型的FPS(114.9)提高了14.5 个%。与其他单阶段目标检测网络相比,改进的YOLOv5s 模型的mAP 分别比EffcientDet-D1、SSD512、RetineNet-R50 和YOLOXs 高 8、16.9、8.6 和1.5 个百分点,在参数量、检测速度上也都表现出一定的优势,更适合花椒簇检测。

YOLOv5s 与改进YOLOv5s 的花椒簇识别效果对比如图6 所示。

图6 YOLOv5s 模型与改进YOLOv5s 模型的识别结果对比Fig.6 Comparison of detection results of YOLOv5s model and improved YOLOv5s model

图片1、图片2 中花椒果实排列紧凑,YOLOv5s 与改进YOLOv5s 均成功标注了图像中所有的花椒簇,不存在漏检的情况,但是可以看出改进YOLOv5s 模型的预测框分值更大,与真实框的重叠度更高。图片3、图片4 花椒果实分布相对稀疏,且图片4 存在位于图像边缘的小目标花椒簇。YOLOv5s 模型未能检测到部分真实目标,存在漏检;而改进YOLOv5s 模型检测出了所有目标。

3 结论

为了实现花椒簇的快速准确检测,本文基于YOLOv5s 模型提出花椒簇检测模型。改进YOLOv5s 使用改进的EfficientViT 作为主干网络,降低了模型的参数量并增强多尺度学习能力、在训练中使用了OTA 标签分配策略、用WIoU 损失函数替换原先的CIoU 损失函数。在自制数据集上验证了改进YOLOv5s 模型的检测效果。

与YOLOv5s 模型相比,改进YOLOv5s 模型对花椒簇的平均精度均值提升了1.9 个百分点、模型的参数量减少了15.7%、每秒帧率提高了14.5%。得到了速度以及精度的双重提升。

本文将改进YOLOv5s 与其他常见目标检测模型进行对比,试验结果表明改进YOLOv5s 在检测精度、检测速度、模型参数量上均优于其他对比模型,对花椒簇具有较好的检测结果。

本文提出的改进YOLOv5s 模型能实现对花椒簇的快速准确检测,后续将继续优化网络结构记忆训练策略,进一步提高对花椒簇的检测效果。

猜你喜欢

锚框花椒标签
基于YOLOv3锚框优化的侧扫声呐图像目标检测
锚框策略匹配的SSD飞机遥感图像目标检测
基于SSD算法的轻量化仪器表盘检测算法*
基于GA-RoI Transformer的遥感图像任意方向目标检测
我国古代的玫瑰:花椒
当前花椒价格走低 椒农如何积极应对
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
摘花椒
花椒泡脚好处多