基于优化Faster R-CNN的棉花苗期杂草识别与定位

2021-06-09 09:48樊湘鹏周建平李开敬温德圣
农业机械学报 2021年5期
关键词:特征提取杂草幼苗

樊湘鹏 周建平,2 许 燕,2 李开敬 温德圣

(1.新疆大学机械工程学院,乌鲁木齐 830047;2.新疆维吾尔自治区农牧机器人及智能装备工程研究中心,乌鲁木齐 830047)

0 引言

我国棉花的生产量和消费量均位居世界前列[1]。新疆作为中国最大的优质商品棉生产基地,其棉花产量占全国棉花产量的60%~70%[2],棉花已成为新疆地区国民经济的重要支柱。棉田中的杂草与棉花争夺水分、养分和生长空间,造成棉花产量和品质下降[3],杂草也为病虫害滋生和蔓延提供了生存条件,导致作物病虫害频发。传统的人工除草方式成本高、效率低,大面积喷洒除草剂虽然可以控制杂草,但药物残留会造成土壤肥力下降和严重的环境污染[4],干扰生态平衡[5],降低棉花品质[6]。采用智能装备进行精准施药或智能机械除草具有广阔的应用前景,利用机器视觉技术进行杂草精准快速识别和定位是田间杂草精准防控管理的前提和核心技术之一[7-8]。

传统的目标检测主要从机器视觉获取的图像特征入手,借助作物与杂草乃至农田背景等对象在颜色、形状或纹理方面的差异性进行图像处理,通过手动提取特征来实现杂草目标的识别[9-10]。在自然条件下,由于杂草种类多、生长状态多样(如伴生等)和天气条件多变等复杂的田间环境,传统杂草检测方法泛化能力有限,严重降低了检测方法的实用性。深度学习方法与传统图像处理方法有着本质的不同,它可以学习数据的深层次特征,实现密集型图像计算任务,解决复杂环境下的应用问题。在深度学习算法中,卷积神经网络(Convolutional neural network,CNN)模型在作物表型信息解析和植物检测分类中取得了较好效果[11-16]。文献[17-21]研究了基于卷积神经网络的杂草识别方法,虽然这些方法获得了较高的准确率,但识别对象多为背景简单、类型单一的杂草。针对作物和多种杂草共存、目标相似、杂草分布不均的杂草识别与定位问题没有得到很好的解决,导致深度学习方法在田间实际应用中严重受限。自然条件下的棉田中具有杂草种类多、目标较小、生长形态多样(如伴生等)和天气条件复杂等特点,杂草与棉花幼苗具有某种程度的相似性。以区域特征为基础的卷积神经网络Faster R-CNN模型识别错误率和漏检率低,能够直接输出识别与定位的检测结果,且可以实现实时检测[22-23],在农田小目标检测中具有一定的优势[24-25]。

为解决自然环境下的棉花苗期杂草识别问题,推进深度学习方法在农田目标检测中的应用,本文以新疆棉田实际环境多种天气条件下棉花幼苗与多种伴生杂草为研究对象,对获取的数据进行增强处理,根据杂草特点设计最佳锚尺度,选取合适的特征提取网络,优化训练策略,建立基于优化Faster R-CNN的杂草检测方法,以期实现复杂田间环境下的棉花幼苗与杂草的快速准确识别与定位,为后期智能除草提供理论依据。

1 试验数据

1.1 图像数据获取

试验所需数据在2019年5—7月在新疆五家渠市102团农场棉田,分12个阶段(每阶段相差5~8 d)使用索尼IMX386型相机垂直拍摄获得,相机距离地面70 cm左右,图像分辨率为1 079像素×1 157像素,格式为JPEG。为了研究不同天气影响下的多种杂草图像识别问题,分别在晴天、多云和雨天进行采集,选择的杂草类型有田旋花、灰绿藜、小蓟、硬草、马唐、马齿苋、播娘篙7类,保证任意2种杂草之间的数量比例处于均衡状态[20]。采集到的图像中,杂草的生长状态包含:杂草单独存在、棉花幼苗与杂草伴生、杂草分布密集、分布稀疏等多种情况。期间总共拍摄4 694幅有效图像。新疆棉田的棉花幼苗和杂草生长分布情况如图1所示。卷积神经网络需要进行有监督的训练,因此利用Lableme工具对图像中的目标进行标注,并保存为Pascal VOC格式。

1.2 数据增强

