改进YOLOv5 识别复杂环境下棉花顶芽

2023-11-26 10:12周建平席光泽
农业工程学报 2023年16期
关键词:顶芽注意力棉花

彭 炫 ,周建平 ※,许 燕 ,席光泽

(1. 新疆大学机械工程学院,乌鲁木齐 830017;2. 新疆维吾尔自治区农牧机器人及智能装备工程研究中心,乌鲁木齐 830017)

0 引言

棉花是中国仅次于粮食的第二大作物,是关系到国计民生的重要资源。近年来,棉花种植主要依靠人工,劳动力短缺、机械智能化生产程度低等问题仍需解决,因此中国的棉花产量仍有很大提升空间[1-5]。棉花打顶是棉田作业过程中的重要环节,脱离人工打顶促进智能机械化打顶是降低成本、提升棉花生产效率的重要手段。对于棉花打顶机器人的设计,首要任务是解决复杂棉田环境中不损伤棉花蕾,精准驱动激光去除顶芽是其重中之重,因此精准识别定位棉花顶芽是关键环节。

近年来,随着Fast R-CNN、YOLO 系列等[6-9]经典目标检测算法不断迭代更新,其迅速在各个领域得到了广泛应用。国内外研究学者针对目标检测技术在农业领域的应用进行了广泛的研究。KOIRALA 等[10]为验证芒果发育阶段影响开花数量,使用YOLOv3 算法在芒果发育阶段自动检测圆锥花序数量,但YOLOv3 检测物体的实时性较慢。刘海涛等[11]为实现非接触、低成本、精准识别棉花顶芽,提出一种基于YOLOv4 模型的复杂环境下棉花顶芽识别方法,然而该设计对顶芽了解不够全面,并没有对顶芯进行识别,造成顶芽识别率过低,打顶效果不佳。JIA 等[12-13]改进了Mask RCNN 算法,提升了树叶遮挡等复杂环境下苹果识别的准确度,但是Mask RCNN 模型为一阶段检测模型,较比YOLO 模型检测效率较低。朱旭等[14]采用Fast R-CNN 模型算法在恶劣环境下对蓝莓进行识别,目标检测准确率和效率明显提高,但是Fast R-CNN 算法需要采集大量的数据训练模型,在样本不足的时检测准确度明显降低。李天华等[15-16]设计了一种基于YOLOv4 的改进算法,实现了对复杂环境下的番茄识别定位,能够有效解决果实遮挡、光照影响下番茄识别准确率低的问题,但训练成本过大,检测帧数过低,模型计算量过大,不便于模型轻量化运行。CHEN等[17]为提升茶蕾识别定位精度,保证茶蕾采摘的完整率,设计了一种基于YOLOv3 的改进茶蕾识别算法模型,该模型能在光照变化和部分遮挡等复杂环境下识别茶蕾并定位采摘点。茶蕾与棉花顶芽同样是小目标农作物,但YOLOv3 检测算法对小目标提取效果并不理想,该算法识别的准确率有待加强。薛月菊等[18]针对果园场景下光照的多样性、背景的复杂性及芒果与树叶颜色的高度相似性,特别是树叶和枝干对果实遮挡及果实重叠等问题,提出了改进YOLOv2 检测方法,但由于YOLOv2 模型过大,识别效果和检测速度不够理想。樊湘鹏等[19]为建立高效、准确的葡萄叶部病害检测系统,引入迁移学习机制,利用大型公开数据集对VGG16 模型预训练,保持模型前端13 个层等参数和权重不变,对全连接层和分类层改进后利用新数据集微调训练模型,虽然能够完成对葡萄叶部病虫害识别,但训练成本过大,检测速度较慢。

基于此,上述研究学者在目标检测技术存在小目标检测精度低、实时检测慢、模型计算量大等问题,本文对复杂环境下对棉花顶芯识别为研究对象,本文选用YOLOv5s 模型,针对以上述问题进行优化,设计一种基于YOLOv5s 的改进棉花顶芽识别模型,为棉花机械化打顶提供视觉识别研究基础。

1 试验数据获取

