基于改进残差网络的园林害虫图像识别

2019-06-04 01:10陈良勇王生生赵慧颖温长吉
农业机械学报 2019年5期
关键词:残差害虫卷积

陈 娟 陈良勇 王生生 赵慧颖 温长吉

(1.吉林大学计算机科学与技术学院, 长春 130012; 2.吉林农业大学信息技术学院, 长春 130118)

0 引言

园林害虫是制约森林城市建设的主要因素之一。在生长发育过程中,园林树木受到各种虫害的侵袭,导致树木生长不良、出芽凋萎、腐烂等现象,甚至引起整株死亡。这不仅影响了园林植物的正常生长和观赏、绿化价值,而且造成了很大的经济损失。目前,园林害虫的种类区分及数量统计工作主要依靠人工进行,劳动强度大,工作效率低。因此,使用人工智能和机器视觉技术实现对害虫图像的自动化识别具有重要意义。

近年来,研究者提出了许多害虫识别系统[1-11]。如基于视觉词袋框架[12](Bag of words,BoW),VENUGOBAN等[13]将方向梯度直方图[14](Histograms of oriented gradients,HOG)与加速鲁棒特征[15](Speeded up robust features)相结合,对稻田害虫图像进行分类。XIE等[16]使用稀疏编码的空间金字塔模型识别农田害虫图像。与早期支持向量机和神经网络方法相比,带有背景的害虫图像识别精度已经得到了提高。为了进一步提高识别能力,XIE等[17]提出了基于多任务稀疏表示和多核学习的害虫识别方法。孙俊等[18]提出了一种批归一化与全局池化相结合的新型神经网络模型植物害虫识别方法。刘德营等[19]采集田间自然状态下的白背飞虱图像,提出了一种基于卷积神经网络的白背飞虱识别方法,并进行了应用研究。HAFIZ等[20]基于贝叶斯网络提出了一种害虫彩色图像识别方法。杨国国等[21]基于图像显著性分析和Grubcut算法[22]对复杂背景下的害虫目标进行定位,通过 AlexNet卷积神经网络架构,实现了对茶园主要害虫的表达和分类。肖志云等[23]提出了一种基于小波域的马铃薯典型虫害特征提取与识别方法。基于支持向量机与区域生长结合算法,潘春华等[24]设计了黄曲条跳甲、烟粉虱、小菜蛾、蓟马这4类蔬菜害虫分类识别的检测算法。

北方园林面积大,害虫蔓延速度快,对植物生长发育危害极大,给园林虫害防治工作带来巨大难度。以佳木斯市双拥公园为例,仅乔木、灌木、草坪和花坛 4 种生态环境下的园林害虫就多达26种[25]。此外,北方园林害虫种类多,且外形相似度很高,也给自动识别带来一定难度。在收集到的北方园林害虫数据集上可测试多种现有害虫识别方法,但随着网络结构的加深,这些方法容易导致梯度消失,或者梯度爆炸或退化现象,以及出现样本数量有限造成的过拟合等问题。为解决上述方法存在的问题,本文提出一种基于改进残差网络的害虫图像识别方法。

1 材料与方法

1.1 试验材料

试验选取北方园林常见害虫作为测试对象,针对大黑鳃金龟、杨叶甲、大青叶蝉、红天蛾、春尺蠖、榆黄叶甲、桃蚜等38类园林害虫收集图像进行识别。获取害虫图像的途径有两个:在自然光环境下,利用单反数码相机或智能手机实地拍摄,以植株、土壤、天空等自然环境为背景收集净月潭国家森林公园的园林害虫图像;从Google、Naver和FreshEye等搜索引擎上收集害虫图像。在植保专家的指导下,为获取的害虫图像标记类别,建立样本库。部分害虫样本图像如图1所示。样本库中每类害虫样本图像的数量在200~300之间,其中包括不同角度、姿态和自然环境下的原始图像。由于同一害虫在不同虫龄阶段的形态差异较大,试验将每一类害虫标记为幼虫和成虫两个子类别。

图1 部分园林害虫样本图像Fig.1 Sample images for 24 insect species from garden

