基于改进Faster R-CNN的田间黄板害虫检测算法

2021-06-29 10:09肖德琴黄一桂张远琴刘又夫林思聪杨文涛
农业机械学报 2021年6期
关键词:黄板锚点害虫

肖德琴 黄一桂 张远琴 刘又夫 林思聪 杨文涛

(华南农业大学数学与信息学院, 广州 510642)

0 引言

广东省四季温度变化不大、降雨充沛,气候条件非常适合蔬菜害虫的生长繁殖,这导致蔬菜在生长过程中极易受到害虫的危害,蔬菜害虫的爆发降低了蔬菜产量从而造成巨大的经济损失[1-2]。对害虫进行预测是防治害虫的重要前提。目前,我国蔬菜害虫预测方法主要利用人工对黄板上的害虫进行分类和计数,但该方法存在缺乏客观性、效率低下、误差大等问题。因此,亟需一种快速、智能的黄板害虫检测方法。

近年来,国内外针对农田害虫图像检测算法已经取得显著成果[3-6]。然而,这些研究均使用传统图像检测算法,存在对图像环境背景要求较高、扩展性不强、数据预处理复杂以及迁移性低等问题,使农田害虫图像检测算法无法大面积应用。

近年来,由于Fast R-CNN、Faster R-CNN、YOLO和SSD等深度学习算法具有良好的检测性能,因此应用深度学习算法进行农业害虫识别逐渐成为研究热点[7-9]。已有算法[10-13]对害虫检测精度都很高,但是这些算法均针对特定群体的害虫而设计,并未结合体积小、数量多和分布不均匀的特点对黄板诱捕的蔬菜害虫进行设计。同时,黄板害虫图像是像素较大的手机图像,而上述算法处理的是其他设备拍摄的图像,难以迁移使用。目前,在农业病害识别系统[14-22]中缺乏关于黄板害虫检测的研究,而黄板诱捕害虫的应用却非常广泛。手机是一种可普遍应用的移动智能设备,是需要一种基于黄板诱捕害虫的便携式智能识别算法,从而实现利用手机对害虫进行检测和识别。

本文在用高清摄像机和传统图像处理技术对黄板害虫研究的基础上[23],利用现有的深度学习技术[24-27],提出一种基于改进Faster R-CNN[28]的田间黄板害虫检测算法(Mobile terminal pest Faster R-CNN,MPF R-CNN),并在移动端中进行测试与应用。

1 材料与方法

1.1 数据采集

本实验图像采集于广东省广州市南沙区东升农场,采集设备为小米7手机。摄像头为1 600万像素,拍摄距离为35 cm,拍摄角度为0°~10°之间,等效焦距为35 mm。图像尺寸为3 120像素×4 128像素,图像存储格式为JPG,图像采集时间为2017年6月1日到2017年9月30日,拍摄时间段为08:00—09:00。为了让实验更贴近真实的农场环境,所有的图像都是在自然条件下拍摄的,并且每月1日使用人工对黄板上粘连的害虫进行清理。本次实验一共制作了20张黄板,所有黄板的长均为35 cm,宽为25 cm。这20张黄板分别固定在东升农场面积为1.3 hm2的蔬菜种植土地上,如图1所示。本次实验一共采集了2 440幅黄板害虫图像,其中晴天采集图像1 708幅,雨天采集图像732幅。黄板害虫图像如图2所示。

1.2 数据集制作

黄板图像中的主要害虫种类为3种,分别是小菜蛾、黄曲条跳甲和烟粉虱。因此本次实验标签主要分为4类,分别是小菜蛾(YL)、黄曲条跳甲(TJ)、烟粉虱(YL)和其他大型害虫(OT,体长大于5 mm)。将其他大型害虫归为一类的主要目的是探究潜在的害虫爆发可能性,因为大型害虫的迁移能力强,在实际生产中容易出现大型害虫入侵的情况,这样可以增加算法在实际应用中的抗压能力。由于黄板图像中害虫的样本数量巨大,发生害虫黏连导致分不清的情况远远低于害虫处于独立的情况,并且在实际生产中去掉黏连害虫的数量对于整体黄板害虫预警不产生影响,所以本文对害虫进行标注时只对独立的害虫进行标注。使用LabelImg对数据进行标注,标注图像数量为2 440幅,其中小菜蛾样本数量为267 435,黄曲条跳甲样本数量为332 861,烟粉虱样本数量为938 215,其他大型害虫样本数量为100 751。各种害虫采集样本如图3所示。