卷积神经网络模型需要大量样本图像才能训练出好的识别效果[26]。利用几何变换和颜色变换的方法对样本图像进行数据增强,每幅图像的标注文件也同步变换。在样本图像数量较少的情况下,通过基本变换可以增加样本数量,而且还可以避免因为样本太少或者尺度太小等问题造成识别过程中出现的失真或过拟合等问题,改变样本图像的亮度和饱和度,可以消除一些图像噪声来改变图像的视觉效果,以缓解模型的过拟合现象。数据增强后,样本数量扩大到原来的4倍,变为18 776幅。以棉花幼苗与小蓟交叉生长的图像为例,数据增强后得到的图像效果如图2所示。

2 优化Faster R-CNN杂草识别与定位模型

2.1 Faster R-CNN目标检测算法

Faster R-CNN诞生于2015年[22],是Two-stage检测算法的典型代表,具有识别漏检率低、准确率高、实时性强的特点。One-stage算法的典型代表是YOLO(You only look once)系列和SSD(Single shot multibox detector)系列算法,One-stage算法是通过在一个步骤中完成目标分类和定位来实现目标检测。

Faster R-CNN的提出是为了解决Select search方法找寻目标区域速度太慢的问题,即用区域建议网络代替费时的Select search。Faster R-CNN的基本结构如图3所示,该网络主要包括共享卷积层单元、区域建议网络和Fast R-CNN这3个模块。共享卷积层单元是Faster R-CNN中的特征提取网络,用于提取图像特征;区域建议网络通过借助锚(Anchor),在单一尺度的特征图上高效地生成多种尺度和多种长宽比的感兴趣区域;Fast R-CNN部分包含ROI Pooling单元、Softmax分类单元和边界框回归单元(Bbox regression),ROI Pooling单元用于池化提取每个感兴趣区域的特征,Softmax分类器单元实现类别预测,边界框回归单元实现位置回归。Faster R-CNN对输入图像中的杂草进行检测的流程可以分为3步:首先输入图像经过预训练的特征提取网络后提取图像中的目标特征;之后区域建议网络利用提取到的特征找出一定数量的感兴趣区域来估计可能包含杂草目标的类别和位置;图像特征和感兴趣区域输入到Fast R-CNN中的ROI Pooling单元中提取特征,Softmax回归对感兴趣区域进行分类,判断杂草目标的类别,同时使用边界框回归对这些RoIs的位置进行微调(fine-tune),最终获得检测框的最终精确位置,即对杂草进行定位。

2.2 Faster R-CNN算法优化

2.2.1特征提取网络优选

在Faster R-CNN中最初使用的是ZFNet和VGG16这2种特征提取网络,但ZFNet的精度较低,VGG16特征提取器网络成为卷积神经网络中性能优秀的结构类型。VGG16中包含了16个权重层,分别为13个卷积层和3个全连接层,其最大的特点是使用了3×3的卷积核以及2×2的池化核,能够提取出输入域中更多细小的特征。经过发展,虽然一些更深层次的特征提取网络如VGG19、ResNet50和ResNet101等出现,但随着网络结构的增加,其深度和参数也不断增多,会占用更多的存储资源和计算单元,导致训练退化,降低模型的性能。在对棉花苗期的幼苗和杂草进行检测时,需要设计能同时保证识别精度和识别速度的卷积网络结构作为特征提取网络。本文的试验思路为:选取预训练的VGG16结构作为Faster R-CNN模型的特征提取网络,提取杂草图像的特征,同时分别选择VGG19、ResNet50和ResNet101这3种结构的特征提取网络作为对比,验证不同特征提取网络对模型识别性能的影响。

2.2.2Dropout优化算法

VGG16、VGG19、ResNet50和ResNet101这4种特征提取网络均是在ImageNet等大型数据集上进行了充分的训练后才有较好的效果。在ImageNet中有上百万幅图像[26],试验中获取的杂草图像数据规模相对较小,因此为避免模型产生过拟合现象,选择Dropout优化算法来提高模型的性能。Dropout算法的作用在于根据设定概率使网络训练过程中的神经元输出值随机丢弃,即使一部分神经元“失活”,可以避免网络训练过程中产生的过拟合现象。本文在特征提取网络的后2个全连接层设定Dropout训练策略。

2.2.3锚框的改进设计