棉花顶芽数据采集地于新疆生产建设兵团第八师143 团棉花基地,品种为新路早50,采集设备为索尼A7M3 全高清摄像机,为采集真实环境的复杂棉花顶芽数据,不同光照和不同天气条件下均分为单株顶芽、多株顶芽、遮挡顶芽3 种类别进行拍摄,共采集到1 360张顶芽图像,经筛选后得到506 张清晰顶芽图像(其中不同光照156 张,不同天气150 张,不同遮挡顶芽面积200 张),经数据增强(平移、翻转、剪切、降噪、缩放比例、亮度增强)扩充到3 103 张图像,随机抽取2 663 张作为训练集,240 张作为验证集,200 张作为测试集,图1 为棉花顶芽样本数据。

2 YOLOv5s 检测算法改进

2.1 YOLOv5-CPP 模型

使用YOLOv5s 目标检测算法对棉花顶芽数据集进行训练,在复杂环境下棉花顶芽识别效果并不理想。随着网络层的加深,小目标信息逐渐丢失,同时由于YOLOv5s 算法中原有3 个检测头,对多尺度目标特征信息提取效果不佳,尤其对棉花顶芽小目标检测识别会出现错检漏检的问题。为了实现顶芽较好的检测效果,以YOLOv5s 目标检测算法为基础,将主干网络得第2 层引出第4 个目标检测头,因浅层含有特征信息更加丰富,为避免随着网络加深信息丢失,将浅层与深层提取到的特征信息进行融合,解决小目标特征信息随着网络结构加深信息丢失问题,避免特征提取不充分。由于在改进的YOLOv5s 结构中增加目标检测层会使模型的计算量加大,因此在原有目标检测网络中,需要设计一种既能解决模型参数量问题又能解决对小目标提取效果好的模块来代替C3 模块。经试验分析,CPP-CBAM 注意力机制为最佳模块,将CPP-CBAM 加入到第13 层得到棉花顶芽最佳目标检测模型,图2 为YOLOv5-CPP 目标检测模型改进结构图。

图2 YOLOv5-CPP 模型结构图Fig.2 The YOLOv5-CPP model structure figure

2.2 CPP-CBAM 注意力机制模块

CPP-CBAM 注意力机制模块如图3 所示,C3 卷积核结构分为两个分支,第一分支将特征图先升维后降维然后与第二分支网络进行特征融合,特征融合后特征图再进入通道模块,最大池化层Maxpool 以及平均池化层AvgPool 将特征图变成两个矩阵[C,1,1]的权重向量,两个拼接的权重向量经过MLP 网络获取到通道的权重值,增加原特征图的特征通道数,通道数得到两个激活函数,将两个输出结果的每个元素相加,再由Sigmoid 激活函数过滤掉冗余过多顶芽特征,按权重重要程度先进行筛选特征图,筛选出的特征图在再经过空间模块Maxpool最大池化以及平均池化层AvgPool,形成一个[1,H,W]的权重向量,由于CBAM 模块多数经过1×1 卷积核、最大池化层以及平均池化层操作,能够压缩特征通道维度,将复杂的模型特征通道数大大减少,达到增加注意力机制后,目标检测模型参数也减少的目的。

图3 注意力机制图Fig.3 Attention mechanism figure

2.3 分类 Focal Loss 损失函数

机械打顶作业过程中由于棉田环境复杂,棉花顶芽被叶片严重遮挡,给机器对顶芽识别带来困难,为了使预测框回归到真实框速度加快,因此考虑将CIOU[20]损失函数替换为SIOU[21]损失函数。GIOU[22]、DIOU[23]、CIOU 损失函数只考虑了预测框与真实框的宽高比,并没有考虑到它们之间的方向,易退化成IOU 损失函数,导致顶芽识别率精确度下降,式(1)SIOU 损失函数引入了真实框与预测框之间的向量角,其包含式(2)角度损失函数式、式(3)距离损失函数式、式(4)形状损失函数。

式中 γ为赋予时间的距离值,ρx为真实框与预测框中心点和最小外接框宽比值的平方,ρy为真实框与预测框中心点和最小外接框高比值的平方,式(3)θ为控制对形状损失的关注程度,t、w、h代表真实框与预测框的宽与高,为预测框的宽与高,接近4 才能避免过度关注形状损失函数。

2.4 系统平台与评价指标