1.3 数据集处理

为了提高MPF R-CNN害虫检测算法的准确率和检测速度,需要对数据集进行处理。由于原始图像尺寸为3 120像素×4 128像素,远远大于正常深度学习训练图像。如果直接对该图像进行训练会因为图像缩放而导致图像特征丢失,也会因为尺寸过大而导致GPU内存溢出,因此需要将原来的图像裁剪为16份,裁剪后的图像尺寸为780像素×1 032像素,裁剪后的图像如图4a所示。同时,为了让算法可以更好地识别复杂的自然环境,需要将数据集分成晴天和雨天数据集,然后将裁剪后的图像根据晴天和雨天数据集分别按照8∶1∶1的比例随机划分训练集、验证集和测试集。数据集划分完成后还需要将雨天和晴天对应的训练集、测试集和验证集分别进行混合,使训练集、测试集和验证集都存在雨天和晴天的数据。最后对训练集图像进行顺时针90°、180°、270°旋转,以及水平翻转和Mosaic增广。Mosaic增广的思想来源于CutMix数据增强的方式并在YOLOv4模型中应用。Mosaic的原理是每次随机选取4幅图像并且随机对图像进行缩放、水平翻转、垂直翻转和色域变化后按照一定的比例对4幅图像进行截取后拼接出新的训练图像。因为黄板中存在很多不是检测目标的害虫和杂物作为检测背景,它们会严重影响算法检测的准确率,所以要使用Mosaic增广丰富检测物体的背景,这有利于训练算法对不同害虫的不同特征之间的权重分配。Mosaic增广效果如图4b所示。

2 MPF R-CNN害虫检测算法设计

Faster R-CNN是目标检测领域中的经典算法之一。针对诱捕黄板害虫的识别和计数,本文提出的基于Faster R-CNN改进的MPF R-CNN害虫检测算法结构包括特征提取网络、区域建议网络(RPN)和检测网络3部分,算法结构如图5所示,其中特征提取网络使用了ResNet101+FPN网络对图像进行卷积提取特征, RPN网络经过设计后使用了多种不同尺寸的锚点(anchors)对图像区域进行前景和背景判断,并进行边框回归,检测网络则使用ROIAlign方法对害虫进行检测和分类。此外,还设计双损失函数加速算法的收敛速度。

2.1 ResNet101+FPN特征提取网络设计

FPN网络是LIN等[29]在2017年提出的,该网络通过对特征提取网络中的每一个相连特征层的特征图进行叠加连接的方法,解决了小物体特征在多次卷积和池化操作后模糊甚至丢失的情况。因为Faster R-CNN原本的特征提取网络结构比较单一,难以处理不同害虫之间的体积、纹理和尸体完整度保留性(不同的害虫死亡后身体存在不同部分或部位容易出现脱落或者被风吹走情况)等差异问题,而具有多层次特征提取能力的FPN网络能更好地解决该问题。本文以ResNet101[30]为主干网络加上FPN网络设计,该网络结构如图6所示,可以分为3个路线:

(1)自底向上的路线:ResNet101网络自底向上卷积,该过程有{C1,C2,C3,C4,C5}5个卷积层。

(2)自顶向下的路线:在FPN网络中自顶向下对{M4,M3,M2,M1}特征信息进行上采样操作,让低维度的特征信息更加突出。

(3)横向连接路线:使用1×1的卷积核对ResNet101网络与FPN网络的每一层图像特征进行卷积融合。

