一种改进可形变FCN的农作物害虫检测方法
2022-06-09徐聪王旭启刘裕
徐聪 王旭启 刘裕
摘要:田间农作物害虫种类繁多,不同的生长阶段形态和颜色各异,在自然环境下采集的图像背景复杂,角度和尺度变化多样,从而使传统的害虫检测方法准确率较低。提出一种改进可形变全卷积神经网络(deformable fully convolution network,DFCN)的农作物害虫检测方法,该方法由编码模块和解码模块组成。编码模块在VGG16中采用了可形变卷积,能适应不同形状、位置和尺寸等几何形变的害虫图像。为了更好地保留害虫图像的纹理特征和背景特征,在编码模块中应用了混合池化,加快了网络的训练速度,提高了害虫检测的准确率;解码模块对编码的下采样层进行反卷积操作,最后应用像素级分类器获得有效的检测图像。在扩展的害虫图像数据集上与DFCN方法的分割精确度和平均交并比分别为90.43、78.16,较语义分割方法SegNet分别提高了3.27、3.72,单幅图像的识别时间为0.36 s,比SegNet 加快了0.16 s。结果表明DFCN方法在害虫图像检测方面具有较高的准确率,分割速度快,可为复杂背景下农作物害虫检测提供一定的理论参考。
关键词:农作物害虫检测;全卷积神经网络;可形变卷积;可形变全卷积神经网络
中图分类号: TP391.4 文献标志码: A
文章编号:1002-1302(2022)09-0211-08
农作物害虫检测是现阶段农业生产活动中的关键问题之一。自然环境下采集的农作物害虫图像经常受光照、害虫形态、图像尺寸和拍摄角度等因素影响,使害虫的分割和识别等具有很大难度[1]。随着人工智能技术的快速发展,深度学习的理论方法被广泛应用在农作物病虫害检测上,降低了传统人工检测方法的主观性和检测成本,提高了检测的准确率[2-5]。
赵志焱等基于Tiny-Alex卷积神经网络(TACNN)对金龟子、梨木虱和梨瘿蚊3种玉露香梨叶常见害虫进行识别[6],相比AlexNet有较高的识别率[7]。Zhou等提出了一种基于深度卷积条件生成对抗网络的害虫分类方法,该方法在卷积层之后嵌入空间金字塔层,将最小二乘损失函数作为网络的损失函数来迭代优化,使网络收敛快、稳定性好[8-9]。Schmidhuber等提出了一种基于深度卷积神经网络(convolutional neural network,CNN)的常见害虫识别方法,使用数字图像处理技术和对抗生成网络对小麦、水稻、玉米等9种常见害虫扩展构建数据集,将VGG16、VGG19、Inception-v3和Inception-v4在数据集中所学的知识迁移在新的网络中进行害虫分类识别[10-11]。李静等提出了一种基于改进GoogLeNet模型的玉米螟虫害图像识别方法,该方法先通过迁移学习将GoogLeNet的Inception-v4网络结构知识转移到玉米螟虫识别的任务上,再用Inception模块的多尺度卷积核提取多尺度玉米螟虫害分布的特征并优化模型参数,使模型具有更强的鲁棒性和适用性,平均识别率达到了96.44%[12]。赵立新等将PlantVillage数据集学习到的知识迁移到目标棉花病虫数据集上,用迁移学习算法改进AlexNet模型,实现棉花叶部虫害图像的准确分类,最终准确度能达到97.16%[13]。李衡霞等提出了一种基于深度卷积神经网络的油菜虫害检测方法,能对5种油菜害虫快速检测[14]。在空间金字塔池化的深度CNN和改进的YOLOv3的基础上,张博等提出了一种农作物害虫的种类识别方法,改善因作物害虫姿态和尺度多样性导致的识别精度低的问题,识别率可达88.07%[15-17]。刘文定等提出了一种基于全卷积神经网络(fully convolution network,FCN)的虫害区域识别方法,该方法用卷积层替换VGG16模型[18-19]的全连接层,通过上采样实现端到端的学习,用跳跃结构融合多种特征信息,有效提升识别精度,在一定程度上解决了虫害区域不规则和传统识别方法泛化能力差的问题[20]。张苗辉等利用深度学习理论训练学习了10种常见害虫的信息,构建害虫的超完备字典,引入稀疏表示算法对害虫样本分类识别,平均准确率达85.3%[21]。Fuentes等基于局部和全局类注释信息,在不同分辨率的番茄病虫害图像上提出一种鲁棒的深度学习检测方法,能有效识别9种不同类型的病虫[22]。梁万杰等基于CNN提出了水稻二化螟虫害识别方法,设计了一个10层卷积网络模型,可有效学习图像特征,对水稻二化螟识别有较好的鲁棒性,识别精度达到89.14%[23]。Ding等基于深度学习模型提出了一种滑动窗对性诱剂黏板上害虫图像的自动检测识别和计数方法,在苹果蠹蛾数据集上验证了该方法的有效性[24]。
以上都是基于深度神经网络及改进的算法模型,在农作物病虫害检测和识别上取得了较好的试验结果,但对于形变病虫害图像的检测没有涉及,因为模型对几何形变的建模能力主要来自数据集的扩增、网络层数的加深和模型的人为设计,没有从根本上解决田间害虫的形变问题[25]。为了解决以上问题,本研究提出了一种改进的可形变全卷积神经网络的农作物害虫检测方法,该方法在改进的FCN网络中嵌入可形变卷积[26]和混合池化,进一步提高了害虫检测的准确率并加快网络的训练速度。试验表明该模型在田間对一定几何形变的害虫具有较好的检测能力和鲁棒性。
1 材料与方法
1.1 数据收集与扩充
以常见的黏虫、玉米螟、飞蛾、毛毛虫、瓢虫、蚜虫、棉铃虫和叶蝉8种农作物害虫为研究对象。图像来自陕西省宝鸡市农业科学研究所的大田试验基地,在田间自然环境下的不同时间段里,用智能手机、摄像机和物联网图像采集设备采集了1 600幅害虫图像,每种害虫图像200幅。为保证数据集的完整性,每种害虫再用50幅网络图像对数据集进行扩充。用PhotoShop将图像统一裁剪为每幅 256×256像素大小的JPG彩色图像以提高后续网络模型的训练效率。图1为选用的部分害虫图像。
模型训练之前先对采集的图像数据进行随机翻转、平移、添加噪声、随机缩放和角度变换等处理进行扩充,如图2为叶蝉害虫的扩充图像,以改善在训练过程中模型出现的过拟合现象。经过数据集扩充后,8种农作物害虫图像各扩充为1 000幅,数据集共8 000幅,随机选择6 500幅作为训练集用于训练网络,其余1 500幅作为测试集用于测试网络性能。
1.2 可形变卷积
传统的卷积神经网络采用固定形状的卷积核,即只对输入特征图的固定位置进行采样,在同一层特征图中,所有特征点的感受野是一样的,可不同特征点位置所对应物体的形变或尺度是不同的,所以常规卷积无法适应对象空间的几何变换。为增强卷积神经网络对多形变图像的处理能力,可采用可形变卷积。
图3为可形变卷积的计算框架。输入特征图经过可形变卷积,如图中红色框(A)操作后获取输出特征图。红色框(A)内表示卷积核中每一个采样点加入一个偏移量,使得卷积核在输入特征图上的采样点发生偏移,实现当前位置附近的随意采样而不局限于常规卷积的规则采样点。偏移量不是随机产生而是卷积核对特征图中的每一个位置学习来的偏移量,即通过另一个平行的标准卷积单元计算得到,也可以通过梯度方向传播进行端对端的学习。其中2N为预测的x、y方向的偏移量,因为不同采样点征的贡献不同,因此还需要预测采样点的权重。以3×3大小的卷积为例,图3-B、图3-E是常规卷积与可形变卷积采样位置对比情况,其中图3-B是常规卷积核的采样点位置,图3-C是添加1个偏移量后可形变卷积的采样点位置,图3-D和图3-E是图3-C的特殊情况。表明可形变卷积包括了各种尺度的变换,纵横比和旋转。
常规卷积一般先对输入特征映射图使用规则R进行采样,再用卷积核对采样点进行加权求和。其中R表示当前卷积区域感受野的尺寸和位置。如定义一个大小为3×3且感受野在中心的卷积核R={(-1,1),(-1,0),…,(0,1),(1,1)},输出特征图y(P 0)的计算式为:
y(P 0)=∑P n∈Rw(P n)·x(P 0+P n)。(1)
式中:w(·)为权重;x(·)为输入;P 0为输出特征图的每个位置;P n为对R中所列位置的枚举。
为了获取更好的空间信息表示能力,在常规卷积中加入偏移量,可形变卷积定义为:
y(P 0)=∑P n∈Rw(P n)·x(P 0+P n+ΔP n)。(2)
式中:{ΔP n|n=1,2,…,N}为P n的偏移量。
可形变卷积的采样是在不规则区域上进行的,导致卷积后得到的特征图像素偏移量通常为小数,而卷积是基于整数位置的,所以需要通过线性插值算法获取实际像素偏移位置。可以将2个一维线性插值分别用于特征图的水平和垂直方向,实现双线性插值,具体实现为:
x(p)=∑qG(q,p)·x(q);(3)
G(p,q)=g(q x,p x)·g(q y,p y)。(4)
式中:p为可形变卷积中的任意小数位置P 0+P n+ΔP n;g(a,b)=max(0,1-|a-b|)。
可形变卷积核的大小和位置可以根据当前图像的内容进行动态调整,直观效果就是不同位置的卷积核采样点位置会根据图像内容发生自适应变化,从而适应各种不同形状、大小等几何形变,更好地获取检测害虫图像所需的特征信息,从而提高检测农作物害虫的精度。
1.3 混合池化
池化是对信息进行抽象的过程,而CNN几乎都会使用池化操作来缩小特征图的尺寸,这对于局部空间不变性和增大后续卷积的感受野是非常重要的。目前常见的池化操作有最大值池化(max pooling)和均值池化(mean pooling)。最大值池化是选取区域的最大值,能更好地保留纹理特征;均值池化是选取区域的平均值,能较好地保留整体数据的特征,突出背景信息。混合池化(mixed pooling,MXP)能结合最大值池化和均值池化的优点,在保留纹理特征的同时也能突出背景特征,引入的计算和内存开销很小。在混合池化的基础上,对害虫检测的模型进一步改进。
混合池化的计算公式如下:
f mix(x)=a·f max(x)+(1-a)f avg(x),a∈[0,1]。(5)
当a=0时,f mix(x)是均值池化f avg(x);当a=1时,f mix(x)为最大池化f max(x)。f mix(x)对参数a求导,学习参数,对样本x i求导,学习得到权重。进行梯度更新时,损失函数E的求导表示为:
E a= E f mix(x)· f mix(x) a=δ·maxix i-1N∑Ni=1x i;(6)
E x i= E f mix(x)· f min(x) x i=δ·a+(1-a)1N,当x i=maxix i
δ·(1-a)1N,当x i≠maxix。(7)
式中:δ= E f mix(x)为上一层传递回来的误差。
1.4 改进的可形变全卷积神经网络
本研究提出的一种改进可形变全卷积神经网络(deformable fully convolution network,DFCN)的農作物害虫检测方法主要由编码和解码2个部分组成。编码模块是在传统的VGG16基础上扩展改进,由常规卷积层、可形变卷积层、批归一化层和激活层构成,并在这些结构后添加混合池化层。池化层相当于下采样操作,所以此时输出的特征图分辨率小于原始图。解码与编码相互对称,主要进行上采样操作得到稀疏特征图,然后将稀疏特征图反卷积操作得到密集的特征图,图像逐步恢复至原图像大小。害虫检测问题实际就是害虫的2个分类问题(害虫区域和背景区域),所以解码模块最后加入 1×1 卷积层,完成害虫区域的分割。DFCN模型结构如图4所示。
编码模块中只采用10层卷积,减少了原始VGG16的卷积层数,使模型训练速度加快。在编码模块中应用了4个可形变卷积层(DConv),能够有效地适应田间害虫图像的多样性。同时将下采样的最大池化全部更改为混合池化,在保留纹理特征的基础上也能保留背景特征,最大可能地减少特征学习过程中信息的丢失。常规卷积层(Conv)大小设置为3×3,步长为1,其后加入批归一化层(Batch Normalisation)和激活层(RELU)。池化层大小设置为2×2,步长为2。可形变卷积大小也设置为3×3。解码与编码对称,包括常规卷积层、上采样层(up sampling)和Softmax分类器,上采样的采样尺度统一设置为2。表1为DFCN的具体参数情况。
2 试验与结果
2.1 试验环境搭建及参数设置
为了验证提出算法对田间农作物害虫检测的有效性,试验基于实际采集的害虫图像及扩充的数据库集,与分割模型FCN和SegNet进行试验比较。所有试验都使用TensorFlow作为深度学习框架,用Python3.7编程开发语言,系统的操作环境是Windows10 64 Bit,硬件开发环境为Intel Xeon E5-2643v3 @3.40 GHz CPU,64 GB内存,显卡NVidia Quadro M4000 GPU。
在对网络模型进行训练过程中,数据集中的每幅害虫图像都参与50次测试,最终害虫检测的准确率是统计了图像50次试验检测率的平均值、训练平均时间和测试平均时间。模型采用带动量因子的小批量随机梯度下降算法(stochastic gradient descent,SGD)对网络模型进行训练,采用(RELU)作为激活函数以保证模型的非线性能力,将初始学习率设置为0.01,动量因子设置为0.9,Batch size设置为12,将模型进行1 200次迭代后设置学习率为0.001。
在分割效果指标的量化过程中,使用平均精度均值 (mean average precision,MAP)和平均交并比(mean region intersection over union,Mean IOU)进行评价。具体的计算公式如下:
MAP=∑Ki=1AP(i)K×100%;(8)
MeanIOU=1c cl∑pn ppt p+∑ qn pq-n pp。(9)
式中:AP(i)表示第i类农作物害虫的平均精度;K为农作物害虫总类别数;n cl为分割图像像素所属类别;p表示图像中像素正确对应的像素类别;q表示图像中像素错误分类后所属像素类别;t p为分割结果中p类别的像素总数;n pp为分割结果中正确分割为类别p的像素总数;n pq为分割结果中本属于类别p但被误分为q的像素数量。
在农作物害虫分割的实际应用中,实时性也是一个较为重要的指标,所以本研究也将单幅图像分割时间作为评估标准。
2.2 试验验证
在试验过程中采用批量训练方式。将构建后的训练集和测试集图像以批次(Batch)的形式送入网络模型中,训练集中共包含6 500幅图像,将每50幅图像分为一个批次,完成模型的训练共需要130个批次。为保障模型的训练效率以及分割精度,使用训练集图像对模型进行100次遍历(Epoch),模型的迭代次数设置为3 000次。使用梯度下降和反向传播算法对模型的权重参数进行更新,将学习率设置为1×10-5。由于使用带动量的梯度下降算法,为防止模型出现过拟合现象,设置动量因子为0.9。利用验证集对模型权重参数进行局部修正。为了表明DFCN的优势,将DFCN与经典FCN进行比较。图5为FCN和DFCN在训练集上的损失值变化曲线。由图5可以看出,与FCN相比,DFCN的收敛比较快,当迭代次数大于1 500时,DFCN基本收敛,曲线比较平稳。本研究选择迭代次数为2 200时的DFCN模型进行害虫检测试验。
为了更好地理解分析网络,先对卷积核进行可视化。全卷积神经网络分别采用大小为3×3、5×5和7×7的不同卷积核训练模型得到图6所示的卷积核及其对应的特征图。
由图6可以看出,较小的卷积核局部感受野小,包含了更多的特征细节信息,而卷积核大的局部感受野雖大,但不能充分表现害虫图像的细节。由于害虫在图像中所占的区域较小,所以在DFCN中使用3×3的卷积核提取害虫的感兴趣特征,更好地反映害虫的特征信息。
表2为不同卷积核大小和不同池化得到的检测结果,图7为各种不同池化在害虫图像上的操作结果。由表2和图7可以看出,在相同的池化类型条件下,无论卷积核大小,混合池化的效果都要优于最大池化和平均池化。不同尺寸的卷积核对分割结果有很大影响。
为了更好地观察模型的训练效果,及时调整卷积层的设置参数,将多个卷积层和池化层逐步提取的特征图结果进行输出,可以看到模型在每一层中利用卷积所得到的特征提取效果。图8是卷积核为3×3的可形变卷积和常规CNN的卷积核为3×3卷积的第一个卷积层上的5幅特征图。可以看出可形变卷积的特征图相较于常规CNN的卷积特征图更能反映害虫的基本特征。
为了验证改进的可形变全卷积神经网络在害虫检测上的有效性,在实际采集到的田间害虫图像数据库及其扩展数据库上分别进行试验,与常见语义分割模型FCN和SegNet进行了试验比较。图9是害虫分割的效果图,其中(A)是原图,(B)是FCN效果分割图,(C)是SegNet效果分割图,(D)是DFCN效果分割图。
从图9中直观可以看出,DFCN模型分割的害虫轮廓边缘较清楚。特别从图9中A4~D4可以看出FCN等一些方法,将害虫的阴影部分错分为害虫本身,而DFCN对于这些地方并没有误分,同时细节信息保留得较好。这是因为DFCN中引入了可形变卷积,能适应害虫复杂的几何形变,同时混合池化最大限度地保留了轮廓信息和细节信息,使学习到的特征更易于害虫的分割。
图10为基于FCN、SegNet和DFCN模型在扩展的害虫图像集上的训练分割精度随迭代次数的变化情况。在前1 000次迭代时3个模型的分割精度都有较大幅度的增加,而在1 000次后,DFCN的上升幅度比FCN和SegNet快得多,且2 000次后DFCN整体上升趋势较为稳定,说明趋于收敛。由图5至图10的结果可知,DFCN提取的特征图和收敛性能优于FCN和SegNet,这是因为DFCN使用了可变形卷积和混合池化。由于分割时间是评价模型实用性的关键技术指标,使用单幅图像分割时间作为衡量分割速度的时间指标。为了进一步表明DFCN的分割性能,将DFCN与FCN和SegNet进行比较。选择迭代次数为3 000时的DFCN、FCN和SegNet为训练好的3个模型,分别进行害虫分割试验。表3给出了基于3种方法的平均精度均值(MAP)、平均交并比(IOU)和单幅图像分割时间。
在分割结果和单幅图像分割时间上,表3表明DFCN比其他2种方法更有效。主要原因是DFCN采用了可分离卷积架构。由于SegNet使用空洞卷积方式对网络模型进行构造,所以网络模型需要耗费大量的训练时间,导致模型分割效率下降,对单幅图像的分割时间较长,为0.52 s。
3 结论
针对田间农作物害虫由于图像形变导致检测准确率较低的问题,提出一种改进可形变全卷积神经网络的方法,该方法主要由编码模块和解码模块组成。编码模块在VGG16上引入4个可形变卷积层,兼顾了害虫尺寸大小和形态等多样性,提高了模型对几何形变害虫图像的特征提取能力。模型中采用了混合池化,最大化地保留了图像的纹理特征和背景特征,有效地提高了害虫检测的准确率,分割精确度和平均交分别为90.43、78.16,比SegNet 分别提高了3.27、3.72,识别时间为0.36 s,比SegNet 加快了0.16 s。提出的方法不需要额外的监督信息就能获得较多有效的田间害虫特征信息。研究通过试验验证了提出方法在形变虫害图像检测的有效性,为复杂环境下的农作物害虫检测提供了理论参考。
参考文献:
[1]宋丽娟. 基于图像的农作物病害识别关键算法研究[D]. 西安:西北大学,2018.
[2]郑方梅. 基于卷积神经网络的农作物病害图像识别研究[D]. 重庆:重庆师范大学,2019.
[3]卫智熠. 基于卷积神经网络的可见光图像农作物病虫害的检测[D]. 哈尔滨:哈尔滨工业大学,2017.
[4]黄文江,张竞成,师 越,等. 作物病虫害遥感监测与预测研究进展[J]. 南京信息工程大学学报(自然科学版),2018,10(1):30-43.
[5]刘思佳. 基于视觉的农作物病虫害自主识别系统研究[D]. 唐山:华北理工大学,2020.
[6]赵志焱,杨 华,胡志伟,等. 基于TACNN的玉露香梨叶虫害识别[J]. 计算机工程与应用,2021,57(9):176-181.
[7]Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[J]. Communications of the ACM,2017,60(6):84-90.
[8]Zhou X Y,Pan Z S,Hu G Y,et al. Stock market prediction on high-frequency data using generative adversarial nets[J]. Mathematical Problems in Engineering,2018,2018:1-11.
[9]王 铎,温长吉,王希龙,等. 基于深度卷积条件生成对抗网络的虫害分类算法研究[J]. 中国农机化学报,2020,41(6):179-187.
[10]Schmidhuber J. Deep learning in neural networks:an overview[J]. Neural Networks,2015,61:85-117.
[11]Cao X,Wei Z Y,Gao Y J,et al. Recognition of common insect in field based on deep learning[J]. Journal of Physics:Conference Series,2020,1634(1):012034.
[12]李 靜,陈桂芬,安 宇. 基于优化卷积神经网络的玉米螟虫害图像识别[J]. 华南农业大学学报,2020,41(3):110-116.
[13]赵立新,侯发东,吕正超,等. 基于迁移学习的棉花叶部病虫害图像识别[J]. 农业工程学报,2020,36(7):184-191.
[14]李衡霞,龙陈锋,曾 蒙,等. 一种基于深度卷积神经网络的油菜虫害检测方法[J]. 湖南农业大学学报(自然科学版),2019,45(5):560-564.
[15]He K M,Zhang X Y,Ren S Q,et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2015,37(9):1904-1916.
[16]Redmon J,Farhadi A. YOLOv3:an incremental improvement[EB/OL]. (2018-04-08)[2021-08-05]. https://arxiv.org/abs/1804.02767.
[17]张 博,张苗辉,陈运忠. 基于空间金字塔池化和深度卷积神经网络的作物害虫识别[J]. 农业工程学报,2019,35(19):209-215.
[18]Shelhamer E,Long J,Darrell T. Fully convolutional networks for semantic segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(4):640-651.
[19]Mahapatra D,Roy P K,Sedai S M,et al. Retinal image quality classification using saliency maps and CNNs[C]//Machine Learning in Medical Imaging,2016:172-179.
[20]劉文定,田洪宝,谢将剑,等. 基于全卷积神经网络的林区航拍图像虫害区域识别方法[J]. 农业机械学报,2019,50(3):179-185.
[21]张苗辉,李俊辉,李佩琛. 基于深度学习和稀疏表示的害虫识别算法[J]. 河南大学学报(自然科学版),2018,48(2):207-213.
[22]Fuentes A,Yoon S,Kim S C,et al. A robust deep-learning-based detector for real-time tomato plant diseases and pests recognition[J]. Sensors,2017,17(9):2022.
[23]梁万杰,曹宏鑫. 基于卷积神经网络的水稻虫害识别[J]. 江苏农业科学,2017,45(20):241-243,253.
[24]Ding W G,Taylor G.Automatic moth detection from trap images for pest management[J]. Computers and Electronics in Agriculture,2016,123:17-28.
[25]Wang Q C,Zheng Y J,Yang G P,et al. Multiscale rotation-invariant convolutional neural networks for lung texture classification[J]. IEEE Journal of Biomedical and Health Informatics,2018,22(1):184-195.
[26]Dai J F,Qi H Z,Xiong Y W,et al. Deformable convolutional networks[C]//2017 IEEE International Conference on Computer Vision,2017:764-773.