区域建议网络的作用在于提供候选区域即感兴趣区域,每幅图像可生成大约2 000个候选框。在生成区域建议之前需要确定图像的最佳锚尺度。RPN以16像素的步幅评估图像每个位置的不同边界框,产生的不同边界框形成的盒子称为锚,其特征是由它们的比例(盒子面积)和纵横比决定。本研究中的杂草对象大小不一且种类多,为了使模型能快速检测到目标,本文测试了3种不同纵横比的Anchor,确定了纵横比为1∶2与1∶1的锚最佳尺度。输入图像的尺寸为500像素×375像素,但网络会在最短的一侧将输入图像的尺寸调整为400像素。因此,将最短边设定为400像素,锚框的尺寸与图像中目标比较情况如图4所示。

2.3 杂草识别与定位方法

本文研究的目的是建立适用于自然条件下棉田苗期杂草识别和定位的模型,并具备实时性检测的能力。为了实现对杂草目标的检测,需要准确定位包含识别对象的Anchor位置,并对杂草的种类进行判别。采用Faster R-CNN架构下的4种特征提取网络进行对比试验,通过比较其精确率得到最适合于本研究的特征提取网络。在所选最优的特征提取网络下,将Faster R-CNN模型算法与SSD和YOLO这2种主流目标检测算法进行对比,验证所提方法在杂草识别与定位中的性能。

3 模型训练

3.1 试验平台

整个试验过程的运行环境为:Windows 7(64位)操作系统,Anaconda 3.5.0,CUDA 8.0和cuDNN 6.0库,搭载Intel(R)Xeon(R)CPU E5-2630 v4 @2.20 GHz处理器,使用开源深度学习框架TensorFlow作为开发环境,计算机内存16 GB,所用Python版本为3.5.6。

3.2 网络模型训练

以Faster R-CNN作为杂草检测识别的基础网络框架,选择ImageNet预训练的模型初始化权值,采用交替优化训练方式,在VGG16、VGG19、ResNet50和ResNet101这4种特征提取网络下进行训练。为提升模型性能,减少过拟合,选择带动量(Momentum)的随机梯度下降法(Stochastic gradient descent,SGD)改善模型。动量因子设置为0.9,最大迭代次数为 60 000,学习率最初设为0.01,迭代次数达到20 000,学习率降为0.001,当迭代次数达到40 000时学习率降为0.000 25,直到迭代次数达到最大值后停止训练。在本试验中采用在Dropout的训练策略,Dropout参数值设置为0.6。从18 776幅样本图像中随机选择其中的70%作为样本训练集,剩余30%为测试集,测试集用于对模型验证并输出识别结果。

3.3 评价指标

采用平均精确率(Average precision,AP)作为目标检测性能的评价指标。AP与精度P和召回率R有关,AP是对精度-召回率曲线(P-R)的积分,AP反映模型识别杂草的效果,其值越接近100%,识别效果越好。

4 结果与分析

4.1 不同特征提取网络对模型性能的影响

在Faster R-CNN网络的共享卷积层单元有多种预训练网络可供选择来提取图像特征,在选择网络时必须考虑特征提取网络的特点,特征提取网络的结构尺寸、速度和特提取效果都是影响目标识别性能的因素。VGG16、VGG19、ResNet50和ResNet101 4种特征提取网络是常用的结构,VGG16和VGG19特征提取网络的最后一个最大池化层是由ROI最大池化层替换,而ResNet50和ResNet101网络是在特征提取层之后插入ROI池化层,且有更深层次的结构。为选取更适合本文研究对象的特征提取网络,分别选取VGG16、VGG19、ResNet50和ResNet101 4种特征提取网络进行试验对比,绘制P-R曲线。召回率反映了分类器对正样本的覆盖能力,精度反映了分类器预测正样本的精准度,得到4种特征提取网络的P-R曲线如图5所示,模型性能对比结果如表1所示。

从图5可以看出,在Faster R-CNN框架下的4种特征提取网络中,VGG16结构的P-R曲线与坐标轴所围成的区域面积最大,在保持相同召回率的同时能够保持较高的检测精度。结合表1可以看出,VGG16结构的平均识别时间虽不是最少,但平均识别精确率达到94.21%,均高于VGG19、ResNet50和ResNet101模型,表明VGG16特征提取网络结构在Faster R-CNN的配置优于其他3种特征提取网络。其原因在于,VGG16模型的卷积层采用3×3的滤波器,经连续堆叠组成的卷积序列能够模仿出更大的感受野效果,可有效提取细小特征并拟合更加复杂的特征,因此具有较高的精确率;VGG19采用19层卷积层,大部分参数集中在全连接层,负载增加,导致过拟合现象严重,精确率有所降低;ResNet50和ResNet101由于网络层级更深,虽然能够提取到更多深层次特征,但神经网络在反向传播过程中梯度衰减,导致部分权重调整失效,精确率和检测速度有所下降。ResNet101结构的平均精确率高于ResNet50结构,但低于VGG16结构。在本试验中,层数较浅的VGG16特征提取网络比更深层次的特征提取网络对杂草检测性能更好。基于检测速度、样本数量及复杂特点和分类精确率的综合考量,VGG16特征提取网络更适用于本研究项目的需求。本文后续试验均采用VGG16特征提取网络构建Faster R-CNN杂草识别模型。