ResNet101与FPN网络融合之后,需使用卷积核进行卷积从而让混叠效应消失。为了保证高维度特征信息不丢失,以及更加突出低维度特征,必须控制实现高维度的卷积核相对较小,而低维度的卷积核需相对较大,并且低维度卷积核需尽量防止多个目标特征信息融合在一起的情况,因此本文分别使用了2×2、2×2、3×3、3×3、5×5共5个不同卷积核分别对FPN不同维度的特征进行卷积。最后将5种不同尺寸的特征图像{p1,p2,p3,p4,p5}输入到RPN网络,其中p1、p2、p3、p4、p5对应的原图像像素尺寸为364×524、181×261、89×129、42×64、23×33。

2.2 基于多滑动窗口的MPF R-CNN区域建议网络设计

区域建议网络(RPN)是一个全卷积网络,其过程是对特征图像使用滑动窗口产生锚点,并对锚点区域进行前景和背景判断以及边框回归。在本实验中体积最小的害虫烟粉虱为23像素×25像素到35像素×35像素之间,而体积最大的其他常见大型害虫在90像素×100像素到130像素×140像素之间。为了产生多种不同维度特征和不同尺寸的锚点以覆盖不同尺寸的害虫,本文RPN网络滑动窗口过程如图7所示,在RPN网络中设计了3种不同的滑动窗口:

(1)3×3滑动窗口:对{p1,p2,p3,p4,p5} 5种特征图进行全卷积,产生 5种尺寸的锚点,这5种锚点对应的尺寸(映射到黄板图像的尺寸)分别为{30像素×30像素,36像素×36像素,72像素×72像素,96像素×96像素,192像素×192像素}。

(2)5×5滑动窗口:对p1和p2特征图进行滑动,产生2种锚点,它们尺寸分别为50像素×50像素和60像素×60像素。

(3)1×1的滑动窗口:对p4和p5特征图进行滑动,产生2种锚点,它们尺寸分别为32像素×32像素和64像素×64像素。

同时每种锚点都使用3种长宽比例{1∶1,1∶2,2∶1},因此一共有21种不同比例的锚点产生特征框,对害虫图像中的目标进行前景和背景判断。虽然对p1特征图使用3×3滑动窗口产生尺寸为30像素×30像素的锚点和对p5特征图使用1×1滑动窗口产生32像素×32像素的锚点之间相差不大,但是它们对应的特征维度不一样导致它们对目标检测的判断参数也不一样,因此本文RPN网络可以针对不同尺寸的害虫有不同尺寸和不同维度的锚点进行对应。

2.3 基于ROIAlign的MPF R-CNN检测网络设计

在检测区域中,需要对特征图进行一定比例的特征映射操作。ROIPooling是Faster R-CNN原本的特征映射方法,如果使用该方法进行特征映射,就难以避免会出现因取整操作造成如图8所示的特征偏差,这对黄板害虫检测影响非常大。因为害虫体积小,所对应的特征像素少,一旦发生特征偏差就容易出现重要特征像素消失的情况。为了解决该问题,在MPF R-CNN中使用ROIAlign[31]代替ROIPooling。

ROIAlign特征映射过程如图8所示,其主要步骤为:

(1)先遍历每一个特征建议区域并保持浮点数边界不做量化。

(2)进一步根据候选区域分割成K×K的不作量化的单元。为了适应特征提取网络产生的不同尺寸的特征图,本算法K的计算公式为

(1)

式中l——输入图像长

w——输入图像宽

c——特征图像建议区域产生过程中锚点所对应的正方形的原图像的边值(如,使用1×1的滑动窗口对p4特征图进行滑动产生32像素×32像素的锚点,c便为32)

(3)对每个单元使用双线性插值法将该单元分成4个具有浮点值的像素点。

(4)对每个单元进行最大池化操作,将4个浮点数合并成为一个浮点数。

本文使用ROIAlign在对特征图进行映射时使用了双线性插值法和浮点运算,这样 ROIAlign特征映射的结果不会出现ROIPooling特征偏差的情况,因此更符合黄板害虫的检测需求。

2.4 基于双损失函数的MPF R-CNN算法回归与分类优化