1.2 害虫图像识别方法

基于改进残差网络的害虫图像识别方法的流程图如图2所示。首先,使用富边缘检测算法(Rich-edge)对害虫图像进行边缘检测,得到轮廓精细的害虫图像。然后将得到的害虫图像集用来训练改进的残差神经网络,通过分块共轭算法(Block-cg)优化网络权重,更新超参数的值,直至达到理想的害虫分类准确率。

图2 基于改进残差网络的害虫图像识别流程图Fig.2 Flow chart of pest recognition based on improved residual network

1.2.1图像数据集的预处理

在采集到的害虫原始图像中,为了能够更加精确地将害虫图像与背景分离,得到害虫图像的完整轮廓和更加丰富的细节信息,本文使用Rich-edge算法对害虫图像进行边缘检测。Rich-edge将中值滤波、Sobel算子和Canny算子三者相结合对害虫图像进行边缘检测。使用中值滤波对输入的图像进行去除噪声处理,中值滤波器能够有效地消除椒盐噪声,并且能够很好地保留害虫图像的边缘细节。将Sobel算子和Canny算子的优点相结合,Sobel算子可以检测到准确的位置信息,Canny算子能够检测到弱边缘,将二者相结合,可使得到的害虫图像有更加完整的轮廓和丰富的细节信息,提高了边缘检测的准确性。富边缘检测算法流程图如图3所示。

图3 富边缘检测算法流程图Fig.3 Flow chart of Rich-edge algorithm

将彩色的害虫图像转换为灰度图像,减小背景对图像的影响。使用Rich-edge算法对害虫灰度图进行边缘检测。将数据集进行图像的尺度归一化处理,统一处理为224像素×224像素的图像。预留出已知样本{Xi,Yi}来计算概率分布。具体步骤为:

(1)对害虫的彩色图像进行灰度处理,使用公式Gr=0.299R+0.587G+0.114B来计算灰度值,把RGB图像转换为灰度图,其中R、G、B分别表示彩色图像红、绿、蓝3个颜色通道数值。

(2)向训练集图像f1(x,y)中随机添加椒盐噪声,模拟图像在传输、处理等过程中的噪声干扰,增强算法的可靠性。

(3)使用中值滤波器去除害虫灰度图的椒盐噪声,使用滑动窗口方式检测图像,得到输出图像f2(x,y)。

(4)使用Sobel算子对害虫图像f2(x,y)进行边缘检测,得到输出BW1。

(5)使用Canny算子对害虫图像f2(x,y)进行边缘检测,得到输出BW2。

(6)将Sobel算子和Canny算子检测到的害虫边缘图像BW1、BW2进行叠加。

(7)将Rich-edge得到的害虫边缘图像统一处理为224像素×224像素的图像。

1.2.2改进残差网络的结构与学习算法

改进的残差神经网络模型是对传统残差网络[26](Residual network,ResNet)中的每个残差块的结构进行改变,通过添加卷积层和增加通道数来提取更多的害虫图像特征,并将贝叶斯方法运用于改进后的网络中。初始化超参数和网络权重,最小化总误差,优化网络权重,进而优化超参数,重复该过程直到网络收敛。

ResNet通过增加网络的深度来提高网络的性能。通过在输入和输出之前添加一个恒等映射可以有效地解决网络训练过程中出现的梯度消失问题,从而通过增加网络深度来提高效果。

残差学习算法的目标函数H分为两部分,定义为

H(x)=F(x)+x

(1)

式中x——网络输入

F——网络学习的残差函数

当下层误差变大时,网络会自动将F(x)逼近0。

根据残差学习算法,ResNet网络的残差块输出为

y=F(x,W1,W2,…,Wi,…,Wn)+x

(2)

式中Wi——残差块中第i个卷积层权重

为了统一输入和输出的维数,在维度不匹配的线性映射中,需要对输入x做一个线性变换Ws,这时残差网络的输出公式为

y=F(x,W1,W2,…,Wi,…,Wn)+Wsx

(3)

式中Ws——线性映射

