基于MSRCR-YOLOv4-tiny的田间玉米杂草检测模型

2022-03-14 07:57刘莫尘高甜甜马宗旭宋占华李法德闫银发
农业机械学报 2022年2期
关键词:剪枝嵌入式聚类

刘莫尘 高甜甜 马宗旭 宋占华,3 李法德,3 闫银发

(1.山东农业大学机械与电子工程学院, 泰安 271018; 2.山东省农业装备智能化工程实验室, 泰安 271018; 3.山东省园艺机械与装备重点实验室, 泰安 271018)

0 引言

农田杂草是农业生产中最严重的威胁之一,杂草与农作物争夺阳光、水分和养料,加剧了土地退化,严重影响农作物的产量和品质[1]。传统的人工除草方法劳动强度大、费时费力且除草效率低,已经不适应现代农业的发展要求[2]。目前主要的除草方式是大面积无差别喷洒除草剂,这种方式不但会造成大量除草剂的浪费,还会伤害目标作物或下茬轮作物[3]。因此,在玉米苗期进行杂草抑制,开发杂草的精准管理系统非常必要,首先需要正确检测和识别杂草[4]。

在作物杂草识别的研究中,机器视觉技术已经得到广泛应用,通常包括特征提取与模式识别2个步骤[5]。文献[6-9]均是先提取特征再通过分类器对杂草进行识别,虽然识别精度较高,但分类耗时过长,泛化性差,难以实际应用。

随着机器学习的发展,深度学习[10-13]被广泛应用在目标检测领域。基于深度学习的目标检测算法主要分为两类:一类是两阶段算法,通过卷积神经网络生成一系列可能存在潜在目标的候选区域,然后根据候选区域的特征对每一个区域进行分类和边界回归[14],典型的算法有R-CNN[15]、Faster RCNN[16]、Mask R-CNN[17]、SPP-Net[18]等;另一类是单阶段算法,省略了候选区域生成的步骤,且不再采用滑动窗口来寻找目标,仅将目标检测设计为一个回归问题,使用单个卷积神经网络直接完成输入的整幅图像上所有目标的定位与分类,典型的算法有YOLO[19]、SSD[20]、Retina-Net[21]、CenterNet[22]等。文献[23-27]均是在带有高性能图形处理器(Graphics processing unit,GPU)的个人计算机(Personal computer,PC)上进行测试,而在实际工作环境下除草机器人大多采用嵌入式设备,如何在有限硬件配置下节省计算资源,达到实时精确的识别效果是需要解决的一个关键问题。

为解决上述问题,本文以田间环境下玉米苗和杂草为研究对象,将带色彩恢复的多尺度视网膜(Multi-scale retinex with color restoration,MSRCR)增强算法应用到数据集上,采用基于改进YOLOv4-tiny的玉米杂草识别方法,通过模型剪枝减少模型参数量与计算量,在保证识别精度的前提下有效提升检测速度,大幅降低模型占用空间,为机器学习在硬件资源有限的嵌入式设备上应用提供理论依据和方法参考。

1 图像获取及预处理

1.1 图像获取

本研究以2~5叶期玉米及其早期伴生杂草作为研究对象进行识别试验,于2021年5月进行图像采集,分别选择晴天、多云和阴天(时间段为08:00—12:00、14:00—17:30)在山东农业大学泮河校区玉米试验田中完成,采集设备为Raspberry Camera V2型摄像头,800万像素,CCD传感器,最大分辨率为3 280像素×2 464像素。

本文建立的数据集均从玉米苗期田间环境中采集,距地面40 cm处垂直拍摄,共采集图像800幅,为了后续应用到嵌入式平台减少计算成本,存为608像素×608像素的低像素图像。本文数据集图像具有以下1种或多种特点:玉米和杂草互相遮挡(图1a)、玉米和杂草叶片的颜色和纹理具有相似性(图1b)、自然光线下玉米和杂草阴影(图1c)、田间其他物体干扰(图1d)等复杂背景,与实际应用环境相同,部分图像样本如图1所示。