由于黄板上存在大量的害虫,如果只使用单函数做回归和分类任务,参数收敛的时间就相对较长,因此本文使用2种损失函数分别作用于RPN网络和检测网络。RPN网络损失函数(RPN loss)为

(2)

其中

(3)

(4)

(5)

式中Ncls——分类样本数(本网络中为4)

Nreg——网络回归样本总数(本网络为4 000)

pi——第i个候选框区域目标的预测概率

ti——第i个预测边框的坐标

Lcls——分类损失函数

Lreg——边框回归损失函数

λ——回归和分类比重的权值参数(在训练中设置为2 000)

本文使用上述设置的目的是使RPN网络进行分类和回归权重比为2∶1,从而使RPN网络稍微侧重于分类任务。虽然使用Lreg损失函数可以减弱损失函数在定值期间的波动情况和训练初期不稳定的情况,但是在检测网络部分并不适合运用Lreg函数来执行回归任务。因为Lreg函数要求独立计算出4个边框点损失并假设这4个点相互独立。实际上,这4个边框点有联系,这导致了最终的回归不够准确并且时间较长。因此本文在检测网络区域使用CIoU loss损失函数[32],计算式为

(6)

(7)

(8)

式中α——权重参数p——欧氏距离

b——预测框中心bgt——真实框中心

d——预测框和真实框的最小包围的对角线长度

v——长宽比相似性衡量值

wr——边框宽度lr——边框长度

wgt——预测边框宽度

lgt——预测边框长度

IoU——预测的边框和真实的边框交集和并集的比值

式(6)优点在于能够对检测框的覆盖面积、中心点距离和长宽比例3方面进行调整,加速模型收敛。

3 实验结果与分析

3.1 实验环境与评价指标

本文实验算法操作平台为台式计算机,计算机处理器为Intel Core i7-9700,默认频率为3.0 GHz,硬盘容量8 TB,内存16 GB,显卡NVIDIA 2080TI。开发环境为:ubuntu 16.04,Python 3.6,anaconda 1.9.12,CUDA 版本为10.0。本文的目标检测网络在训练前,先在ImageNet数据集上进行预训练,作为ResNet101+FPN初始训练参数,这样可以大大减少ResNet101+FPN网络的训练时间。ResNet101+FPN初始化参数如表1所示。

表1 初始化参数

采用平均精度(Average precision,AP)作为每一种害虫检测的评价指标,同时采用平均精度均值(Mean average precision,mAP)作为算法整体性能评价指标。

此外,当害虫大爆发时,对不计其数的害虫进行计数并无实际生产意义,应在害虫爆发前进行预警并做出相应的害虫防治措施。本文通过咨询农学专家,当黄板害虫数量达到960只时预示害虫数量已经非常多,应及时预警。因此在害虫实际数量大于1 600只时,按照1 600只计算,也就是分割后的图像上害虫数量大于100只按照100只计算,并且当算法检测害虫数超过60只时就会发出害虫爆发预警,让人工及时地采取相应的害虫防治措施并清理黄板。同时,害虫数量在60~100只之间,每增加10只算法都会发出一次严重预警。因此在本文算法中的平均精度(AP)的参数(FP)范围设定在0~100只害虫。

3.2 不同特征网络模型精度测试与分析

本实验采用不同的图像特征提取网络(VGG-16、ResNet50、ResNet101、ResNet152、ResNet50+FPN、ResNet101+FPN、ResNet152+FPN)对黄板害虫进行目标检测。网络训练完成后使用平均精度作为每种害虫的目标检测评价指标并使用平均精度均值作为整个网络对所有害虫识别性能的评价指标。不同网络的对比结果如表2所示。

表2 不同特征提取网络的模型性能结果对比