对传统的ResNet网络中的残差块结构进行修改,每个残差块包含2个卷积层,每个卷积层使用尺寸为3×3的卷积核来增加网络宽度,在两个卷积层之间加入Dropout层,结构如图4所示。

当残差块中包含2个卷积层时,其学习公式为

F(x)=W2σ(W1x)

(4)

式中σ——ReLu映射

式(4)为了简洁省略了偏置。

图4 改进残差网络的残差块结构Fig.4 Residual block of improved residual network

将预处理中得到的害虫边缘图像输入到构建的改进残差网络中。利用贝叶斯原理对残差神经网络的权重参数进行初始化,在这里假定该网络的参数W(权值和阈值等)符合高斯分布。根据网络的输出结构,得到网络的总误差函数。

将预处理中得到的害虫图像的训练集记为D={xk,yk},k=1,2,…,K,K为害虫图像样本总数。α和β是改进残差网络的两个超参数,在训练之前将α和β进行初始化,通过迭代优化超参数,提高网络学习的性能和效果。网络结构记为A,在A和W确定的情况下可以根据输入向量x得到网络的输出y,将训练集的误差函数定义为

(5)

M(W)=αEW(W|A)+βED(D|W,A)

(6)

在给定观察数据后,通过已有的参数可以得到网络参数的后验概率为

(7)

式中P(D|α,β,M)——超参数α和β的显著度

ZW、ZD——归一化系数

m——该网络中所有权重参数的个数

归一化系数和W无关,因此网络参数W的优化可转换为最小化网络总误差M(W)。

1.2.3基于分块共轭算法的网络优化

分块共轭算法(Block-cg)使用块对角线来近似曲率矩阵,提高了Hessian矩阵的收敛性,并且对每个子块进行独立的共轭梯度更新,将子问题分离开处理,降低了局部搜索的复杂性。对比梯度下降、牛顿法以及共轭梯度等经典算法,Block-cg算法具有计算效率高、计算复杂性小等优势,并且具有更好的收敛性和泛化能力。

本文使用Block-cg算法优化网络,更新网络的权重参数,减小误差函数,主要步骤如下:

(1)参数变量定义:害虫图像的训练数据集记为DT={(xi,yi)},i=1,2,…,T,改进残差网络的输出函数为zi=f(xi,w),损失函数定义为λ(zi,yi),其他超参数的定义如下:算法调用的最大循环次数为l,最大的共轭梯度迭代次数为Cg,停止计算共轭梯度的准则为cg_stop,学习速率为η。并且定义两个害虫图像数据集,随机选取数据集Dg⊂DT用来计算梯度g=(g(1);g(2);…;g(B)),害虫图像数据集Dc⊂Dg,该数据集用来计算曲率向量。

(2)曲率矩阵的近似矩阵G的计算和分块。根据随机选取的害虫图像数据集Dc,通过Gauss-Newton方法计算矩阵G作为曲率矩阵的近似

(8)

式中J——网络输出对于权重参数导数的Jacobian矩阵

I——单位矩阵

将矩阵G分成B×B的子块,G(b)表示矩阵G的第b个对角块。

(4)随机选取小批量数据集Dg来计算梯度g,以及小批量数据集Dc计算曲率向量。对每个子对角块进行共轭梯度迭代计算,当满足终止标准cg_stop或者达到最大迭代次数Cg时,终止迭代过程。每个子块的网络权重参数优化过程可以并行进行,具体如下

(9)

重复执行该过程l次,求得最终的网络权重参数更新值Δw。求得每个子块的Δw←(Δw(1);Δw(2);…;Δw(B)),将所有子块更新整合到一起,求得更新的权重参数w←w+ηΔw。

(5)定义网络中有效权重参数的个数为

γ=m-2αtr(H-1)

(10)

其中

式中H——网络输出的Hessian矩阵

β定义如下

(11)

每次更新权重参数后更新α和β的值,并且使用更新后的α和β重新计算误差函数。

(6)重复执行上述过程。使用Block-cg算法最小化损失函数,从而更新网络权重参数,计算有效参数的个数γ,利用更新后的权重参数更新超参数α和β,最终得到优化后的网络权重参数。

2 结果及分析

