鲍文霞,孙 庆,胡根生,黄林生,梁 栋,赵 健
(安徽大学农业生态大数据分析与应用技术国家地方联合工程研究中心,合肥 230601)
农作物病虫害是造成农作物产量损失的主要原因之一,是限制中国农业优质、高效持续发展的主要因素,准确识别农作物病虫害并合理喷洒农药对于控制病虫害的传播至关重要[1-4]。小麦作为中国的主要粮食作物之一,小麦赤霉病的多发性和不及时控制是影响小麦产量的主要因素,准确、高效地识别小麦赤霉病可为防治小麦赤霉病和提高小麦产量提供重要保障。
近年来,基于病变图像的农作物病害识别是图像处理和精准农业中具有挑战性的研究课题[5-8]。大多数经典的农作物病害识别方法专注于从病变图像中提取特征,例如,Hlaing 等[9]通过Johnson SB 分布模型对图像的SIFT纹理特征进行建模,从而获得图像的纹理统计信息,并结合颜色统计特征成功应用于试验环境下的番茄植物病害图像分类。Zhang 等[10]提出了利用K-means 算法对图像进行分割处理,从分割图像中提取PHOG 特征识别黄瓜叶片的4 种病害和苹果叶片的3 种病害。Delwiche[11]利用近红外光谱对赤霉病和其他霉病小麦籽粒进行分类,通过对2 个波长上的差异分析建立最佳分类模型,总体准确率能达到95%~98%。梁琨等[12]利用光谱分析技术对小麦赤霉病进行识别,通过对小麦高光谱图像进行主成分分析选择最佳波长,从而提取最佳波长图像的特征参数进行分析建立最优模型,识别精度达到90%以上。上述基于传统图像处理和机器学习方法都需要进行特征提取和选择,然而,由于农作物病害图像病变区域非常复杂和不规则,传统的方法从图像中选择和提取出用于病害识别的最佳特征比较困难。
随着深度学习技术在农业信息处理领域的深入研究,卷积神经网络(Convolutional Neural Network, CNN)在图像识别和分类中的应用日益广泛[13-17]。在植物物种和病虫害识别中,CNN 被证明比传统机器学习方法具有更好的性能[18-19]。Liu 等[20]提出了一种基于DCNN 的苹果叶病的准确识别方法,对4 种常见苹果叶病数据集的试验结果表明,DCNN 可以为农作物病害识别提供更好地解决方案,具有较高的准确度和较快的收敛速度。Zhang 等[21]提出了一种将扩张卷积和全局池化相结合的农作物病害识别的全局卷积神经网络,所提出的方法能有效识别6 种黄瓜叶病,整体精度达到94.65%。借助加权的思想,Karthik 等[22]提出了一种残差学习加权网络,成功运用于试验环境下的番茄叶片疾病检测。上述方法虽然取得了较好的识别精度,但大多数仅限于试验室环境中,并且所采用的深度学习模型通常利用卷积层数较深的网络结构来提取目标的特征,模型的全连接层需要大量的参数和数据来计算。本研究以大田环境下的灌浆期小麦赤霉病图像为研究对象,针对麦穗生长较为密集,麦叶和土壤形成的背景杂乱,室外光照复杂等问题,利用深度语义分割网络分割出麦穗图像,降低复杂背景对后续识别的干扰;同时根据小麦赤霉病图像中病变区域和健康区域颜色通道信息分布差异性,设计结构较为简单的多路卷积神经网络分别提取R、G、B 3 个通道的特征,并结合对样本数据具有更好适应性的联合损失函数,实现小麦赤霉病图像的识别,为农作物病害智能识别提供参考。
本文试验中所用的大田环境下的小麦图像在合肥市庐江县郭河镇精准农业示范基地(31°25′~31°42′N,117°09′~117°16′E,海拔高度21 m)采集,该基地主要承担小麦、水稻、玉米等多种农作物的表型信息等科研工作。采集时间是2019 年5 月1 日至6 日9:00—16:00之间,天气晴朗,温湿度范围分别在18~25 ℃和30%~50%。采用佳能EOS80D 手持数字相机以3 984×2 656 的像素拍摄。共拍摄自然场景下灌浆期大田环境下的小麦群体图像510 幅[23]。不同程度的小麦赤霉病图像如图1 所示。
图1 不同程度小麦赤霉病图像 Fig.1 Images of wheat scab in different degrees
基于多路卷积神经网络的大田小麦赤霉病图像识别算法流程如下:1)采集自然场景下大田小麦群体图像;2)对自然场景下的大田小麦群体图像进行增强和扩充等预处理;3)利用深度语义分割网络U-Net 去除背景,分割并选取完整的单株麦穗图像用于赤霉病的识别;4)构建多路卷积神经网络,通过训练得到模型参数;5)利用训练好的多路卷积神经网络模型对单株赤霉病麦穗图像的测试集进行分类识别。
首先,由于图像是在自然场景下拍摄,为了解决光照不均问题,本研究采用Retinex 算法[24-25]对小麦图像进行增强处理。根据Retinex 理论,人眼感知物体的亮度取决于环境的照明和物体表面对入射光的反射。Retinex 的基本原理如式(1)所示
由于R 是对数域的输出,要转换为数字图像,必须将其量化为[0,255]的数字图像范围。采用式(2)进行处理得到增强后的图像。
式中 RMSRCRi为数字图像输出。
其次,数据集的多样性可以使模型具有更强的泛化能力,因此我们对数据样本进行旋转、裁剪、扭曲、改变图像尺寸、增加图像噪声等扩充方式来丰富训练集。扩充前后的部分图像如图2 所示。
图2 小麦群体图像扩充结果示意图 Fig.2 Schematic diagram of wheat group image expansion results
为了降低小麦叶片和农田其他复杂环境等不相干目标的干扰,本文利用深度语义分割网络,分割得到单株麦穗图像以利于后续的小麦赤霉病图像识别。
常用的分割网络有全卷积神经网络(Fully Convolutional Networks, FCN)[26]、SegNet[27]、U-Net[28]等。FCN 训练过程繁琐,对图像的细节信息不够敏感,没有考虑到像素之间的关系,缺乏空间一致性。SegNet 要求高质量图像,否则会忽略邻近的信息。而U-Net 能更好地避免这些问题,同时更适合本文小麦样本图像不规则多变、颜色对比突兀等特点,所以采用U-Net 网络分割麦穗图像。U-Net 网络结构共含有23 个卷积层,由两部分组成:压缩通道与扩展通道。压缩通道主要用来捕获图像中上下文信息,是典型的神经网络结构,重复采用2 个卷积层和1 个池化层结构,每进行1 次池化操作后特征图的维度变成原来的2 倍。而与压缩通道相对称的扩展通道主要是对图像中所需要分割出来的部分进行精准的像素边界定位,在通道中先进行1 次反卷积操作,使特征图的维数减半,然后拼接对应压缩通道裁剪得到的特征图,重新组成一个2 倍大小的特征图,再经过卷积层提取特征,并重复操作。在最后的输出层,用2 个卷积层将64维的特征图映射成2 维的输出。
利用U-Net 网络对大田环境下的小麦图像进行分割流程图如图3 所示。
图3 小麦图像分割流程图 Fig.3 Flow chart of wheat image segmentation
颜色特征是小麦麦穗病害的一个非常重要的特征,也是病害诊断的重要依据,因此,本研究设计结构较为简单的多路卷积神经网络通过R、G、B 3 个颜色通道获取具有高辨识性的麦穗赤霉病图像特征,并结合联合损失函数进一步提高网络对特征的识别性能。
1.5.1 卷积神经网络
卷积神经网络(Convolutional Neural Network, CNN)是一种带有卷积结构的深度神经网络[29-30]。卷积结构可以减少深层网络占用的内存量,也可以减少网络的参数个数,缓解模型的过拟合问题。卷积神经网络一般包含输入层、卷积层、池化层、全连接层以及输出层。不同层次之间相互促进,相互作用。
1.5.2 多路卷积神经网络(M-CNN)
用于麦穗赤霉病图像识别的多路卷积神经网络的整体结构如图4 所示。包含网络输入层、3 个颜色通道、3个单通道卷积神经网络(S-CNN)、1 个特征融合层(Fusion)、全连接层(FC)及1 个输出层(Output)。为了使网络达到增大类间距离和减小类内距离的目标,提取鲁棒性更强的特征,引入了联合损失函数学习。
图4 多路卷积神经网络结构图 Fig.4 Structure diagram of multi-way convolutional neural network
在多路卷积神经网络中,每张图像首先分成R、G、B 3 个分量并分别送入3 个独立的单通道卷积神经网络中进行特征提取。在每一个单通道卷积神经网络中都包含许多不同大小的卷积核,可以在图像中的相同子区域内提取各种病变特征。然后将3 个分量的单通道卷积神经网络提取的3 个特征向量通过融合层拼接起来构成一个高维特征向量送入到全连接层中,最后通过基于联合损失函数学习来减少输入图像类内距离并增加输入的类间距离,从而完成最终的识别输出。
1)单通道卷积神经网络(S-CNN)
根据CNN 一般结构同时结合麦穗图像的特点设计结构较为简单的单通道卷积神经网络,用于提取麦穗图像单通道的特征,其网络结构如图5 所示。
图5 S-CNN 结构图 Fig.5 Structure diagram of S-CNN
如图5 所示,用于提取麦穗病害特征的S-CNN 可以分为10 个隐藏层:输入层用于图像的输入;为了提高对图像抽象特征的提取和增强图像的信噪比,我们引入了6个卷积层(C1、C2、C3、C4、C5、C6),通过低层卷积对样本数据提取边缘、纹理、形状等抽象特征,然后再通过高层卷积生成新的特征用于后续的识别。为了避免在特征降维过程中丢失样本数据的关键信息,弥补图像特征不变性的缺失,采用了4 个池化层(P1、P2、P3、P4),通过将输入的特征映射划分为若干个非重叠的矩阵,输出每个矩阵区域的最大值,降低特征映射的计算复杂度和数据的大小,使特征获得更好的位移鲁棒性。为了减小梯度消失的可能性,在这10 个隐藏层中插入了6 个归一化层(Norm)及ReLU 激活层。最后,将经过最后1 个池化层的特征提取出来,完成后续的特征融合工作。
2)特征融合
为了充分利用不同通道信息,将经过3 个单独卷积神经网络的特征提取出来进行特征融合[31-32],常用的特征融合方法有叠加融合和向量拼接。
本研究采用向量拼接的融合方法。向量拼接的具体表示如下。假设现有特征向量将其在同一纬度上进行拼接,最后融合的特征向量为
通过向量拼接特征融合策略可以使特征强度得到提升,避免了冗余特征对信息造成的负面影响,从而使得对小麦数据样本进行描述的特征更加丰富。
3)损失函数
现有的深度卷积神经网络大多使用Softmax Loss 函数作为网络的损失函数,并广泛应用于分类识别问题中。其增大类间距离性能强,但缩小类内距离性能弱。对于小麦赤霉病图像识别来说,由于小麦生长各异且不具规则,同类之间差别较大,这将会导致一些不规则生长的同类患病麦穗图像无法被准确识别。为了解决该问题,保证可分性外,希望特征向量类内紧凑,类间分离。引入了Center Loss[33]的损失函数来解决小麦赤霉病识别率不高的问题。Center Loss 的具体计算如式(3)所示。
式中N 表示最小批次量, f ( xi)表示全连接层之前的特征,yic 表示第y 类深度特征的中心,它会随着不同的训练批次而改变;中心的修改通过对应类特征的均值来计算。
在网络训练过程中,仅使用中心损失函数虽然可以缩小类内距离,但无法增大类间距离,以更好地区分各个类别。考虑到Softmax Loss 和Center Loss 对数据样本的监督作用,尝试通过使用两种损失来调整CNN 网络参数来获得判别特征。具体的损失函数如式(4)所示
式中clsL 是分离图像的Softmax 损失,而cenL 是压缩类内图像的中心损失,λ 为Center Loss 权重系数,ix 、jx 分别表示第i 类和第j 类的深度特征,yiW、jW分别表示输入的深度特征向量对应的权重值,yib 、jb 分别表示对应的偏置项,m 表示批训练的大小,n 表示类别的数量。在式(4)中,将参数λ 应用于加权2 个损失函数。不同的参数值将导致不同的深度特征。较小的λ 值会导致中心损失项对网络几乎没有什么影响,而较大的λ 值会导致网络出现不收敛的情况。本文经过多次反复试验得到λ经验值为0.001,其中Softmax Loss 和Center Loss 在网络中的具体使用方式如图6 所示。
本研究以大田环境下的小麦群体图像为对象,为了降低叶片和农田复杂环境等不相干目标的干扰,利用U-Net 深度语义分割网络进行分割,然后再利用本研究多路卷积网络对分割得到麦穗图像进行小麦赤霉病的识别。
本研究将采集的510 幅灌浆期小麦群体图像大小统一调整为256×256 像素输入,选取其中的170 幅小麦群体图像作为训练集,340 幅作为测试集。为了防止过拟合,提高模型的泛化能力,采用旋转、扭曲等方式将训练集图像扩充至600 幅,图7 给出了训练过程中的损失和准确率曲线变化。从图中可以看出,U-Net 分割网络中的Loss 曲线在将近第120 个epoch 时趋近于收敛,同时Acc曲线在该点时也越来趋近于饱和。
图7 网络训练过程 Fig.7 Process of network train
分别使用K-means、GrabCut、U-Net 等方法对小麦群体图像进行分割,部分试验结果如图8 所示。由于小麦群体图像背景复杂,而且处在灌浆期的麦穗和叶片、叶杆等颜色接近,因此传统方法如K-means、GrabCut 等很难正确分割出麦穗,而U-Net 算法采用对图像进行逐像素分类的思想,并借助上下采样的思想使得深层特征中包含浅层特征信息,从而能够较好地分割出单株麦穗。
图8 不同方法小麦群体图像分割结果对比 Fig.8 Comparison of segmentation results of wheat group images by different methods
选取U-Net 网络分割后2 745 幅完整的单株麦穗图像进行赤霉病识别试验,其中健康麦穗1 500 幅,赤霉病麦穗1 245 幅,并以8∶1∶1 的比例划分为训练集、验证集和测试集用来评估本研究方法。试验均采用批量训练方式,将训练集、验证集和测试集划分为多个批次,每个训练批次大小设置为32,即每批次输入32 张图像进行处理。整个网络的训练过程采用随机梯度下降优化算法(Stochastic gradient descent)优化模型。试验使用Pytorch 的开源软件框架和Python 编程语言实现。使用CUDA 平台在NVIDIA GTX2070 GPU 上进行试验。为了验证基于多路卷积神经网络的小麦赤霉病识别算法的有效性,对网络特征融合和参数选取分别进行对比试验,同时与目前流行的CNN 进行对比试验。采用精度(Precision)、召回率(Recall)、F1 值(F1 score)以及准确率(Accuracy)来进行单株麦穗赤霉病识别精度的评估。各指标定义如下
式中TP 为真阳性单株麦穗图像数目;FP 为假阳性单株麦穗图像数目;FN 为假阴性单株麦穗图像数目;ncorrect表示测试单株麦穗图像中预测正确的单株麦穗图像数目;ntotal为总的测试单株麦穗图像数目。
2.2.1 模型验证
为及时验证网络模型的泛化能力,获取最优模型参数,将数据样本划分出验证集用于调整网络模型的超参数并对模型的能力进行评估。训练集和验证集的曲线如图9 所示。
图9 损失及准确率曲线 Fig.9 Loss and accuracy curves
由图中可知,随着迭代次数的增加,网络模型在数据样本的训练下损失值逐步下降,最后在趋近0.015,网络的训练准确率接近100%。通过借助验证集去寻找网络最优参数的作用来对网络模型进行评估,可以看出随着迭代次数的增加,网络的损失值也在趋近0.02,网络的验证准确率朝着训练准确率逼近以至于饱和最终得到最优模型。
2.2.2 不同特征融合方式对比试验
为了验证融合方法的有效性,对相同数据样本进行多路卷积神经网络训练提取特征,然后分别采用在通道维度上进行拼接的融合方式、在通道维度上进行叠加的融合方式、在通道维度上加入可训练参数进行拼接的融合方式以及在通道维度上加入可训练参数进行叠加的融合方式。这4 种融合方式均采用本研究提及的联合损失函数进行最终的识别分类。利用测试集对不同融合方式的试验对比结果如图 10 所示。
图10 不同融合方式结果对比图 Fig.10 Comparison of different fusion methods results
在均使用联合损失函数的基础上,本研究选取的融合方式在测试集上的性能要远远优于其他的3 种融合方式。所用融合方式更加直观,能够在一定程度上避免特征冗余,降低对信息造成的负面影响。说明了本研究的融合方式在多路卷积神经网络中的有效性。
2.2.3 M-CNN 与S-CNN 模型识别对比
为了进一步验证提出的多路卷积神经网络的优越性,将分割后的麦穗图像分别进行S-CNN 和多路卷积神经网络分类识别。结果如表1 所示。
表1 M-CNN 与S-CNN 模型识别结果对比 Table 1 Comparison of M-CNN and S-CNN model recognition results
由于颜色信息在小麦赤霉病识别中起到主要因素。从表1 可以看出,只使用Softmax Loss 作为训练监督信号时,根据颜色通道来组合的多路卷积神经网络可以增加整个网络的宽度,提高每一层通道的利用率,使每一层学习到更加丰富的特征,如不同方向、不同频率的纹理特征。对小麦赤霉病的识别准确率比S-CNN 的识别效果要好,精度提高3 个百分点。在表1 中,使用本文中的网络模型进行了对比试验,分别使用Softmax Loss 和联合损失函数作为训练监督信号。在相同条件下,前者取得了95%的准确率,后者取得了100%的准确率。可以看出,使用联合损失函数学习的方法,可以增大类间距离和减小类内距离的目的。最终,可以使网络提取出鲁棒性更强的特征。
2.2.4 不同识别算法对比试验
同时将本研究的算法与目前较流行的LeNet、Vgg16、Vgg19、GoogLeNet 和ResNet16 卷积神经网络算法进行了识别试验对比,各指标的对比结果如表2 所示。
表2 不同算法的识别结果对比 Tabel 2 Comparison of recognition results of different algorithms
通过表2 的对比结果可以看出,与其他卷积神经网络相比,多路卷积神经网络能更好地获取颜色特征,同时联合损失函数对特征具有更好的区分性。因此多路卷积神经能取得更高的识别率。由于多路卷积神经网络对图像三通道分别进行特征提取,因此在运行时间方面要长一些,仅低于ResNet16 的方法。
大田环境下拍摄的小麦群体图像存在多穗遮挡与黏连,本研究针对这种情形利用所提算法进行分割和麦穗赤霉病识别试验,分割结果如图11 所示。从图中可以看出由于存在多穗粘连和遮挡情况,导致容易将多穗分割成一个穗或者被遮挡穗不能被分割出来,从而影响最终麦穗的数量,但对分割出的麦穗都能正确识别出赤霉病。进一步提升多穗遮挡与黏连麦穗的图像分割问题将是我们下一步重点研究内容。
图11 U-Net 网络分割结果 Fig.11 U-Net network segmentation result
针对大田复杂环境下的小麦赤霉病识别问题,本研究利用深度语义分割网络U-Net 对小麦群体图像进行分割;通过联合损失函数的多路卷积神经网络对分割后的单株麦穗赤霉病图像进行识别试验,并对不同融合方式、不同卷积神经网络等方面进行了对比分析,得到如下结论:
1)相对叠加融合方式而言,向量拼接的融合方式可以使特征强度得到提升,避免特征冗余。
2)相对于损失函数,联合损失函数可以增强特征之间的可区分性,提高网络的整体性能,控制相同条件下,采用联合损失函数的多路卷积神经网络准确率比未采用联合损失函数的多路卷积神经网络高5 个百分点。
3)相对于ResNet16、Vgg16、GoogLeNet 等卷积神经网络而言,采用联合损失的多路卷积神经网络对提取的小麦赤霉病特征具有更好的区分性,从而对小麦赤霉病识别表现出较好的分类性能。对采集的大田环境下510幅灌浆期小麦群体图像进行分割,选取2 745 幅完整单株麦穗图像进行麦穗赤霉病识别精度达到100%。
目前的识别模型局限于分割之后选取的完整单株麦穗图像,由于大田环境下拍摄的小麦群体图像存在严重的多穗遮挡现象,会对分割结果造成影响。进一步提升多穗遮挡的图像分割问题将是下一步重点研究内容,以提高对大田复杂环境下小麦赤霉病识别的适用性。