试验运行环境操作系统为 Windows 10(64 位),内存为16 GB,显卡驱动 RTX2060 SUPRER,搭载12 th Gen Intel(R) Core(TM) i5-9400F 2.90 GHz 处理器,编程平台Anaconda 4.12.0,CUDA 11.6,开发环境 PyTorch,编程使用Python3.8,通过精确率(Precision,P),召回率(Recall,R)。

式中TP表示正样本预测出来正确的框,FP表示负样本预测出正样本的框,FN表示从正样本预测出负样本的数量,TP+FP表示正样本预测出来正确的框加上负样本预测出正样本的框,也就是表示预测框的个数。TP+FN表示正样本预测出来正确的框加上正样本预测出负样本的数量也就是标注框的个数。

3 结果与分析

3.1 内部参数对模型的影响

为测试出YOLOv5s 模型的最佳内部参数,即不同批量大小对YOLOv5s 的影响,在训练时利用github 官网提供的 YOLOv5.pt 预训练权重,通过自制YOLO 格式棉花顶芽数据集,模型设置图像大小为640×640 分辨率,训练轮次设置为150,以及初始学习率为0.01,采用Adam 优化器,分别设置不同批量大小分别为10、12、15、17、20、25 进行训练,试验结果如表1 所示。通过数据对比可以看出,在相同迭代周期内,批量Batch size 设置为20 时效果最好,即使平均准确率mAP 达到了90.3%,图片测试验证效果可看出,未改进的目标检测模型仍有提升空间。

表1 内部参数对模型的影响Table 1 Effect of batch size on model

3.2 不同注意力机制对模型的影响

为测试不同注意力机制对模型的影响,分别将不同注意力机制加入到YOLOV5s 目标检测模型第13 层,将C3 模块更换为SE、BotNet[24]、CotNet[25]、C2f、CCA、CCP-CBAM 6 种注意力机制模块,YOLOv5-CPP 与其他5 种模型对比结果如表2 所示,YOLOv5-CPP 检测平均准确率mAP 上升2.5、1.6、1.7、0.8、1.4 个百分点,而YOLOv5-SE、YOLOv5-BotNet、YOLOv5-CotNet、YOLOv5-CCA 这4 种模型检测单株顶芽的平均精度值分别降低了1.1、0.1、0.3、0.4 个百分点,说明在棉花顶芽数据集上SE、BotNet、CotNet、CCA 注意力机制抑制了棉花顶芽的通道特征,造成总体识别顶芽精度下降,相反YOLOv5-CPP 精度上升比例最大,进一步说明了CPPCBAM 自注意力机制经过空间模块与通道模块,对重要特征进行数值编码,强化了各特征之间的关系,降低了对全局注意力计算的结果,更加注重顶芽特征,因此CPP-CBAM 注意力机制在3 种样本上效果均有所改善,尤其是对遮挡顶芽这种数量多的样本改善效果更加明显,因此得出CPP-CBAM 注意力机制既能够解决在复杂情况下对小目标在复杂环境下的特征提取任务。

表2 各个注意力机制模型对比Table 2 Comparison of attention mechanism models

3.3 注意力机制不同位置加入模型对比分析

为测试CPP-CBAM 注意力机制对模型的影响,本试验通过将注意力机制CPP-CBAM 插入到不同网络层中,测试出模型的检测速度与平均准确率,试验效果见表3,第13 层分别加入CPP-CBAM 注意力机制之后,较比插入到1、3、5、9、20 层平均准确率mAP 明显有所提升,因为随着网络加深,第13 层C3 模块对特征图处理效果较比CPP-CBAM 注意力机制特征提取能力较弱,浅层小目标信息较为丰富,C3 模型尚且能够对小目标信息特征进行提取,但是随着网络加深小目标信息丢失,C3 模块逐渐对小目标的特征提取效果不理想,因此可以推出第13 层插入CPP-CBAM 注意力机制效果最佳。

表3 不同层加入注意力机制对模型的影响Table 3 The effect of different layers adding attention mechanisms on the model

3.4 与其他模型对比分析

与其他模型对比结果见表4 所示,

表4 各个检测模型对比Table 4 Comparison of each loss function