从表2可以看出,使用ResNet101+FPN网络时,本模型检测效果最好,达87.14%。当本模型以VGG-16作为特征提取网络时,检测平均精度都低于70%且最后检测结果非常容易出现一个区域建议框内有多个目标的情况。造成此种情况最主要的原因是害虫的体积过小导致有一些特征无法通过多次卷积进行特征提取。当本模型以ResNet50为特征提取网络时,整体的平均精度均值比VGG-16提高了10.87个百分点,是因为残差网络可以解决深度卷积网络梯度消失的问题。此外,ResNet50、ResNet101和ResNet152都存在每种害虫检测平均检测精度相差较大的情况,是由于不同尺寸的害虫在不同深度的卷积下特征表达的清晰度不一样,有的特征可能更加明显,有的特征可能已经丢失。当残差网络加入FPN网络后,检测平均精度均值均有所提高,但是模型的整体训练时间和检测时间都增加了。造成这一现象的主要原因是参数的增加导致计算的复杂度增加。此外,其他大型害虫检测的平均精度在ResNet50+FPN、ResNet101+FPN和ResNet152+FPN网络中均比小菜蛾、黄曲条跳甲和烟粉虱检测的平均精度低。导致上述结果的原因,一方面是大型害虫样本数量较少,并且样本集合由食蝇蜜蜂、瓢虫和金龟子多种害虫样本组成,所以单一大型害虫样本数量则更少;另一方面,由于大型害虫都是体积较大,特征相对丰富,因此平均精度相差并不是很大,在ResNet101+FPN中与平均精度最高的烟粉虱相差只有1.46个百分点。

3.3 不同密度下的检测结果分析

虽然本算法在采用ResNet101+FPN作为特征提取网络时,平均精度均值达到87.14%。但是分析检测结果时发现,不同分割图像之间的检测结果存在较大差异,其中害虫密度和天气是造成差异的主要因素。为了更易分析不同密度对本算法检测结果的影响,本文根据害虫的数量将测试集图像分为低、中、高3种密度层次,根据农事专家建议,最终确定每54.68 cm2内(按16等份分割后图像对应的实际尺寸)害虫数量在0~30之间为低密度,害虫数量在30~60之间为中密度,害虫数量大于60为高密度。按照以上标准将3 904幅分割后的测试图像进行低、中、高密度划分后,结果如表3所示。

从表3可以看出,本算法在低密度下平均精度均值可达96.34%,但随着害虫密度上升算法平均精度均值有所下降。因为随着害虫密度的上升,害虫出现堆叠和黏连的情况越多,并且害虫密度高的图像中害虫由于死亡时间过长尸体完整度保留性相对较低,所以本算法在高密度下平均精度均值只有85.79%。然而,本算法在低密度下召回率较低,是因为低密度区域害虫总数少,然而漏检的害虫数量虽然少,但是其所占的比重比较大。此外,由于害虫具有分布不均匀特点,因此分割前的图像会包含不同密度等级的分割图像,为了分析算法合并后的效果,所以本文按照害虫总数在0~480之间为低密度、480~960之间为高密度和大于960为高密度的标准对分割前的图像进行划分。将3 904幅分割后测试图像检测完成后合并成244幅图像,结果如表4所示。通过对比表3和表4表明,虽然本算法是对分割后的图像进行检测,但是合并后的检测结果依旧能反映原来的图像情况。

表3 不同密度下检测结果

表4 合并后图像不同密度下检测结果

3.4 不同天气下的检测结果分析

为了分析本算法在不同天气下的检测效果,本文将已经按低、中、高密度图像划分后的测试图像根据晴天和雨天进一步划分。晴天和雨天不同密度害虫检测结果如图9、10所示。通过对图9a和图10a进行分析,可以发现在低密度区域下晴天和雨天检测结果相差不大,这是因为雨天相机的曝光率低,所以雨天害虫特征比较清晰。通过对图9b和图10b进行分析,可以看出在中密度区域晴天和雨天检测结果相差不大的情况下,均出现了将2个黏连一起的小菜蛾识别为同一个体情况,这是因为数据标注时未将黏连的害虫进行标注。通过对图9c和图10c进行分析,可以发现在高密度区域下雨天相比晴天出现更多害虫漏检的情况。中低密度不会出现以上情况是因为雨水会降低黄板的粘性导致害虫出现位移、堆叠或掉落的情况,而在高密度下的图像中因害虫的数量多以及黄板放置的时间长,所以更容易出现漏检情况。总体而言,虽然本算法在高密度下雨天的检测召回率会低一些,但是在高、中、低密度下晴天和雨天的检测准确率差距不大。