图1 玉米田间杂草示例图像(绿色框代表玉米,红色框代表杂草)Fig.1 Example images of weeds in corn filed (green boxes indicated crons and red boxes indicated weeds)

1.2 图像数据增强

为了增强试验数据集的丰富性,使用图像数据增强技术来扩充数据集的规模,降低杂草识别模型对某些图像属性的依赖,减少训练模型过拟合、加强模型的稳定性[28]。本文随机进行逆时针90°、180°、270°旋转,水平翻转,以及添加适量的高斯噪声、椒盐噪声和散点噪声等常见方式进行数据增强。使用上述方法将数据集增加到9 600幅,随机划分数据集中的80%用于训练,20%用于验证。数据增强后的示例样本图像如图2所示。

图2 示例图像Fig.2 Example images

1.3 图像特征增强预处理

采集的图像不仅具有1.1节中提到的复杂特征,在实际工作环境下采集的图像还会由于振动、光线、天气等原因造成图像的细节模糊、对比度差等问题。图像增强技术能够有效提高原始图像中杂草和作物的特征清晰度,有利于增加后续网络的检测精度,没有使检测的速度明显降低[29]。

分别采取限制对比度自适应直方图均衡化(Contrast limited adaptive histogram equalization,CLAHE)算法[30]、同态滤波算法、MSRCR[31]算法进行图像特征增强。CLAHE算法通过对局部直方图的高度进行限制来提升图像对比度,增强有效信号和抑制噪声信号,并利用线性插补算法提高速度。同态滤波算法把频率滤波和空域灰度变换结合起来,将图像的照度/反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的品质。MSRCR算法利用彩色恢复因子调节图像中3个颜色通道之间的比例关系,进而凸显相对较暗区域的信息,消除图像色彩失真。

图3 不同图像特征增强算法的效果对比Fig.3 Effect comparison of different image feature enhancement algorithm

各算法图像特征增强效果如图3所示。由图3b可以看出,经过CLAHE处理过的图像,对比度有明显提升,但图像色偏问题严重并且图像偏暗;由图3c可以看出,经过同态滤波处理后的图像中绿叶特征变得突出,但整体上呈红绿色调且亮度较低;由图3d可以看出,经过MSRCR(取尺度数为3,Dynamic为2.5)处理后的图像叶片与背景区分明显,图像边缘纹理等细节更加清晰,整体亮度提升,饱和度较高。

1.4 图像标注

本文使用图像可视化标注工具LabelImg对数据集进行人工标注玉米及杂草标签,以目标的最小外接矩形进行标注,标注为xml标准格式并以PASCAL VOC格式进行存储,存储信息包括:图像的路径、宽高尺寸、通道数以及玉米、杂草标注框的位置信息。

2 基于YOLOv4-tiny模型的玉米杂草识别网络

2.1 YOLOv4-tiny模型

YOLOv4-tiny[32]是目前主流检测网络中的轻量化模型,更适合部署在硬件资源有限的移动端或嵌入式设备上进行实时作业。其网络结构如图4所示,该模型共38层,输入为608像素×608像素×3通道的玉米田间苗草图像,Backbone模块是网络的骨干部分,采用的特征提取网络是CSPDarknet53-tiny。CSP结构将基础层的特征映射划分为两部分,通过跨层连接将它们合并。CBL结构主要对图像进行下采样处理,由卷积层(Convolutional)、批量标准化层(BN)以及激活函数层(Leaky ReLU)构成。输出层对YOLO的2个头部进行处理,同时得到玉米和杂草的置信度及位置信息。

图4 YOLOv4-tiny网络结构图Fig.4 YOLOv4-tiny network structure diagram

