APP下载

基于改进YOLOv4的植物叶茎交点目标检测研究

2022-03-02李文婧徐国伟孔维刚郭风祥宋庆增

计算机工程与应用 2022年4期
关键词:交点幼苗卷积

李文婧,徐国伟,孔维刚,郭风祥,宋庆增

1.天津工业大学 电气与电子工程学院,天津300387

2.天津工业大学 计算机科学与技术学院,天津300387

我国作为农业生产大国之一,农业技术不断提高,自动化产业也不断壮大。视觉识别和定位技术作为视觉领域的研究热点之一,已在自动化配置中得到实际应用,在一定程度上实现了工业机器人的智能化,但由于工况复杂,工序要求特殊,难以完成精确识别和定位。本文主要研究植物幼苗图像中的叶茎交点的目标检测与定位,最终实现幼苗移植栽培。此研究能够很大程度上提升工业中的智能程度,减少大量的人工劳动力,对工业中目标识别与定位领域的发展具有较大的现实意义。

目前针对目标检测的研究方法主要分为:传统图像处理的目标检测方法和基于深度学习的目标检测方法。传统的检测方法大多是基于尺度不变特征变换(scale-invariant feature transform descriptors,SIFT)[1]、方向梯度特征直方图(histogram of oriented gradients,HOG)[2]、纹理特征[3]、颜色特征[4]以及形状特征[5]等特征提取来实现对目标的检测。传统算法局限于叶片颜色、形状、纹理等特征,对于模糊边缘提取和高复杂度的情况,其精确度与鲁棒性很难达到预期水平,无法满足人们对目标检测高性能效果的需求[6]。

近年来卷积网络的兴起,基于深度学习的目标检测技术不断成熟,在精度和速度上有了很大提升,逐渐取代传统方法。其典型代表有:基于区域选择的R-CNN系列算法R-CNN[7]、Fast R-CNN[8]、Faster R-CNN[9],但这些方法检测耗时,达不到实时检测的效果;SSD(single shot multibox detector)[10]融合多尺度检测模型,在速度上有所提升,但对小目标检测性能不足。YOLO(you only look once)系列算法是深度学习领域应用最广泛的算法之一,YOLOv1[11]输入尺寸固定,对占比较小的物体目标检测效果较差;YOLOv2[12]去除全连接层,提高了检测速度;YOLOv3[13]得到了较好的检测性能,能够有效检测出小目标物体,速度没有显著提升。

YOLOv4[14]是YOLO 系列目标检测算法中的第四版,精度和速度都有显著提升。通过卷积神经网络提取更深层次的目标特征,对不同尺度的特征进行融合,能够识别到图像的抽象特征,在速度和精确度方面均优于传统的目标检测算法。本文以植物幼苗图像检测为例,针对叶茎交点进行目标检测,完成了基于软件开发平台的设计思想和总体框架设计。

1 相关工作

植物幼苗自然生长的过程中,会出现幼苗大小不一致以及根茎扭曲的现象,导致幼苗识别问题情况多样化,因此计算叶茎交点的问题在幼苗切割任务中具有决定性意义。现有的育苗方法中,大部分采用人工割苗再育苗,耗费了大量的时间和精力。本文首先对植物幼苗叶茎交点进行识别,再计算得到其交点坐标,最后推算出剪切点坐标位置,从而进一步实现自动化剪切与种植,达到减少人力消耗,提高幼苗存活率的目的。

由于叶茎交点识别的算法还尚未完善,本文在YOLOv4 的基础上,通过改变特征提取网络、有效特征层等优化措施,在保证速度在合理范围内的前提下,提升目标图片的识别速度。卷积神经网络往往存在庞大的参数量和计算量,而且网络层的参数和结构多变,卷积层的计算通常占到卷积神经网络计算总量的90%以上,是设计计算模块时需要重点考虑的部分。在有限的存储空间和计算资源的情况下,采用轻量化的网络结构是非常必要的。

为了减少计算量和参数量,本文采用轻量化的网络结构,利用GhostNet[15]代替原来的CSPDarknet53(cross stage paritial darknet)作为主干特征提取网络,采用全局平均池化下采样特征方式增加卷积特征感受野。具体实现步骤为:首先,选取大量数据集,人工标定大量具有目标信息的数据集图片,制作有针对性的目标数据集,同时利用生成对抗网络对原始数据进行数据增强,增加数据集的多样性;其次,在构建网络检测模型时,选择YOLOv4 作为主要检测算法,针对识别目标的特点,对其网络结构进行改进,选取GhostNet作为特征提取网络,并且在检测层设置四种预测尺度,有效地提高识别精度,能够较好地完成图像中的目标实时检测任务。

