基于YOLO的玉米全膜双垄沟种床苗带识别方法
2022-03-08李相周郭文娟张方圆宋学锋张锋伟
李相周, 戴 飞, 郭文娟,2, 张方圆, 宋学锋, 张锋伟*
(1.甘肃农业大学机电工程学院,甘肃 兰州 730070;2.甘肃政法大学网络空间安全学院,甘肃 兰州 730070)
玉米全膜双垄沟农艺技术具有良好的集雨、保墒、抗旱、增产作用,在以甘肃为代表的黄土高原干旱区得到大力推广和应用,很大程度上提高了旱作地区粮食产量,对西北地区农业发展、粮食安全以及农村经济增长具有重要意义[1]。智能农机装备和精准农业是当前农业生产提质增效的关键载体,在2021年印发的中央一号文件《中共中央国务院关于全面推进乡村振兴加快农业农村现代化的意见》中再次强调了对高端智能农机装备研发制造的支持,因此,有效提升玉米全膜双垄沟智能全程机械化作业水平迫在眉睫[2-3]。
近年来,随着深度学习等人工智能算法在计算机视觉领域的突破式发展,越来越多的相关研究成果开始在农业生产中落地。目前,国内外在玉米秧苗识别方面的研究主要集中在病虫害识别、株数统计、导航线拟合等方面。冯槐区[4]等使用基于深度学习的目标检测方法在不同天气条件下对玉米秧苗进行了识别研究。姜博然[5]等提出了一种基于深度学习的玉米植株干旱检测方法。张伟荣[6]等利用改进的Mask R-CNN算法对玉米苗冠层做了分割。权龙哲等[7]使用YOLOv4算法分别识别了玉米苗和杂草。张博立等[8]通过动态网格和分区聚类的方法提取了玉米苗带中心线用作导航。黄英来等[9]使用改进的残差网络对玉米叶片病虫害进行了识别分类。付振宇[10]等利用YOLO算法对玉米株数做了统计,用于灾情检测和评估。杨洋等[11]使用卷积神经网络识别了玉米根茎,为后续的路径规划服务。但目前关于覆膜种床作物识别研究还鲜有报道,因此基于深度学习的目标检测网络模型,开展玉米全膜双垄沟种床苗带识别方法研究是一种很好的尝试,是实现玉米全膜双垄沟智能残膜回收、追肥、除草等农机装备田间作业的重要前提[4]。
本文基于深度学习的目标检测网络YOLOv3-SPP网络模型与YOLOx-Darknet53网络模型开展了全膜双垄沟种床苗带识别方法研究,初步探究两种模型的性能差异,以期为玉米全膜双垄沟种床苗带识别方法与玉米全膜双垄沟智能农机装备的有效结合提供理论支撑。
1 材料与方法
1.1 数据采集
玉米秧苗图像采集于甘肃洮河拖拉机制造有限公司试验田,采集对象为处于苗期的玉米秧苗[4]。使用手机进行数据采集,手机型号为HUAWEI Mate20 pro,采集过程中使用手机相机的自动模式,关闭AI图像增强,图像分辨率设置为1 280×720。采集过程中模拟摄像头安装在农机上的视角,手机距离拍摄对象高度为1 m,分别使用45°和90°两种视角拍摄以丰富数据集,共采集3 600幅图像。
1.2 数据集制作
数据集的标注质量关系到训练检测模型最终的准确度,需要对采集的图像进行细粒度目标标注。本文使用LabelImg标注软件标注图像,在拍摄的3 600幅图像中筛选出3 111幅包含待检测目标的可用图像,人工标注图像中的目标信息生成PASCAL VOC格式的玉米秧苗数据集,标注过程如图1所示。用于训练的数据集通常包含训练集、验证集和测试集,本文采用9∶1的比例生成训练集和验证集共2 799幅图像、测试集共312幅图像,再以9∶1的比例生成训练集共2 519幅图像、验证集共280幅图像。
图1 种床苗带数据集标注
2 检测网络模型介绍
YOLO(you only look once)系列算法是one-stage系列算法中的一种,经过不断地改进优化,目前YOLO系列在各种one-stage算法中取得了最优的检测精度和处理速度[12-15]。YOLOv3是YOLOv2的改进版本,主干网络由Darknet19改进为Darknet53,加入了残差模块(Residual),同时还借鉴了特征金字塔网络(Feature Pyramid Networks,FPN)的特征融合方法在Neck部分设置了FPN层[14]。YOLOv3-SPP网络模型是在YOLOv3的基础上在主干网络后的Neck部分添加空间金字塔池化(Spatial Pyramid Pooling,SPP)模块得到。与YOLOx相比,YOLOv4和YOLOv5对基于anchor的流程存在过度优化,因此其选择在YOLOv3-SPP网络模型的基础上改进得到YOLOx-Darknet53网络模型。YOLOv3-SPP网络结构如图2所示,其中,CBL即卷积(Conv)、批量归一化(Batch Normalization,BN)和LeakyReLU激活函数的组合。
YOLOx-Darknet53网络模型在YOLOv3-SPP的基础上,将预测部分(图2虚线框外的部分)的YOLO Head更改为Decoupled Head,YOLOx-Darknet53网络模型优化改进结构如图3所示。该改进提高了模型的预测精度,同时也加快了网络的收敛速度[15]。
图2 YOLOv3-SPP网络模型结构
图3 YOLOx-Darknet53网络模型优化改进结构
在预测部分,YOLOx-Darknet53网络模型还将YOLO系列采用的Anchor Based方式更改为Anchor Free方式,这一改进将模型的预测参数量减少了2/3,极大提高了模型的预测速度,相应的使用SimOTA方法动态匹配正样本[15]。
3 识别设置与方法
3.1 实验环境
本次实验使用的计算机具体硬件配置如下,CPU为AMD Ryzen 5 5600 X @ 3.7 GHz(6核12线程),GPU为NVIDIA GeForce 1060 6 GB,搭配16 GB DDR4 3200 MHz内存。软件版本配置如下,操作系统为Windows10 20H2,基于Anaconda安装Python3.6、CUDA Toolkit10.2、cuDNN7.6.5,深度学习框架为PyTorch1.2.0。
3.2 模型训练
使用制作好的数据集分别对YOLOv3-SPP网络模型和YOLOx-Darknet53网络模型进行训练。两个模型的输入尺寸均选择官方推荐的大小,为了尽可能使两种网络初始条件接近,YOLOv3-SPP网络模型设置为608×608,YOLOx-Darknet53网络模型设置为640×640,对输入图像采用不失真的Resize方法。参考官方在COCO数据集上训练了300个epoch,由于本次为基于官方预训练权重进行训练,因此将迭代次数均设置为100个epoch,batchsize设置为32,初始学习率设置为1×10-3,动量设置为0.9,权重衰减设置为5×10-4,因为YOLOv3-SPP网络模型没有使用Mosaic和Mixup数据增强,且YOLOx中Mosaic大量的crop操作会带来很多不准确的标注框,因此,为了公平起见本次训练不使用数据增强[15]。
由于YOLOx-Darknet53网络模型的输入图像尺寸较大,训练过程产生的参数较多,因此对YOLOx-Darknet53网络模型采用冻结训练的方法以加快训练进度,具体措施为前50个epoch冻结训练后50个epoch解冻训练。解冻阶段的初始学习率设置为1×10-4,对网络进行微调。冻结训练阶段网络的主干部分被冻结,特征提取网络不发生改变,网络的参数改变的少,训练所需的硬件开销较小。解冻训练阶段网络的主干部分解冻,特征提取网络开始调整,网络的所有参数都发生改变,训练所需的硬件开销大、训练时间长。在本次训练中,即使对YOLOx-Darknet53网络模型使用了冻结训练,其训练所需时间依然远大于YOLOv3-SPP网络模型。两种网络模型训练时的Loss曲线如图4和图5所示,由两图可以看到冻结训练对Loss曲线的影响,YOLOx-Darknet53网络模型在主干网络解冻后Loss再次快速收敛后趋于稳定。
图4 YOLOv3-SPP Loss曲线
图5 YOLOx-Darknet53 Loss曲线
4 实验结果与分析
4.1 评价指标
训练结束后在验证集上评估模型的性能,使用平均指度mAP、准确率(Precision)、召回率(Recall)和F1值4个指标。根据预测结果和真实情况得到计算P、R的三个指标:TP为真实值为正且预测值为正的样本个数;FP为真实值为负且预测值为正的样本个数;FN为真实值为正且预测值为负的样本个数。
(1)
准确率P反映了模型预测的所有目标中预测正确的比例。
(2)
召回率R反映了所有真实目标中模型预测正确的比例。
(3)
F1值同时考虑了准确率和召回率两个指标,是两个指标的调和平均值。
(4)
AP为面积概念,为P-R曲线下包含的面积。mAP为检测多个类时所有类别AP的平均值,由于本文只涉及1个类别,所以mAP值和AP值相等。
4.2 不同网络对比分析
使用YOLOv3-SPP网络模型和YOLOx-Darknet53网络模型在测试集上进行玉米全膜双垄沟种床苗带识别检测效果对比实验,得到各类评价指标在本文所使用的硬软件平台上的结果。两种模型的P-R曲线如图6和图7所示。其中,YOLOv3-SPP网络的mAP为94.72%,YOLOx-Darknet53网络模型的mAP为95.56%,YOLOx-Darknet53相比YOLOv3-SPP提高了0.84%。
图6 YOLOv3-SPP P-R曲线
图7 YOLOx-Darknet53 P-R曲线
两种模型的P、R、F1值和FPS如表1所示,P、R、F1值均在阈值(Threshold)为0.5时取得。从表中可以看出两模型在阈值为0.5时精度相差不大,YOLOx-Darknet53的准确率仅比YOLOv3-SPP高了2.1%。FPS值为使用100幅图像检测得到的结果,得益于Decoupled Head与Anchor Free的改进,YOLOx-Darknet53网络模型在GTX1060平台上运行时检测速度为44.3FPS,而YOLOv3-SPP网络模型运行时检测速度为19.1FPS,两者相差25.2FPS,表明YOLOx-Darknet53网络模型的实时监测效果优于YOLOv3-SPP网络模型。
表1 两种网络模型性能对比
对比两个模型在测试机上的检测结果,如图8和图9所示。可以发现应用YOLOv3-SPP网络模型的检测结果在进行玉米全膜双垄沟种床苗带识别时,覆膜种床苗带左上、左下、中上、右下均出现了秧苗漏检情况,其中右上部分和中上部分最为严重,而YOLOx-Darknet53网络模型能够全部检出。综合多张图像检测结果中的漏检现象分析,YOLOx-Darknet53网络模型对重叠的小目标检测效果好于YOLOv3-SPP网络模型,通过应用YOLOx-Darknet53网络模型能够有效提升玉米全膜双垄沟智能残膜回收、追肥、除草等农机装备的作业识别精准度。
图8 YOLOv3-SPP Loss检测效果
图9 YOLOx-Darknet53 Loss检测效果
5 结束语
本文使用YOLOv3-SPP网络模型与YOLOx-Darknet53网络模型开展了玉米全膜双垄沟种床苗带识别方法研究,获得了以下结论:
(1)采用YOLOv3-SPP网络模型与YOLOx-Darknet53网络模型在本研究所使用的测试集上mAP分别达到了94.72%和95.56%,后者比前者高了0.84%,同时后者的准确率比前者高了0.021,且后者的小目标检测效果更好。
(2)YOLOx-Darknet53网络模型在测试平台上达到了44.3 FPS的检测速度,与YOLOv3-SPP网络模型检测速度相比提高了25.3 FPS,表明YOLOx-Darknet53网络模型的实时检测效果优于YOLOv3-SPP,更适合于有效提升玉米全膜双垄沟智能残膜回收、追肥、除草等农机装备的作业识别精准度。