YOLOv4-tiny进行目标检测的基本思路如图5所示。YOLOv4-tiny算法会对输入的图像划分候选框,将1幅图像分为S×S个小单元格,在每个单元格中会预测B个边界框和D类物体,预测边界框主要包含类别名称、识别目标在边界框的中心坐标(x,y)、边界框的宽度和高度(w,h)以及置信度。本文选取置信阈值为0.5,如果边界框的置信度得分高于0.5,则边界框保持;否则删除边界框。边界框的置信度数学表达式为

(1)

Pr(Object)——单元格包含某类目标的概率,Pr∈{0,1}

IOU——预测边界框与真实边界框的交并比

图5 YOLOv4-tiny目标检测过程Fig.5 Object detection process of YOLOv4-tiny

2.2 在线数据增强

为提高训练效率和提升小目标的检测精度,本文在训练中采用Mosaic在线数据增强策略。主要思想是利用多个样本来产生新的样本,将4幅图像进行随机裁剪,再拼接成1幅图像,既丰富了物体检测的背景,又可以将中大目标的尺度缩小,进而更好地权衡训练数据的尺度分布,使得模型能够有效提高小目标的检测精度;同时在进行批归一化时,一次便可计算4幅图像,减少了对批大小的需求。Mosaic数据增强图像示例如图6所示。

图6 Mosaic数据增强图像Fig.6 Image augmentation image with Mosaic

2.3 先验框聚类分析

原始YOLOv4-tiny模型中采用典型的K-means聚类算法对训练图像进行维度聚类分析获得先验框,但K-means算法对初始聚类中心选取的随机性会对聚类效果造成一定的影响[33]。为获得最佳的训练模型,本文中使用K-means++聚类算法代替K-means聚类算法,K-means++聚类算法的聚类随机性较小,能够有效降低随机选择初始聚类中心所造成的聚类结果偏差。K-means++聚类算法流程如下:

(1)输入数据集中玉米及杂草的宽高集合N和聚类中心数量k。

(2)随机从集合N中选取1个点,作为初始聚类中心O1。

(3)计算集合N中其余各点x到其最近聚类中心Ox的距离D(x),距离越远的先验框成为下一个聚类中心的概率P(x)越大。重复此步骤,直到找到k个聚类中心。

D(x)=1-IOU(x,Ox)

(2)

(3)

式中IOU(x,Ox)——聚类中心与每个标注框的交并比

(4)计算集合N中所有点分别到k个聚类中心的距离D(x),将该点划分到距离最小的聚类中心类别中。针对聚类结果,重新计算每个聚类类别中心Ci。

(4)

(5)重复步骤(3),当每个聚类类别的聚类中心Ci不再变化时,输出k个聚类中心结果。

经过K-means++聚类算法,得到了6组先验框:(31,36)、(45,78)、(90,83)、(87,209)、(201,130)、(215,363),此时选取的先验框与待识别目标的交并比达到87.67%。

2.4 模型训练

2.4.1试验平台

训练平台为Lenovo legion台式计算机,主要硬件配置为:Intel(R) Core(TM) i7-10700k CPU@3.8 GHz,16 GB内存,NVIDIA GeForce RTX 2080 SUPER GPU。 软件系统环境为Windows 10 64位操作系统,CUDA 10.0版本,CUDNN 7.1版本,Python 3.7.11版本,Pytorch 1.2.0版本。

测试平台为Jetson Nano嵌入式平台,主要硬件配置为:4-core ARM A57 CPU@1.43 GHz,4 GB内存,128-core Maxwell GPU。软件系统环境为Ubuntu 18.04系统,CUDA 10.1版本,CUDNN 7.5版本,Python 3.8.10版本,Pytorch 1.7.1版本。在训练平台训练好模型后,将模型导入Jetson Nano嵌入式平台进行测试。

2.4.2参数设置

在训练的过程中,YOLOv4-tiny模型使用随机梯度下降法(Stochastic gradient descent,SGD)对卷积神经网络的权重参数进行优化,YOLOv4-tiny模型经过对训练集图像的多次稳定迭代学习,完成对权重参数的更新和优化,模型训练的具体参数设置如表1所示。