2 构建数据集

数据集质量是影响深度学习算法设计和训练过程中的关键因素[16]。本文采用自制的植物幼苗数据集,图片大小为416×416,共8 629 张。在数据集中标注叶茎交点类别,共制作标签数据11 079个实例。

2.1 数据集的采集

数据集的来源主要分为两部分:一部分数据集来源于相机等数字设备采集的植物叶茎,相关植物来自实验室培育,通过拍摄幼苗叶茎不同角度得到;另一部分来自Kaggle网络平台上公开的数据集,并加入相应花草的叶茎图像,以加强目标识别算法的鲁棒性。部分数据集图片如图1所示。

图1 数据集部分图片Fig.1 Part of images in data set

2.2 数据集的标注

标定精度越高,得到的结果越好,因此标注质量将直接影响检测结果。本文使用LabelImg 工具对幼苗图像的叶茎交点进行画框标注,选定图像中含有幼苗叶茎交点的像素点,使叶茎交点位于图像中心,最终得到xml标签格式。为满足YOLOv4神经网络的训练要求,将制作好的数据集保存为PASCAL VOC 格式,以便用于网络训练与测试。

2.3 数据集的优化

考虑到人工采集数据的局限性,本文采用生成对抗网络(generative adversarial network,GAN)[17]进行数据增强,增加样本的多样性,从而达到扩充数据集和提高数据质量的目的,以便增强其鲁棒性,获得更好的实验结果。

生成对抗网络主要是通过生成数据的方式来获得更多的训练样本。主要包括两个模型:生成模型G(generative model)、判别模型D(discriminative model)。

生成模型G:不断地学习训练集中真实数据的概率分布。目标是把输入的随机噪声转化为新的样本图片,尽可能生成更真实的样本,即生成的图片与训练集中的图片相似度越高越好,其本质上是一个神经网络。

判别模型D:判断一张图片是否为真实的图片。目标是将生成模型G产生的“假”图片与训练集中的“真”图片分辨开。生成网络与判别网络交替训练,假样本在训练过程中真假变换,最后生成网络生成真假难辨的图像,本质上也是一个二分类的神经网络,也可视为一种对抗博弈的过程。

G(z)表示将输入的噪声z映射到数据中来产生样本。D(x)表示x来自于真实的数据分布。优化的目标函数定义如式(1)的形式:

式(1)对应上述两个模块的优化过程,x表示真实图片,z表示输入G网络的噪声。可以分别看作是式(2)和式(3),先确定判别器D,再将生成器G与真实数据进行拟合:

根据文献[17]中提出的GAN 搭建了本文所用的网络,所得图片的生成过程如图2所示。

图2 GAN生成图片的过程Fig.2 Process of GAN generating pictures

DCGAN[18]是对原GAN网络的改进,将深度卷积网络CNN与GAN相结合,用两个卷积神经网络取代上述提到的生成器G和判别器D。将空间池化层用卷积层替代,去除全连接层。将生成器G中的池化层用卷积层来替代,输出层采用Tanh激活函数,其余层采用ReLU作为激活函数,而判别器D中都使用Leaky ReLU作为激活函数。使用DCGAN网络生成的图片如图3所示。

图3 DCGAN生成图片的过程Fig.3 Process of DCGAN generating pictures

3 YOLOv4网络结构设计与优化

在深度学习算法中,采用深度卷积神经网络思想,构建YOLOv4网络来提取图像特征,是图像目标识别所要解决的主要问题。分析和改进现有的YOLOv4网络,实质上是特征层的提取以及决策推理,为了尽可能精确地提取特征,就需将这些网络层结构进行组合。

YOLOv4算法在YOLOv3原有的基础上,进行了多方面的优化,在性能方面有显著提高。首先对主干提取网络进行改进,由Darknet53 变为CSPDarknet53;其次改进特征网络,引入空间金字塔池化(spatial pyramid pooling,SPP)模块,显著增加感受野;采用路径汇聚网络(path aggregation network,PANet)作为参数聚合的方法;使用Mosaic 数据增强;最后使用Mish 激活函数,使得检测速度和精度都达到较高水平。

YOLOv4 主要由Backbone、Neck、Head 三部分构成。整体网络结构如图4所示。

Backbone部分使用CSPDarknet53网络。Neck部分用于提取Backbone 的特征,由SPP 块和PANet 块组成。Head部分用来分类和定位,与YOLOv3 Head部分多尺度检测头相同。