为验证YOLOv5-CPP 模型在棉花顶芽数据集上检测效果,本文分将YOLOv3[26]、YOLOv5s、YOLOv6[27]、Fast-RCNN 这4 种网络模型在棉花顶芽数据集上进行训练,在相同迭代次数内,YOLOv3、YOLOv5s、YOLOv6、Fast-RCNN 这4 种网络模型对数据集进行提取特征的效果并不理想,进一步说明网络模型中模型对顶芽部分特征提取不到位,导致检测精度不高。将CPP-CBAM 注意力机制加入到YOLOv5s 模型中,并改进边界框回归损失函数,对比4 种网络模型在棉花顶芽的训练情况,得出改进YOLOv5s 的mAP 值比YOLOv3、YOLOv5s、YOLOv6s、Faster-RCNN-tiny 模型分别高出3.3、2、2.4、2.1 个百分点,同时模型参数量分别减少57.3、3.5、34.1、26.3 MB,但检测速度并未达到实时检测棉花顶芽的帧率。

3.5 Jetson nano 部署试验分析

为测试YOLOv5-CPP 模型移植到试验样机实时检测顶芽的效果,将YOLOv5-CPP 与YOLOv5s、YOLOv5-CotNet、YOLOv5-BotNet 3 种模型进行对比分析,4 种模型检测棉田同一区域被遮挡顶芽,如图4 所示。通过测试顶芽图可以发现,YOLOv5s、YOLOv5-BotNet、YOLOv5-CotNet 模型识别遮挡的顶芽分别漏检顶芽个数为5、5、2,同时YOLOv5-BotNet 错检1 个顶芽,YOLOv5-CPP 检测模型(图4d)较比 YOLOv5-CotNet检测模型(图4c)检测遮挡的顶芽,平均准确度mAP分别提升15、29 个百分点,YOLOv5-CPP 模型鲁棒性进一步加强,模型识别准确度大幅度提升,同时在TensorRT 加速情况下检测速度达到了52 帧/s,满足实时检测的效果,在遮挡情况下的顶芽基础上识别率、模型的鲁棒性进一步提升,验证了对遮挡情况的下顶芽有提升的效果。

4 结论

本文在复杂环境识别遮挡下的棉花顶芽,建立不同不同光照和不同天气条件下的棉花顶芽样本,通过增加小目标检测层提高浅层与深层的特征融合,提升检测精度通过增加小目标检测层,并且添加注意力机制,同时改进Focss Loss 损失函数,提升棉花顶芽样本识别率,并通过棉花打顶平台验证不同检测模型对棉花顶芽识别,得到以下几个结论:

1)通过在模型特征提取层增加小目标检测层以及YOLOv5-CPP 并 与 YOLOv5-SE、YOLOv5-BotNet、YOLOv5-CotNet、YOLOv5-C2f、YOLOv5-CCA 5 种 模型进行对比,平均准确度mAP 分别提高了2.5、1.6、1.7、0.8、1.4 个百分点,尤其在识别被遮挡顶芽平均精度AP分别提高了4.3、4.4、4.3、1.9、1.9 个百分点,充分验证在模型特征提取层增加 CPP-CBAM 注意力机制能够完成在复杂情况下的顶芽精确识别。

2)本文通过对YOLOv5 模型改进,YOLOv5-CPP 不均衡各类样本 检测精度mAP 达到了92.8%,比YOLOv5s模型提高了2 个百分点,与YOLOv3、YOLOv6、Fast RCNN 相比,mAP 分别提高了3.3、2.4、2.1 个百分点,分析得出YOLOv5-CPP 对复杂情况下样本检测优势明显。

YOLOv5-CPP 模型在复杂背景下识别精度、鲁棒性大幅度提升,模型的检测速度虽然降低,但YOLOv5-CPP 模型通过 TensorRT 加速后经过实地验证后可以满足棉花打顶实时识别检测要求,而且对于棉花打顶机而言,在保证识别准确率的前提下,提升速度指标,是保障机械作业效率的前提,为模型在棉花打顶机械上的迁移部署提供技术支持。

猜你喜欢
顶芽注意力棉花
棉花是花吗?
让注意力“飞”回来
辽宁熊岳地区苹果树冻害调查分析*
脱毒马铃薯费乌瑞它不同薯块对产量的影响
棉花
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
道地药材建青黛组织培养技术研究
心中的“棉花糖”
第三讲 棉花肥害诊断及其防治