戴雨舒,仲晓春,孙成明,杨俊,刘涛,刘升平
(1. 江苏省作物遗传生理重点实验室/江苏省作物栽培生理重点实验室,扬州大学农学院,江苏扬州,225009;2. 江苏省粮食作物现代产业技术协同创新中心,扬州大学,江苏扬州,225009;3. 中国农业科学院农业信息研究所,北京市,100081)
赤霉病是小麦生产上最常见的病害之一,对小麦的产量和品质均有较大的影响。开展小麦赤霉病的快速识别与检测并提供相应的防控技术,是稳定小麦产量、保障粮食安全的重要举措[1]。国内外学者对小麦赤霉病的检测开展了较多的研究,尤其是在高光谱及图像分析方面。鲍文霞等[1]利用深度语义分割网络对小麦图像进行分割,通过多路卷积神经网络分别提取麦穗图像颜色特征,采用联合损失函数改善网络的性能,最终可对单株小麦赤霉病穗识别达到100%。张健等[2]利用短波红外光谱仪获取样本光谱图像,基于LabVIEW开发小麦赤霉病检测系统,能够有效检测出被赤霉病感染的籽粒。梁琨等[3]利用主成分分析方法,基于627.7 nm的波长,建立线性判别分析、支持向量机和BP神经网络的小麦赤霉病籽粒识别模型,准确率均达到90%以上。刘爽等[4]也开展了基于高光谱的小麦赤霉病籽粒识别研究,构建了基于线性判别分析法(LDA)、K-近邻算法(KNN)以及支持向量机(SVM)分类模型,准确率都达到90%以上。
Barbedo等[5]使用高光谱图像中4个选定的波段将小麦籽粒从其背景中分割出来,最后选择1 411 nm的波长来定义镰刀菌指数,表征被赤霉病感染的可能性。Ropelewska等[6]设计了一个高光谱成像系统来获取图像,并在选定的波长下提取大约200个纹理并分析了这些特征,建立了区分感染小麦籽粒的分类模型,精度在94%以上。Bauriegel等[7]基于主成分分析法,选择4个波长范围(即500~533、560~675、682~733和927~931 nm),并成功地利用这些波长来区分发病麦穗和健康麦穗。Jin等[8]设计了一套高光谱图像采集系统获取田间小麦穗部图像,并使用卷积神经网络(CNN)对病变穗和健康穗的像素进行分类,通过与其他模型对比,该方法在防止过拟合和优化泛化方面效果最好。在小麦其他病害或其他作物病害的识别上,不同学者也都利用图像或算法进行探索,并取得了较好的效果[9-11]。
以上研究都是通过特定波段建模来进行小麦赤霉病的分类,虽然高光谱成像可以很好用于小麦赤霉病的检测,但是在实际应用中存在着很多的问题和限制。如高光谱镜头高昂的价格以及其在采集高光谱数据时的复杂性等因素限制了其广泛的推广及运用。而且,从海量的高光谱数据集中提取信息也是一个巨大难题。近年来,随着深度学习以及机器学习等神经网络的发展,普通图像在小麦赤霉病检测上也有应用。Qiu等[12]采集小麦乳熟期彩色图像,处理后构建数据集,利用转移学习对深度卷积神经网络模型进行再训练,识别精度可达92%以上。因此,采用深度学习网络结合不同类型的图像对目标群体进行识别和分类是可行的,特别是Deeplab模型的应用[13-14]。但Deeplab模型目前主要用于遥感影像的分类及要素提取方面,其在作物上应用还不多[15-17]。本研究拟在前人相关研究的基础上,将Deeplab模型应用于小麦赤霉病的识别与检测。
由于小麦麦穗在图像中的分布存在黏连、遮挡、残缺等复杂情况,若使用传统的方法进行训练,会出现两个或多个麦穗同框的现象,也会出现麦穗缺失的情况。考虑语义分割的标记方法可以给每个像素添加标签,常被用来识别天空、草地、道路等没有固定形状的不可数事物(stuff),因此,采用语义分割(semantic segmentation)来标注目标麦穗[18-19]。同时为进一步提升模型的识别精度,研究选择了训练效果较好的基于深度分离卷积(Depthwise convolutions)的Deeplabv3+模型,该模型加入了简单高效的Decoder模块,具有最优的分割效果。
试验于2017—2018年、2018—2019年在江苏省里下河地区农业科学研究所扬州试验基地(32°42′N,119°53′E)进行。11月上旬播种,顺序排列,每行品种均种植2行,行长2 m,行距25 cm,每行60株,所使用的小麦品种分为抗病、常规和易感3种类型。
准备赤霉病菌孢子悬浮液(10 000个孢子/mL),于小麦扬花期用微量进样器在穗中部小穗的第一朵小花内注射10 μL分生孢子悬浮液(1×105个/L)进行赤霉病接种,每个株系接种20个单穗,然后用透明塑料袋将整个麦穗套住采用人工弥雾保湿,并挂上纸牌标明接种日期,保湿72 h后去掉塑料袋。并在接种后21天人工记录每份材料的发病小穗数。
1.3.1 图像获取设备
本研究通过数码相机来获取小麦赤霉病的图像信息。所用数码相机为SONY @6300,有效像素为2 420万,存储卡类型为microSD/microSDHC/microSDXC等。
1.3.2 图像获取与预处理
在接种后7天开始,每隔6天获取一次照片,至小麦赤霉病发病后期停止拍照。拍摄时采取垂直冠层1 m 获取小麦赤霉病图像信息。
然后对获取的图像进行筛选,共选取小麦赤霉病发病前期和发病中期RGB图像各20幅,采用Matlab2018b对选取的RGB图像进行预处理,去除背景杂质和边界干扰信息。
采用软件Labelbox对20幅图像进行人工标注,20幅图像大小为6 000像素×4 000像素,如图1所示。Deeplabv3+模型是全卷积网络,为像素大小预测,理论上可以输入任意大小的图像。但是由于硬件(GPU)的限制,不可能训练6 000×4 000的网络,所以需要对图像进行分割,如图2所示。测试集由其中的2张分割而成,训练集由另外18张分割而成。考虑到运行时间,选择700×700为一个单位,训练集每100取一次样,生成31 482幅图像和其对应的mask。对于测试集则每200取一次样,共获得918幅图像和对应的标注。为了消除不好的标记(边缘不明确)所导致的问题,网络设计为400×400×3的input和output,通过压缩的方式把700像素×700像素的图像压缩到了400像素×400像素,并在训练集上使用数据增强技术(rotate,width/height shift,zoom)。最后把标记好的图像提取转化为png格式灰度图,数据集保存为json文件。
(a) 发病麦穗人工标注 (b) 标注目标提取结果
图2 发病麦穗标记分割结果
Deeplabv3+将Deeplabv3作为网络的编码(Encoder)模块,包括基网络的特征提取、级联和并联的具有不同的空洞速率的空洞卷积层。在级联模式下,上层的空洞卷积接受下层的空洞卷积的结果,因此能产生更大的感受野。Deeplabv3+可以看作对Encoder的结果进行4倍上采样,然后与MobileNet V2中下采样前的Conv2特征Concat一起,再进行3×3的卷积,最后上采样4倍得到最终结果。基于提出的Deeplabv3+模型,本研究使用state of art进行图像分割,Encoder使用MobileNet V2为骨干网络,使用MobileNet V2来做backbone,轻量化,如图3所示。
图3 基于Deeplabv3+模型的小麦赤霉病发病麦穗检测流程图
1.5.1 MobileNet V2结构参数调整
Deeplabv3+模型的MobileNet V1没有很好地利用Residual Connection,而Residual Connection通常情况下总是好的,所以MobileNet V2加上了这部分内容。模型卷积之后通常会接一个ReLU非线性激活,在MobileNet V1里面使用ReLU6,ReLU6就是普通的ReLU,但是限制最大输出值为6。Mobilenet V2去掉了最后输出的ReLU6,直接线性输出。因为Xception已经试验证明了Depthwise卷积后再加ReLU效果会变差,而且Depthwise输出太浅了,应用ReLU会带来信息丢失[19]。试验结果证明去掉最后那个ReLU,效果更好。调整后结果如表1所示。
表1 MobileNet V2结构参数表Tab. 1 Structure parameters of MobileNet V2
1.5.2 Deeplabv3+模型训练
深度卷积神经网络有很多种训练算法,本研究采用了收敛速度比较快的Adam算法。选择Adam optimizer函数作为参数优化器,设定初始学习率Ir=0.007,训练迭代的最大次数epoch=100,每epoch:train 1 000步,val 50步。当测试集损失不再继续降低时,对学习率进行衰减,衰减因子factor=0.1,衰减后的学习率为初始学习率与衰减因子的乘积。设置验证集损失不继续降低的容忍度为20个epoch后采用提前终止模型训练的策略(Early Stopping)结束模型训练。该模型的Batch size设置为8,理论上Batch越大越好,但是由于使用的tesla k80 GPU显存的限制,综合考虑,设定为8。Deeplabv3+模型的部分训练参数如表2所示。
表2 Deeplabv3+模型训练部分参数Tab. 2 Parameters of Deeplabv3+ model training
选取发病麦穗数量不同的图像,在上述算法下进行图像的训练,效果图如图4所示。
(a) (b) (c) (d)
训练过程中保存结果的损失率和精度并利用之前保存的模型对400×400像素测试数据进行预测,然后与原始图像叠加。其中图4(a)为经过预处理的原始图像,图4(b)为人工标记后提取的效果图,图4(c)为模型训练结果,图4(d)为训练结果与原始图像叠加后的效果。由图4可知,Deeplabv3+模型能够实现小麦赤霉病发病穗的识别。
在模型训练过程中,采用二元交叉熵(Binary Crossentropy)作为损失函数来计算每一个像素之间的交叉熵,采用平均准确率(Mean Pixel Accuracy)作为训练过程中的精度评价指标。为了缓解分割问题可能出现需要分割的地方占比很小所导致的精度(Accuracy)很高但确实没有真的分类的问题,本文使用平均交并比MIoU(Mean Intersection over Union)作为标准评价语义分割算法性能。在图像分割领域MIoU值是一个衡量图像分割精度的重要指标,其可解释为在每个类别上计算IoU的值。
(1)
(2)
式中:k+1——包括背景在内的语义类别总数;
i——真实值;
j——预测值;
k——检测目标像素的数量;
pii——真正例的数量;
pij——假正例的数量;
pji——假负例的数量。
(3)
式中:gi——像素点i的真实类别;
pi——网络对像素点i的预测结果。
(4)
式中:MPA——计算每个类内被正确分类像素数的比例,之后求所有类的平均;
k+1——包括背景在内的语义类别总数,本试验值有两类,一类为发病麦穗,另一类为背景。
选取测试集的图像对赤霉病图像训练效果进行检验,结果如图5所示。由图5可知,该模型的训练损失函数Loss=0.103 0,说明模型对图像的像素区分度较高。模型的平均精确度为0.969 2,说明模型的识别检测效果好,精度高。另外从运算结果可知,模型的平均交并比MIoU=0.793,说明模型对图像的分割效果也很好。
(a) 损失函数
随机选择一幅标记好的图像来进行检测,如图6所示。从图6可以看出,基于Deeplabv3+模型的小麦赤霉病的识别与检测,与人工标记结果一致,具有较高的检测精度。但模型还存在一些不足(图6(b)中黄色圆圈标注的为误检,蓝色圆圈标注的为漏检),如将本来是正常的穗子检测为病穗(误检),或者将本来是发病的穗子检测为正常(漏检)。这些与模型训练的精度有关,也与验证图像的采集时间和角度有关。
(a) 人工标记图
进一步对测试集的图像进行分析,提取赤霉病麦穗的数量,与人工标记的数量对比后计算检测率,结果如表3所示。由表3可知,在随机选取的10组图像中,最低检测率为94.8%,最高达98.4%,平均检测率为96.9%。结果优于已知的相关研究,如丁串龙[20]利用粒子群优化支持向量机算法(PSOSVM)构建了小麦赤霉病分类模型,精度为92%,Zhang等[21]利用光谱植被指数(SVI)构建了小麦赤霉病的识别模型,总体识别准确率为89.8%。说明本模型对赤霉病麦穗的识别检测效果较好。
表3 基于Deeplabv3+模型的小麦赤霉病发病穗检测结果Tab. 3 Detection results of pathogenic wheat ears of fusarium head blight based on Deeplabv3+ model
1) 本文研究利用数码相机获取小麦赤霉病的RGB图像,通过图像标注和分割构建了训练集和测试集样本,选择深度学习网络Deeplabv3+对标记好的发病麦穗图像进行训练,并建立了基于Deeplabv3+的小麦赤霉病识别与检测模型。
2) 经过测试集图像的验证,模型的平均精度为0.969 2,损失函数Loss为0.103 0,平均交并比MIoU为0.793,与人工标记结果一致,具有较高的检测精度。
3) 模型还存在一些误检和漏检的情况,下一步研究将加强模型训练的精度,在优化训练和验证图像的采集时间和角度基础提升模型的识别精度。