APP下载

一种基于聚类特征的Faster R-CNN粮仓害虫检测方法

2020-05-25张诗雨杜晓晨冯海林

中国粮油学报 2020年4期
关键词:候选框粮仓特征提取

张诗雨 夏 凯 杜晓晨 冯海林,3 陈 力

(浙江农林大学信息工程学院1,杭州 311300) (浙江省林业智能监测与信息技术研究重点实验室2,杭州 311300) (林业感知技术与智能装备国家林业局重点实验室3,杭州 311300)

中国是粮食生产和消费大国,但我国在粮食的存储方面仍存在着潮湿发热、发霉变质、滋生害虫等问题。对粮仓害虫的快速精准检测识别,是治理粮仓害虫的第一步。在过去,粮农普遍缺乏害虫识别知识单凭粮农自身很难对症下药,而专家人工识别的速度和效率又非常有限,所以需要借助计算机视觉[1]和图像处理等技术手段对粮仓害虫进行检测。粮仓害虫图像检测中的主要挑战在于当粮仓害虫与其他谷物混合的情况下识别出粮仓害虫并且将其与其他害虫种类进行区分。

传统的害虫识别的方法大多数都集中在对害虫的特征提取上,首先对图像进行人工特征提取,再将提取到的特征作为输入利用机器学习方法进行建模和识别。国内早期采用的是对害虫图像的全局特征进行提取,如许振伟[2]基于二阶灰度统计储粮害虫的纹理特征利用BP神经网络训练样本,得到害虫的种类和轮廓并且能实现对储粮害虫的快速检测和准确分类;邹修国等[3]基于不变矩提取形状特征值的方法实现了对稻飞虱的分类;吴一全等[4]对储粮害虫图像进行扩展Shearlet变换构成纹理特征向量,用Krawtchouk矩不变量描述储粮害虫的形状特征,将纹理特征向量和形状特征向量分别归一化提高了储粮害虫的识别精度。对害虫图像的全局特征进行提取虽然易于计算,但在复杂背景以及害虫姿态变化下,难以精确的描述全局属性。近年来对害虫图像的特征提取逐渐转向局部图像特征提取,局部图像特征提取[5, 6]是指从图像局部区域中抽取的特征,包括边缘、角点、线、曲线和特别属性的区域等。常见的局部特征包括角点类和区域类两大类描述方式,如王利强[7]利用点特征图像配准算法在储粮害虫种类识别领域进行了尝试性的应用;韩瑞珍[8]将SIFT局部特征的提取方法应用于对农田害虫的快速识别;谢林波等[9]对油茶害虫图像进行SIFT特征提取通过BoW模型来描述各幅图像进而从图像中识别出油茶害虫的种类。局部图像特征提取虽然相比全局特征提取更精确,但由于两种特征提取的方式仍依赖于人工选取特征,模型的优劣取决于特征的选择,存在局限性且泛化能力较差。

随着深度学习技术在图像识别以及检测方面的发展,卷积神经网络体现了其在图像检测方面的优异性。Krizhevsky等[10]使用深度卷积神经网络在2012年赢得了ImageNet大规模视觉识别挑战赛的第一名。深度学习技术在害虫检测方面也体现了它的优异性,如Ding和Taylor[11]使用滑动窗口方法获得感兴趣的区域并应用5层卷积神经网络确定这些区域是否包含飞蛾,实验结果表明使用卷积神经网络的召回率高于使用LogReg算法的召回率;董本志[12]等基于K-means聚类的深度学习网络模型Faster R-CNN对图像中的榆紫叶甲虫进行识别最终达到94.73%的精度;孙钰[13]等使用改进后Faster R-CNN从被诱芯吸引的6种小蠹科昆虫中区分出危害最大的红脂大小蠹,自动化地统计诱捕器内红脂大小蠹数量。传统的害虫图像识别采用人工特征提取和机器学习相结合的方法,主要依赖于特征提取的算法。深度卷积神经网络[14]无需构造人工特征,能在训练数据的过程中自适应地构建目标特征,具有更高的泛化能力,因此本文使用Faster R-CNN模型对粮仓害虫图像进行检测。但是标准的Faster R-CNN模型的候选框提取网络更适用于VOC2007数据集中的20种分类任务,不符合粮仓害虫的形态学特征,用于检测粮仓害虫时会造成候选框冗余过大,因此本文使用聚类算法改进Faster R-CNN模型的区域提案网络,利用Faster R-CNN模型训练数据集来对粮仓害虫图像进行检测。本研究建立了粮仓害虫数据集SGI-6包括网络获取图像、显微镜采集图像和单反拍摄图像三种多目标尺度的数据集。实验室拍摄的图像以大米和小米为背景模拟粮仓的真实环境,并且对数据集做了翻转和裁剪处理,以提高卷积神经网络的准确性。