表1 训练参数设置Tab.1 Training parameter setting

2.4.3评价指标

为了分析模型的性能,采用准确率(Precision,P)、召回率(Recall,R)、F1值、类别精度(Average precision,AP)及类别精度均值mAP作为模型评价指标。

2.4.4K-means++聚类算法有效性检验

为检验本文采用的先验框聚类算法的有效性,将YOLOv4-tiny模型分别采用K-means聚类算法和K-means++聚类算法对原始图像数据集进行训练并测试,检测结果如表2所示。

表2 不同聚类算法对YOLOv4-tiny检测结果的影响Tab.2 Influence of different clustering algorithms on detection results of YOLOv4-tiny %

由表2可知,与采用K-means聚类算法的YOLOv4-tiny模型相比,采用K-means++聚类算法的YOLOv4-tiny模型准确率提高了0.7个百分点,召回率提高了0.1个百分点,F1值提高了0.6个百分点,玉米的AP提高了0.8个百分点,杂草的AP提高了4.9个百分点,mAP提高了2.9个百分点。采用K-means++聚类算法对YOLOv4-tiny模型的各项指标均有所提升,故本文采用K-means++聚类算法的YOLOv4-tiny模型进行后续试验。

2.4.5不同图像增强算法的检测结果对比

为了验证不同的图像特征增强算法对检测结果的影响,本文将采用不同算法增强后的图像分别输入YOLOv4-tiny模型中进行训练并测试,模型检测结果如表3所示,mAP曲线如图7所示,训练中损失函数曲线如图8所示,PR曲线如图9所示。

由图7和表3可知,与原始图像相比,经过CLAHE图像特征增强后的图像,只有玉米的AP提高了0.4个百分点,准确率、召回率等其他指标均降低(准确率降低了1.1个百分点,召回率降低了0.3个百分点,F1值降低了0.9百分点,杂草的AP降低了0.9个百分点,mAP降低了0.3个百分点);经过同态滤波图像特征增强后的图像,召回率不变,玉米和杂草的AP、mAP提高了0.1~0.3个百分点,准确率和F1均降低了0.2个百分点;经过MSRCR图像特征增强后的图像,准确率提高了1.9个百分点,召回率提高了1.1个百分点,F1值提高了1.6个百分点,玉米的AP提高了0.2个百分点,杂草的AP提高了1.9个百分点,mAP提高了1.0个百分点。由以上数据可知,CLAHE算法和同态滤波算法对各指标的影响较小,对F1值和mAP等关键指标略有降低,而MSRCR算法对玉米和杂草的AP等各指标均有明显提升。

表3 不同图像特征增强算法对YOLOv4-tiny检测结果的影响

图7 不同图像特征增强算法的mAP曲线Fig.7 The mAP curves of different image feature enhancement algorithms

图8 不同图像特征增强算法的训练损失曲线Fig.8 Training loss curves of different image feature enhancement algorithms

由图8可知,各损失函数在迭代的初期下降迅速,随着迭代的进行,约在50次时,模型损失值下降速度开始变缓,迭代至150次时,损失值在1.6附近波动,模型达到稳定状态。其中,采用MSRCR图像特征增强后的图像损失函数曲线收敛最快且最终损失值最低。从图9的PR曲线来看,MSRCR图像特征增强后的图像中玉米和杂草的PR曲线下包围的面积(Area under curve,AUC)明显高于其他3组图像,这也体现了MSRCR具有良好的效果,因此本文最终选用MSRCR图像特征增强后的玉米田间图像进行后续试验。

2.5 YOLOv4-tiny模型剪枝

为了进一步提高运算速度、减少算法对硬件资源的占用,本文对训练后的YOLOv4-tiny模型进行通道剪枝,采用在BN层的尺度因子上进行L1正则化的方法。

