基于低空无人机影像和改进Faster R-CNN的棉田杂草识别方法
2022-12-05易佳昕张荣华刘长征侯彤瑜罗宏海
易佳昕,张荣华*,刘长征,侯彤瑜,罗宏海
(1 石河子大学信息科学与技术学院,新疆 石河子 832003;2 石河子大学农学院,新疆 石河子 832003)
棉花是我国种植业在产出量和消费量上名列前茅的大田经济作物[1]。目前,新疆棉花区成为了中国最大的优质产棉基地,其棉花产量连续5年占全国棉花总产量75%以上[2]。在棉田管理中,会发生患病、虫害和杂草等影响棉花产量的消极因素,其中杂草会与棉花幼苗争夺土壤养分、水分、光照和生长发育空间,同时也为病虫害的滋生提供了适应条件,这些情况都会造成棉花产量的下降,每年年均损失达到14%~16%,严重影响优质棉花的高效率产出[3]。目前主流的除草方法包括人力除草、机器除草和化学除草,这不仅拉高了成本、降低了效率,还减少了土壤肥力[4]、干扰了生态平衡[5]、影响了棉花品质[6],因此需要迫切解决棉田幼苗与杂草的快速识别和精准定位问题[7]。
传统的杂草识别研究主要是图像识别,一般需要根据农作物和杂草在图像中所表达的差异性对检测目标进行分类,通过手动提取图像中的颜色、纹理和形状等综合特征来建立模型[8-9],但这种方法对数据所获取的环境有极大相关性,尤其在自然条件下,伴生杂草的复杂背景严重影响了物体检测的准确性,实际情况中难以适用。
现阶段的主流研究是基于深度学习的物体识别与定位,此方法不仅能自动提取图像特征,而且具有极强的数据表达能力,通过学习数据的深层次特征拟合复杂环境下物体类别与位置,在农作物识别与定位领域应用广泛。基于此,薛金利等[10]使用无人机遥感技术,提出了一种基于改进的YOLOv3模型的棉田杂草识别算法,相较于原始模型,此模型杂草检测精度在0.29 cm数据集上识别率和查全率分别达到了94.06%和90.26%。邓向武等[11]提出了一种基于深度卷积特征的方法,以稻田幼苗为研究对象,采用支持向量机和k最邻近算法对杂草进行辨别,识别精度均高于94%。孟庆宽等[12]针对自然条件下玉米苗期与杂草的识别问题,提出了一种基于轻量卷积神经网络结合特征层网络融合的SSD模型,在复杂背景下的识别精度为88.27%,与经典SSD模型相比,精度提高了2.66%。
以上研究方法虽然可以提高农作物的检测精度,但不能做到实时性,目前,Faster R-CNN算法是速度和精度最为均匀的目标检测网络。权龙哲等[13]提出的预训练网络优化了Faster R-CNN,对玉米幼苗的不同阶段识别率高达97.71%,与此同时实现了多种天气和相机条件下的检测。樊湘鹏等[14]优化了Faster R-CNN模型,采用4种特征提取网络对棉花苗期的杂草分类识别,发现VGG16网络针对不同天气条件下识别效果最优,平均识别精度为94.21%,综上所述,以Faster R-CNN为基础的模型在农田小目标识别中占据一定优势[15-17]。
新疆棉苗大多采用滴灌加地膜来减少水分蒸发,杂草之间间距大,多为独立个体,用上述方法识别起来相对容易,为解决自然环境下棉田种植的作物伴生杂草多、背景复杂等问题,本文对新疆试验棉田进行不铺设地膜的实地处理,以棉花幼苗与伴生杂草为研究对象,提出一种改进的Faster R-CNN棉田杂草检测方法,利用机器视觉技术实现棉田复杂背景下幼苗和杂草的快速识别与精准定位,为真正实现田间杂草精准防控奠定前提基础。
1 资料与方法
1.1 数据采集与处理
1.1.1 图像数据获取
研究区位于新疆生产建设兵团第八师农业部石河子科学观测实验站,实验所需数据于2021年5月14日—24日分2个阶段通过无人机平台获取,时间段为下午13:00-16:00太阳光线充足的条件下,采集棉花幼苗2~4叶期间的遥感影像。飞行平台采用大疆DJI四旋羽翼无人机Phantom 4 Advanced,在视野开阔、无障碍物、无电磁干扰的环境下飞行,定位模式下的最大飞行速度为50 km·h-1,最长续航能力为30 min。搭载CMOS大疆自动对焦相机,起飞重量不超过1.4 kg,单幅图像最大分辨率为5 472×3 648 pixel,格式为JPEG。采集图像时相机设置为悬停模式,飞行高度设置为10 m,同时配备GPS和GLONASS双模卫星定位模块。
1.1.2 数据预处理
无人机影像预处理分为3个步骤:
(1)图像镶嵌。使用Pix4Dmapper软件对单幅遥感图像进行拼接,拼接规则是图像的研究区域出现不在覆盖范围的情况下,需要将其图像与多幅图像拼接起来形成一幅包括全区的完整图像。
(2)图像裁剪。处理镶嵌时,图像研究之外的区域会出现异常值,按照自然区划边界进行图像的分幅裁剪。
(3)图像切片分割。使用Adobe photoshop cc 2020 软件对裁剪后的研究区域进行图像切片分割,预处理后的数据为模型训练做准备。
1.1.3 数据增强
卷积神经网络模型需要大量样本图像,才能避免因样本尺度不同的问题所造成的失真或过拟合等情况,同时消除因图像亮度或饱和度在视觉效果上产生的噪声,训练出好的识别效果[18]。为了扩大数据样本,增加图像的多样性,主要利用几何变换和颜色变换的方法对无人机图像进行数据增强,基于此,对原始图像进行垂直水平翻转、亮度增强和亮度减弱操作,其中将原始图像的亮度参数调高一倍得到亮度增强的数据集,亮度设置至原来的1/2得到亮度减弱的数据集,最后,获得一个2 000张图像的总数据集。
以多目标复杂背景下的棉田杂草图像为例,数据增强后得到的图像效果如图1所示。
图1 图像数据增强效果
1.2 改进的Faster R-CNN网络
1.2.1 Faster R-CNN目标检测算法
经典的Faster R-CNN是two-stage目标检测算法的典型代表[19],该网络主要由2个重要部分组成:(1)区域建议网络(Region Proposal Network,RPN);(2)Fast R-CNN部分。第1部分RPN通过锚(Anchor)在单一尺度的特征图上生成不同尺度和比例的anchor boxes,感兴趣的anchor boxes生成前景,利用RPN生成的边界框回归参数将每个anchor调整到所需要的候选框,并计算出目标概率得分;第2部分Fast R-CNN包括:①ROI Pooling层:确定每个候选区域,得到固定大小的maps;②Softmax层:解决多检测目标的分类预测问题;③边界框回归层(Bounding box regression):解决检测目标的定位问题。
Faster R-CNN目标检测算法的流程分为3个步骤:首先,将归一化得到的图像输入特征提取网络预训练出对应的特征图;其次,通过RPN模块寻找前景(感兴趣的anchor boxes生成前景)并调整边界框回归参数,将结果映射到第1步所提取的特征图获得相应特征矩阵;最后,每个特征矩阵通过Fast R-CNN中的ROI Pooling层中提取特征,确定候选框,使用SoftMax来确定候选区域的类别,同时用边界框回归去调整锚点以获得准确的位置,实现对物体的分类与定位。
1.2.2 改进的Faster R-CNN算法
1.2.2.1 特征提取网络
经典的Faster R-CNN网络模型使用是ZFNet和VGG16作为特征提取网络。VGG16网络相较于ZFNet所提取的特征图表现效果突出,在研究不同的实际情况中应用广泛。VGG16由16个网络层构成(13个卷积层和3个全连接层),其特点是堆叠多个3×3的卷积核来代替大尺度卷积核以减少所需参数,拥有相同的感受野。随着网络层次的加深在一定程度上能影响模型的识别效果,ResNet50成为卷积神经网络中性能较好的网络结构,并且所提出的残差网络结构因为增加了短连接结构、组合了多个残差模块,从而消除了梯度消失的问题。结构示意图如图2所示。
图2 残差块结构图
ResNet50网络由5个阶段构成,分别为conv1_x、conv2_x、conv3_x、conv4_x、conv5_x,阶段1可视为卷积层、Batch Normalization(BN)层、ReLU函数激活层和平均池化下采样层,阶段2至阶段4则都为Identity Block和Conv Block所组成的残差结构级联模块,最后输出的特征图为RPN网络和Fast R-CNN网络的物体分类和定位做准备。本实验在经典Faster R-CNN模型的基础上,分别选择ResNet50和MobileNetv2作为特征提取网络,对比并验证VGG16、ResNet50和MobileNetv2对模型识别性能的影响。
1.2.2.2 FPN
2017年Lin等[20]提出了一种权衡速度和精度的特征金字塔网络算法(Feature Pyramid Network,FPN),该算法的提出大程度提高了目标检测精度。FPN算法基于全卷积网络可以预测不同尺度和尺寸的特征图,利用不同低层特征图上的高分辨信息与不同高层的语义信息进行融合,将目标预测出来,其网络结构包括3个部分:自底而上的通道、自顶而下的通道和侧向连接。特征金字塔网络融合结构如图3所示。
图3 特征金字塔网络融合结构图
图4 基于FPN的ResNet50改进模型图
自底而上的通道:融合FPN的ResNet50网络结构输入的图像经过卷积层conv1_x、conv2_x、conv3_x、conv4_x和conv5_x,获得不同尺度的特征图。
自顶而下的通道和侧向连接:conv5_x生成的高语义特征通过2倍上采样处理操作,使特征尺度扩大至原来的2倍,相邻层conv4_x生成的特征经过1×1的卷积核(保证特征图深度不变)得到侧边输出,使用侧向连接的方法把所获取的高层次特征图和低层次特征图进行融合,最后经过3×3的卷积核(避免上采样混叠效应)生成此层上最新的精细特征图。
后面每层conv4_x、conv3_x、conv2_x、conv1_x都使用相同的处理方法,最终得到特征金字塔网络各层最新的精细特征图{P1,P2,P3,P4,P5}。将各层最新的特征图分别输入RPN网络,且每一层特征图{P1,P2,P3,P4,P5}分别对应anchor的尺度为{8×8,16×16,32×32},比例为{1∶2,1∶1,2∶1},共9种类型的anchor boxes,经过调整产生的感兴趣区域通过ROI Align操作输入Fast R-CNN网络,预测出物体类别和位置坐标。融合FPN的ResNet50网络具体构建方式如图4所示。
1.2.2.3 ROI Align
在两阶段目标检测框架中,ROI Pooling层的作用是确定物体的候选框大小与位置。具体操作是根据预测框的位置坐标将ROI映射到feature maps对应位置,将映射后的区域划分为大小相同的子区域,最后对每个子区域进行max pooling处理得到固定大小且对应的feature maps。多数情况下训练模型回归得到的预选框位置是浮点数,经池化后的特征图需要固定尺寸,故ROI Pooling有两次量化过程,导致候选框和预选框的位置出现偏差,降低模型对小目标识别的准确性。本文采用ROI Align代替ROI Pooling来减小量化操作所带来的坐标偏差,使用双线性插值法计算浮点数像素上的图像数值,从而解决因两次量化而造成的位置坐标不匹配的问题,提高模型对目标的分割效果。流程如图5所示。
图5 ROI Align流程图
(1)对每个预测区域进行遍历,固定边界浮点数值,不对其得到的浮点数做量化操作。
(2)将预测区域通过7×7的池化层等分,分割为k×k个子区域(bins),固定每个子区域的边界。例如:等分后的子区域大小为1.56/7=0.22,不做量化操作。
(3)利用双线性插值方法,在feature maps上计算出距离采样点最近的四个像素值。
用ROI Align替代ROI Pooling,主要解决未对准的问题,保证有良好分割效果的同时提高处理速度。
1.2.2.4 Dropout优化算法
VGG16、ResNet50和MobileNetv2已经在ImageNet数据集上充分训练并且取得不错的预测效果,而在此数据集中棉花幼苗和杂草的数据相对较少,因此采用改进的Dropout算法,以避免模型训练时产生过拟合的现象。Dropout层主要作用在全连接层上,通过调整参数值可以随机丢弃中间特征的数量,防止因参数多而产生大量重复和冗余,增加了模型的鲁棒性和泛化能力。改进的Dropout算法在此基础上添加2个Dropout层,分别在特征提取网络后的2个全连接层,Dropout参数值设置为0.6。
改进后的Faster R-CNN算法流程如图6所示。
图6 改进的Faster R-CNN结构图
1.3 实验平台与数据集准备
整个实验过程在Linux运行环境的Ubuntu 20.04操作系统下完成,同时安装了Anaconda 4.9.2,CUDA 11.3和cuDNN 7.5库,基于2nd Generation Intel(R) Xeon(R) Silver 4210 CPU@2.20 GHz处理器和NVIDIA Tesla T4 GPU(16GB运行显存)的硬件设备搭载Pytorch深度学习框架,所用Python版本为Python 3.8.5。
实验采用交替训练的方法对网络进行训练,模型的优化器选择随机梯度下降(SGD)算法,训练网络的初始学习率0.001,动量因子系数为0.9,最大迭代次数为70 000次,权重衰减系数为0.000 1。每迭代一个epoch保存一次模型,通过选取精度最高的模型对测试集图像的训练效果进行调优。当迭代次数达到20 000,学习率进一步调整为0.000 1,当迭代次数达到40 000时学习率调整为0.000 01,当损失函数收敛且迭代次数达到70 000步时停止训练。
本实验采用公开的PASCAL VOC 2012数据集的标准对无人机图像样本数据进行存储,使用LabelImg图像标注工具对幼苗和杂草进行标注,存储为XML格式文件,并且保证每个标注矩形框在不包含背景的情况下存在一个识别目标,最后得到地面分辨率为0.29 cm的幼苗与杂草的数据集。将数据集随机选取80%作为训练集,10%为验证集和10%的测试集,每个集合中的图像相互独立,训练集作用于网络模型的参数训练,验证集作用于网络拓扑结构的超参数调优,测试集作用于网络模型对样本泛化误差的评估。
2 结果与分析
2.1 模型评价指标
由于研究对象属于多目标检测,需综合AP(Average Precision)、mAP(Mean Average Precision)、精确率(Precision)、召回率(Recall)作为评价标准。AP为正确识别的物体数占总样本个数的百分比,由精确率和召回率曲线(P-R曲线)的积分计算得到,其值越靠近100%,则网络模型对棉田杂草的识别越好。mAP则是AP的平均值,Precision表示预测为正的样本中正确样本的百分比,Recall表示正样本中预测正确的百分比。
2.2 对比实验结果分析
实验1对比了VGG16、ResNet50、MobileNetv2和融合PFN的ResNet50不同特征提取网络对模型的性能影响。随着模型训练迭代次数的增加,4种网络在模型训练过程中的平均精确度、整体交叉熵损失对比结果如图7和图8所示。
图7 不同特征提取网络对模型的平均精度对比
图8 不同特征提取网络对模型的整体损失对比
图7以精确率(P)为纵轴,召回率(R)为横轴,得到P-R曲线,所围成的面积实质上是mAP。实验结果表明,在Faster R-CNN模型中训练融合FPN的ResNet50网络表现的效果最好,其P-R曲线围成的面积最大,在召回率不变的情况下能够保持较高的准确度。结合表1分析,融合FPN的ResNet50网络模型的平均检测时间相对于其他网络模型用时较慢,但在检测棉花和杂草的识别精度上均高于其他网络模型,平均检测精度达到89.19%。因为FPN网络融合了低层次的高分辨率和高层次的语义特征结合ResNet50网络可以提取更深层次的特征图,且不会因为特征提取网络层次深而丢失小目标的信息,在一定程度上提高了小目标的检测精度。
表1 不同特征提取网络实验结果
VGG16的P-R曲线与ResNet50的P-R曲线存在相交,在召回率大于90%时,VGG16网络模型的检测性能优于ResNet50网络,而性能较差的ResNet50网络需要降低一定的精度才能保证召回率的提高。结合表1也可以看出VGG16网络的平均识别速度较其他模型表现最优,是由于VGG16网络的卷积层堆叠多个3×3的卷积核组成的卷积序列,能够拥有相同的甚至更大的感受野,在减少参数的同时能精确提取细小特征,所以具有较满意的效果。ResNet50网络在训练过程中通过先降维再升维的方式能够提取到更深层次的特征,但网络在反向传播过程中会发生梯度衰减,主要因为反向传播到前层时权重会重复相乘,导致梯度无穷小使部分权重更新无效,影响识别速度和精确率。
MobileNetv2网络模型在P-R曲线中表现的效果不佳,平均精确度只有70.81%,但在平均检测时间上用时最短,放在移动端或者嵌入式设备可以提高目标的检测速度,降低应用的反应延迟。
图8以算法的交叉熵损失为纵轴,迭代次数为横轴,得到不同特征提取网络的整体损失曲线对比。随着训练迭代次数的增加,4种网络模型的损失值均在20 000步之后开始下降,融合FPN的ResNet50网络模型相较其它网络模型可以更快的完成收敛,从而减少模型的训练时间,从60 000步后交叉熵损失下降缓慢,基本趋于稳定,说明模型达到局部最优。MobileNetv2网络模型在24 000步后整体损失迅速增加,在32 000步时训练的损失值最高,40 000步后逐渐平稳,直至训练损失基本收敛到稳定值,主要原因是MobileNetv2网络借鉴了ResNet50网络中的残差结构,训练过程中通过先升维再降维的方式增强梯度的传播,减少训练期间所需的内存占用。这种倒残差的结构在数据经过全连接层输出后,从1×1×1 280的logits回归到1×1×2的过程中发生一定的信息特征突变,从而导致交叉熵损失不稳定,使整体损失较大。
基于评价指标的综合考量,融合FPN的ResNet50特征提取网络对Faster R-CNN模型达到较好的预期效果,适用于本研究的需求。本文后续实验均采用融合FPN的ResNet50特征提取网络构建Faster R-CNN棉田杂草识别模型。
根据最优的网络模型,其识别效果如图9所示,在简单背景和无遮挡时的情况下可实现较高的识别率,在复杂背景且目标较多的情况下识别率整体有所下降,但平均精度仍在80%以上,图9d在部分有遮挡的情况下,识别结果也较为理想。出现检测率有出入的主要原因是由于棉花幼苗受复杂背景影响,叶片在互相遮挡的情况下信息不全,从而导致检测效率有不同程度的下降。实验结果表明:融合FPN的ResNet50特征提取网络构建Faster R-CNN模型适用于棉田复杂背景下,对棉苗与杂草实现较高的识别率。
图9 棉花幼苗与杂草目标识别结果
实验2将YOLOv5s和Faster R-CNN改进算法进行对比,因为YOLOv5有4个网络结构,分别为YOLOv5s、YOLOv5m、YOLOv5x、YOLOv5l,考虑对小目标的检测效果,本文主要聚焦于YOLOv5s结构,实验结果如表2。改进的Faster R-CNN模型的平均检测时间为0.289 s,在单张图像识别上,用时稍逊YOLOv5s,但在平均检测精度上本文方法比YOLOv5s模型高出4.93%,这是因为融合FPN的ResNet50提取网络生成的特征图有更深层的语义特征,同时采用RPN优化候选区域的产生,减少参数,利用GPU计算可大幅度缩减提取region proposal的速度,从而在保证速度相近的情况下提高检测精度。图10是两种方法的整体损失随着迭代次数的增加的变化曲线,图中明显看出,改进的Faster R-CNN模型收敛速度更快,损失值低于YOLOv5s,由此可见,改进的Faster R-CNN算法能够更加准确的识别棉田杂草。
表2 两种模型实验效果对比
图10 改进的Faster R-CNN和YOLOv5s整体损失对比
3 结论
针对复杂背景下棉花幼苗与杂草识别难度大,杂草检测不准确等问题,本文设计了符合研究对象特点的anchor尺寸,并且优化了Dropout层,提出了改进的Faster R-CNN模型。通过对VGG16、ResNet50、MobileNetv2和融合FPN的ResNet50这几种网络的性能对比,确定出融合FPN的ResNet50结构为最优的特征提取网络。相比于经典的目标检测方法,改进的Faster R-CNN模型平均检测时间为0.289 s,平均精确率为89.19%,在复杂背景下多种伴生状态杂草的小目标棉田识别效率更高。
将改进的Faster R-CNN和YOLOv5s应用到棉田杂草的识别中,比较两种方法的训练效果,改进Faster R-CNN模型的平均精确率比YOLOv5s高4.93个百分点,权衡了识别时间和平均精度,网络性能优于YOLOv5s。基于本文方法对棉田苗期杂草的识别更具有实时性和准确性,后期能够对嵌入式移动杂草防控设备提供依据。