由于本文检测目标属于小目标类型,小目标模型在提取特征后进行检测时需要更多的特征层信息,而在原始的YOLOv4 网络中,负责检测的YOLO Head 所划分的网格数量有限,仅利用3 个尺度的特征,对浅层信息的利用并不充分,并且每个网格中Anchor的尺寸大小也不利于检测小目标样本。基于上述原因,本文对YOLOv4中多尺度检测模块进行改进,同时增加专门用来检测小目标样本的检测层,对负责检测该层的Anchor利用KMeans聚类算法进行参数的选取,使其更加利于检测本文使用的数据集。如图4 所示,把YOLO Head 的尺度由原本的13×13、26×26、52×52 扩展为13×13、26×26、52×52、104×104这4个维度,实现对小型目标的检测。

图4 YOLOv4整体网络结构Fig.4 YOLOv4 overall network structure

3.1 Backbone主干特征提取

Backbone 部分为CSPDarknet53 主干特征提取网络,主要由多个Resblock_Body 块、卷积层和Mish 激活函数组成,共有53 层,每个Resblock_Body 都具有相同的卷积操作过程,对应的输入和输出特征值不同。CSP模块结构如图5所示。

图5 CSP模块结构图Fig.5 CSP module structure diagram

当输入为416×416 时,CSPDarknet53 特征结构如表1所示。

表1 CSPDarknet53网络参数表Table 1 CSPDarknet53 network parameter table

对于数据增强,加入马赛克增强。Mosaic 数据增强,每张图片都有其对应的样本框,将4 张图片拼接获得1 张新的图片,同时得到与该图片对应的样本框,将这张新的图片输入到神经网络中进行学习。这种方法大大丰富了检测物体的背景信息,且能够同时实现4张图片数据的标准化BN(batch normalization)计算。

激活函数层面,采用Mish[19]非线性激活函数,它在负值层面添加了一段平滑点,并且正值层面不会出现非饱和区域,无需考虑梯度消失。Mish 激活函数的光滑特性使信息深入到神经网络中,能更好地传递信息,从而获得更好的稳定性和准确性。Mish激活函数如式(4)所示:

其中,x为经归一化层传入的参数值。

3.2 Neck结构

SPP位于主干网络和Neck的连接处,由3个最大池化层MaxPooling组成3个不同尺度的向量,将不同尺度的向量与原特征图的向量用Concat 将通道拼接成为多尺度向量,提取不同尺度的空间特征信息,能够有效扩大感受野,减少过拟合。

SPP模块结构图如图6所示。

图6 SPP模块结构图Fig.6 SPP module structure diagram

PANet 将上采样、下采样与特征相融合,使上采样和下采样的结果与对应有效特征层卷积的结果同时进行Concat,并对多层级的信息进行整合后进行预测,有效利用底层信息,最终得到4个YOLO Head有效特征层。

3.3 GhostNet网络

由于网络部署需要较少的参数量和计算量,选择GhostNet作为YOLOv4的主干特征提取网络。Ghost模块使用更少的参数生成同样的特征,网络特征层之间很多是相似的,特征层中的冗余部分可能是重要的组成部分,因此Ghost中保留了冗余信息,用更低的计算量成本来获取特征信息。

如图7 所示,对于输入的特征层,用常规卷积操作生成部分真实特征层,再对真实特征层的每个通道进行深度卷积DW 处理得到Ghost 特征层,然后将真实特征层与Ghost 特征层Concat 拼接在一起得到完整的输出特征层。

图7 Ghost模块结构图Fig.7 Ghost module structure diagram

输入特征图为h×w×Cin,输出特征图为h′×w′×Cout,把输入特征层分为n份,卷积核尺寸为k。

常规卷积计算量为:

Ghost模块计算量为:

从Ghost 模块计算量中可以看出,把Ghost 模块分为两部分计算,一部分为常规卷积,另一部分为深度卷积,得到模型压缩率约为n,减少了模型计算量。

YOLOv4-GhostNet整体结构框架如图8所示,Ghost-Net作为主干提取网络,分别在Bottleneck为第5层、第11层、第16 层时进行提取。其中,GhostNetBottleNeck 瓶颈层由两个GhostModule 组成,第一个用来扩充通道数,第二个用来减少通道数目,与输入相连接的通道数目匹配。当输入为416×416 时,GhostNet 特征结构如表2所示。

表2 GhostNet网络参数表Table 2 GhostNet network parameter table

图8 YOLOv4-GhostNet整体结构图Fig.8 YOLOv4-GhostNet overall structure diagram

3.4 损失函数改进

损失函数给出了调整权值来降低Loss的信号,因此在做出错误的预测时,期望它能及时给出反馈。IOU用来确定正负样本以及评价输出框和真实框的距离,如式(5)所示:

