基于改进YOLOv3的杂草检测研究
2023-06-17马纪颖王一早王书哲
马纪颖,罗 星,王一早,王书哲
(1.沈阳化工大学 计算机科学与技术学院,辽宁 沈阳 110142;2.沈阳化工大学 辽宁省化工过程工业智能化技术重点实验室,辽宁 沈阳 110142)
0 引 言
农作物的生长周期往往会伴随着杂草的不断生长。杂草生命力旺盛,会与农作物争夺水分、阳光、生长空间,影响农作物的正常生长。当前化学除草方式是治理杂草的主要措施,但这类方法存在许多缺点,比如会造成农产品品质降低、不必要的土壤污染和劳动力成本的增加。考虑到上述除草技术的不足,高效实时的农业自动化杂草检测研究具有很强的现实意义,有利于推动农业可持续发展[1]。
目前,目标检测[2]分为基于传统机器学习和深度学习两种检测方式。前者主要通过学习目标的颜色、纹理等特征信息,再对这些区域进行特征提取,最后通过使用分类器对目标进行分类识别。Bakhshipour 等人[3]利用图像滤波提取颜色和区域特征,然后对场景中每个目标进行标记,提出一种基于区域的分类方法,包括敏感度、特异性、正预测值和负预测值。Deng 等人[4]通过提取杂草图像的颜色、形状和纹理特征,并对其进行归一化处理以解决稻田中杂草单一特征识别精度低的问题。但传统目标检测算法依赖于图像采集方式、预处理方法和特征图提取质量,无法在复杂的自然场景中准确地执行定位分类任务。
基于深度学习的目标检测算法主要分为两阶段和单阶段目标检测算法。两阶段目标检测算法首先通过相关算法生成目标候选框;再通过卷积神经网络从候选框中提取特征,用于目标分类和边界框回归。典型算法有:RCNN[5]、Fast RCNN[6]、Faster RCNN[7]等。单阶段目标检测算法对特征图上每个位置目标直接进行分类和回归。常见的算法有SSD[8]、YOLO[9]、YOLOv2[10]、YOLOv3[11]等。
很多算法都是基于主流算法进行改进的,如温德圣[12]提出一种基于卷积神经网络Faster-RCNN 的模型,首先对不同光照环境下的杂草图像进行颜色迁移等预处理;再利用构建好的深度卷积神经网络,对候选框区域进行优化,得到最终的网络识别模型。马巧梅等人[13]利用Inception-SE 结构使得网络更加收敛,实现多尺度融合,提高检测精度。刘丹等人[14]首先利用反卷积对深度特征图进行扩展,再将注意力模块嵌入到特征提取网络中,重新分配通道权重,增强关键特征。
上述研究多采用更深的网络提升模型的检测精度,但未对小尺寸的作物与杂草进行研究。因大部分作物杂草具有分辨率低、语义信息不足等特点,卷积神经网络中经过多次下采样后特征图不断缩小,造成特征提取困难,导致部分小尺寸杂草出现漏检现象。
为了进一步提高模型的检测精度,本文提出基于改进的YOLOv3 的杂草检测算法。首先在特征融合网络中增加一个特征融合模块FFM,然后替换原模型中的上采样方式,最后向主干网络的残差块中嵌入Coordinate Attention注意力机制。通过对比实验表明,改进后的算法对小尺寸杂草的检测精度有所提高。
1 YOLOv3 算法
YOLOv3 算法主干特征提取网络DarkNet53 由若干个DBL 模块和残差块构成,DBL 模块由卷积层、批标准化层和Leaky ReLU 激活函数三部分组成。同时,YOLOv3 算法借鉴残差网络[15]和特征金字塔网络[16]的思想,通过残差块的堆叠,在加深网络深度的同时,缓解了数据在深层网络训练过程中出现的梯度消失和梯度爆炸的问题。同时使用特征金字塔网络加强特征提取能力,采取了多尺度训练,并最终产生尺度大小分别为13×13、26×26、52×52 的检测头,分别用于检测大、中和小目标。YOLOv3 模型如图1所示。
图1 YOLOv3 模型
损失函数是评估模型性能好坏和稳定性的重要指标之一,损失值越小,代表模型的稳定性越好。YOLOv3 算法损失函数由三部分构成:置信度损失、分类损失和回归损失。公式如下:
式中:s2为特征图大小;B为初始候选框的数目;Cij和Pij分别为置信度和类别概率;xi、yi、wi、hi为模型的预测值;为人工标注的真实框的值;λcoord为加权系数;λnoobj为权重系数;Ijinoobj为第i个第j个网格是否负责该object,如果负责,则其值为1,否则为0;Cij为置信度预测值;为实际值,如果网格负责预测某个对象的取值,则其值为1,否则为0。
2 改进的YOLOv3 算法
在实际应用场景下,需要定期对杂草进行清理,因绝大部分杂草本身体积较小,只占不到整幅图像的十分之一像素,分辨率较低,目标背景复杂,造成小尺度杂草检测精度较低。本文通过改进YOLOv3 网络结构,增加一个特征融合模块,用新的上采样方式替换原先的上采样方式,最后在特征提取主干网络中嵌入Coordinate Attention注意力机制,在不损失较多检测速度的前提下,提出一个更加适合杂草检测任务的改进算法。
2.1 改进YOLOv3 网络结构
针对数据集中杂草所占尺寸较小,本文将模型输入尺寸调整为448×448,增大模型输入分辨率可以丰富图像细节和提供精确的位置信息。在特征提取网络中,当输入特征图分别经过8 倍、16 倍、32 倍下采样并得到尺寸分别为56×56、28×28、14×14 的特征图时,往往会丢失大量物体的特征信息,导致中小目标的检测精度下降。为了提高中小目标检测层的检测精度,本文在28×28 和56×56 这两个特征图输入预测层之前添加FFM(Feature Fusion Module),结构如图2的虚线框所示。
图2 FFM 模块
在FFM 模块中,对于尺度为56×56 的小目标检测层,本文首先将Darknet53 中第二个残差块输出的112×112 特征图通入RFB(Receptive Field Block)模块[17],其目的是为了增大112×112 特征图的感受野。因112×112 特征图的感受野比56×56 特征图的感受野小,如果直接进行融合将不利于检测同一尺寸范围内的目标。再将112×112 特征图通过最大池化下采样到56×56,将尺度为28×28 的特征图通过2 倍上采样到56×56。然后再进行Concat 操作,其中Concat 操作是指在通道维度上将两个大小相同的特征图进行结合,采用最大池化下采样是为了解决杂草在不同复杂背景条件下,特征图下采样时的细节特征信息丢失问题,可以尽可能地保留更多信息传递给待融合特征图。融合深层特征图中保留更多关于小目标的语义信息的同时添加浅层更加丰富的小目标位置信息,提高小尺寸杂草的检测精度;对于尺度为28×28 的中等目标检测层,FFM 会将尺度为56×56 的特征图通过最大池化下采样到28×28,再将尺度为14×14 的特征图通过2 倍上采样到28×28,然后再与其进行Concat 操作,丰富中层特征图的信息,提高中等尺寸杂草的检测精度。经过实验表明,在YOLOv3 模型中加入FFM,在牺牲少量检测速度的前提下,提高了杂草检测的精度。
2.2 上采样模块结构设计
原YOLOv3 模型中使用的上采样方式为邻近上采样,在待求像素的四邻像素中,将距离像素最近的邻像素复制给待求像素。邻近上采样虽然计算量小,但是锯齿状比较明显。缩小后的图片会丢失较大的图像信息,容易造成特征细节丢失。而双线性插值上采样分别在水平和垂直方向进行一次线性插值,综合其他像素点的信息,但未考虑到各邻点间灰度值变化率,导致图像边缘在一定程度上变得较为模糊,对细节特征的还原存在不足。反卷积是一种特殊的正向卷积,相比较邻近上采样和双线性插值上采样,反卷积具备学习能力,能够通过参数学习,恢复卷积前后像素之间的对应关系,使低分辨率尺寸图像还原到高分辨率尺寸图像时,尽可能地保留原图片细节特征。
针对原模型上采样方式容易造成特征信息丢失的问题,本文提出了一种融合了双线性插值上采样和反卷积的残差上采样结构Ups。首先对输入的特征图分别进行双线性插值上采样和反卷积上采样;将两者输出进行Concat 操作后,采用1×1 卷积核压缩其通道数,将压缩后的结果与残差层进行Concat 操作;最后再通过1×1 的卷积核进行通道数调整得到最终输出。用Ups 结构替换原网络中的上采样方式,虽然增加了计算复杂度,但能够提高网络模型的检测精度。Ups结构如图3所示。
图3 Ups 上采样
2.3 Coordinate Attention(CA)注意力机制
如图4所示,Coordinate Attention 注意力机制不仅考虑了通道间的关系,同时也考虑了空间位置间的关系。捕获跨通道信息、方向和空间位置的感知信息,帮助模型更加精确地识别和定位目标区域。
图4 Coordinate Attention 注意力机制
大多数注意力机制通常按式(2)对坐标信息嵌入进行全局池化,由于它将全局编码空间信息压缩到通道中,导致难以保存位置信息。为了能够捕获更加精确的空间位置信息,CA 注意力机制将全局池化操作按照式(3)、(4)分别沿水平和垂直方向进行通道编码。
上述两种变换分别沿两个空间方向聚合特征,与生成特征向量的其他注意力机制不同,其能够获取空间方向的相关性,并保存沿其他空间方向的准确位置信息,有助于网络更准确地定位感兴趣区域。得到两组特征信息Zch和Zcw按公式(5)处理,式中σ为sigmoid 激活函数,F1为1×1 卷积。接着沿空间维数将f分解为两个单独的张量fh∈RC/r×H和fw∈RC/r×W,其中r为下采样比例。再将两个张量通过1×1卷积将通道数调整到与输入通道数一致。
式中:gh和gw分别是经过通道调整后得到的一组注意力权重;Fh和Fw是1×1的卷积操作。Coordinate Attention模块的输出可以表述为:
为了使模型能够更好地在复杂环境下学习杂草特征信息,本文将CA 注意力机制嵌入到主干网络DarkNet53 中的残差单元结构中,对通道进行重新标定,增强重要的通道信息,抑制信息量较少的通道信息,提高模型对细节信息的感知能力。更改后的残差模块如图5所示,改进后的模型如图6所示。
图5 更改后的残差模块
图6 改进后的模型
3 实验与分析
3.1 实验环境及参数设置
本文所有实验均在同一环境下进行,实验环境配置见表1所列。本文在模型的训练过程中将batch_size 设置为4;优化器为SGD,momentum设置为0.9;epochs设置为150轮;初始学习率设置为0.005。
表1 实验环境配置
3.2 实验数据来源
本文实验使用的数据集为文献[18]中公开的作物杂草数据集。选择自然环境下甜菜不同生长周期中伴随的杂草为实验对象,共1 500 张图像。样本数据集包含了甜菜在不同生长阶段和土壤条件下的生长情况,真实地反映了自然环境下甜菜与杂草共生的情况。从中随机抽取70%作为训练集,剩余30%作为测试集。数据集部分图片如图7所示。
图7 不同生长阶段和土壤下甜菜杂草数据集
3.3 评价指标
(1)平均精确率(Average Precision,AP)
AP 被定义为以召回率R(Recall)为横坐标、精度P(Precision)为纵坐标绘制的曲线。计算公式如下:
mAP 即平均准确率均值(mean Average Precision,mAP),是所有类别的 AP 值之和的平均值,用来衡量分类器对所有类别的分类精度。对于本文数据集只涉及到甜菜和杂草两类目标,计算公式如下:
式中N的取值为2。
(2)F1 分数(F1 Score)
F1 分数是用于评价模型综合性能的一个重要指标,计算公式如下:
(3)FPS 表示每秒内处理的图片数量,是衡量速度的指标。
3.4 实验结果分析
3.4.1 消融实验
为了深入研究网络结构中每个模块对检测精度的影响,本文在进行消融实验时将各模块逐一添加。消融实验结果对比情况见表2所列,其中“√”表示使用该模块。
表2 消融实验结果对比
本文以YOLOv3 为基础框架、DarkNet53 为特征提取网络,进行消融实验来验证改进与添加模块的有效性。采用IOU 取值为0.5 时甜菜与杂草的AP 值、mAP 值作为模型评价指标。从表2中可以看出,单模块对比实验中,添加FFM 对整体检测准确度的影响较大,杂草的AP 值较原模型提升了2.86%。因小目标特征信息不明显、分辨率低等问题导致细节信息难以学习,FFM 分别用于检测小目标和中等目标,检测层依次融合浅层丰富的位置信息和深层丰富的语义信息,能够更好地保留细节特征信息,强化特征学习能力,进而解决因小尺寸杂草分辨率低、细节信息缺失造成的检测精度低的问题。组合实验时添加FFM 和新型上采样的效果最好,在FFM 增强小目标细节特征学习能力的前提条件下,通过使用新的上采样方式能够有效地减少特征图上采样过程中细节特征丢失的问题。在将三个模块全部添加后YOLOv3模型达到了最佳检测性能,杂草的AP 值提高了3.74%,甜菜的AP 值提高了1.46%,mAP 提高了2.6%。可以看出整体改进后甜菜和杂草的检测精度要优于单个或组合改进后的精度。
3.4.2 模型比较
本文分别将YOLOv3 模型与改进后的YOLOv3 模型在训练集上进行训练后,采用mAP 作为评价指标,实验结果如图8所示,横轴为迭代次数epoch,纵轴为评估指标mAP值。图中共有两条曲线,分别代表改进前后的YOLOv3 模型训练时mAP 值随着迭代次数的增加而变化的情况。首先,在迭代100 轮后,本文提出的改进后模型的mAP 值逐渐趋于平稳,而原YOLOv3 模型的mAP 值变化相对比较剧烈。其次,从mAP 指标来看,在经过150 轮迭代后,本文提出的改进后YOLOv3 模型的mAP 值达到了86.75%,相对于YOLOv3模型mAP 值提高了2.6%。总体而言,在训练过程中改进后的模型相比于原模型曲线更加趋于平缓。
图8 模型mAP 值对比
为了进一步验证改进后的模型性能,本文从测试集中选取两组具有代表性的图片进行测试,结果如图9所示。其中图9(a)为标准YOLOv3 网络的检测结果,图9(b)为改进后网络的检测结果。从图9中看出,当图像中存在尺寸较小的杂草时,标准YOLOv3 模型只能检测出尺寸较大的作物和杂草,无法检测出细小杂草。原因是图像中部分杂草像素较小、分辨率低且目标背景复杂,从而造成漏检现象。本文改进后的模型通过加强上下文的语义信息加深网络的学习能力,提升了小尺寸杂草的检测精度。
图9 小目标检测结果对比
3.4.3 与其他目标检测算法的对比实验
本文为了验证改进后模型的性能,将改进后的YOLOv3算法与其他主流目标检测算法在本文数据集上进行了对比实验。选取AP、mAP、FPS 和F1 作为算法的评价指标。结果见表3所列。
表3 不同目标检测算法结果对比
从表3的对比实验结果可知,改进后的YOLOv3 算法杂草AP 值达到75.56%,分别比Faster-RCNN、SSD、YOLOv2和YOLOv3 的杂草AP 值高18.44%、10.10%、7.14%、3.74%。本文提出的改进YOLOv3 算法F1 指标为86.56%,得分超过其他目标检测算法。同时相比较于原YOLOv3 模型没有损失过多的检测速度,FPS 达到了58。改进后的算法既能满足对杂草检测的精度要求,也能满足杂草检测的实时性要求。
4 结 语
本文对原YOLOv3 算法的特征提取网络进行了改进,提出了特征融合模块FFM 和新的上采样方式,并将Coordinate Attention 注意力机制嵌入到主干网络残差模块中。在不损失较大检测速度的前提下,本文模型的平均检测精度比标准YOLOv3 模型提高了2.6%,对小尺寸作物和杂草具有较好的检测精度。在今后的工作研究中模型轻量化是未来研究的重点方向,对模型进行压缩,减少参数量,在不损失较多精度的前提下,提升网络的检测速度,进一步提升算法的性能。