基于改进的Faster R-CNN的小目标储粮害虫检测研究
2021-11-12李颜娥冯海林王安澜
王 金 李颜娥 冯海林 王安澜
(浙江农林大学信息工程学院1,杭州 311300)(浙江省林业智能监测与信息技术实验室2,杭州 311300)(林业感知技术与智能装备国家林业局重点实验室3,杭州 311300)
中国是粮食的生产和消费大国,然而粮食从被种植、收割、运输到储存和消费的过程中都会有大量的损失,其中在粮食储存过程中,由于粮食产后干燥储藏的方法原始、设施简陋、工艺落后等原因而导致虫害的发生,每年中国粮食产量的7%~11%在产后环节被损失掉[1]。此外,害虫代谢物还会造成粮食发热霉变、人类过敏以及加工品质降低等一系列损失,最终导致粮食安全问题[2]。通过发现并消除粮仓内的害虫,将有效地减少粮食损失和提高粮食最后出仓时的质量。因此,研究出一种准确有效的针对储粮害虫的图像检测模型具有非常重要的意义。
目标检测是结合了目标定位和识别的2个任务的一项基础性计算机视觉任务[3]。近年来深度学习[4]迅速发展,其中卷积神经网络(Convolutional Neural Networks, CNN)[5]是一种具有代表性的深度学习网络结构,已经广泛应用于图像识别领域[6]。小目标是指自身真实的物理尺寸过小或与拍摄设备距离较远导致其在整幅图像中占比小的一类目标[7]。将深度学习模型应用到储粮害虫的小目标检测中,需要解决的问题是当图像中单只储粮害虫的像素过小时会导致模型的检测精度较低,而且不能准确地检测出图像中的害虫位置和种类。因此解决小目标储粮害虫图像的检测问题将有利于提高储粮害虫图像的目标定位的精度和识别的准确率。
针对现有的公开数据集中储粮害虫图像数据集相对较少,而且深度学习模型的储粮害虫目标检测精度较低的问题,本研究以常见的5种储粮害虫为例,建立常见储粮害虫图像的数据集,并对深度学习模型中重要的网络结构和训练参数进行了优化和改进,建立一种基于深度学习的储粮害虫图像检测模型。
1 相关工作
近年来,随着深度学习网络研究的不断深入,图像检测性能随之迅速发展。以CNN为基础,Girshick[8]提出了Fast R-CNN模型,由于感兴趣区域(Region of interest, ROI)池化层可接受任意尺寸的输入,不需要归一化操作,因此,Fast R-CNN解决了此前网络需要输入固定尺寸图像的问题。任少卿等[9]在Fast R-CNN的基础上又提出了Faster R-CNN模型,该方法利用区域候选网络(Region Proposal Network, RPN)生成候选区,进一步提高了检测精度和速度,并且,Faster R-CNN真正实现端到端的目标检测框架。
以上模型的发展主要是解决了公开数据集(VOC2007、VOC2012、COCO)的图像检测问题,但是针对储粮害虫图像检测问题的模型相对较少。其中,Shen等[10]提出一种改进的Faster R-CNN模型,该方法对储粮害虫的检测取得了良好的效果。试验结果表明,该方法能有效地检测和鉴定储粮害虫,其平均精度(mean Average Precision, mAP)达到88%。周亦哲等[11]采用基于深度卷积神经网络的双流法网络,综合图像目标检测算法和两帧差分法进行识别,实现视频数据中储粮害虫的定位与识别。Chen等[12]基于R-CNN提出一种改进方法,使得R-CNN可以生成更小的候选区域,该改进后的算法在小目标检测的精度提升非常大,但是算法复杂度较高。
本研究针对小目标储粮害虫图像,提出了一种基于Faster R-CNN的改进方法,以提高储粮害虫目标检测的准确率。
2 数据集构建与预处理
2.1 图像数据集采集
本研究以粮仓中的储粮害虫为研究对象,选取了常见的5种储粮害虫。分别为赤拟谷盗、米象、豆象、谷蠹和印度谷螟。通过害虫图像采集仪器对储粮害虫样本进行拍摄并获取图像,该仪器装备了OV2640型号的图像传感器,图像传感器拍摄的储粮害虫图像均为1 200×800像素的大小。
传统的图像数据集中单张图像只含有一类害虫,本研究为了使单张的储粮害虫图像更具有丰富性,进行图像采集时,储粮害虫样本中包含了一类或者多类害虫等不同情况。对仪器采集的图像进行整理后获得942张储粮害虫的图像。其中,图像数据集的70%用作训练集,30%用作测试集。采集获得的数据集图像与害虫数量如表1所示。最后,对储粮害虫目标进行人工标框以获得图像中每一个目标的种类、位置和大小信息。储粮害虫的图像采集过程如图1所示。
图1 储粮害虫图像采集过程
表1 数据集图像与害虫数量
2.2 数据增强
数据集的图像质量是影响网络模型的训练与测试结果的重要因素之一,储粮害虫体积较小,所以与包含大目标的图像相比,储粮害虫目标图像含有的目标信息较低,特别是在单张图像的目标数较少的情况下。因此,为了丰富数据集图像中的储粮害虫目标信息,提高模型训练过程中匹配的候选区域(anchor)的数量,数据增强将采用储粮害虫目标批量扩充的方式。
为防止训练过程中发生信息泄露,对数据集进行先分组再增强的处理方式,仅对数据集中的训练集进行数据增强。同时,为防止单张图像的目标信息过于饱和,实验对数据集中的训练集做出目标信息扩充3倍的增强处理。以单张图像被扩充一倍目标数为例,具体操作的流程图如图2所示。部分处理前后的图像对比如图3所示,其中,图3a、图3b、图3e和图3f为原始图像,图3c、图3d、图3g和图3h为增强后的图像。
图2 单张图像目标扩充一倍算法流程图
图3 图像处理前后对比
经过数据的采集和处理获取了包含大量检测目标的常见储粮害虫(Common Stored Grain Pests, CSGP)的图像数据集。数据增强后的CSGP数据集的图像与害虫数量如表2所示。
表2 训练集增强后数据集图像与害虫数量
3 特征金字塔结构
在一个多层卷积神经网络中,底层的特征往往能很好地表示图像的纹理和边缘等细节信息。随着神经元感受野的扩大,高层的特征往往能很好地表示图像的语义信息,但是相应的就会忽略一些细节信息[13]。
3.1 Faster R-CNN网络结构
卷积神经网络是一种包含多层次深度卷积运算的前馈神经网络,典型卷积神经网络的结构包含卷积层、池化层和全连接层[14]。Faster R-CNN主要由特征提取层、RPN和Fast R-CNN模型的分类层3个模块组成。原始的Faster R-CNN是一个单尺度的目标检测卷积神经网络,这是因为其使用ResNet[15]作为特征提取的基础网络时,RPN结构仅采用ResNet网络的其中一层特征图,如图4所示。
图4 原始Faster R-CNN整体结构
ResNet101的网络结构如图5所示,其主要由5个部分组成,分别是:conv1、conv2_x、conv3_x 、conv4_x和conv5_x,其中conv1是卷积层。卷积层的主要功能是特征提取,其包含多个固定通道数的卷积核,卷积核的通道数则是由上一层的输出或原始图像的通道数决定。在做卷积运算的过程中,本层的输入图像和卷积核首先进行卷积运算,然后经过激活函数计算,最后得到卷积特征图序列,新的特征图会被输出到下一层。其卷积运算的过程表达式可表示为:
图5 ResNet101网络模型结构
(1)
ResNet的核心思想是提出了一种快捷连接(Shortcut connection)方法构成的结构块(Building block),可以有效解决随着网络深度的增加,精度迅速下降的问题。在ResNet101中,conv1卷积层之后的conv2_x、conv3_x、conv4_x和conv5_x分别包含了不同个数的结构块,conv5_x生成7x7的特征图经过平均池化层(Average pooling)到达最后一层的全连接层(FC)。
3.2 网络结构优化
ResNet101网络中越深层次的特征图越抽象,这更有利于分类。虽然最高层的特征具有最丰富的语义信息,但是分辨率也是最低的,这不利于小目标物体的检测。
在ResNet作卷积与池化的运算过程中,特征图的分辨率越来越小,因此底层的特征图往往具有较高的分辨率,位置信息也可以得到较好的保留,但是底层特征图针对分类能力的语义信息十分弱。Lin等[17]提出的特征金字塔网络(Feature Pyramid Networks, FPN)结构在目标检测方面较大提升了模型的检测精度,该网络结构利用底层的特征图与高层特征图进行融合,既保留了位置信息,又有较强的语义信息,底层和高层的特征都进行了预测。以ResNet101为基础的特征金字塔模型结构如图6所示。
图6 特征金字塔模型结构
在特征金字塔生成特征图的过程中,高层的特征图(M5,M4,M3)首先进行上采样(x2),使得特征图变大,然后与经过1×1卷积运算后的底层特征图进行融合。最后,特征图融合过程中生成的新特征图序列进行3×3的卷积运算得到一个多尺度的输出(P2,P3,P4)。多尺度特征图P2~P5需要输入候选区域网络(Region Proposal Network,RPN)用以产生候选框,同时也需要作为第二阶段分类与回归运算的输入部分;ResNet网络最顶层的特征图经过最大池化生成的最小尺寸特征图(P6)仅作为RPN的输入部分。
特征金字塔经过特征提取的卷积与池化运算后,会生成多个不同尺寸的特征图,但是ROI pooling仅需一种尺寸的特征图,因此需要在不同尺寸的特征图之间做出选择。特征图的选择公式如式(2)所示:
(2)
k0为基准值,代表原始层级的输出。w与h代表ROI的大小,224代表标准的训练集训练前输入的图像大小。通过式(2)计算,可以得到wh尺寸在ROI映射的目标级别k,将宽度w和高度h的ROI分配给特征金字塔的PK层。当wh越大时,则需要将更高层的特征图输入到ROI pooling。
4 结果与分析
本研究利用TensorFlow框架在Windows 10系统下进行实验。实验所用到的硬件配置为: Intel(R) Xeon(R) CPU E3-1 225 v5处理器,主频3.31GHz,硬盘2T,内存16.0GB,显卡Nvidia GTX 1 080Ti型号,所用的软件环境为:Python 3.5.2,TensorFlow 1.14.0,Cuda 9.0,Cudnn 7.0.5。
在目标检测实验的过程中会出现正负实例与正负检测结果的多种匹配情况,TP(True Positive)表示图像中的目标为正实例,检测结果也为正实例;FP(False Positive)表示目标为正实例,检测结果却为负实例;TN(True Negative)表示目标为负实例,检测结果却为正实例;FN(False Negative)表示目标为负实例,检测结果同为负实例。通过目标实例类型与检测结果之间的匹配关系的分析,可以更好地对网络模型在图像中的目标检测性能进行评估。
4.1 数据增强的效果验证
为了评估Faster R-CNN模型在不同数据集下的检测精度,在模型训练完成后,使用测试集对Faster R-CNN生成的模型结果进行测试并对结果进行比较,在测试过程中,采用各类储粮害虫目标检测的平均精度(average precision,AP)作为验证指标。通过检测过程中的TP、FP和FN的统计与计算可以得到召回率(recall)与准确率(precision),如式(3)与式(4)所示。在获得召回率与准确率值后进而得到平均精度,如式(5)所示。采用平均精度均值(mAP)作为模型整体检测结果精确度的评价指标,mAP值为所有类害虫的目标检测精度AP的求和平均数。
(3)
(4)
(5)
在数据增强处理结束后分别得到了3种的样本组合情况:原始训练集 (original training set, OTS)、数据增强处理的数据集(augmentation training set,ATS)和原数据集+增强处理的数据集(OTS + ATS),以下在Faster R-CNN网络模型中分别对这3种情况进行实验,最终得到每一类害虫图像目标的检测精度AP和Faster R-CNN模型下整体的检测性能mAP,如表3所示。
从表3可以看出实验中使用增强后的数据集(ATS)比原始数据集(OTS)以及两种混合的数据集(OTS+ATS)在mAP方面的表现比较好,主要表现在谷蠹(RhizoperthaDominica)和印度谷螟(PlodiaInterpunctella)的检测精度有一定的提升,尤其在印度谷螟的目标检测方面的检测精度提升较大。
表3 数据增强前后的检测精度对比
4.2 模型的效果验证
储粮害虫图像经过特征提取层可以生成不同层的特征图,而改进后的特征提取层利用到了每一层特征图进而提升了模型对图像的特征提取能力。为了比较改进前后模型的变化,利用IoU定义真实对象与预测对象之间的匹配度,通过在较好表现的ATS(CSGP)数据集上进行训练与测试,最后计算得出不同模型下的每一类害虫目标的精度召回率(precision-recall,PR)曲线。PR曲线如图7所示,其中a表示改进前的模型下的PR曲线,b表示改进后的模型下的PR曲线。
图7 不同模型下的PR曲线
从图7中可以看出不同网络模型下的差别主要在谷蠹(RhizoperthaDominica)的检测,以及在召回率(recall)较大时其他类害虫的精度差距。其中,谷蠹、赤拟谷盗(TriboliumCastaneum)和米象(SitophilusOryzae)在图7b中的PR曲线下面积都要大于图7a中的PR曲线下面积,另外其余的两类害虫在不同的模型都表现很好的检测效果,而且图7b略优于图7a中的效果。
(6)
为了比较改进前后模型的CGPS数据集的检测精度,通过统计不同训练阶段下的模型F1分数(F1)可以得到模型的F1值变化曲线,如图8所示,F1值计算如式(6)所示。图8表示在不同迭代次数下的F1值变化,其中,a表示改进前模型下的F1曲线,b表示改进后模型下的F1曲线。
图8 改进前后的F1值变化
从图8可以看出,不同模型下的害虫图像目标检测都表现出较好的效果。图8a首先达到90%的检测精度,并且在后续的迭代过程中始终保持着90%以上的检测效果,图8b在达到较稳定的F1值时则需要较多的迭代次数。在检测精度趋于稳定时,图8a都要优于图8b的效果且维持在90%以上。由于在F1值趋于稳定时仍有一定波动,因此,通过计算迭代次数在12k~20k之间的F1值的平均数对模型的检测精度进行评估,计算后可以得到改进后的模型F1均值为92.71%,相比较于改进前的模型F1均值提升了4.91%。
R-FCN[18]是在Faster R-CNN的基础上采取的另一种改进方法,为对比R-FCN模型、改进的检测模型(Faster R-CNN*)以及YOLOv3[19]模型的检测精度和实时性,将3种不同模型在CSGP数据集上进行训练和测试集检测,通过计算每一类害虫目标的AP值、模型在CSGP数据集上的mAP值和每秒传输帧数(Frames Per Second, FPS)可以得到表4所示的对比结果,FPS计算公式如式(7)所示。
表4 不同模型的检测精度与实时性对比
(7)
式中:FrameNum为检测测试集图像的数量,ElapsedTime为检测测试集消耗的时间。
从表4中可以看出,改进的储粮害虫目标检测模型(Faster R-CNN*)的检测精度mAP达到了96.69%,相比于表3中的改进前的模型提高了4.08%。在表4中的Faster R-CNN*模型的各类害虫检测精度AP和在CSGP数据集上的平均精度均值mAP均高于其他两类模型;在FPS方面,Faster R-CNN*模型与YOLOv3模型相差不大,R-FCN模型则有较高的传输速率,但R-FCN模型精度较低。
为了将储粮害虫图像的检测结果更直观得表现出来,对基于两种不同特征提取层的网络模型的检测结果进行可视化操作。部分的可视化结果如图9所示,其中图9a、图9b、图9e和图9f为改进前模型的检测结果,图9c、图9d、图9g和图9h为改进后模型的检测结果。从图9结果中可以看出,原始网络模型的漏检率与误检率较高,改进后的模型较好的解决了这个问题,因此改进后模型具有较高的准确性和精度。
图9 改进前后模型检测结果的可视化
在特征图融合过程中,语义信息很强的特征图将底层位置信息很强的特征图进行了横向连接,并且进行了多次的特征融合。由于特征图在同时利用到了高层特征,所以有很强的语义信息。横向连接后的特征图更有利于精准的定位和小物体的识别。
5 实际粮仓内的害虫监测系统设计
在实际应用储粮害虫监测系统时,由于系统的检测模型所需的硬件条件较高,而且会对粮仓内的环境造成影响,因此系统很难被直接放置在粮仓内。本研究通过采取云计算的方式,将储粮害虫图像的采集与处理过程分隔开,可以较好地解决由于系统硬件限制的问题,该系统整体结构如图10所示。在系统实施时,首先将图10a仪器进行封装,并保留若干细微孔洞以供害虫进出,仪器在封装后可以被埋没在粮仓内,如图10b,然后定时对仪器内害虫进行拍摄并将图像数据上传至云服务器;部署在云服务器上的检测模型对上传的图像数据进行处理,并将结果保存在云服务器上;最后,该系统通过数据可视化网站对结果进行展示,如图10c。
图10 储粮害虫监测系统
6 结论
本研究针对小目标储粮害虫图像中的图像检测问题,采用PIL库中的Image类进行目标扩充的方式增加训练集中的样本目标数量,并且提出了一种Faster R-CNN的改进方法。通过特征金字塔网络中的特征图下采样方式,增强特征提取层输出的特征图中目标的位置信息和分辨率,使得输入的原始图像的位置信息与语义信息在网络模型中都能得到很好的保留与利用;通过对优化后的特征提取层产生的特征图进行RPN和ROI Pooling运算,提高了预测框的准确性,从而增强了储粮害虫图像检测的整体准确性和精度。实验结果表明,本研究通过储粮害虫目标数量扩充的方式在mAP上提升了2.21%;通过改进网络模型算法,网络模型在CSGP图像数据集上的mAP达到了96.69%,较改进前的网络模型提升了4.08%,减少了原始模型在数据集检测中的漏检率和误检率。最后通过在云服务器上部署检测模型的方式,对储粮害虫监测系统进行了设计。