其中,A代表预测框,B代表真实框。IOU作为损失函数得到IOU Loss[20],计算公式如式(6)所示:

GIOU[21]在Loss中引入IOU,计算公式如式(7)所示:

其中,C代表A与B所占最小面积。使用GIOU 作为Loss函数得到DIOU Loss[22],计算公式如式(8)所示:

其中,b、bgt分别表示A和B的中心点,ρ表示中心点之间的距离。在DIOU的基础上增加A的长宽比,得到CIOU Loss[22],如式(9)所示:

其中,α是权重,υ是用来衡量长宽比的相似度。

由于考虑到重叠区域、中心点距离和长宽比3个因素,CIOU Loss 收敛的精度更高,采用CIOU Loss 作为损失函数。

4 实验结果与分析

实验平台操作系统为Ubuntu 18.04.5,使用Pytorch(1.6.0)框架进行网络结构修改,CPU为AMD Ryzen 7-4800H,GPU为Nvidia RTX2060,Cuda版本为10.2。

4.1 实验参数

在实验的训练和测试中所设置的图片为416×416尺寸JPG 格式,参数设置Batch_size 等于8,学习率为0.001,使用余弦退火衰减学习法对网络学习率进行调整,平滑标签smooth_label 设置为0.01。由于原始网络的Anchor尺寸不适用于交点目标,采用K-Mean聚类方法计算出适用于本数据集的12 个Anchor 大小,分别对应4个特征层,每个特征层对应3个Anchor boxes,应用到训练网络中得出12 个Anchor boxes 大小分别为:7×11,14×28,21×31,36×51,36×30,36×67,55×49,66×77,78×119,96×67,119×100,198×156。

4.2 实验效果测试

实验在docker 部署的集群上使用4 个GPU 进行训练,整个训练过程为100个epoch,使用预训练权重分别训练原始的YOLOv4 网络、改进的YOLOv4 模型以及YOLOv4-GhostNet网络,最后将上述3种模型的结果进行对比。图9 为经过多次训练得到的图像测试效果对比图,图(a)和图(c)是改进后YOLOv4 网络训练结果,图(b)和图(d)是YOLOv4-GhostNet 网络训练结果。得到表示目标位置矩形框的表示方式Xmin、Ymin、Xmax、Ymax,然后计算得到中心点位置(Cx,Cy)的坐标,即中心交点的位置,为剪切点的定位提供了位置信息。

图9 测试结果对比图Fig.9 Test result comparison

本文对原有的YOLOv4网络、改进的YOLOv4模型与YOLOv4-GhostNet进行了比较,并在表3中对各项性能指标进行对比。本文针对单种类的目标识别,检测精度用AP(average precision)值来衡量,表示预测正确(正类负类)占总预测的比重;精确率(Precision)表示正确预测占全部预测为正的比例;召回率(Recall)表示正确预测为正的占全部实际为正的比例;F1 值是精确值和召回率的调和均值;通过FPS 检测帧率对速度进行评估。

表3 性能指标对比Table 3 Performance index comparison

由表3 可以看出,改进后网络AP 值最高可达到80.94%,比原YOLOv4 网络提升了4.81 个百分点,精确度提升了3.17 个百分点,召回率提升了2.30 个百分点,F1分数提升了0.02,FPS没有明显提升。通过对比可以看出,YOLOv4-GhostNet 效果略差于改进的YOLOv4模型效果,但YOLOv4-GhostNet 网络的模型大小相比YOLOv4减小了36.06%,FPS提高了36.45%。

5 结束语

为了解决传统检测算法特征提取精度低的问题,对YOLOv4框架进行了改进,选用4个不同尺度的锚框,有效地获取更多的图片信息,改进后YOLOv4网络准确率提升了3.17个百分点。为了便于在嵌入式设备上部署,采用参数量更小的YOLOv4-GhostNet 轻量化网络,在保证精确度的情况下,检测速度提高到79.3 frame/s,将模型大小缩减了36.06%,较YOLOv4 网络帧率提高了51.07%。完成了特征提取与坐标定位,实现了植物图像中叶茎交点的有效检测,为植物移植与栽培工作提供了保障。下一步将对多株植物、多目标以及部分遮挡的问题进行研究,并对YOLOv4 网络进行模型压缩处理,进一步提升网络的检测效率与实用性。

猜你喜欢

交点幼苗卷积
种玉米要用“锌” 幼苗不得花白病
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
阅读理解
基于傅里叶域卷积表示的目标跟踪算法
借助函数图像讨论含参数方程解的情况
试析高中数学中椭圆与双曲线交点的问题
默默真爱暖幼苗
指数函数与幂函数图象的交点的探究性学习