表1 不同特征提取器试验结果对比

4.2 不同生长状况的杂草识别与定位效果

新疆棉田多采用滴灌方式,棉花根部附近的水分较多,会出现不同密集程度的棉花与杂草交叉生长现象,相互交叉混合生长的杂草会使得杂草叶片有不同程度的遮挡,在杂草识别中容易带来无法识别或者识别错误等问题,导致杂草识别精度下降。如图6a仅针对杂草进行识别与定位,图6b对棉花幼苗和杂草同时识别与定位,将棉花幼苗作为检测对象可以在识别定位过程中区别于杂草,避免错误识别现象。因此,通过对棉花幼苗的识别和定位,可间接提高杂草的识别率。

使用训练好的模型对不同分布密度的杂草检测效果如图7所示。可以发现,基于Faster R-CNN的识别模型针对各种分布情况的杂草都具有很好的识别效果,且能够通过边界框回归对棉花幼苗和多个杂草目标进行准确定位。不论是杂草分布稀疏还是密集的情况,区域建议网络可以通过Anchor对目标进行单独定位,在图7a中,棉花幼苗与杂草伴生紧邻的条件下,模型也能使棉花幼苗和杂草目标分离开,并对其准确定位。在检测目标较多时,出现概率降低的现象。这种情况一是由于棉花幼苗生长间距较小,造成形状特征交叉拟合,降低了识别效果;二是由于部分棉花幼苗叶面存在斑点,如图7c左下角识别概率为0.162的棉花幼苗。上述问题可通过增加棉花与杂草互生状态下以及带有斑点的棉花幼苗样本图像来提高识别效果。Faster R-CNN中的区域建议网络可以借助Anchor 的形式在图像的不同位置生成边框,并提取相应区域的特征,高效生成不同的感兴趣区域,在Fast R-CNN结构中边界回归框的微调作用下实现对杂草的精确定位。总体而言,所提方法可以实现自然环境下幼苗与杂草伴生、多种杂草不同分布密度的目标识别与定位。

4.3 不同天气条件杂草图像对模型的影响

为研究在杂草识别过程中天气条件对识别率的影响,将晴天、多云和雨天条件下的相同杂草进行同等数量划分,晴天、阴天和雨天的不同杂草图像各1 000幅。将这些图像分别采用训练好的模型进行识别,模型在3种天气条件下的识别时间分别为260.1、345.2、359.8 s,平均识别精确率分别为97.02%、93.77%、90.34%。结果表明,在雨天环境获取的图像样本的识别时间最长且识别精度最低。因此,为提高模型在实际应用中的效果,应增加在极端天气条件下的样本数量。

4.4 与其他模型算法对比

为了显示所提方法的优越性,在保证相同的试验条件和图像处理方法条件下,将所提Faster R-CNN算法与主流目标检测算法SSD和YOLO网络模型进行对比试验。为保证对比试验有效性,3种方法均基于TensorFlow环境,都采用VGG16结构作为特征提取网络,训练方式均为SGD,学习率设置规则保持一致,Dropout值为0.6,最大迭代次数为60 000,使用相同的数据集训练模型并对棉花幼苗和杂草进行识别测试。3种方法最终得到的损失值和精度如图8所示。