1 基于聚类特征的Faster R-CNN模型

目前基于深度学习的目标检测算法主要分为两类,一类为基于区域的目标检测算法,另一类以回归问题求解的方法进行目标检测。2015年Goirshick 提出了Faster R-CNN检测算法,该方法是基于区域的目标检测算法,在各类目标检测任务中有广泛的应用,尤其比较适用于小目标的检测。本文将Faster R-CNN模型引入到以粮仓为背景的储粮害虫检测中。粮仓环境复杂,应用深度卷积神经网络能对特征进行有效的提取。Faster R-CNN模型选取VGG16[15]作为特征提取网络,网络的结构如图1所示。该特征提取网络总共有13个conv层,每个conv层之后跟了一个relu层作为激活函数,加入非线性因素。该特征提取网络有4个pooling层,用于特征降维,减少模型的过拟合。通过VGG16特征提取后得到的特征图同时进入RPN区域提案网络和Fast R-CNN检查模块网络。RPN区域提案网络用于提取候选框是全连接神经网络,Fast R-CNN用来检测并识别RPN提取的候选框中的目标。由于Faster R-CNN模型在图像检测中的优异性,本文提出了一种基于聚类算法的Faster R-CNN粮仓害虫检测模型。粮仓害虫检测首先输入任意大小的粮仓害虫图像,经过VGG16提取特征图后通过聚类算法修改区域提案网络获取图像中的候选框。经过RPN训练之后的特征图进入多任务损失层,最后利用分类网络对候选框的区域进行分类,使用NMS合并重叠的候选框。粮仓害虫检测模型的流程如图2所示。

图1 特征提取网络结构图

图2 粮仓害虫检测模型的流程图

识别粮仓害虫时,标准的候选框长宽比不符合粮仓害虫的形态特征,易造成候选框的冗余过大。尤其当两只粮仓害虫相邻时,最终框定的误差会特别严重,为减少框定的误差可以使用聚类算法对图像中目标的长宽值进行统计,选择最佳的候选框长宽比。本文采用一种聚类算法[16]对Faster R-CNN模型的区域提案网络进行优化。该聚类算法是一种基于划分的聚类算法,能使被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。利用聚类算法对粮仓害虫数据集中的害虫目标长宽进行统计,选取出三种最适合的候选框长宽比。

具体的聚类过程为:对n个粮仓害虫图像中目标的长宽比X{x1,x2,…,xn}聚类,集合X中有s个特征。将集合X中的元素分为c类(2≤c≤n),本文最终需要得到3个聚类中心点,所以c=3,聚类中心V={v1,v2,v3}。

聚类算法的目标函数如下:

(1)

通过计算最后得到聚合中心V={0.67,0.99,1.23},将计算出的聚合中心代替标准候选框提取网络初始的长宽比(0.5,1,2)。由于粮仓害虫图像的目标相较于标准的VOC2007数据集中的目标来说目标尺度比较小属于微小型目标,因此本文将5122尺寸的候选框去除,保留了1282,2562两种尺寸,最终生成六种不同的候选框。初始网络以及修改后生成候选框尺寸和比例如图3所示。图2a和图2b都以O为中心生成候选框。修改后的区域提案网络生成的候选框更适用于粮仓害虫检测,并减少了粮仓复杂背景对检测结果的影响,提高了识别精度。将候选框输入到分类层和回归层,用于分类和包围框(bounding box)回归。最后根据regionproposal得分高低,选取前300个regionproposal,作为Fast R-CNN的输入进行目标检测。修改后的RPN结构示意图,如图4所示。

当以下两种情况下anchor被判定为正样本:(1)与

图3 修改前后的候选框生成图

图4 修改后的RPN结构示意图

实际标定框重叠比例最大的anchor(2)与实际标定框重叠比例(IOU)大于0.7时。当实际标定框重叠比例(IOU)小于0.3时,anchor被判定为负样本。其余没有被定义的样本对训练没有作用所以被舍弃。训练遵循多任务损失,损失函数定义为:

(2)

式中:N是anchor的总量;i是批次中anchor的索引;pi是第i个anchor的分类概率;p*i是第i个anchor的标签,当anchor是正样本则p*i=1,当anchor是负样本则p*i=0;ti是预测框的坐标;t*i是实际标定框的坐标。其中分类损失函数(Lcls)如式(2),是两个类别(目标和背景)的对数损失,回归损失函数(Lreg)如式(3)所示。

(3)

(4)

(5)

式中:smoothL1为鲁棒损失函数。

2 实验与分析

2.1 SGI-6(Stored Grain Insect-6)数据集

