高嘉南,侯凌燕,杨大利,梁 旭,佟 强
(北京信息科技大学 计算机开放系统实验室,北京 100101)
农田里的杂草因其与作物竞争养分、引入作物疾病、吸引害虫等给农业造成了严重的损失[1]。当前杂草治理主要依靠人工除草和除草剂:人工除草劳动强度大,成本高,除草效率低[2],并且劳动力短缺问题日益严重;使用除草剂虽然人工成本低、适合大面积作业,但会对生态环境造成破坏[3]。智慧农业[4]的提出和深度学习、机器视觉等技术的发展,为研究除草机器人技术带来机遇。作物与杂草的精准识别可为除草机器人的研究奠定理论基础并提供技术方法,也是实现精准高效除草的关键。
传统作物与杂草识别利用机器视觉和图像处理的方法,获取田间植物的形状、颜色、纹理等特征,再将这些特征进行组合传输到特征分类器,实现对作物与杂草的识别[5-9]。此类方法提取特征需要人工完成,耗费大量的时间精力,并且田间自然环境复杂,受光照变化、作物密度、植物之间交错生长等多因素的影响,难以高效解决作物与杂草的识别问题。
卷积神经网络由于其模仿人类的视觉机制,被广泛应用于视觉任务[10-11]。彭明霞等[12]利用残差卷积和在区域生成网络(region proposal network,RPN)中引入特征金字塔,优化卷积神经网络结构,该方法对棉花与杂草的平均识别准确率为95.5%,但模型训练时间过长。孟庆宽等[13]利用轻量卷积神经网络结合特征融合改进单发多盒检测(single shot multibox dector,SSD)模型,检测速度有所改善,但模型的平均检测精度为88.27%,仍有待提高。王璨等[14]提取目标的多尺度分层特征,并通过超像素分割解决目标交叠问题,对目标的平均识别准确率为98.92%,但该方法进行实际农田作物与杂草的检测时,需要对图像进行超像素分割,增加了目标检测时间。
为解决上述问题,本文将YOLOv4的特征提取网络用MobileNetV3网络替代,并在路径聚合网络(path aggregation network,PANet)[15]中引入深度可分离卷积,降低模型参数规模,提高模型检测速度,减少模型训练时间。为减少数据采集成本,本文通过旋转、扩大缩小和图像亮度变化等方法对原始实验数据进行扩充,增加实验数据量的同时,可以获得不同角度、不同大小以及不同亮暗程度的图像,使数据集包含的数据种类更丰富,节约数据采集成本,提高目标检测网络识别准确率。
YOLOv4算法的检测原理为:输入图片首先经过CSPDarknet53网络提取特征,在此通过一系列的残差堆叠结构,有效防止梯度爆炸或梯度弥漫。将特征提取网络的输出结果经过空间金字塔池化网络(spatial pyramid pooling net,SPPNet)[16]进行最大池化处理,再利用增强特征提取网络进一步地提取特征和进行特征融合。PANet负责对深层语义信息和浅层细节信息进行融合,实现特征金字塔,得到更强的语义信息,提高目标检测的准确率。
YOLOv4算法相比于YOLOv3算法,对网络结构和模型训练技巧等多个方面做出了改进。YOLOv4将跨阶段局部网络(cross stage partial network,CSPNet)与Darknet-53残差网络相结合,能够提取图像深层次网络特征并减小计算量;增加SPPNet模块,增大感受野,提取更高层次的语义特征,使其可以适应不同的尺寸和背景特征的目标识别。YOLOv4网络中,主干特征提取网络采用CSPDarknet53结构形式,将CSPNet网络结构应用于Darknet-53中残差模块,使上层特征图的一个分支进行残差运算,残差运算后得到的特征图再与另一个分支相结合。增强特征提取网络用来增强特征图对目标特征的表达,其包括SPPNet和PANet两部分,SPPNet网络结构采用4个不同尺度的最大池化层对上层特征图进行处理,提高小尺寸的特征提取效果;PANet对主干网络和SPPNet输出的特征图进行特征融合,使目标的特征被更好地表达。
针对YOLOv4模型网络结构复杂、网络参数量过多、计算复杂度较高等问题,在原始YOLOv4算法的基础上,本文提出一种基于YOLOv4结合轻量级网络的目标检测算法。利用轻量级网络MobileNetV3对输入图像进行特征提取,使检测网络的特征提取过程更加高效。在此基础上,在PANet引入深度可分离卷积,进一步精简目标检测网络。改进后的网络是由MobileNetV3、SPPNet、PANet以及YOLO Head等模块组成的混合轻量级网络,改进后的YOLOv4网络结构如图1所示。其中主干特征提取网络中的归一化参数Hard-swish替代了原网络中的Mish,Bneck结构替代了原网络中的残差块,特征融合模块中的深度可分离卷积替代了原网络中的卷积操作。
图1 改进后的YOLOv4网络框架
在YOLOv4中,主干特征提取网络有复杂的残差结构,计算复杂度高,算法可移植性较差,不适用于类似除草机器人的移动和嵌入式设备。因此,本文使用轻量级神经网络MobileNetV3替代YOLOv4原CSPDarknet53网络,如图2中主干特征提取网络3部分所示。
输入网络的图片经过MobileNetV3的Bneck结构进行特征提取,通过特征提取网络后得到3个不同维度的特征图,这些特征图将在增强特征提取网络部分进行特征融合,提升特征的判别能力。Bneck结构如图2所示,先将输入的特征图经过1×1卷积升维,提高维度后可以有效减少特征图经过ReLU激活函数造成的信息丢失,之后进行深度可分离卷积,同时引入注意力机制平衡特征图每个通道的权重,最后再经过1×1卷积调整特征图的维度。
MobileNetV3的核心是深度可分离卷积替代一般卷积块,从而大幅降低网络参数量,并进一步提升检测速度。深度可分离卷积主要由两部分组成,一是空间滤波能力较强的深度卷积,二是起线性组合作用的点卷积。深度可分离卷积原理由式(1)~(3)解释。
标准卷积操作计算公式为
P=K×C×N
(1)
式中:P为参数计算量;K表示卷积核大小;C为通道数;N为卷积核数量。
深度可分离卷积操作首先使用一个卷积核进行逐通道卷积,再利用N个1×1卷积核进行逐点卷积调整通道数。参数计算量P′为
P′=K×C+C×N
(2)
对两式求比值得:
(3)
根据式(3),深度可分离卷积与标准卷积操作的比值小于1,比值由卷积核的数量和卷积核的大小决定。
MobileNetV3还引入具有线性瓶颈的逆残差结构,与传统的残差网络不同的是,逆残差结构中间通道数多,两端通道数少。逆残差结构可以将输入特征扩展到更高的维度,以增加在每个通道的非线性变化。MobileNetV3在线性瓶颈结构中引入注意力机制,对于神经网络来说,不同的特征及特征权重影响网络的预测结果,提高更重要的特征的权重,而降低对预测结果影响不大的特征的权重,将进一步提高神经网络的预测准确性。MobileNetV3网络利用压缩—激发(squeeze and excite,SE)结构实现注意力机制,增加更重要的特征的权重,并抑制对预测结果影响较小的特征。
特征提取网络会输出3个特征图,每个特征图的尺度不同,分别包含不同维度的语义信息,这些特征图被继续输入增强特征提取网络进行处理。与主干特征提取网络类似,由于PANet采用多个3×3的卷积,进行多次上采样和下采样的过程中,卷积操作计算量很大,导致对目标进行检测的时间过长。针对上述问题,本文利用深度可分离卷积实现PANet网络的轻量化,提升网络增强特征表达的效率,如图2中空间金字塔结构部分所示。
改进后的PANet对主干特征提取网络输出的两个特征图与SPPNet输出的一个特征图进行特征融合时,通过深度可分离卷积完成特征图的上采样和下采样,将融合后的特征传入预测网络,预测网络根据这些特征对检测目标的所属类别进行预测。相较于原PANet网络,利用深度可分离卷积(depthwise separable convolution,DSC)改进的增强特征提取网络(DSC-PANet)网络参数大幅降低,模型检测速度明显提升。
YOLOv4网络改进前后的模型参数对比如表1所示,表中YOLOv4表示原YOLOv4网络,YOLOv4-MobileNetV3表示改进YOLOv4的主干特征提取网络,YOLOv4-MobileNetV3-DSC-PANet表示改进特征提取网络和增强特征提取网络。
表1 网络结构参数量对比
根据表1所示的网络结构参数量对比,利用轻量级网络代替原YOLOv4主干特征提取网络,可使模型网络参数量降低为原始YOLOv4的62.5%;在此基础上对增强特征提取网络进行轻量化处理之后,网络参数量降低为原始YOLOv4的18.4%,并且优化后的网络所占内存仅为44 MB,可以节约大量内存空间,更适用于嵌入式设备。
通过改进YOLOv4网络,减少网络训练时间,提高网络检测速度。同时,研究数据扩增方案,对训练数据进行扩充,提高网络识别准确率。
3.2.1 改进网络结构对比实验方案设计
为了降低检测网络结构复杂度,提高网络检测速度,本文主要对YOLOv4网络结构做出以下两个改进:1)利用MobileNetV3轻量级网络进行特征提取;2)利用深度可分离卷积改进PANet。进行网络结构的对比实验时,实验数据选择原始实验数据,网络结构分别选择原YOLOv4网络、只改进1)、同时改进1)和2),对得到的模型检测结果进行对比分析。
3.2.2 数据扩增实验方案设计
作物与杂草识别实验以玉米幼苗及其伴生杂草为研究对象,原始实验数据来源于实地拍摄,数据集包括不同种植地块、不同生长阶段、不同光照的玉米及杂草图像,数据集共包含图像1 300幅,图3为示例。
图3 玉米与杂草数据
考虑到实际农田中作物与杂草的生长状态、形状和位置分布都是不同的,数据采集时相机拍摄的角度和拍摄距离难以保持统一,并且采集数据时的光照条件也随天气和时间变化,本研究在数据扩增阶段选择旋转、扩大缩小、亮度变换3个方法对原始实验数据进行扩充。通过增加不同角度、不同植物大小和不同亮度的实验数据,既增加了数据量,也提高数据集数据种类的丰富度。
1)旋转角度数据扩增实验方案
通过旋转不同角度进行数据扩增时,选择旋转角度变化间隔分别为90°、60°、30°和10°进行4次数据扩增,对每次扩增后的数据集进行模型训练,对得到的模型的检测效果进行对比分析。
2)扩大缩小数据扩增实验方案
首先对本研究所用的玉米与杂草数据进行筛选,选出数据集中玉米或杂草过大或过小的数据,因为对这部分图像不宜再进行扩大或缩小操作,对其余数据通过扩大缩小的方法进行数据扩增,扩大缩小变换倍数范围为0.5~1.5,每次变换的倍数间隔分别为0.5、0.2、0.1,进行3次扩增。对扩增后的数据集进行实验,并对检测模型的检测效果进行对比分析。
3)亮度变换数据扩增实验方案
为了从图像亮度方面增强数据的多样性,通过伽马变换对玉米与杂草图像数据进行对比度调节:
s=crγ
(4)
式中:s为经过伽马变换后的灰度输出值;c为灰度缩放系数(通常取1);r为图像原来的灰度值;γ为伽马因子,控制伽马变换的缩放程度。
通过实验确定伽马因子变换范围为0.4~3.0(当伽马因子小于0.4时,图像过暗,大于3.0时,图像过亮)。每次伽马因子变换间隔分别为0.5、0.3、0.1,进行3次数据扩增。利用扩增后的数据集进行模型训练,并对检测模型的检测效果进行对比分析。
为加快训练速度,在训练模型时选择迁移学习方法。训练过程分为两阶段,第一阶段冻结网络进行训练,设置图像批处理数量为8,初始学习率为0.001;第二阶段解冻特征提取网络,设置图像批处理数量为4,初始学习率为0.000 1。两个阶段的训练过程均设置早停机制,当验证集损失多次不下降时自动结束训练,防止过拟合的出现。
本文选择平均精度均值(mean average precision,mAP)、检测速度、模型训练时间、模型参数规模作为评价指标。对检测模型的检测精度、实时性、训练模型耗费时间及模型大小做综合比较,选出检测性能更优的模型。
交并比(intersection over union,IoU)设定为0.5,改进后的模型和原始YOLOv4模型的性能对比结果如表2所示,其中AP为平均精度,mAP为平均精度均值,检测速度为模型每秒可以检测的玉米与杂草图像帧数。
表2 不同模型性能对比
由表2可以看出,只利用轻量级网络代替原YOLOv4特征提取网络时,由于原始数据量较少,MobileNetV3网络可以有效进行特征提取,该模型较原始YOLOv4模型,平均精度均值降低0.39个百分点,但网络检测速度提高80.96%,训练模型所需时间减少2.6 h。在此基础上,继续改进PANet,与原始YOLOv4模型相比,平均精度均值降低0.98%,检测速度提升230%,训练时间减少为原来的24.3%。虽然在轻量化增强特征提取网络之后,平均精度均值略有下降,但检测速度明显提高,训练模型所需时间也大幅减少。结合表1所示结果,改进特征提取网络和增强特征提取网络后的模型具有检测速度更快、参数规模更小、模型所需训练时间更短的特点。
根据4.1中的实验结果分析,改进后的YOLOv4网络检测性能更优,因此在研究数据扩增对模型性能的影响时,选择改进后的网络结构进行实验。原始数据集共有图像数据1 334张,对旋转角度、扩大缩小、亮度变换3种数据扩增方法对检测模型性能的影响分别分析。
4.2.1 旋转图像角度对模型性能的影响
根据表3所示结果可知,利用旋转的方法进行数据扩增,旋转角度间隔为90°时,数据量扩大4倍,与未进行数据扩增相比平均精度均值提高3.24%;旋转角度间隔为60°时,数据量扩大6倍,平均精度均值提高5.19%;旋转角度间隔为30°时,数据量扩大12倍,平均精度均值提高7.15%;旋转角度间隔为10°时,数据量扩大36倍,平均精度均值提高7.32%。旋转图像的数据扩增方法,可以有效提高检测模型的检测精度,随着数据量扩大倍数的增加,平均检测精度的提高效果不断衰减。旋转角度间隔为10°与旋转角度间隔为30°相比,平均精度均值提升只有0.17%,但前者数据量远大于后者,训练模型所花费的时间为后者的3倍以上。旋转角度间隔为30°与旋转角度间隔为60°和90°相比,虽然数据扩增后模型训练时间增加,但对模型检测精度的提升更明显。因此,利用旋转图像的方法进行数据扩增时,最优的旋转角度间隔为30°。
表3 数据扩增时旋转图像角度对模型性能的影响
4.2.2 扩大缩小图像对模型性能的影响
表4为数据扩增时扩大缩小不同变换倍数间隔的实验结果,与表3中无数据扩增时的实验结果进行对比分析,可以看出当扩大缩小变换倍数间隔为0.5和0.2时,数据量分别扩大2.6倍和4倍,模型平均精度均值分别提高0.93%和2.06%。变换倍数间隔为0.1时,数据量扩大近9倍,平均精度均值提高4.84%,并且扩增数据后训练模型时间较前者仅多花费6 h。以上分析结果表明,扩大缩小的数据扩增方法可以提高模型的检测精度,最优的扩增方案为:扩大缩小倍数范围为0.5~1.5,每次变换倍数间隔为0.1。
表4 数据扩增时扩大缩小图像对模型性能的影响
4.2.3 亮度变换对模型性能的影响
利用亮度变换对数据集进行扩充时,方法选择伽马变换,伽马因子变换范围为0.4~3.0,伽马因子不同变换间隔对模型检测性能的影响如表5所示。
表5 数据扩增时亮度变换对模型性能的影响
根据表5所示的实验结果与表3中无数据扩增时的实验结果进行对比分析,当伽马因子变换间隔为0.5时,数据集比原始数据集扩大6倍,平均检测精度提高5.55%;变换间隔为0.3时,数据集扩大10倍,平均精度均值提高8.04%;变换间隔为0.1时,数据集扩大27倍,平均精度均值提高8.64%。以上结果表明,当伽马因子变换间隔为0.1和0.3时,平均精度均值提高相差不大,但训练模型所花费的时间前者要远远多于后者。当伽马因子变换间隔为0.5和0.3时,后者对检测精度的提升效果更优,且模型训练所需时间相差不大。因此通过伽马变换进行数据扩增的最优方案为:伽马因子变换范围为0.4~3.0,每次伽马因子的变换间隔为0.3。
图4为不同数据扩增方法的最优模型P-R(准确率—召回率)曲线图。由图4可知,不同数据扩增方法的最优检测模型的准确率随召回率的增加而降低;当召回率在0~30%之间时,3个模型的准确率相差不大;当召回率在30%~100%时,利用亮度变换的数据扩增方法训练的模型优于其他两种模型;从整体上看,该模型的P-R曲线与坐标轴围成的面积大于其他两种模型,说明3个数据扩增方法中,亮度变换的数据扩增方法对模型识别准确率的提升效果优于旋转和扩大缩小图像方法。
图4 不同数据扩增方法最优模型P-R曲线图
综合以上3个实验的结果,确定最优的数据扩增方案为:分别对原始数据集进行旋转图像、扩大缩小图像和亮度变换,其中旋转图像每次旋转的角度变化为30°,扩大缩小图像的倍数范围为0.5~1.5,每次变换倍数间隔为0.1,利用伽马变换方法对图像进行亮度变换,伽马因子的变换范围为0.4~3.0,每次伽马因子的变换间隔为0.3。将以上3个数据扩增方法得到的数据进行整合得到最终的实验数据集,利用该数据集再次进行实验,实验结果如表6所示。
表6 进行最优数据扩增对模型性能的影响
对表6与表2的实验结果进行对比分析,对原始实验数据采用最优的数据扩增方案进行扩充,利用扩充后的数据训练模型,原YOLOv4网络的平均精度均值提高9.12%,本文改进后的轻量化YOLOv4网络的平均精度均值提高10.04%,说明数据扩增方法可有效提高模型的识别准确率。进行数据扩增后,本文改进后的网络相比于原YOLOv4网络虽然平均精度均值略低,但训练时间仅为42 h,是后者的21.8%,从实际农业除草需求出发,训练模型时间过长会耽误农时,错过除草最佳时机,因此本文改进后的YOLOv4网络结合数据扩增检测性能最优。
对比表2中不同网络结构的玉米和杂草检测精度,对玉米的检测精度都要略高于杂草的检测精度,这是因为一片农田种植作物种类单一,其伴生杂草种类较多,并且作物数量远大于杂草数量,导致玉米数据集的丰富度优于杂草数据。进行数据扩增之后,模型对玉米和杂草的检测结果相差不大,说明数据扩增不仅增加了杂草数据量,也可以提高数据集的丰富度,从而提升对杂草图像的检测效果。
为验证本课题改进模型和数据扩增方法的有效性,选取不同环境条件、植物高密度环境及叶片交叠情况的图像进行测试,测试结果如图5~9所示。根据图5、图6可知,原YOLOv4模型和本文模型结合数据扩增均可以对目标准确识别,但本文模型结合数据扩增的方法预测置信度更高;根据图7可知,对于杂草密度较高的情况,原YOLOv4模型出现未检测出的情况,而本文方法对密度较高的杂草目标仍可以全部识别出来;图8、图9分别展示植物叶片出现交叠情况下检测模型的预测结果,可以看到原YOLOv4模型出现漏认和一个预测框包含多个目标的情况,本文方法对植物叶片交叠的情况,可以对每个目标准确识别。上述实验结果表明,本文改进后的模型结合数据扩增的方法对复杂环境下的玉米与杂草仍可做出准确识别。
图5 晴天棕色土壤玉米识别检测
图6 阴天灰色土壤玉米识别检测
图7 高密度杂草环境识别检测
图8 玉米叶片交叠检测对比
图9 玉米与杂草叶片交叠检测对比
针对传统作物与杂草识别精度低、检测速度慢、采集数据需求量大等问题,本文利用MobileNetV3网络代替原YOLOv4特征提取网络,同时采用轻量化PANet的方法,降低检测网络结构复杂度,再对不同数据扩增方法进行实验分析,确定最优数据扩增方案,在原始实验数据数量较少的情况下,提高检测模型的检测精度。
实验结果表明,本文改进后的模型与原YOLOv4模型相比,网络参数量减少了81.59%,检测速度是原来的330%,训练时间减少为原来的21.8%。进行数据扩增后与未进行数据扩增相比,识别的平均精度均值提高了10.04%,对玉米的识别精度提高8.23%,对杂草的识别精度提高11.86%。从除草效果分析,由于提高了对杂草的识别精度,能减少对杂草漏认或误认的情况,大幅提高除草效果。数据扩增后虽然实验数据量增大,但由于对网络结构进行改进,改进后的模型训练花费时间为42小时,不会出现耽误农时的问题,符合实际农业生产要求。
本文提出的方法具有普遍性,对于其他单种作物的农田仍可适用,并且对少量实验数据进行数据扩增的方法对模型准确率提升很大,节约数据采集成本,该方法可适用于其他领域的深度学习模型训练。但本文模型仍有改进的空间,如何优化增强特征提取网络,轻量化目标检测网络的同时,进一步提高检测模型的精度,有待下一步的研究。