基于改进YOLOv5s 的轻量化金银花识别方法
2023-08-15范天浩顾寄南王文波侯征辉卢宝勇董钧逸
范天浩 ,顾寄南 ,王文波 ,左 宇 ,季 晨 ,侯征辉 ,卢宝勇 ,董钧逸
(江苏大学机械工程学院,镇江 212013)
0 引 言
金银花是一种广泛分布于中国各省的草本植物,种植面积大,品种多,具有较高的药用价值[1],其功效主要是清热解毒,消炎退肿,尤其主治发炎发热[2-3],且保存和冲泡方便,因此也有较高的经济价值。目前金银花的采摘方式主要是依靠农民手工采摘或者采用小型手持采摘器采摘,费时费力,效率低下。在现代农业生产中,农业采摘越来越偏向机械化和智能化,越来越多的采摘机器人投入生产使用,并逐步代替人类劳动力,但是目前尚未有成型的金银花采摘机器人。为解决目前金银花人工采摘操作不便,效率不高的问题,有必要设计一种金银花采摘机器人,而实现金银花的识别及模型轻量化是设计采摘机器人的基础。
由于人工智能技术的发展,许多基于图像处理和机器学习的目标检测方法开始应用于农业采摘领域。吕小莲等[4]针对采摘机器人对西红柿识别不准的情况,建立了基于色差信息改进Ostu 分割算法的识别模型,准确率可达98%以上。熊俊涛等[5]选取HSV 颜色模型进行阈值分割,并利用模糊C-均值聚类法(fuzzy c-means, FCM)对图像中荔枝果实和果梗进行分割,提高了识别准确率。BAI 等[6]针对成熟番茄的定位不准确问题,提出了一种结合霍夫圆检测和轮廓拟合的采摘点定位方法,能够达到理想的识别效果。
但使用传统机器学习对农作物进行目标检测的方法容易受到地形、天气、相机和农作物之间距离等因素的影响,而且需要人工输入特征并调整特征的阈值,训练时间较长且精度较低,因此在复杂情况下难以获得准确的识别效果。近年来,随着计算机硬件的升级,神经网络算法的创新以及智能化设备的需求扩大,深度学习方法逐渐应用于农业生产,特别是农业机器人采摘领域。ZHENG 等[7]提出了一种新的骨干网络R-CSPDarknet53,以提高远距离小目标水果的检测精度。LI 等[8]通过调整检测层的数量并引入BiFPN(加权双向特征金字塔网络)模块,提高了模型的检测精度,同时引入深度可分离卷积和Ghost 模块,降低模型的复杂性,便于之后移动端的部署。WANG 等[9]提出一种DSE(细节语义增强)模块用于检测小水果,该模块利用逐点卷积和扩展卷积来提取水平和垂直维度上的各种细节和语义特征,同时构造了指数增强二叉熵(EBCE)和双增强均方误差(DEMSE)损失函数,提高了小目标物体的识别精度。
近年来,越来越多学者在研究模型轻量化方面做出贡献,通过减少模型的参数量、计算量和权重大小,使之更加方便部署到移动端。林森等[10]提出一种基于改进YOLOv5 的水下珍品检测方法,通过引入注意力机制和Ghost 模块,提升了识别准确率并且降低了网络的参数。王政等[11]通过剪枝操作降低了网络的参数量并提高了检测速度。尚钰莹等[12]提出了一种基于 YOLOv5s 深度学习的苹果花朵检测方法,经过对比发现YOLOv5 模型具有较高的精度及较快的速度。龚惟新等[13]在 YOLOv5s基础上引入 C3HB 模块和交叉注意力模块,实现了模型的轻量化。
以上研究提出了很多应用于农业采摘领域的算法,在农作物识别方面取得了很大的突破,但是目前鲜有针对金银花采摘提出目标识别方法。本文针对现有目标检测模型在识别金银花时存在精度较低、参数量和计算量较高、模型权重占用内存较大、不利于移动端部署等问题,开展关于金银花目标检测模型的轻量化研究,通过把YOLOv5s 模型Backbone 层中的主干网络替换为EfficientNet 轻量化模型中的主干网络,实现模型轻量化,同时针对模型精度较低问题,将Neck 层中的上采样模块替换为CARAFE 上采样模块,提高模型对于金银花的识别精度,提高采摘效率,为金银花采摘机器人的设计提供参考。
1 材料与方法
1.1 数据集
1.1.1 图像获取
金银花图像的采集地为江苏省镇江市京口区衡山,拍摄日期为2022 年5 月中旬至6 月中旬期间,拍摄时间为09:00 至15:00,拍摄设备为手机,在自然光下拍摄,采集不同环境条件下的图像,其中包括顺光、逆光、近距离、远距离、俯角、仰角等多种情况,尽可能提高数据的多样性,提高模型的泛化能力,共得到金银花图像共2 198 张,分辨率为544×960 像素。后期对采集的图像进行人工筛选,去除因拍摄因素或天气原因存在的不清晰图像,去除距离较远的模糊图像和不存在金银花的图像后,共得到金银花图像1 430 张,其中包括未开苞和已开苞的金银花,部分采集的图像如图1 所示。为提高模型的识别精度,应该尽可能提供多种环境下的金银花图像,所以从网络选取部分金银花图像加入自己所拍摄的图像集中,得到金银花数据集,共有1 456 张图像。
图1 图1 部分采集图像Fig.1 Partially captured images
1.1.2 数据集制作
通过LabelImg 标注软件对数据集中的1 456 张金银花图像进行标注,用水平矩形框将图像中的金银花框出。因本研究着重为了识别金银花,开苞与未开苞的金银花均可进行采摘,所以将数据集中的所有金银花标注为同一类别。同时,拍摄图像的远处背景中存在金银花虚化且不易见的情况,为了减少标注难度,不对一张图像中像素小于20×20 以及被遮挡部分超过70%的金银花进行标注,保存标注信息为txt 格式。目前主流的小数据集划分通常按照8∶2 或9∶1 的比例划分训练集和验证集,为了尽可能减少训练集过多带来的过拟合现象且提高训练的精度,按照85%和15%的比例将图像集划分为训练集和验证集,其中训练集1 238 张,验证集218 张。
1.2 YOLO 目标检测算法
目前,主流的目标检测模型分为二阶段模型(twostage)和一阶段模型(one-stage)两种。其中,二阶段目标检测模型首先生成候选目标区域(region proposal),然后利用卷积神经网络进行样本的分类和回归,代表性的网络模型有R-CNN[14]、SPP-Net[15]、Fast R-CNN[16]、Faster R-CNN[17]和R-FCN[18]等。一阶段目标检测模型直接在网络中提取特征,预测物体的类别和位置,其特点是减少了网络的训练时间和模型的复杂程度,速度较快,更适合移动端的部署,代表性的网络模型有SSD[19]、RetinaNet[20]和YOLO[21-24]系列等。
YOLOv5 相比于之前的YOLO 系列目标检测模型更加注重小目标的检测,而且拥有较高的精度和速度。YOLOv5 一共给出了5 个版本,按照模型大小从小到大排列,分别是 YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLO5x。这些模型的宽度和深度不同,使得YOLOv5 能适用不同的数据集,方便用户进行选择。因为本研究只识别金银花一个类别,且考虑到需要实时检测和方便部署,所以采用参数量和计算量较少的YOLOv5s 模型作为基础模型,YOLOv5s 模型结构如图2 所示。
图2 YOLOv5s 模型结构Fig.2 YOLOv5s model structure
YOLOv5s 目标检测模型主要包括输入层(Input)、主干网络(Backbone)、颈部网络(Neck)和预测层(Detect)4个部分。输入层的作用是将图像传入模型,对其进行预处理操作;主干网络的作用是对图像进行特征提取,YOLOv5s 模型主干网络采用CSPDarkNet53 结构;Neck层的作用是对主干网络提取的特征进行特征融合,使用特征金字塔网络[25](feature pyramid network, FPN)和路径聚合网络[26](path aggregation network, PAN)来增强特征的融合程度,提高了网络对不同特征层特征的识别能力;Detect 层的作用是对3 个不同维度的特征进行预测,得到网络预测的类别和位置信息。
YOLOv5s 目标检测模型由于其较高的识别精度和较快的识别速度,目前已大量运用在农业领域[27-28]。近几年来目标检测领域快速发展,YOLO 系列更新迭代较快,目前已推出YOLOv7、YOLOv8 等版本并改进[29-30],但目前目标检测方面的文献多数是围绕五代开展的 ,采用YOLOv5 方便进行对比和改进,且部署和加速也是使用v5 居多,而且由于迭代较快,实质上YOLOv5 之后的系列网络版本相差不大。因此,本研究使用YOLOv5s 为基础模型来识别金银花,并在此基础上进行轻量化改进,使其更适合部署在移动端设备上。
2 轻量化金银花目标检测方法
2.1 EfficientNet 轻量化网络
EfficientNet[31]是TAN 在2019 年提出的一种轻量化卷积神经网络模型。它不仅能通过增加网络的通道数、增加网络的层数和提高图像的分辨率来提高特征提取能力,提高模型的识别精度,而且能够有效避免出现梯度消失,计算量增大等问题,从而取得最佳结果。与传统网络相比,EfficientNet 首先通过NAS(neural architecture search)技术搜索出了EfficientNetB0 的结构,如表1 所示,此外,它还提出了一个混合缩放方法(compound scaling method),以获得最佳的网络宽度、深度和输入图像分辨率缩放系数,并且通过这个系数对网络的宽度、深度和输入图像分辨率进行缩放。与其他轻量化卷积神经网络相比,EfficientNet 的优点在于能够更好地平衡训练速度和精度,使网络的训练更加有效。
表1 EfficientNetB0 结构Table 1 EfficientNetB0 structure
在EfficientNetB0 结构中,阶段1 是包含卷积核大小为3×3,步距为2 的卷积、 BN 层、Swish 激活函数的卷积层,阶段2-8 是重复堆叠的MBConv 结构,如图3 所示,目的是通过提升网络的宽度和深度来提高网络对于特征的提取能力;而阶段9 是由一个卷积核大小为1×1的卷积层,一个Pooling(平均池化层)和一个FC(fully connected layer)全连接层组成,目的是将阶段2-8 中提取的特征进行输出;表1 中MBConv1 在特征提取时不扩充特征的通道数,MBConv6 表示将特征的通道数扩充为输入特征通道数的6 倍,目的是将特征在通道维度上进行扩充;k3×3 表示在MBConv 结构中采用卷积核大小为3×3 的卷积,k5×5 表示在MBConv 结构中采用卷积核大小为5×5 的卷积。
图3 MBConv 结构Fig.3 MBConv structure
在MBConv 结构中,第一个卷积层包含卷积核大小为1×1,步距为1 的卷积、BN 层和Swish 激活函数,作用是扩充特征的通道数,当Operator 为MBConv1 时,输出通道数和输入通道数保持一致,不存在第一个模块,当Operator 为MBConv6 时,输出通道数扩充为输入通道数的6 倍;第二个模块是一个卷积核大小为3×3 或5×5 的Depthwise Conv(深度可分离)[32]卷积,包含BN层和Swish 激活函数的卷积层,作用是减少模型的参数量和计算量;第三个模块是SE[33]注意力机制模块,作用是提高模型对特征的提取能力,提高模型的精度和识别效果;第四个模块是卷积核大小为1×1,步距为1,包含BN 层和Swish 激活函数的卷积层,作用是降低特征的通道数,使用方法和第一个模块一致;第五个模块是Dropout 层,根据所给参数的不同,按照一定的概率将神经网络中的权重暂时丢弃,防止该处权重过大,该模块的作用是防止网络训练时产生过拟合的现象;根据Layers 参数的不同,在一个Stage 中,当第五个模块的输出与MBConv 结构的输入特征大小一致时,将Dropout 模块的输出结果和MBConv 结构的输入特征进行残差连接,得到MBConv 结构的输出结果,若第五个模块的输出与MBConv 结构的输入特征大小不一致时,不进行残差连接,直接输出Dropout 模块之后的结果作为MBConv 结构的输出。
2.2 CARAFE 上采样
目前,在图像分类和目标检测的网络模型中,上采样[34]是一个非常重要的操作,尤其是在特征金字塔网络(feature pyramid networks, FPN)中得到了显著的应用。当前主流的上采样方法分为两种,插值上采样和反卷积上采样。插值上采样主要有最临近上采样和双线性上采样,但是他们只关注到了局部的特征,忽视了特征图全局的语义信息,且感受野较小,不能准确反映图像的全局特征。反卷积上采样在特征图中进行上采样时使用同一个卷积核,不能针对特征进行调整,从而忽视了图像的部分语义特征,这会导致引入较大的参数量和计算量,同时会增加训练的时长,不适用于轻量化的网络模型。针对以上上采样方法的不足之处,本研究使用CARAFE[35]上采样替换YOLOv5s 模型中原本的插值上采样模块,CARAFE 上采样模块的具体结构如图4 所示。
图4 CARAFE 上采样模块Fig.4 CARAFE Upsampling module
CARAFE 上采样主要分为核预测模块(kernel prediction module)和重组模块(content-aware reassembly module)。首先,特征图像被传入核预测模块,用一个卷积核为1×1 的卷积进行降维处理,将原本的通道数C降为Cm,Cm表示降维后的特征层通道数,如式(1)所示:
其中σ 为上采样的倍数,通常为2,Kup为预测的上采样核的大小。
通过使用pixelshuffle[36]方法,将特征图的高、宽、通道数依次reshape(重组)为σH、σW、Kup×Kup,得到预测的上采样核,对预测结果进行Softmax 归一化处理;然后将特征图像传入重组模块,使每一层特征图上的特征与预测的上采样核进行乘积,得到的结果即为上采样的结果。由于CARAFE 上采样能够针对不同的特征分别生成不同的上采样核,关注到了特征在全局特征图中的分布,提高了关注目标特征的权重大小。因此相比起插值上采样方法,该方法能够在略微提高参数量的基础上,提高上采样时对于重要特征的识别能力,提高了网络对特征的提取能力。
2.3 轻量化金银花目标检测模型
由于EfficientNet 轻量化网络能够有效减少模型的参数量和计算量,减小生成模型权重的大小,同时还不会造成太多的精度下降,因此将YOLOv5s 的Backbone 层中的主干网络替换为EfficientNet 的主干网络,同时保留原本YOLOv5s 中的SPPF 模块,目的是能够在减少参数量和计算量的同时,对不同特征层的特征进行融合,提高模型对于特征的提取能力,从而提高模型的训练精度;为了弥补EfficientNet 轻量化网络带来的精度不足问题,将YOLOv5s 网络模型Neck 层中的插值上采样模块替换为CARAFE 上采样模块,针对不同的特征生成不同的上采样核,提高了上采样时对于全局特征的识别能力,目的是能够在略微提高参数量的同时,提高模型对于特征的提取能力,从而提高模型的检测精度,改进后的轻量化YOLOv5s 模型结构如图5 所示。
图5 轻量化YOLOv5s 网络模型Fig.5 Lightweight YOLOv5s network structure
3 试验与分析
3.1 训练环境与方法
本研究模型均在Windows 10 操作系统下进行训练,使用的CPU 为Intel i5-12600kf,GPU 为NVIDIA GTX 3 070显卡,显存为8 GB,主机内存为32 GB,CUDA 版本为11.3.1,Cudnn 版本为8.4.0,Python 版本为3.9,使用Pytorch 深度学习框架,Pytorch 版本为1.12.1,torchvision版本为0.13.1,torchaudio 版本为0.12.1。
训练过程中,设置图片输入尺寸为640×640 像素,批量大小设置为16,进程works 设置为4,使用随机梯度下降(stochastic gradient descent, SGD)作为优化器,学习率设置为0.05,动量设置为0.937,权重衰退系数设为0.1,训练轮数设置为400 轮。
3.2 评价指标
本研究主要采用精确度P(Precision),召回率R(Recall),平均精度均值(mAP)来体现模型的训练精度;采用参数量(parameters),计算量(computation),模型权重大小来体现模型的复杂程度;采用帧率(FPS)来体现模型实时检测性能。其中精确度P表示所有样本中预测正确样本所占的比例,如式(2)所示:
召回率R表示预测正确样本占所有正样本的比例,如式(3)所示:
平均精度均值mAP 即为平均精度(average precision,AP)的均值,平均精度AP 即为P-R曲线的面积,如式(4)所示:
式中TP表示被正确预测为正样本的数量,FP表示被错误预测为正样本的数量,FN表示被错误预测为负样本的数量,N表示类别的数量,在本研究中只讨论金银花一个类别,故此时N=1。
比较两组护士生的理论考核成绩,由考核组教师统一命题、统一阅卷,满分为100分;实践操作能力和沟通能力,由考核组教师统一制作评估表,评估全部护士生的病情观察、体格检查、护理操作、沟通交流等能力,实践操作能力和沟通能力的满分均为100分。
3.3 试验结果分析
3.3.1 轻量化网络消融试验分析
本节主要对2.3 小结改进的轻量化网络模型进行分析和验证。针对原始YOLOv5s 目标检测模型参数量和计算量较多,模型权重文件占用内存较大的问题,本研究改进了YOLOv5s 网络的结构,引入EfficientNet 轻量化模型的主干结构,并且将Neck 层中的上采样替换为CARAFE 上采样,在减少参数量和计算量的同时提高了模型的精度,使其更适用于金银花的识别及后期的部署。基于YOLOv5s 做了轻量化改进并进行消融试验,具体试验结果如表2 所示。
表2 轻量化模型消融试验结果Table 2 Ablation test result of lightweight model
根据表2 的消融试验可得出,使用EfficientNet 模型的主干网络替换YOLOv5s 原始模型的主干网络,可以在基本保持mAP 不变,略微降低召回率的情况下,大幅减少模型的参数量和计算量,同时也能够减少模型生成的权重文件大小,分析原因在于EfficientNet 模型的主干网络使用了深度可分离卷积,极大减少了模型在普通卷积时所产生的参数量和计算量,同时扩充了网络的宽度,深度和分辨率,保证了网络轻量化的同时又具有较高的识别精度;从消融试验中还可以看出,替换CARAFE 上采样后,相比原始YOLOv5s 网络能够有效提升模型的精确度,召回率和平均精度,分别提升1.6,1.5 和0.9个百分点,但是同样也会带来轻微的参数量和计算量提升,分析原因在于由于CARAFE 上采样针对不同特征层采用不同的上采样核,相比传统插值上采样更能关注特征的全局信息,而不是只关注局部信息,因此会带来精度的提升,但同时由于需要预测不同的上采样核,也会相应带来参数量和计算量的上涨。
通过消融试验对比也可看出,对模型进行轻量化改进之后,召回率R会出现轻微的下降,经分析发现轻量化模型会在一定程度上降低网络的复杂程度,从而降低模型对于网络的提取能力,这是网络轻量化所无法避免的。然而,本研究中只对金银花一个类别进行识别,召回率对于金银花识别的重要性弱于精确度和平均精度,且主要目标是模型的轻量化,在精确度P和平均精度mAP 均有所提高的前提下,召回率R轻微下降所带来的影响可以忽略不计。
综合消融试验,在平衡模型轻量化和识别精度的前提下,本研究采用EfficientNet+CARAFE 的改进方法改进基于YOLOv5s 的轻量化金银花目标检测模型,并将其命名为EC-YOLOv5s 网络。其相比于YOLOv5s 网络模型,参数量仅为原始模型的55.5%;计算量仅为原始模型的49.4%;权重大小仅为原始模型的57.4%,并且精确度和平均精度达到了90.7%和91.8%,相比原始YOLOv5s 模型分别提高1.9 和0.6 个百分点,能够在达到轻量化目的的同时提高模型对于金银花的识别精度。
3.3.2 不同算法对比试验分析
表3 不同模型对比试验结果Table 3 Comparison test results of different models
根据表3 的试验结果可以看出,Faster-RCNN 网络模型的参数量和计算量较多,生成的权重较大,且mAP最低,分析为二阶段目标检测模型不适用于此数据集;SSD 网络模型的参数量和计算量均低于Faster-RCNN,权重也略有减少,mAP 提高到了80.7%,说明对于此个金银花数据集,一阶段目标检测模型的结构优于二阶段模型,但是参数量和计算量还是较大,不适合部署到移动端,且识别精度不适用于精确采摘;YOLOv4 网络模型的参数量最多,计算量和模型权重也较大,且精度较差,不适用于金银花的识别;YOLOv6s 与YOLOv7-tiny网络模型为YOLO 系列最近提出的算法,其中tiny 轻量化模型在拥有较少的参数量和计算量的前提下获得了不错的精度,而v6s 模型在此基础上提高参数量和计算量,同时也提高了模型的精度,但还是存在模型权重过大的问题;EC-YOLOv5s 与原始YOLOv5s 网络的对比在3.2.1 节消融试验中已经说明。此外,一般实时检测要求每秒检测图片张数大于24,根据表中可以看出,改进后的网络模型EC-YOLOv5s 检测速度优于包括YOLOv7 在内的所有模型,仅略低于原始的YOLOv5s 模型,分析原因在于更换了Neck 层的上采样后略微提高了模型的推理时间,但是还是远大于24 帧/s 的最低要求,能够完成实时检测的任务。
从试验结果可以看出,改进后的网络模型ECYOLOv5s 在替换了EfficientNet主干网络和替换了CARAFE 上采样之后拥有最少的参数量和计算量,生成的权重文件最小,且其mAP 最高,在轻量化的同时实现了最高的识别精度,且检测速度较高,能满足实时检测的需求。
3.3.3 结果分析
不同目标检测模型对金银花的识别效果如图6 所示。
图6 不同模型对于金银花的识别效果Fig.6 Recognition effects of different models on honeysuckle
由结果可以看出,对于不同光线和不同形态的金银花,改进后的轻量化模型识别效果优于其他目标检测模型,能够准确识别出金银花的位置,置信度较高,预测框能够完整地包裹住金银花和识别出重叠的金银花,且不存在漏检的情况;YOLOv4 网络模型置信度较差,且不能完全识别出图像中所有的金银花,存在缺检漏检的情况,因此不适用于金银花的识别;SSD 网络模型虽然置信度较高,但也存在缺检漏检的情况,对于遮挡的金银花识别效果不佳,不能对金银花进行精确的识别;Faster-RCNN 网络模型虽然置信度较高,且能识别出遮挡的金银花,但是对金银花的位置识别准确度不够,预测框不能完整并准确地包裹住金银花,金银花会超出预测框的范围,这会影响金银花的精确定位,影响下一步的采摘效果,且识别速度较低,不能满足移动端实时检测的任务;YOLOv6s、YOLOv7-tiny 模型对于金银花的识别效果弱于YOLOv5s 和改进后的EC-YOLOv5s 模型,分析原因在于YOLOv6、v7 系列网络为最新推出的YOLO 系列识别模型,主要提升在于检测多目标物体,本数据集只存在金银花一个类别,使用YOLOv5 为基础模型的效果更优。
根据对比试验和模型识别结果可以看出,基于YOLOv5s 改进的轻量化金银花目标检测模型不但拥有最小的参数量和计算量,生成的模型权重最小;而且在识别金银花时效果最好,拥有最高的mAP 精度,能够准确识别被遮挡的金银花,不存在缺检漏检的情况,不会出现检测框未能完全包裹金银花的情况,且检测速度能满足实时检测的需求。综上可知,改进后的模型能够较好地满足识别金银花的需求,且权重较低,更适合移动端的部署和日后集成到采摘机器人上。
4 结 论
本文在YOLOv5s 目标检测模型的基础上进行改进,替换了模型Backbone 层中的主干网络,并且替换了Neck层中的上采样模块,在减少模型参数量和计算量的同时,降低了模型的权重,提高了检测的精度,提高了对金银花的识别效率且使其更方便部署在移动端上。通过对改进后的模型进行消融试验和与其他目标检测模型进行的对比试验,可以得出以下结论:
1)用EfficientNet 轻量化模型的主干网络替换YOLOv5s 的主干网络,实现了模型的轻量化;并将Neck 层中的上采样模块替换为CARAFE 上采样模块,改进后的轻量化模型参数量仅为原始YOLOv5s 模型的55.5%;计算量仅为原始模型的49.4%;模型权重仅为原始模型的57.4%,并且精确度和平均精度达到了90.7%和91.8%,相比原始YOLOv5s 模型分别提高1.9 和0.6个百分点,说明改进后的模型在轻量化的同时也具有较高的识别精度。
2)改进后轻量化网络检测效果优于原始YOLOv5s网络,且优于更为先进的YOLOv6、YOLOv7 网络模型。相比于目前主流的目标检测模型,改进后的轻量化模型对于金银花的识别效果更好,能精准识别重叠和被遮挡的金银花,且速度较快,能满足实时检测的需求,验证了本文改进的轻量化金银花目标检测模型的可行性,为下一步金银花采摘机器人的设计提供了参考。