以粮仓害虫作为测试对象,选取了七类较为常见的储粮害虫。粮仓害虫图像数据集由网络搜索下载的图像以及实验室拍摄的照片组成。粮仓害虫数据集涵盖了害虫目标的不同拍摄角度,共有2 558幅图像,各类别样本数量详见表1。从互联网检索的数据进行筛选避免数据重复和错误后包含1 418幅图像,各类别样本量呈不均匀分布。为了增加检测难度并且模拟粮仓实际情况,分别以大米、小米为背景,添加进粮仓害虫,用单反进行拍摄,表2为本文使用的单反相机的具体参数。根据单反拍摄的粮仓害虫图像目标小的特性,若单纯将单反拍摄的粮仓害虫图像作为数据集,会导致提取到的特征非常少,影响检测精度。为了提高粮仓害虫图像检测的精度,本文建立了多尺度的粮仓害虫图像数据集,用于训练。如图5所示网络下载图像a~e为大目标,单反拍摄图像f~j为微小型目标,两种数据集目标成像尺度跨度过于大。新增实验室显微镜下拍摄的图像k~o作为中间数据集。增加中间数据集能防止由于目标尺度相差过大造成特征提取过程中出现误差。实验室拍摄图像(单反拍摄处理后和显微镜下拍摄图像)共114 0幅,为均匀分布数据集(各类均为190幅)。

表1 粮仓害虫数据集详情

表2 单反相机具体参数

图5 粮仓害虫数据集图像

为了模拟粮仓害虫在粮仓真实场景中会出现局部遮挡以及角度差异等问题,同时为了丰富训练集、防止模型过拟合,从而更好地推广模型,本研究通过剪裁和翻转来增强训练集[17]。经过翻转和裁剪操作后数据集扩展为原本的10倍,图6中的图像是“数据增强”的示例。粮仓害虫图像数据集中的每只昆虫都被人为地用边界框标记如图5p~图5t,标记的边界框用于训练。

图6 数据增强

2.2 实验与分析

本研究通过显微镜拍摄的图像作为网络下载图像和单反拍摄图像的中间数据层,同时通过剪裁和翻转来增强训练集,将图像作为批量发送到神经网络进行训练。选取VGG16作为特征提取网络,输入任意大小的图片,在进入特征提取网络之前对图片的尺寸规整化操作,设定图片长宽为896×896,如果图片小于896×896则采取边缘补0的方式,即在小尺寸的图片上补上黑色边缘。设定conv层的参数为kernel_size=3,pad=1,stride=1,conv层并不会改变图片大小,所以经过conv层之后输出图片的大小仍为输入图片的大小。每个conv层之后跟了一个relu层作为激活函数,加入非线性因素,relu层也不会改变图片大小。设定4个pooling层的参数为kernel_size=2,stride=2,图片输入一个pooling层之后输出图片的大小为输入图片大小的1/2,经过卷积神经网络后图片的大小变为14×14(224/16=14,224/16=14)。最终得到的特征图为14×14×512,表示特征图的大小为14×14,数量为512。

神经网络采用端到端的训练方法(同时训练RPN和分类网络)。添加完全连接层之后的丢失层,并且在每次训练迭代中仅激活完全连接层的神经元的50%。网络权重由ImageNet训练的预训练模型初始化,采用动量的随机梯度下降(SGD)[18]方法更新参数。对于由RPN生成的每个区域提议,与初始网络生成9个候选框不同,生成6个候选框,具有两种尺寸(128像素,256像素)和3种宽高比(0.67,0.99和1.23)。对生成的候选框中的区域进行分类,使用RoI pooling层将候选框映射到特征图。通过ROI pooling层将候选框边界量化为整数点坐标值,并且将量化后的边界区域平均分割成7×7个单元,对每个单元进行量化。在训练期间,通过非最大抑制获得的2 000个候选框被分成前景和背景作为训练集以训练分类网络。分析了4种损失值:RPN的回归和对数损失,分类网络的回归和对数损失。训练迭代次数为140 000次。4个损失值的总和如图7所示。在测试期间,RPN生成的候选框按其分数排序。选择具有最高分数的500个候选框作为候选框。通过分类网络的完全连接层对这些候选框进行分类和区域位置调整,获得候选框的坐标和以及类别的得分数(与真实类别相比较的概率定义)。 在粮仓害虫的分类中,为了平衡分类网络的精确度和召回率,当候选框中的类别得分大于0.5时,则被认为候选框中存在该类别的粮仓害虫。

图7 140 000次迭代的loss图

将获得的500个候选框坐标以及类别的得分保存为(r,c,h,w,n)。其中r,c,h,w为候选框的坐标,n为候选框类别的得分。非极大值抑制(NMS)[19]的过程是:首先找到具有最高分的候选框后遍历剩余框,计算它们的IoU,如果IoU高于阈值则说明两个候选框之间高度重叠,那么这些输出就会被抑制。在测试中阈值取0.7时获得了最高的mAP,所以本文将阈值定为0.7。