结合图8和表2可以看出,3种方法损失值均随着迭代次数的增加而递减,一开始损失值下降较快,这是因为初始学习率设置较大的原因,随着迭代次数的增加,学习率逐渐变小,曲线变化趋于平缓直到收敛。YOLO算法在整个试验过程中损失值一直高于SSD方法和Faster R-CNN方法,平均检测耗时为0.314 s,最终获得的平均精确率在3种方法中最低,为84.97%。其原因在于YOLO算法在回归过程中网格回归单一,使得对杂草的定位不够精准,单网格空间约束限制了模型在杂草分布密集、相邻较近的预测,漏检率较高,导致其检测精度较低。在迭代次数10 000之前,SSD方法的损失值与Faster R-CNN方法损失值相差不大,但随着迭代次数的不断增加直到收敛,Faster R-CNN方法的损失值一直低于SSD方法,在检测精度上SSD方法最终达到的平均精确率为87.23%,Faster R-CNN平均精确率为94.21%,在3种方法中最高。在识别速度上,SSD相对于YOLO有所提升,处理单幅图像时间为0.297 s,高于Faster R-CNN方法。SSD算法结合了YOLO中的回归思想和Faster R-CNN中的Anchor机制,使用全图各个位置的多尺度区域特征进行回归,因此速度和精确率有所提升。但SSD方法对于目标较小、杂草特征和分布复杂的较小目标识别时,由于Anchor对特征图中的覆盖范围大,导致对小目标的训练不充分,因而对杂草目标较小时的检测精度降低。Faster R-CNN算法由于采用了区域建议网络RPN代替原来的比较费时的Select search算法,从而将候选区域提取的时间代价降为0.2 s左右,同时由于Anchor的存在,在训练样本的过程中,通过将真实的边框位置相对于预设边框的偏移来构建训练样本,RPN生成的2 000多个框能够快速准确地找到杂草图像中的感兴趣区域ROI,大大提高了目标检测的精度。这说明,在自然条件下小目标检测中,Faster R-CNN比YOLO算法和SSD算法更具有优势,其检测精度更高,实时性更好,尤其是在棉花苗期,当棉花幼苗与杂草同时存在较小目标的情况下,应当首选Faster R-CNN算法。

表2 3种方法试验结果对比

4.5 大田环境下的应用验证

为了验证本文方法在实际场景下的可行性,在新疆石河子133团农场棉田,采用驰龙植保拖拉机搭载摄像头作为图像拍摄平台和计算机平台,对所提方法进行实际环境验证,如图9所示。试验过程中,计算机运行环境为TensorFlow-GPU,所搭载相机为顺华利SHL-200W/N型工业USB数码相机,最高分辨率1 600像素×1 200像素,帧速率为6 f/s。将相机调整到离地面120 cm的高度,垂直向下拍摄,拍摄好的图像通过USB数据线传输到计算机指定的文件夹中,调用模型对图像进行检测,输出识别结果。识别过程对采集到的150幅有效图像进行验证,将棉花误识别为杂草和将杂草误识别为棉花的图像有17幅,实现了88.67%的平均识别精确率,单幅图像平均耗时0.385 s。实际应用中只输出识别结果是不够的,为更好将识别结果应用于智能除草装备或植保机械,使得在实际作业中能够区分作物和杂草并进行定位,可将作物和杂草分别标以红色和黄色,如图10所示。在大田环境下的试验表明了所提方法在田间自然条件下的杂草识别与定位具有一定的可行性和实用性。

5 结论

(1)采用数据增强方法增加杂草样本的多样性和数量,设计了符合杂草特点的Faster R-CNN模型锚框,并加入Dropout策略训练模型,利用本文方法能够实现自然条件下与棉花幼苗伴生的7种杂草定位、识别和分类,平均精确率为94.21%。

(2)通过对VGG16、VGG19、ResNet50和ResNet101 4种特征提取网络的对比试验,确定了VGG16结构为最佳特征提取网络。对比了不同天气条件下的杂草识别效果,雨天环境对杂草识别率的影响最大。通过调整样本数量训练出识别精度较高、鲁棒性较好的Faster R-CNN网络模型,该模型可实现多种伴生状态、不同分布密度特点的杂草检测。

(3)将Faster R-CNN与YOLO、SSD进行比较,Faster R-CNN平均识别时间为0.261 s,平均识别精确率比YOLO算法高9.24个百分点,比SSD算法高6.98个百分点,针对杂草这类较小目标的检测,优化后的Faster R-CNN算法综合性能优于YOLO和SSD方法。通过大田试验验证,实现了自然条件下88.67%的平均识别精确率,平均耗时为0.385 s,说明本文方法具有一定的实用性和可推广性,可为后期采用智能装备除草或精准喷施提供依据。

猜你喜欢
特征提取杂草幼苗
拔杂草
洪洞:立即防除麦田杂草
种玉米要用“锌” 幼苗不得花白病
最优育苗基质配比促番茄幼苗生长
希望
空间目标的ISAR成像及轮廓特征提取
拔掉心中的杂草
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
微动目标雷达特征提取、成像与识别研究进展