邓国强,王君婵,杨 俊,刘 涛,李冬双,孙成明
(1. 江苏省作物遗传生理重点实验室/江苏省作物栽培生理重点实验室,扬州大学农学院,江苏扬州 225009;2. 江苏省粮食作物现代产业技术协同创新中心,扬州大学,江苏扬州 225009;3. 江苏里下河地区农业科学研究所/农业部长江中下游小麦生物学与遗传育种重点实验室,江苏扬州 225007)
赤霉病是小麦最常见的病害之一。它是由禾谷镰刀菌等病菌引起一种病害,对小麦的产量影响较大,可导致小麦减产10%~80%[1]。快速、有效地监测与识别小麦赤霉病的发生可对该病害有效防控提供信息支撑。
赤霉病监测与识别的最常用方法是人工观测。该方法操作简便,但在实践过程中工作强度大,且数据易受观测者主观经验的影响而不够准确。随着高光谱及图像分析技术的发展,基于现代信息技术的小麦赤霉病识别方法得到越来越多的关注、应用。刘爽提出基于k均值聚类法(k-means)结合kappa系数进行多次循环的方法来提取最优赤霉病训练样本,在PCA和SPA两个特征空间内结合光谱角匹配、k均值聚类法、最近邻域法、线性判别分析和支持向量机(SVM)五种分类算法构建多种小麦赤霉病识别模型,其中用SVM算法在SPA特征空间中构建的分类模型的分类性能最优,训练集和测试集的精度分别达到91.1%和88.8%[2]。鲍文霞等[3]通过多路卷积神经网络,利用深度语义分割网络对小麦图像进行分割并提取麦穗图像颜色特征,采用联合损失函数改善网络的性能,最终可对单株小麦赤霉病穗识别准确率达到100%。国外学者在赤霉病识别方面也取得了一些进展。Ropelewska等[4]设计了一个高光谱成像系统来获取小麦籽粒图像,并在选定的波长下提取纹理特征,建立了籽粒分类模型,精度在94%以上。Whetton等[5-6]利用高光谱成像仪获取小麦穗部光谱数据,并通过偏最小二乘回归分析建立模型来评估感染赤霉病的情况,效果较好。Bauriegel等[7]基于主成分分析法,选择500~1 000 nm之间的4个波长范围,并成功地利用这些波长来区分发病麦穗和健康 麦穗。
前述研究虽然效果不错,但实际生产中,早期赤霉病发生群体数量较少,难以满足研究的样本的需求,因此,很多学者开始探索新的分析方法。在图像分割方面,前人在CNN的基础上,创造性地提出了一种全卷积神经网络(fully convolutional network,FCN)。其利用卷积层替换CNN中的全连接层以获得图像中每个像素的分类结果,最终实现图像分割[8]。Ronneberger等[9]随后提出了一种新的FCN网络即U-net。该网络具有对称的U型结构,通过对图像特征的编码与解码,并融合网络高低层语义特征,可以实现较好的分割效果。与传统的深度学习网络相比,U-net 能够在较少样本量的情况下完成模型训练并实现图像分割,且训练效率和提取精度均较高[10-13]。但目前U-net模型在作物上应用还不多见。Wei等[14]面对研究区作物种植模式复杂的局面,采用改进的全卷积网络U-net实现对不同作物类型识别,在U-net模型中引入批处理归一化(BN)算法,解决了作物数量多、样本数不平衡的问题,极大地提高了网络训练的效率。陈 进等[15]采用改进的U-net 网络模型并加入Batch Normalization 层,对水稻图像中的籽粒部分进行分割,并通过综合评价指标对结果进行验证,对水稻籽粒分割的精度达到99%。
基于FCN卷积网络的典型应用是在分类识别任务中,小麦发生赤霉病后穗子的识别就是一种典型的分类问题。因此本研究基于U-net网络模型训练小麦赤霉病图像,获取小麦赤霉病发病麦穗的分割图像并对发病麦穗进行监测与识别,以期为小麦赤霉病穗识别提供一种新的方法。
试验于2017-2018年和2018-2019年在江苏省里下河地区农业科学研究所扬州试验基地(32°42′N,119°53′E)进行。11月上旬播种,顺序排列,每个品种均种植2行,行长2 m,行距25 cm,每行60株。所使用的小麦品种分为抗病、常规和易感3种类型。
于小麦扬花期在穗中部小穗的第一朵小花内,用微量进样注射10 μL赤霉病分生孢子悬浮液 (1×105个·L-1),每个品种接种20个单穗,然后用透明塑料袋将整个麦穗套住,采用人工弥雾保湿,并挂上纸牌标明接种日期,保湿72 h后去掉塑料袋。并在接种后21 d人工记载每份材料的发病小穗数。接种前后麦穗变化如图1所示。
接种前 Before inoculation 接种后 After inoculation图1 小麦发生赤霉病前后麦穗颜色变化Fig.1 Changes of wheat ear color before and after the occurrence of Fusarium head blight
本研究通过数码相机获取小麦赤霉病的图像信息。所用数码相机为SONY @6300,有效像素2 420万,显示屏为3英寸92万像素液晶屏,传感器APS-C画幅(23.5*15.6mm)ExmorCMOSsensor,4K高清摄像,配有存储卡SD/SDHC/SDXCmicroSD/microSDHC/microSDXC卡,续航能力强。
于接种后7 d开始,每隔6 d获取一次图像,至小麦赤霉病发病后期停止拍照。拍摄时采取相机垂直地面,距地面1 m高处获取小麦赤霉病图像信息,对获取的图像进行筛选,共选取小麦赤霉病发病前期和发病中期RGB图像各20幅。
1.4.1 图像处理软件
获取的RGB图像采用Matlab2018b、Labelbox等软件进行处理,图像中麦穗分为发病麦穗和健康麦穗两类。深度学习图像处理所使用的配置为NVIDIA Tesla K80 GPU 1x,15 GB Ram,100 GB SSD;使用的软件包括Deep Learning VM (Debian) on Google Cloud Platform,Tensorflow 2.1.0,Numpy,Matplotlib。
1.4.2 深度学习数据集构建
采用软件Labelbox对20幅图像进行人工标注,图像大小为6 000×4 000。由于田间麦穗形态比较复杂,本研究利用Harris角点检测算法对颜色特征或纹理特征处理后的二值图像进行角点检测,进而将麦穗从图像背景中分离出来[16]。
在上述基础上构建深度学习数据集。由于硬件(GPU)的限制,需要对图像进行分割。训练集由其中的18张分割而成,测试集由另外2张分割而成。考虑运行时间的限制,训练集中选择 700×700 为一个单位,每100 取一次样,共生成31 482幅700×700×3 的图像和其对应的标注。对于测试集则每200 取一次样,共获得918幅图像和对应的标注(图2)。为了消除标记过程中人为因素(边缘不明确)产生的误差,网络设计为 400×400×3的input和 output,通过压缩的方式把700×700的图像压缩到了400×400,并在训练集上使用数据增强技术(rotate,width/height shift,zoom)。最后把标记好的图像提取转化为png格式灰度图,数据集保存为json 文件。
图2 发病麦穗标记分割结果Fig.2 Segmentation results of pathogenic wheat ears marker
U-net模型在物体识别上非常流行,有很多图像识别的研究都采用U-net来进行物体识别分割[10-12,21-24]。U-net网络由一个收缩路径(左边)和一个扩张路径(右边)组成(图3)。其中,收缩路径遵循典型的卷积网络结构,其由两个重复的3×3卷积核(无填充卷积,unpadded convolution)组成,且均使用修正线性单元(rectified linear unit,ReLU)激活函数和一个用于下采样(downsample)的步长为2的2×2最大池化操作。在每一个下采样的步骤中,特征通道数量都加倍。在扩张路径中,每一步都包含对特征图进行上采样(upsample);然后用2×2的卷积核进行卷积运算(上卷积,up-convolution),用于减少一半的特征通道数量;接着级联收缩路径中相应的裁剪后的特征图;再用两个3×3的卷积核进行卷积运算,且均使用ReLU激活函数。通过对特征图进行裁剪,解决在每次卷积操作中,边界像素存在缺失的问题。在最后一层,利用1×1的卷积核进行卷积运算,将每个64维的特征向量映射网络的输出层。
图3 U-net网络结构Fig.3 U-net network structure
U-net模型的上采样部分还有大量的特征通道,允许网络将上下文信息传播到更高分辨率的层,因此扩张路径与收缩路径或多或少是对称的,并产生一个U形结构。网络没有任何完全连接的层,只使用每个卷积的有效部分,也就是分割图只包含像素,对于这些像素,输入图像中有完整的上下文。由于麦穗比较复杂,在使用Keras方法进行图像语义分割需要对U-net网络结构进行改进。本研究在原有的网络基础上,在下采样中的卷积层(convolution layer)下面共加入5层Dropout。第一层输入的卷积层图像大小为400×400×3,依次卷积,在下采样第十层卷积层时,输出的图像大小为25×25×3。同时,在下采样部分每个反卷积层下方加入了1层连接层(concatente),共4层连接层,最后的输出层使用卷积层来实现。第一层反卷积层的图像大小为25×25×3,最后一层卷积层输出时大小为400×400×3。
图4 基于改进后的U-net 网络结构图Fig.4 Network structure based on improved U-net
由于卷积神经网络中含有许多量纲参与运算,在样本较少的情况下,容易导致过拟合情况出现,而加入Dropout能够很好地解决该问题。在图像训练的过程中,根据一定的概率随机选中一部分神经元,使其仅保留计算出的权重,在下次迭代的时候进行更新。这样在分配权重时,不会给上一层某节点分配过度,可以有意识地让网络去学习一些普遍的共性,从而提高模型的泛化能力,防止网络过度拟合。
模型训练过程中采用二元交叉熵(binary crossentropy)作为损失函数来计算每一个像素之间的交叉熵,采用平均准确率(mean pixel accuracy,MPA)作为训练过程中的精度评价指标。为了减少分割过程中需要分割部分因为占比小产生高精度(accuracy)的现象出现,本研究使用平均交并比MIoU(mean intersection over union)对模型进行评估。交并比IoU是一个简单的测量标准,可用于监测任意大小的图像对象,其值越高,模型表现得就越好。
(1)
(2)
式(1)中,TP(true positive)为真阳性,指图像中标注为麦穗像素,预测结果也为麦穗像素的总个数;TN (true negative)为真阴性,指图像中标注为背景像素,预测结果也为背景像素的总个数;FP(false positive)为假阴性,指图像中标注为背景像素,预测结果为麦穗像素的总个数;FN(false negative)为假阴性,指图像中标注为麦穗像素,预测结果为背景像素的总个数。
(3)
式(3)中Loss为损失函数,gi为像素点i的真实类别,pi为网络对像素点i的预测结果。
(4)
(5)
式(4)、(5)中,PA(pixel accuracy)表示标记正确的麦穗像素占总像素的比例。MPA(mean pixel accuracy)表示计算每个类内被正确分类像素数的比例,之后求所有类的平均。k+1表示包括背景在内的语义类别总数,本实验值有两类,一类为发病麦穗,另一类为背景。pii表示真正的数量,而pij表示假正的数量,pji表示假负的 数量。
深度卷积神经网络有很多种训练算法,本研究采用收敛速度比较快的Adam算法。选择Adam optimizer函数作为参数优化器,设定初始学习率Ir=0.001,训练迭代的最大次数epoch=100,每次迭代训练1 000步,val 20步。当验证集损失不再继续降低时,对学习率进行衰减,衰减因子factor=0.1,衰减后的学习率为初始学习率与衰减因子的乘积。设置验证集损失不继续降低的容忍度为22个epoch,采用提前终止模型训练的策略(early stopping)结束模型训练。理论上模型的batch size越大越好,由于使用的tesla k80 GPU显存的限制,综合考虑,8是一个合理的数字[19]。选取发病麦穗数量不同的图像,在上述算法下进行图像训练,训练过程中保存结果的损失率和精度并利用之前保存的模型对 400 × 400 像素测试数据进行预测,然后与原始图像叠加后输出训练效果图(图5)。与原图像比,最终输出图效果较好,可以满足小麦赤霉病穗识别和监测的需要。
图5 U-net 模型训练效果Fig.5 Training effect of U-net model
基于改进的U-net 模型,利用测试集918幅图像对模型识别病穗的能力进行了验证。利用该模型以IoU大于0.5为标准确定监测目标。对所有目标的IoU进行平均得到其MIoU为 0.799。该模型的训练损失率Loss= 0.075 9,说明模型对图像的像素区分度较高(图6)。模型的平均精度为 0.969 4,说明模型的识别监测效果好,精度高 (图7)。
图6 U-net模型损失函数Fig.6 Loss function of U-net model
图7 U-net 模型精度Fig.7 Accuracy of U-net model
在小麦赤霉病验证集图像中随机选择一幅图像进行人工标记,标记结果与基于改进的U-net模型的识别效果进行比较。由图8可知,模型识别结果与人工标记结果一致性很好,具较高的监测精度。虽然模型还存在一些不足(图8b,其中黄色圆圈标注的为误检,蓝色圆圈标注的为漏检),如将本来是正常的穗子监测为病穗(误检),或者将本来是发病的穗监测为正常(漏检),但其误检率已经较低。
图8 人工标注和U-net模型监测结果对比(a:人工标注,b:U-net模型监测)Fig.8 Comparison of monitoring results between manual annotation and U-net model(a:manual annotation,b:detection of U-net model)
本研究基于 U-net改进模型对小麦赤霉病图像进行分割并识别。U-net模型不同于其他的分割模型,没有全连接层和预训练的分类模型,使得模型简化,收敛速度快[17]。在模型改进后,可以在复杂的背景下对目标进行分割,从而提高识别的精度。鲍文霞等[3]利用深度语义分割网络对小麦图像进行分割并提取麦穗图像颜色特征,实现了单株小麦赤霉病穗识别达到100%,但在群体赤霉病穗识别上还不够精确;丁串龙等[18]利用粒子群优化支持向量机算法(PSOSVM)构建了小麦赤霉病分类模型,对赤霉病的识别精度为92%;Zhang等[19]利用光谱植被指数(SVI)构建了小麦赤霉病的识别模型,总体识别准确率为89.8%。与前述研究相比,本研究在小麦群体图像识别上有较大的优势,平均识别精度达到 96.9%。
由于本研究中未对小麦赤霉病发病麦穗和健康麦穗进行分类,只是单一的监测分割出发病麦穗,而训练分割的图像中,有很多图像未包含发病麦穗,因此通过平均交并比MIoU来对模型的表现进行评估。与其他同类模型相比,U-net模型的MIoU较大,可以看出U-net模型效果较好[4,7]。另外,U-net模型在图像处理过程中采用批归一化(batch normalization,BN),BN的优点在于提升训练速度和加快神经网络收敛过程,其初始化要求不高,且使调参过程变得简单许多。此外,小麦生长通常呈不规则分布状态,两个或三个麦穗粘连在一起的现象时有发生,在后期的实验探索中,是一个需要突破的研究点。
除了模型的精度,训练过程中图像的处理时间也是要考虑的问题。U-net训练速度很快,在硬件资源有限的情况下,可以使用U-net模型尝试更多的处理。但由于U-net模型的网络较简单,训练过程中容易出现网络过拟合。因此研究需要采用大量的和不同类型的训练样本对U-net 神经网络进行训练,虽然利用数据增强技术进行数据集扩充可以部分解决这个问题,但由于受到实验区域以及品种类型的限制,采集的赤霉病图像数量还是有限,也导致在模型训练和验证过程中出现漏检、误检的问题。如果能消除或降低漏检、误检等问题,模型的性能将大大提升[17]。
研究选择了近来比较流行的深度学习网络U-net来对人工标记好的发病麦穗图像进行训练。通过该网络训练测试与验证,建立了基于U-net网络模型的小麦赤霉病识别与监测模型。经过验证分析,该模型平均精度为0.969 4,损失函数Loss=0.075 9,平均交并比MIoU=0.799,说明模型可以很好地监测小麦图像中的发病麦穗,并在发病麦穗的分割上具有很好的效果。因此,基于改进的U-net模型能够对该地区的小麦赤霉病进行识别与监测。