王金星 马 博 王 震,3 刘双喜,4 慕君林 王云飞
(1.山东农业大学机械与电子工程学院, 泰安 271018; 2.山东省农业装备智能化工程实验室, 泰安 271018;3.山东农业大学园艺科学与工程学院, 泰安 271018; 4.山东省园艺机械与装备重点实验室, 泰安 271018)
我国是世界上最大的苹果生产国和消费国,根据国家统计局《中国统计年鉴2021》显示,我国苹果种植面积达1.264 6×107hm2,苹果年产量共计4.406 6×107t[1]。苹果产业的高质量发展对于提高果农经济收入,促进乡村振兴意义重大。由于苹果生长周期长、生态系统相对稳定,导致虫害种类众多,严重制约着果品产量和质量[2]。因此,对苹果园害虫进行准确识别并制定合适的防治措施,有利于减少农药用量、实现绿色防控,促进苹果产业的可持续发展。目前我国大部分苹果产区多采用人工巡视或信息素诱捕的方式监测害虫,然后再根据植保专家或果农经验进行人工判断,存在效率低、劳动强度大、易受主观性影响、费时费力且无法满足现代农业生产需求等问题[3]。
随着计算机技术不断发展,机器视觉技术在农业领域得到广泛应用[4]。传统图像处理技术主要通过提取害虫的颜色、纹理及形状等特征进行害虫识别。竺乐庆等[5]采用颜色直方图和双树复小波变换的方法提取图像颜色、纹理特征,实现对鳞翅昆虫的识别。WANG等[6]运用了支持向量机和人工神经网络模型提取昆虫图像特征,实现了对不同类别昆虫的分类。LARIOS等[7]通过结合Haar特征和随机森林的方法来提取石蝇颜色及图像平面梯度特征,并利用支持向量机(SVM)实现分类识别。传统图像处理技术虽然可实现害虫自动识别,但特征提取过程复杂,易受到环境因素干扰,泛化能力差。
近年来,深度学习以其强大学习能力和特征提取能力在农业图像分类和信息感知中的应用愈发广泛。林相泽等[8]提出一种基于迁移学习和Mask R-CNN的稻飞虱图像分类方法,通过迁移学习在ResNet50框架上进行预训练学习,并基于Mask R-CNN对存在粘连和重合的昆虫进行分类试验,结果表明该方法能够快速有效识别稻飞虱。RONG等[9]提出一种基于Mask R-CNN的田间黄板害虫识别计数方法,通过改进特征金字塔网络、将语义信息和定位信息更有效地结合,解决了害虫识别计数不准确的问题。邓朝等[10]提出一种基于Mask R-CNN的马铃薯晚疫病量化评价方法,通过生成分割掩膜计算病斑面积与叶片总面积之比K,从而根据K值对病害的严重程度级别进行量化评价。STOREY等[11]提出一种基于Mask R-CNN的苹果园叶锈病检测方法,通过对比3种主干网络的检测性能,确定以ResNet50网络为主干的Mask R-CNN模型在检测较小叶锈病时有较好的性能。综上所述,国内外学者基于Mask R-CNN对病虫害识别已开展相关研究,但由于不同种类害虫形态和纹理特征相近,在一定程度上影响模型识别性能。因此,在特征提取网络中添加注意力机制模块如SENet、SCSE、CBAM等[12-16],能够以无监督的方式来定位害虫判别性区域,进一步提高模型对害虫特征的提取能力,提高识别网络精度。
为进一步提高苹果园害虫在自然环境下的识别精度,本文提出一种基于改进Mask R-CNN的苹果园害虫识别方法,采用嵌入注意力机制模块CBAM的ResNeXt网络作为改进模型的Backbone,同时引入Boundary损失函数,以期提升模型的特征提取能力以及害虫边缘检测的精度。
研究所用图像由两部分构成:①由济南祥辰科技有限公司与山东农业大学共同研发的虫情监测装备采集得到。②主要由山东省济南市济阳区山东省农业科学院害虫库提供。
虫情监测装备为双摄图像采集装备,型号为XC-CP006,如图1所示。该装备主要由诱虫灯、接虫板、第1摄像头、第2摄像头与控制单元等构成。
图1 XC-CP006型虫情监测装备Fig.1 XC-CP006 insect monitoring equipment1.诱虫灯 2.撞击板 3.性诱芯 4.接虫漏斗 5.杀虫单元 6.电控翻转底板 7.第1摄像头 8.接虫板 9.驱动机构 10.第2摄像头 11.收集单元
作业时,诱虫灯及性诱剂诱捕害虫,害虫首先进入高压和高热杀虫单元被杀灭,然后害虫通过接虫漏斗滑落至透明接虫板,控制单元控制第1摄像头和第2摄像头对害虫正面与背面进行拍摄,最后通过5G模块上传到害虫图像云平台。其中,第1摄像头及第2摄像头为1 200万像素,摄像头距标定板拍摄距离均为300 mm。为保证试验所采集样本的多样性,虫情监测装备分布在山东省内18个试验站点,试验站点分布及采集的害虫图像如图2所示,虫情监测点位置如表1所示。
表1 济南祥辰科技有限公司虫情监测点位置Tab.1 Ji’nan Xiangchen insect monitoring point
图2 试验站点分布及采集的害虫图像Fig.2 Test site and collected pest images
为丰富苹果园害虫训练样本数量,便于后续更好地实现苹果园害虫的精准识别、分类,在山东省农业科学院试验示范基地采用得力-15165型高拍仪拍摄第2部分害虫图像,其害虫样本库取自省内30个试验监测点,汇总到试验示范基地后,进行现场识别分类。采集的样本如图3所示。
图3 示范基地采集样本Fig.3 Sample collection at demonstration base
选取所采集苹果园害虫样本中的棉铃虫、黏虫和桃蛀螟作为此次试验样本集。虫情监测装备所拍摄的图像为随机散落的多个害虫图像,为防止数据过拟合、提高卷积神经网络的训练效率及更好地提取目标特征,基于Haar特征方法获取苹果园害虫单体样本。Haar特征值反映图像灰度变化情况,它分为边缘特征、线性特征、中心特征和对角线特征,如图4所示。
基于Haar特征方法获取单体害虫样本主要通过Haar特征分类器实现。首先,将苹果园害虫划分为正样本、与害虫相近的背景划分为负样本。其次,Haar特征分类器通过对正负样本特征的学习及训练,得到一个描述检测虫体Haar特征值的分割模型。最后,通过得到矩形框坐标点来分割提取出单体害虫样本,如图5所示。若有漏分割样本,人工区分后再加入Haar特征器进行迭代训练,从而获得更高的分割精度和泛化能力。
图5 单体害虫分割图像Fig.5 Single pest segmentation image
1.3.1样本扩增
为丰富试验数据集、更好地提取苹果园害虫特征及提高模型泛化能力,采用数据增强技术对苹果园害虫数据集进行样本扩增,分别对单体害虫图像进行高斯滤波、色度、椒盐噪声、对比度以及翻转不同角度处理。扩增后图像如图6所示。
图6 单体样本数据扩增后图像Fig.6 Images after amplification of single sample data
1.3.2多边形标注
采用Labelme中多边形标注工具,标注苹果园害虫轮廓,避免复杂背景对虫体的影响,标注后生成Json标签文件,经转换后生成mask、label_viz、label_names等文件,标注后生成的文件如图7所示。
图7 Json标签文件Fig.7 Json tag file
1.3.3数据集划分
为增强苹果园害虫识别模型的鲁棒性,按照不同比例分别对棉铃虫、黏虫以及桃蛀螟图像进行扩增。苹果园害虫样本集按照比例7∶2∶1划分为训练集、测试集和验证集,三者之间无重叠。其中,训练集用于训练模型,验证集用于优化超参数,测试集用于评估模型性能。数据集划分结果如表2所示。
表2 苹果园害虫数据集Tab.2 Apple orchard pest data set 幅
苹果园害虫识别模型是在Faster R-CNN的基础上将感兴趣池化层更换为感兴趣区域对齐层(Region of interest align layer,RoI Align),并且添加一个以全卷积神经网络(Fully convolutional neural networks, FCN)为主的掩膜分支进行像素级分割[17-19],改进Mask R-CNN的苹果园害虫识别模型架构如图8所示,主要是由特征提取网络(Backbone)、区域建议网络(Region proposal network, RPN)、感兴趣区域对齐层以及目标检测和分割4部分组成[20-23]。
图8 改进Mask R-CNN模型架构Fig.8 Improving Mask R-CNN model architecture
2.2.1ResNeXt模块
Mask R-CNN采用残差网络ResNet作为骨干特征提取网络[24],而传统模型均通过加深或加宽网络结构提高识别精度,但是随着超参数数量的增加,模型的设计难度和计算开销也会增加。ResNeXt模块可以在不明显增加参数量级的前提下,用一种平行堆叠相同拓扑结构的blocks代替原来ResNet的3层卷积的block,从而提高平均识别精度[25],改进Mask R-CNN模型采用ResNeXt模块作为骨干特征提取网络,ResNeXt在结构上的改进使其具有更强的表征能力,ResNet和ResNeXt结构如图9所示。
图9 ResNet和ResNeXt结构Fig.9 ResNet and ResNeXt structures
由图9可知,ResNeXt是把ResNet的单个卷积改成了多支路的卷积,输入的害虫图像送入各个支路分别进行卷积操作,然后将各个支路输出的特征图进行维度拼接,最终得到提取的输出结果[26-28]。
2.2.2Boundary损失函数
Mask R-CNN的损失函数Lloss定义为分类、边界框回归以及分割掩模损失之和,其损失函数表达式为
Lloss=Lcls+Lbox+Lmask
(1)
式中Lcls——分类损失值
Lbox——边界框回归损失值
Lmask——分割损失值
Mask R-CNN的Lmask采用的是平均二值交叉熵损失函数,对苹果园害虫预测时,会出现边缘信息不够完整的情况,造成掩膜缺失以及影响模型识别精度。因此,本研究对Lmask部分的损失函数进行优化,引入Boundary损失函数[29]对害虫边界进行像素级评估。Boundary损失函数使用边界匹配度监督网络的loss,和真实框边界吻合的像素点的loss记为0,不吻合的点,根据其距边界的距离评估loss。为了以可微分的方式计算2个边界距离(∂G,∂S),边界损失使用边界上的积分而不是区域上的不平衡积分来减轻高度不平衡分割的困难,具体计算过程和最终得到的边界框损失函数式为
(2)
(3)
式中G——真实框区域
q——属于整个边界区域任意一点,q∈Ω
S——预测待分割区域
Δs——真实框和预测框两个轮廓之间的区域
Ω——整个边界区域
DG(p)——真实框的距离图
φG(p)——边界水平集,若q∈G,则φG=-DG(q)
s(p)、g(p)——二元指标函数
Sθ(p)——网络的Softmax概率输出
2.2.3注意力模型模块
为更好提取目标特征,在特征提取网络ResNeXt上添加卷积注意力模块[30](Convolutional block attention module ,CBAM),该卷积注意力模块包含2个独立的子模块,通道注意力模块(Channel attention module, CAM)和空间注意力模块(Spartial attention module ,SAM),可以将其融入到各种卷积神经网络中去进行端到端的训练[31],CBAM结构如图10所示。
图10 注意力机制CBAM整体网络架构Fig.10 Attention mechanism CBAM overall network architecture
通道注意力模块结构如图11所示,图中输入是一幅H×W×C(H为高度,W为宽度,C为通道数)的特征图F,首先分别通过全局平均池化和全局最大池化2种方式提取不同的特征信息,得到2个维度为1×1×C的特征图,再经过共享多层感知机(Multi-layer perception, MLP)得到2个特征向量,其神经元个数分别为C/R(R为减少率)和C,其次对2个特征向量进行逐个元素(element-wise)相加累积操作,然后经过sigmoid激活函数得到权重系数MC,最后将权重系数和最初的特征图进行相乘,得到SAM模块需要的输入特征F′。具体表达式为
图11 通道注意力模块CAM结构图Fig.11 CAM structure diagram of channel attention module
(4)
式中σ——sigmoid函数
MLP——多层感知机
AvgPool——平均池化
MaxPool——最大池化
W0、W1——输入共享的MLP权重
空间注意力模块结构如图12所示,图中首先将维度为H×W×C的特征图F′经过全局平均池化和全局最大池化得到2个H×W×1的特征图,并将这2个特征图基于通道拼接在一起。然后,经过卷积核7×7的卷积运算以及sigmoid激活操作,得到特征图权重系数MS,最后,用权重系数和特征F′相乘并缩放后,最终得到所需要的特征。具体表达式为
图12 空间注意力模块SAM结构图Fig.12 SAM structure diagram of spatial attention module
(5)
式中f7×7——7×7的卷积层
试验在运行环境为Windows 10 (64位)操作系统、处理器为 Intel(R)Xeon(R)Silver4210R的计算机上进行,并配备 NVIDIA GeForce RTX 2080Ti GPU加速试验进程。使用Python 3.6版本以 TensorFlow(1.13.2)为后端的Keras框架(2.1.5版本),以及配备 CUDA10、cuDNN7.4.1.5对改进Mask R-CNN模型进行训练。
为确定模型最佳的训练参数,通过验证集在相同环境下、不同参数的模型性能对比,来设置模型训练参数。改进Mask R-CNN的超参数设置如表3所示。
表3 模型超参数设置Tab.3 Model super parameter setting
为验证模型识别效果,采用平均精度均值(Mean average precision, mAP)作为苹果园害虫识别模型的评价指标,mAP表示各类别害虫平均精度(AP)的平均值。其中,AP为识别单类害虫的平均精度,以精确率P(Precision)为纵坐标,召回率R(Recall)为横坐标,绘制P-R(Precision-Recall)曲线,曲线与坐标轴围成的面积为AP。
改进Mask R-CNN选用特征提取网络ResNeXt结合特征金字塔网络(Feature pyramid network, FPN)构建多尺度特征金字塔模型,融合注意力机制的特征金字塔网络如图13所示,考虑到计算冗余及内存占用量,故没有将Conv1包含在特征金字塔网络中。
图13 融合注意力机制的特征金字塔网络Fig.13 Feature pyramid network integrating attention mechanism
首先卷积层(Conv1~Conv5)通过对输入图像进行自下而上的特征图提取,将输出的特征图表示为C1、C2、C3、C4、C5,然后再进行1×1的卷积融合改变特征图的维度,并通过注意力机制模块CBAM自动判别害虫区域以此提高模型的特征提取能力,其次通过自上而下的上采样,与侧边特征层进行卷积融合,采用3×3的卷积对每个融合结果进行卷积以消除上采样的混叠效应,最后融合卷积结果得到P2~P5,同时与顶层特征图P6结合,实现对特征的多尺度融合。
为更好理解卷积神经网络对苹果园害虫的特征提取过程,使用交互式笔记本(jupyter notebook)软件对模型部分卷积层的特征提取效果进行可视化分析。选取特征提取网络ResNeXt中C2~C5层以及特征金字塔P2~P5层进行分析,特征图层如图14所示。由图14可以看出,经过特征提取网络中Conv2层输出的特征映射和原图相似,能够显示出害虫的清晰轮廓,但是随着模型网络的加深,越来越多的细节信息消失,输出的特征也越来越抽象。而如图14所示,随着特征金字塔(FPN)对卷积层C2~C5的多尺度融合,即把更关注于细节信息的低层特征和更关注于深层语义信息的高层网络进行自上而下的侧边连接,生成不同层次多尺度特征图P2~P5,由图中也可以看出,经过特征金字塔网络,使得各个尺度下的害虫特征都包含丰富的语义信息。
图14 各卷积层特征提取效果Fig.14 Feature extraction effect of each convolution layer
苹果园害虫棉铃虫、黏虫以及桃蛀螟的识别结果如图15所示。可以看出本文提出的改进Mask R-CNN模型能够较好地识别出苹果园害虫,同时害虫的掩膜边缘信息也被完整地分割出来,苹果园害虫图像边界和细节更为平滑,结果表明本文提出的改进算法具有较强的鲁棒性和泛化能力。
图15 定性试验识别结果Fig.15 Qualitative test identification results
采用PyQt5搭建识别模型用户界面(GUI),并且可以通过PyQt5中的Qt Designer来编写UI界面。Qt Designer的设计符合模型-视图-控制器(MVC)的架构,实现了视图和逻辑的分离并且容易开发,设计的界面如图16所示。通过本地相册上传一幅图像后,系统将会调用改进Mask R-CNN模型和运行环境,并将识别的结果返回给系统。最终,界面展示出所识别的信息,包括识别种类、识别时间以及识别数量,并且可以将识别结果temp.png保存到指定位置。本文所述部署操作简单、快捷,便于在实际生产中应用。
图16 模型可视化界面Fig.16 Model visualization interface
3.6.1不同骨干网络对比试验
为进一步验证骨干网络ResNeXt在苹果园害虫识别模型上的有效性,基于Mask R-CNN的框架,分别对骨干网络ResNet50、ResNet101、ResNeXt50、ResNeXt101和ResNeXt152进行试验验证,同时对各个骨干网络的参数量进行计算,试验结果如表4所示。
表4 不同骨干网络对比试验Tab.4 Comparative test of different backbone networks
由表4可知,选用ResNeXt101作为骨干网络识别苹果园害虫效果最佳。ResNeXt在结构上的改进相对于ResNet增加了网络宽度,有更强的特征提取能力,因此在相同网络层数的基础上,ResNeXt50和ResNeXt101比ResNet50和ResNet101的平均识别精度高。ResNeXt152相对于ResNeXt101网络深度更深,理论上特征提取能力也相对较强,但网络太深会带来参数量过大及梯度消失等问题,影响网络识别精度。因此,选择ResNeXt101网络作为骨干网络来提取苹果园害虫特征,同时本文后续试验均采用ResNeXt101网络。
3.6.2不同损失函数对比试验
为对比Boundary损失函数在识别苹果园害虫方面的优越性,基于Mask R-CNN的框架,分别使用Smooth L1损失函数、交叉熵损失函数(Cross entropy)和Focal损失函数进行对比试验。由于Boundary损失函数可有效改善害虫掩膜边缘缺失及定位不准确问题,所以本试验引入IoUMask对掩膜的质量进行评估,通过计算苹果园害虫预测的掩膜区域和人工标记区域的交集与并集之比来量化所预测的掩膜质量,从而进一步评判苹果园害虫定位的精确程度,试验结果如表5所示。
表5 不同损失函数对比试验Tab.5 Comparative test of different loss functions
由表5可知,Boundary损失函数在平均识别精度和掩膜分割质量上都占有优势。究其原因,Smooth L1损失函数只是针对预测框的偏移量进行损失计算,无法准确描述预测框与真实框之间的位置关系;Cross entropy损失函数没有考虑到苹果园害虫边缘像素的邻域信息,细粒度信息效果不好;Focal损失函数旨在解决类别不平衡的问题,侧重点是根据样本分辨的难易程度给样本对应的损失添加权重,更加聚焦于困难样本,所以Focal损失函数和Boundary损失函数的平均识别精度差别不大,但存在边缘掩膜信息分割不完整的现象,IoUMask比Boundary损失函数低5.72个百分点。
3.6.3不同注意力机制对比试验
为进一步验证注意力机制模块CBAM的性能,在相同的试验条件下,将SENet、Channel attention和Spatial attention嵌入改进Mask R-CNN的特征提取网络ResNeXt中,通过对每种注意力机制的对比试验,得到网络模型的识别精度,分别为94.08%、93.82%、93.68%,而CBAM的识别精度为94.82%。
通过对比试验可知,与其他注意力机制相比,在特征提取网络中融合注意力机制模块CBAM平均识别精度最高。究其原因,SENet仅对特征图通道信息添加注意力模块,而忽略空间维度的特征信息。Channel attention和Spatial attention也分别仅在通道维度和空间维度中提取单维度特征信息,易造成特征信息提取不够全面的问题。注意力机制模块CBAM是先通过通道注意力对原始图像的全局特征信息进行提取,再通过空间注意力对全局特征中的重要信息进行提取,提高模型对重要特征的提取能力;并且从模型结构分析可知,注意力机制模块CBAM融合最大池化层和平均池化层,使提取到的目标高层信息更加丰富,从而提高模型的平均识别精度。
3.6.4不同网络模型对比试验
为验证本文所述改进Mask R-CNN模型在识别苹果园害虫上的优势,分别使用目前较为成熟的卷积神经网络模型Faster R-CNN、YOLACT、YOLO v3、SSD对苹果园害虫数据集进行试验验证,同时引入帧速率(Frame per second,FPS)评估不同模型的检测速度,试验结果如表6所示。
表6 不同网络模型对比试验Tab.6 Comparison test of different network models
由表6可知,改进Mask R-CNN模型的平均识别精度最高,达到96.52%,虽然在检测速度上不占优势,但本文只是针对静态苹果园害虫进行识别,对检测速度没有过高的要求。Faster R-CNN和Mask R-CNN模型同属于两阶段算法,比属于单阶段算法的YOLO v3和SSD模型的平均精度均值高。Mask R-CNN较Faster R-CNN的平均精度均值提升2.59个百分点,改进Mask R-CNN较Faster R-CNN的平均精度均值提升6.8个百分点,究其原因,Mask R-CNN在Faster R-CNN的基础上增添掩膜分支,并将RoI Pooling层替换为RoI Align层,提升了识别精度。YOLO v3和SSD识别速度较快,但平均识别精度较低,YOLACT作为单阶段实例分割算法,较YOLO v3和SSD模型的平均精度均值分别高4.47、3.56个百分点,但仍低于本文所述改进Mask R-CNN模型。
3.6.5公开数据集测试试验
为进一步验证本文所述改进Mask R-CNN模型在识别不同害虫数据集上的性能,采用Pest24公开害虫数据集[32]进行验证。Pest24害虫数据集有24个害虫类别,共包含25378幅图像,其数据特点是目标害虫尺寸较小、密集分布且存在粘连、不同种类害虫较为相似。选用Pest24数据集中棉铃虫、黏虫、草地螟、斜纹夜蛾和甜菜夜蛾5种常见的苹果园害虫进行试验验证,Mask R-CNN和改进Mask R-CNN的平均精度均值分别为68.23%和74.75%。
通过试验可知,本文所述改进Mask R-CNN模型较原始Mask R-CNN模型的平均精度均值提高6.52个百分点。由于Pest24害虫数据集中不同害虫间形状和颜色相似,存在种间的细粒度差异,而且5种害虫的相对尺寸较小,容易出现误识别和漏识别现象,而改进Mask R-CNN模型能够对不同害虫区别性部位特征进行强化,提升模型对害虫特征的提取能力,从而进一步提高了模型在复杂环境下对害虫识别的适用性。
3.6.6消融试验
为验证改进Mask R-CNN模型不同模块对特征提取网络性能的影响,同时验证各个模块结构的有效性,将改进模型分别与采用ResNeXt101作为Backbone、引入Boundary损失函数、添加注意力机制模块CBAM以及原始Mask R-CNN模型进行对比试验,试验结果如表7所示。
表7 各个模块对网络性能的影响Tab.7 Impact of each module on network performance
由表7可知,在Mask R-CNN的基础框架之上,采用ResNeXt网络代替传统的ResNet网络,模型的平均精度均值提升0.87个百分点;只引入Boundary损失函数,模型的平均精度均值提升0.83个百分点;只融合注意力机制模块CBAM,模型的平均精度均值提升2.51个百分点;而同时融合ResNeXt网络、Boundary损失函数以及注意力机制模块CBAM,模型的平均精度均值提升4.21个百分点,达到96.52%。消融试验结果表明,本文所提出的基于改进Mask R-CNN的苹果园害虫识别模型设计合理,能充分发挥各模块的优势,可有效提升苹果园害虫识别模型的性能。
(1)针对果园环境下识别苹果园害虫易受背景信息干扰及边缘特征表达能力不强的问题,提出一种基于改进Mask R-CNN的苹果园害虫识别方法,在Mask R-CNN基本框架下,采用嵌入注意力机制模块CBAM的ResNeXt网络作为改进模型的骨干特征提取网络,提高模型对害虫特征的提取能力,抑制背景对模型性能的影响;同时,引入Boundary损失函数,避免害虫掩膜边缘缺失及定位不准确问题,实现对苹果园害虫精准有效识别。
(2)在自定义数据集上,基于改进Mask R-CNN的苹果园害虫识别模型的平均识别精度为96.52%,相较于原始Mask R-CNN,平均精度均值提升4.21个百分点;在Pest24公开数据集上,改进Mask R-CNN的平均精度均值提升6.52个百分点,表明该模型设计合理,可为苹果园害虫精准防控提供理论和技术支持。