如图10所示,原始网络结构中BN层上的尺度因子与卷积层中的每个通道或全连接的神经元关联起来。在训练过程中对这些尺度因子进行稀疏正则化,自动识别尺度因子较小的信道或神经元,然后将这些信道或神经元(橙色)去除,得到右侧紧凑的模型,使得压缩后的模型能更好地部署在嵌入式设备中。

图10 模型剪枝原理图Fig.10 Schematic of model pruning

YOLOv4-tiny模型剪枝的具体步骤如下:

(1)基础训练获得原始的YOLOv4-tiny玉米杂草识别模型。

(2)对识别模型进行稀疏化训练,采用BN层中可训练的尺度因子作为指标,并在稀疏训练的过程中进行L1正则化操作,添加L1正则化操作后的损失函数L的计算公式为

(5)

其中

f(γ)=|γ|

(6)

式中γ——可训练的尺度因子

Γ——γ的集合

f(γ)——L1范数正则化函数

lyolo——训练过程中的损失

∂——平衡损失的惩罚因子

(3)在稀疏训练之后,模型按照设定的剪枝率进行修剪,从而降低模型占用的存储空间。

(4)剪枝后,模型的检测精度等指标会有所下降,需要对修剪后的模型进行再次训练,微调参数以补偿精度的暂时退化。

YOLOv4-tiny模型剪枝过程的基本参数设置如表4所示。

表4 YOLOv4-tiny模型剪枝的基本参数设置Tab.4 Paramaters setting for YOLOv4-tiny model pruning

通道剪枝后模型命名为Slim-YOLOv4-tiny,通道剪枝并微调后模型命名为Prune-YOLOv4-tiny,分别在台式计算机和Jetson Nano嵌入式平台上运行评估,评估结果如表5所示。与YOLOv4-tiny模型相比,Slim-YOLOv4-tiny模型的总参数量发生明显变化,降为YOLOv4-tiny模型的54.3%,模型占用内存减少为YOLOv4-tiny模型的53.8%,在台式计算机检测平均帧耗时降为YOLOv4-tiny模型的75%,在Jetson Nano检测平均帧耗时降为YOLOv4-tiny 模型的67.3%,达到了简化模型的目的,但模型的准确率、召回率、F1值及mAP均有下降,分别降低了5.1、11.4、7.5、24.6个百分点,这是由于剪枝后暂时导致的精度损失,需要后续的微调过程进行补偿,经过微调的模型在许多情况下可以达到比原始未剪枝模型更高的精度[34]。微调后Prune-YOLOv4-tiny模型总参数量、模型占用内存及在台式计算机检测平均帧耗时略有增加,但较YOLOv4-tiny模型可忽略不计,较Slim-YOLOv4-tiny模型的准确率、召回率、F1值及mAP值均有提高,分别提高了8.4、12.1、9.9、27.1个百分点,达到了比YOLOv4-tiny模型更好的精度,在

表5 模型剪枝的评估结果Tab.5 Test evaluation results of model pruning

Jetson Nano检测平均帧耗时降为YOLOv4-tiny 模型的77.9%。结果表明,采用模型剪枝方法后YOLOv4-tiny模型的性能得到了提高。

2.6 不同算法检测效果对比

为验证Prune-YOLOv4-tiny模型的有效性,在台式计算机上使用本文训练集和MSRCR图像特征增强算法对常用的目标检测模型Faster RCNN、YOLOv3-tiny、YOLOv4进行训练,并在台式计算机和Jetson Nano嵌入式平台上分别使用测试集对4种算法性能进行评估,评估结果如表6所示。

表6 不同算法检测结果比较Tab.6 Detection results comparison of different algorithms