2.1 图像测试样本及参数设置

试验使用的9 072幅害虫图像全部来源于所建立的样本库。首先使用Python脚本语句对原始图像进行随机旋转角度、随机缩放原图、镜像等操作扩充样本数量至原来的3倍,然后分别从各类别中随机抽取60%图像样本构建训练集,20%作为验证集,剩余20%作为测试集。测试样本具体信息及识别结果如表 1所示。试验中,改进残差网络的深度为28层,超参数α和β分别初始化为0和1,学习速率η为0.001;使用Block-cg算法训练网络时,每个批次训练64幅图像,最大迭代次数为2 000次。

2.2 算法的有效性分析

为了验证本文方法的有效性,在本文数据集上,分别采用本文方法、贝叶斯神经网络方法[27](Bayesian neural network)、卷积神经网络方法[28](Convolutional neural network)、支持向量机[2](Support vector machine,SVM)进行害虫识别准确率比较。试验选取害虫图像的颜色直方图构造SVM的训练特征样本,核函数为高斯核函数。表 1给出了不同方法下的 38 种害虫识别准确率。由表 1可知,支持向量机方法下的害虫识别准确率较低;而卷积神经网络在小数据集上容易发生过拟合现象,因此在该方法下的害虫识别准确率也不高;文献[27]所提的贝叶斯神经网络方法与本文方法较为接近,但仍然低于本文方法的平均识别准确率。与上述3种方法相比,本文方法的平均识别准确率平均提高了9.6个百分点。

2.3 算法的鲁棒性分析

为了进一步验证本文所提方法的鲁棒性,针对上述4种害虫识别方法,结合每个类别查准率pi,再计算其查全率ri以及查全率与查准率的加权平均分数Fi,最后取平均值Fa作为模型评价标准,对比结果如表2所示。

表1 38种害虫测试样本细节和不同方法下的害虫识别准确率Tab.1 Details of 38 analyzed insect species and pest recognition rate by different methods

续表1

(12)

(13)

式中nc——样本类别总数,取38

i——类别标签(1~38)

nii——类别i预测为第i类的样本数

nji——类别j预测为第i类的样本数

nij——类别i预测为第j类的样本数

表2 不同害虫识别方法的鲁棒性对比结果Tab.2 Robustness comparison of different pest identification methods %

由表2可知,本文所提害虫识别方法在平均查全率和加权平均分数这两项指标上均获得了更好的表现。与其他3种害虫识别方法相比,本文方法加权平均分数分别提高16.3、10.8、4.5个百分点,具有更强的鲁棒性。

2.4 北方园林害虫识别系统

图5 北方园林害虫识别APP系统图Fig.5 Diagram of northern garden pest identification APP

基于本文方法,设计了对38种北方园林害虫识别的手机APP系统,如图5所示。该APP能够部分代替植保专家对园林害虫进行有效地自动化识别,以便及时做好防治工作。首先,利用智能手机在自然光环境下直接拍摄园林中的害虫生态图像。通过手机APP将待识别害虫图像读入自动识别系统,最后使用本文算法对测试样本进行自动识别,给出识别结果与对应的害虫防治方法。

3 结束语

针对现有害虫图像识别方法存在的问题,提出了一种基于改进残差网络的害虫图像识别方法。该方法使用富边缘检测算法对害虫图像进行边缘检测,将得到的害虫图像集用来训练残差神经网络,并通过Block-cg算法优化网络权重,进而更新超参数的值,直至得到理想的害虫分类准确率。试验结果表明,与其他3种传统害虫识别方法相比,本文方法的平均识别准确率平均提高9.6个百分点,加权平均分数分别提高16.3、10.8、4.5个百分点,具有较高的识别准确率及较强的鲁棒性。

猜你喜欢
残差害虫卷积
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
害虫的克星——七星瓢虫
基于3D-Winograd的快速卷积算法设计及FPGA实现
蜗牛一觉能睡多久?
冬季果树常见蛀干害虫的防治
基于残差学习的自适应无人机目标跟踪算法
卷积神经网络的分析与设计
基于深度卷积的残差三生网络研究与应用
从滤波器理解卷积