鲍文霞,吴 刚,胡根生,张东彦,黄林生
(安徽大学 农业生态大数据分析与应用技术国家地方联合工程研究中心,安徽 合肥 230601)
快速、准确识别农作物病害对提高农作物的产量及质量具有重大意义.为了高效控制苹果病害,提高苹果的产量及质量,研究人员采用传统的机器学习方法识别各种类型的苹果叶片病害.传统方法需要大量的图像预处理及分割,工作量大且缺乏灵活性.由于病害区域的颜色、形状、纹理等信息复杂,因此很难保证分割的区域为目标特征区域,这会导致特征提取的效率及识别的准确率降低.
近年来,卷积神经网络(convolutional neural network, 简称CNN)在模式识别领域取得了一定的成绩.与传统方法不同,CNN可自动从原始病害叶片图像数据中提取病斑特征,然后对提取的特征自动进行分类识别.Mohanty等在开源数据集PlantVillage的基础上,使用GoogleNet和AlexNet识别14种农作物的26种病害,结果表明参数微调后的GoogleNet预训练模型的病虫害识别精度最高.孙俊等以PlantVillage数据集及病害叶片图像为研究对象,通过对AlexNet网络进行改进,得到了较高的识别率.Baranwal等通过具有2层卷积及2全连接层的网络,能识别苹果的3种病(黑星病、灰斑病及雪松锈病)害叶片.Geetharamani等定义了1个卷积核大小为3×3的3层卷积,在每层卷积后接一个最大池化层,经3层卷积3层最大池化后,再通过2个全连接层进行特征融合,最后送入Softmax进行分类,分类精度高达96.46%.Ferentinos等以复杂背景和简单背景下的病害叶片图像为研究对象,使用VGG16,GoogLeNet,AlexNet等网络模型进行训练,结果表明VGG16的效果最好.Guan等先按病害严重程度对苹果灰斑病害叶片进行分级,后通过VGG16,VGG19,ResNet50,InceptionV3的预训练模型进行迁移学习,结果表明迁移学习后的VGG16识别效果最好.
研究表明,深度CNN网络模型在农作物病害叶片识别领域取得了较好的效果.但是,上述网络模型存在以下问题:①AlexNet,VGG16等网络模型通过全连接层进行特征融合、参数优化,延长了模型的收敛时间,当训练样本数不足时易导致模型过拟合.②寻找一个合适的网络层数需反复实验、比较,缺乏灵活性,选取的层数过浅易致欠拟合、过深易致过度拟合.③每层限定了卷积核的大小,不能针对植物病害叶片上病斑的不同尺度自适应调节卷积核的大小,降低了特征提取的效率.针对上述问题,该文利用在ImageNet数据集上的预训练模型初始化瓶颈层的参数;在VGG16网络模型的基础上,去掉全连接层,在瓶颈层后采用选择性核(selective kernel,简称SK)卷积模块及全局平均池化,以减少模型的训练时间、提高识别的准确率.
选取苹果的健康叶片图像及苹果叶片上发病概率较高的5种病(黑星病、灰斑病、雪松锈病、斑点落叶病和花叶病)害叶片图像为研究对象,其中健康、黑星病、灰斑病和雪松锈病叶片图像来自PlantVillage数据集,斑点落叶病和花叶病叶片图像来自Google网站.实验中所有图像的像素均为224×224,各类叶片图像如图1所示.
(a)为健康叶片;(b)为病害程度一般的黑星病叶片,有少许黑色斑点;(c)为病害程度严重的黑星病叶片,有大量黑色斑点;(d)为灰斑病叶片;(e)为病害程度一般的雪松锈病叶片,有少量橘红色斑点;(f)为病害程度严重的雪松锈病叶片,表面接近枯萎,有大量病斑;(g)为斑点落叶病叶片,有褐色小圆点;(h)为花叶病叶片,病斑呈鲜黄色.图1 各类叶片图像
通过数据增广,可增加噪声数据,提升模型的泛化能力,提高模型的鲁棒性.该文首先按4∶1将原始数据集划分为训练集及测试集,对训练集中数据量小的病害类别进行数据增广,其具体操作有:图像随机旋转、裁剪、缩放,图像镜像操作、平移变换,图像亮度、对比度增强等.表1给出了不同类型的训练集、增广后的训练集及测试集图像数.
表1 不同类型的训练集、增广后的训练集及测试集图像数
在植物叶部病害识别领域,VGG16网络模型通过预训练模型得到了较好的识别结果.但是,VGG16网络模型中,一方面,卷积核大小均为3×3,不能自适应调整其感受野的大小;另一方面,其全连接层复杂的参数优化操作会导致模型过拟合,且增加模型的训练时间.因此,该文在VGG16网络模型的基础上,使用迁移学习的策略,利用预训练模型初始化瓶颈层参数,且在瓶颈层后接一个SK卷积模块,重新训练网络参数,使网络能根据输入特征图自适应选择卷积核,提高多尺度特征提取的水平,提升对叶片微小病斑识别的能力.将全局平均池化代替全连接层,能加快网络模型的收敛、减少模型参数,解决全连接层因大量参数优化而带来的过拟合问题.改进后的网络模型结构如图2所示,其中蓝色矩形框表示卷积和激活操作,黄色矩形框表示池化操作,蓝色矩形框及黄色矩形框共同构成网络的瓶颈层,最右边长方形的长度表示该类病害出现概率的大小.
图2 改进后的网络模型结构
图3为全连接及全局平均池化示意图.特征提取后,全连接层产生了大量的参数,这些参数的优化会加大模型的复杂度、延长模型的收敛时间、导致过拟合.通过采用全局平均池化,不仅可以解决全连接层中过多参数优化导致的模型收敛速度较慢的问题,而且可以增强网络的抗过拟合能力.通过特征图像素的平均值得到1维特征向量,此过程没有涉及参数的优化,因此防止了过拟合.
图3 全连接(左)及全局平均池化(右)示意图
传统CNN大多在每一特征层上设置相同大小的卷积核.尽管GoogleNet在同一层采用多个卷积核,但并不能根据输入特征图的大小自适应调整卷积核,影响了特征提取的效率.采用SKNet中的SK卷积,能让网络根据输入特征图自适应选择大小适当的卷积核,从而提高特征提取的效率.SK卷积由分离、融合、选择3部分构成.
(1) 分离.分离操作中,利用多个卷积核对输入特征向量进行卷积,形成多个分支.对分别进行大小为3×3和5×5的卷积操作,得到′∈R
××和″∈R
××两个特征向量.图4为 SKNet中的SK卷积示意图.⊕表示元素相加;⊗表示元素相乘.图4 SKNet中的SK卷积示意图
(2) 融合.设计门控机制,以分配流入下一个卷积层的信息流.在融合过程中,将前面卷积得到的′和″做如下式所示的像素融合=′+″.(1)
对融合后的,通过全局平均池化压缩全局信息.图4中s
的第c
维度特征s
,可由的第c
维度特征经全局平均池化后得到,如下式所示(2)
全局平均池化后,将得到的特征送入全连接层处理,进一步压缩特征,以降低特征维度及提高特征的提取效率.压缩后的特征为
z
=δ
(Β(w
)),(3)
其中:δ
为函数ReLU;B表示批量归一化;z
∈R
×1,w
∈R
×,通过设置衰减比r
确定参数d
的大小,其表达式为d
=max(C
/r
,L
),(4)
其中:L
的大小一般取32.(3) 选择.在Softmax操作后,通过注意力机制,得到a
,b
软注意力向量为(5)
其中:,∈R
×,表示的第c
行,a
为a
的第c
个元素;及b
同理.通过对应的权重矩阵及卷积核加权求和,得到输出特征为
=[,,…,],(6)
其中:∈R
×,=a
′+b
″,a
+b
=1.实验采用TensorFlow深度学习框架,其硬件及软件配置如表2所示.
表2 硬件及软件配置
n
设为3,基数L
设为32.从特征图中,可更直观看到每层的特征.图5给出了苹果灰斑病图像及其特征图,为方便可视化,只列出25个通道特征图.
(a)为原图;(b),( c), (d), (e)分别为原图经图2中Conv1_1, Conv3_1, Conv5_1, Pool5操作后得到的特征图.图5 苹果灰斑病图像及其特征图
为了验证笔者所提网络模型对苹果叶部病害识别的性能,需要比较同一条件下不同网络模型的识别准确率、训练时间.识别准确率的表达式为
(7)
其中:TP表示第i
种病害(包括健康叶片)分类正确数,FP表示第i
种病害(包括健康叶片)分类错误数,N
为病害总数.表3展示了增广后的训练集图像经不同网络模型训练后的识别准确率、生成的模型大小及训练时间.
表3 不同网络模型性能对比
由表3可知,不同CNN模型的识别准确率、训练时间以及模型大小存在较大差异.浅层模型AlexNet准确率只有91.53%,深层模型VGG16,VGG19,ResNet50的准确率分别达到了93.80%,93.50%,93.65%,这得益于迁移学习的运用.通过加载预训练模型参数,充分学习到了苹果叶部病斑的特征,解决了由于训练样本不足而带来的过拟合问题.该文模型的准确率达到了94.70%,这是因为在VGG16模型的特征输出层采用了SK卷积模块,提升了模型的多尺度特征提取能力.AlexNet,VGG16,VGG19生成的模型较大,而该文模型生成的模型大小只有70.2 MB,节省了计算成本.
图6展示了不同网络模型经过不同训练轮数后的识别准确率.从图6中可以看出,与其他模型相比,该文模型收敛最快.这是因为全连接层的大量参数优化耗时较长,而全局平均池化无繁杂的参数优化操作,加快了模型的收敛速度.
图6 不同网络模型经过不同训练轮数后的识别准确率
苹果病害初期叶片病斑相对较小,使用传统CNN不易准确识别.笔者在传统VGG16网络模型的基础上,提出了一个改进的网络模型,使用预训练模型初始化瓶颈层参数,采用SK卷积块及全局平均池化.该模型提高了识别微小病斑的能力,提升了叶部病害识别的准确率,加快了网络模型的收敛速度,降低了时间开销.