本研究使用mAP[20]作为绩效评估模型,mAP是每个类别的平均精度(AP)的平均值。 召回率(Recall),精确率(Precision)和平均精度的计算公式为:

(5)

(6)

(7)

为了验证增强数据集的效果,将数据集SGI-6分为3个层次(数据集1:由网络获取图像和单反拍摄图片组成,数据集2:由网络获取图像和单反拍摄图片以及显微镜拍摄图像组成,数据集3:图像增强的数据集) 。3种数据集训练后的模型最终的mAP如表3所示。可以得出在增加了中间数据集和经过数据增强之后6类粮仓害虫的AP值都有所提高,并且总mAP值有显著提升来看,说明了该模型的的性能通过增加中间数据集得到显着改善,在之后的实验中均采用数据集3进行训练。

表3 不同数据集下粮仓害虫检测的mAP

粮仓害虫的检测还有一个难点是粮仓的复杂背景,粮仓害虫大多和谷物混合在一起,增加了粮仓害虫检测的难度。为了验证本研究模型能应用于粮仓的复杂背景下,分别以白纸、大米和小米为背景采集粮仓害虫图像并用训练好的模型进行测试。测试以白纸、大米、小米为背景的情况下预测目标的正负向。正向的正确率TP即测试图像中实际和预测都为正向的目标数,误报率FP即预测为正向实际为负向的目标数。从预测目标正负向的结果图中,得出以大米为背景的图像正向的正确率相较于小米和大米的高的结论。从图8中可以看出以白纸为背景的图像检测效果最佳,mAP值为90.15%。以大米和小米为背景的图像虽然mAP没有以白纸为背景的高,但是相差也不大,在豆象、赤拟谷盗这两类的AP甚至超过白纸为背景的图像。以大米为背景的图像检测效果要比以小米为背景的好,是由于小米和粮仓害虫的图像纹理过于相近。实验结果说明了本模型能应用于粮仓复杂背景下的粮仓害虫检测。

使用本文训练后的模型测试的粮仓害虫检测结果的例子示于图9中。其中图9a~图9e为白纸背景下粮仓害虫检测的结果图,图9f~图9j为小米背景下粮仓害虫检测的结果图,图9k~图9o为大米背景下粮仓害虫检测的结果图。就图中所示的不同背景下粮仓害虫检测结果而言,在真实粮仓背景下和白纸背景下,粮仓害虫检测的准确率在90%以上,说明该模型能用来检测真实粮仓背景下的粮仓害虫并且具有高精度。

图8 不同背景下粮仓害虫检测的mAP

图9 粮仓害虫检测结果示意图

相邻粮仓害虫框定的结果对比图如图10所示。其中,图10a~图10c为标准候选框训练后的检测结果图,图10d~图10e为修改区域提案网络后的检测结果图。图10中a与d, b与e,c与f分别是同一张图像在2个不同区域提案网络训练下输出的结果。从图10可以看出,当两只及两只以上粮仓害虫相距太近的情况下,标准网络训练下的检测结果会产生将两只害虫框定在一起或者漏框定某一只害虫的错误情况。这是由于两只粮仓害虫的特征相似以及位置相邻,对框定的结果产生了干扰。而改进的区域提案网络有效的解决了标准网络模型训练下出现的问题,改进后的结果如图10d~图10e所示,由此可见改进的区域提案网络能有效解决粮仓害虫相邻检测结果不佳的情况。改进的区域提案网络和标准的区域提案网络的mAP值对比图如图11所示,从图11可以看出改进区域提案的网络后粮仓害虫的检测精度小幅度的上升达到了96.63%。

图10 粮仓害虫检测结果对比图

图11 改进标准区域提案网络mAP对比图

3 结论

本研究提出一种基于聚类算法的Faster R-CNN网络模型用于检测在小米和大米背景下的粮仓害虫。该方法可以将粮仓害虫与粮仓真实背景分离,检测出粮仓害虫在图像中的位置并进行分类。通过聚类算法对区域提案网络进行了修改,得出合适的候选框的比例和大小来提高粮仓害虫检测的准确性。实验结果表明,修改后的网络模型,有效的解决了粮仓害虫相邻检测结果不精准的问题。此外,建立了一个粮仓害虫数据集SGI-6,采集真实粮仓背景下的粮仓害虫图像,并增加了中间数据集使数据集拥有多种目标尺度。实验最终粮仓害虫检测的mAP达到96.63%。分别以白纸、大米、小米为背景进行测试,测试结果表明,该模型能应用于粮仓真实背景下并有较高的准确率。

猜你喜欢

候选框粮仓特征提取
好粮仓就是硬底气
基于Two-Stage的目标检测算法综述
金口河区:守护“粮仓”织牢监督网
撂荒地变粮仓 有机种植出效益
基于深度学习的重叠人脸检测
粮仓
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
基于单帧标注的弱监督动作定位