3.5 黄板害虫计数分析

害虫数量是非常重要的农业信息,因此本文将244幅测试图像中的害虫数量与本算法计数结果进行统计分析。从图11中可知,算法害虫计数结果与害虫实际数量的决定系数为0.925 5。当害虫实际数量低于480时,算法计算结果处于相关性函数上方,侧面说明本算法在害虫低密度时计数准确率较高并且害虫密度是影响本算法的重要因素。

同时,从图12可以看出不同害虫在计数差值之间存在一定差异。烟粉虱的差值相对其他害虫较大,主要是因为烟粉虱体积小且数量最多,导致算法更加容易出现漏检的情况。黄曲条跳甲计数结果的平均差值和最小差值比小菜蛾低,但最大差值比小菜蛾高,是因为黄板在环境复杂的田间,偶尔会出现黄曲条跳甲害虫因为环境变化突然增多的情况,导致算法出现较大的计数差,而这是实际生产中一定会出现的情况但偏差仍然在可接受的范围内。总体而言,本算法对害虫的计数结果能一定程度反映害虫真实的数量情况,并且计数结果与害虫实际数量的平均差值较小。

3.6 移动端应用测试

为了测试算法在实际应用中的情况,本文在以“微信小程序+云存储服务器+算法服务器”为架构的黄板害虫检测系统上,使用了4台算法服务器并利用小米7手机对测试集进行测试。如图13a所示对图像进行上传操作,并如图13b所示使用微信小程序后台测试工具进行测试。结果表明,黄板害虫检测系统能正常完成黄板害虫图像上传、图像分割、图像检测、图像合并以及图像检测任务,平均每次检测时间为1.7 s,对于每次检测任务仅需要3%的CPU资源消耗和228 MB的内存占用。由于图像被分割成16份,所以平均每幅分割图像检测时间为0.425 s,与原本每幅分割图像检测时间0.36 s相差不大,造成时间差距的原因是图像传输过程中需要一定的时间。同时,手机上传晴天和雨天黄板害虫图像检测结果如图13c、13d所示,表明本文算法对于晴天和雨天黄板害虫的检测结果差距不大,因此本文算法在移动端应用具有可行性。

4 结论

(1)用智能手机作为载体,将基于Faster R-CNN改进的害虫检测算法MPF R-CNN应用于黄板害虫的识别。通过对ResNet101+FPN特征提取网络、RPN网络进行设计,使用ROIAlign替代ROIPooling,以及使用双损失函数进行算法优化和控制,在真实复杂的自然环境下对烟粉虱、黄曲条跳甲、小菜蛾和其他大型害虫(体长大于5 mm)检测的平均精度分别为87.84%、86.94%、87.42%和86.38%。

(2)进一步实验表明,MPF R-CNN在35 cm×25 cm黄板上不超过480只的低密度下平均精度均值高达93.41%,并且计数结果与害虫计数决定系数为0.925 5。

(3)通过“微信小程序+云存储服务器+算法服务器”为架构的系统对算法进行应用测试,结果表明,该算法能支持当前便携式应用,且该系统平均每次检测时间为1.7 s。随着未来样本数的提升、手机拍摄技术的升级以及对合并边缘极少数害虫进行去重优化,该算法的检测精度会进一步提升。

猜你喜欢
黄板锚点害虫
艺术史研究的锚点与视角
——《艺术史导论》评介
害虫的克星——七星瓢虫
蜗牛一觉能睡多久?
黄色黏虫板对桃园秋迁蚜的诱集效果
5G手机无法在室分NSA站点驻留案例分析
5G NSA锚点的选择策略
冬季果树常见蛀干害虫的防治
2019年全降解粘虫黄板与常规粘虫黄板诱虫对比试验初报
5G NSA组网下锚点站的选择策略优化
2018年金庭镇粘虫黄板防治茶小贯小绿叶蝉示范措施