陈子康 ,王庆辉 ,李彦磊
(河北科技大学,河北 石家庄 050000)
马铃薯传播到我国已经有数百年历史,如今它已经成为了我国第四大栽培作物。据统计,中国马铃薯2020 年播种面积在8 000万亩(1亩≈667m2,下同)以上,近20年其种植面积的年增长率高达4%[1]。但随着马铃薯为我国带来丰富经济效益的同时,马铃薯的头号“杀手”晚疫病也逐渐流行起来。这种病的流行性很强,造成的危害也很严重,在生长的过程中,一个季节就可能造成多次感染。我国薯农们对于晚疫病的识别方法主要还是依靠自身经验等传统识别方法,准确率较低,所以,能够将深度学习领域较为先进的技术与传统的农业领域相融合十分有必要。深度学习是计算机视觉中很重要的一部分,该技术是通过模拟人的大脑的神经网络进而提取各个图像中的特征数据,然后挖掘出图像中所需检测目标的深层次特征,从而更精确地识别新的目标图像。本研究引入当前深度学习中的Faster R-CNN目标检测技术来进行马铃薯晚疫病的图像识别,引用该技术可提高薯农们对于晚疫病识别的准确率,同时也可降低薯农的入行门槛。
当天气潮湿的时候,晚疫病通常发生在马铃薯的叶尖与块茎上,患病处呈现斑点状。马铃薯晚疫病的致病菌大都以菌丝体的形式寄居在马铃薯中,当将这种带有细菌的马铃薯种植下去后,这种带菌的马铃薯不会发芽或者长出芽后就死亡,最严重的是该马铃薯出土后长成病株,该病株会产生孢子囊,通过空气进行传播,进而形成发病中心,这会导致晚疫病由点到面,严重扩散。该孢子囊在下雨的时候还会被雨水带到泥土中,进而感染其他健康的马铃薯,可以称为“马铃薯中的传染病”,病情严重的时候,病斑会延伸到主脉或者叶柄,造成叶片萎蔫并且下垂,最后会导致整株植物焦黑湿烂。当天气干燥的时候,病斑将会变成褐色,不产生霉菌环。当块茎被侵染的时候,会形成褐色的或者紫褐色的不规则的斑点,造成轻微的下沉。病斑之下的果肉坏死部分呈褐色,颜色深度不等,病薯通常由于受到细菌的侵染而软腐[2]。
我国相对于国外发达国家的对农作物病害的检测研究开始时间起步稍微晚一些,国内的研究大致21世纪才开始,研究的几年来也在这方面有了不小的进展。
我国传统的马铃薯叶片病害研究通过使用OpenCV 技术对图像进行了灰度、二值化、去噪、直方图等图像的预处理操作,然后进一步使用滑动窗口在病害图像之中获取需要的特征值。还有使用遗传算法对特征进行特征选择,得到最优特征子集,并使用决策树Decision Tree,SVM,KNN,随机森林、高斯贝叶斯、逻辑回归分类算法对马铃薯的病虫害进行识别,得出识别结果。还有根据马铃薯叶片晚疫病的颜色、质地和形状的不同特征,提取叶片病灶区域的特征参数,并建立数学模型对病害进行评估。他们通过图像收集系统来采集一些马铃薯的图像信息,收集的图像通过中值滤波算法来进行预先处理,消除了噪声干扰,同时保留了更完整的叶色信息,使用GrabCut算法从静态图像中取出前景物体,计算量很大,但结果通常很精确,并提取马铃薯叶片的图像。通过使用OpenCV 的二值化函数threshold 来进行图像二值化,这样获得病理信息的特征[3]。在RGB 和HSV颜色空间中,根据马铃薯叶片病害早期叶片颜色的变化,利用颜色特征建立了马铃薯晚疫病无病模型。对于基于形状特征的识别,利用形状特征的相对特征,判断是否为晚疫病。
R-CNN是一个用来做目标检测和语义分割的神经网络(图1),每层会进行以下几个操作:
1)用Selective Searoh主成Region Proposal;
2)每个Region进行resize,输入CNN提取导长特征向量;
3)用线性SVM分类(classification);
4)Bonding box regression。
Fast R-CNN是卷积神经网络R-CNN的改良,Fast RCNN和RCNN相比,训练速度大幅减少,有以下操作:
1)用Selective Search 生成Region Proposal;
2)整张图像输CNN,获取feature map,每个Region 利用RoI pooling提取长特征;
3)进行softmax分类与bbox regression(多任务)。
图2 番茄晚疫病
图3 马铃薯晚疫病
通过番茄晚疫病叶 片数据集训练好的模型权重去训练我们自己的模型权重(马铃薯晚疫病叶片),如图2、图3 所示。其中,番茄模型作为数据集的预训练权重,而马铃薯就是将要用来分辨出马铃薯晚疫病的预训练权重。想要使用其他任务的训练权重,在进行优化的过程中,最重要的一个问题是如何选择较为合适的学习率。将神经网络分成了3块内容,分别是输入层、隐含层和输出层,层数越多我们的神经网络学习到的特征将越抽象,于是,将卷积层与连接层的学习率做成了不一样的。卷积层的学习率会设计得较低一些,而连接层的学习率设计得较为高一点。
将数据集进行了数据增强,通过对数据进行旋转、翻转、镜像、高斯模糊、锐度、亮度值和对比度调整、人为增加噪声等技术将少量的样本生成了更多的样本,如图4所示。还通过强化学习增强样本,将图片变个方向或者两张随机拼接在一起生成新的图片,使样本在原有数量下能够训练更多的次数,大大提高了样本丰富性,但缺点是需要一个预训练好的强化学习模型。
对Faster R-CNN 的超参数进行了一定的微调,刚开始训练的时候,设置了比较高一点的学习率以便系统能够跳出局部最优点,通过构建函数使得程序能够随着epoch的增大去慢慢降低学习率。通过EarlyStopping 函数来解决模型过拟合的问题。当验证集的准确率不再上升时,训练将会自动停止。
图4 马铃薯叶片的旋转与镜像
图5 迁移学习
本系统基于Faster R-CNN 算法,使用Django 发布到Ubuntu服务器,利用手机获取和上传马铃薯叶面病害图像,根据每一种病的不同,将数据集进行了分类,在图像预处理的过程中,对图像进行了数据增强,利用卷积神经网络对马铃薯叶片进行了特征提取,进而对马铃薯叶片的图片做出判断[4]。设计的目的就是为了以马铃薯晚疫病为切入点,获得马铃薯叶片的图片信息判断病害与否,以实现病斑显现时的准确识别,做到早期预防,从而减少因晚疫病造成的马铃薯减产损失,为薯农带来一定的收益。