Faster RCNN的模型占用内存是Prune-YOLOv4-tiny的29.4倍,mAP比Prune-YOLOv4-tiny低22.1个百分点,并且由于参数过多无法在Jetson Nano嵌入式平台检测图像。YOLOv3-tiny在台式计算机检测平均帧耗时与Prune-YOLOv4-tiny模型相差不大,但在Jetson Nano嵌入式平台检测平均帧耗时是Prune-YOLOv4-tiny模型的3倍。YOLOv4模型的mAP虽然比Prune-YOLOv4-tiny模型高1.2个百分点,但模型占用内存是Prune-YOLOv4-tiny模型的20倍,在Jetson Nano嵌入式平台检测平均帧耗时是Prune-YOLOv4-tiny模型的13倍。

与其他3种模型相比,Prune-YOLOv4-tiny模型具有较高的准确率、召回率、F1值和mAP,模型剪枝后占用内存小,实现了速度与精度的平衡,并适用于嵌入式平台。

图11展示了不同算法的检测效果,为了直观比较检测结果,本文采用原始标注图像作为对比。从图11可以看出,Faster RCNN模型存在漏检情况,如图11a、11b中漏检了部分小目标杂草,而YOLOv3-tiny、YOLOv4、Prune-YOLOv4-tiny的检测结果与原始标注图像基本相同。图11c、11d中存在多株杂草重叠及玉米与杂草互相遮挡,Faster RCNN对于重叠的杂草有漏检情况,YOLOv3-tiny和YOLOv4对于小目标多株杂草重叠检测存在冗余框。相比于Faster RCNN、YOLOv3-tiny和YOLOv4这3种模型,Prune-YOLOv4-tiny模型的检测效果更好,对大目标和小目标均能有效识别,且不受玉米与杂草互相遮挡、多株杂草重叠、背景存在杂物以及自然光线下玉米及杂草阴影等影响。

3 结论

(1)提出了一种融合MSRCR算法和改进YOLOv4-tiny目标检测模型的田间环境下玉米苗和杂草的识别方法。试验结果表明,在嵌入式平台上,Prune-YOLOv4-tiny模型的综合评价指标F1值为83.6%,玉米苗的AP为98.2%,杂草的AP为94.9%,mAP为96.6%,检测平均帧耗时131 ms。满足实际生产需要,可用于实际的田间环境进行玉米苗和杂草的识别,为后续除草机器人的视觉系统提供良好的技术支持。

(2)MSRCR算法克服了原始图像对比度低、细节模糊等问题,使得低像素的图像中特征更易提取,图像特征增强后F1值提高了1.6个百分点,杂草的AP提高了1.9个百分点,mAP提高了1.0个百分点。

(3)采用Mosaic在线数据增强、K-means++聚类算法重构先验框及模型剪枝处理对YOLOv4-tiny模型进行改进,得到的Prune-YOLOv4-tiny模型占用内存为12.2 MB,与Faster RCNN、YOLOv3-tiny和YOLOv4模型进行对比,结果表明:Prune-YOLOv4-tiny的mAP分别比Faster RCNN和YOLOv3-tiny高22.1个百分点和3.6个百分点,比YOLOv4低1.2个百分点;Prune-YOLOv4-tiny模型占用内存是Faster RCNN的3.4%、YOLOv3-tiny的36.9%、YOLOv4的5%;在Jetson Nano移动平台的检测平均帧耗时分别是YOLOv3-tiny和YOLOv4的32.1%和7.6%。综合对比以上数据,本文提出的方法在保证检测精度的前提下,具有模型占用内存小、运算速度快的显著优势。

猜你喜欢
剪枝嵌入式聚类
基于梯度追踪的结构化剪枝算法
一种傅里叶域海量数据高速谱聚类方法
基于IMX6ULL的嵌入式根文件系统构建
人到晚年宜“剪枝”
基于知识图谱的k-modes文本聚类研究
利用KL散度度量通道冗余度的深度神经网络剪枝方法
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
一种改进K-means聚类的近邻传播最大最小距离算法
基于模糊聚类和支持向量回归的成绩预测
剪枝