番茄病害检测识别方法的构建与应用
2020-11-22孔德锋
孔德锋, 刘 聪
(湖北工业大学, 湖北 武汉 430070)
番茄是消耗量较大的蔬菜之一。防治番茄病害的关键是认清病害的种类,根据其发生流行规律,采取相应的管理措施,消除利于病害发生发展的环境条件,并根据不同的发病情况,对症采取相应的措施,及时控制病害的发生[1]。但番茄病害初期叶片上的细微变化,很难凭借经验用肉眼识别。
2017年斯坦福大学研究团队运用深度神经卷积网络CNN[2]对129 450张皮肤图片进行训练,训练完成后对该网络进行验证的结果显示,其可较好地识别健康皮肤和患癌皮肤。魏杨等[3]运用深度神经网络能够有效地提升农业害虫类别判断的准确度,精准定位农业害虫。
此研究对深度学习方法的运用为番茄病害检测提供了启发。随着目标检测算法研究的不断深入,Faster R-CNN和单次多框目标检测器(Single Shot MultiBox Detector,SSD)在目标检测上应用取得很好效果,但在小目标检测方面仍存在误检和漏检现象。针对此问题,李凤菊等[4]提出基于SSD算法融合上下文语义信息的反卷积网络,此网络在小目标检测上有较好的表现。江鹏等[5]使用SSD算法对苹果褐斑病、花叶病及铁锈病等3种常见叶片病害进行识别检测,其综合检测精确度达79.63%。
在番茄病害智能检测问题上,对小目标仍然出现漏检和误检的情况。鉴于此,在反卷单发多框检测(Deconvolutional Single Shot Detector,DSSD)算法基础上,采用K-means算法和手肘法对预选框宽高比重新聚类,选出更合适真实目标框的预选框宽高比维度来提高检测精度;在此基础上以AlexNet[6]、Inception-V3[7]和ResNet101[8]不同算法为基础网络模型进行迁移学习,选取最佳迁移学习算法的基础网络模型,旨在解决小数据集造成的检测精度不高和收敛速度慢等问题,为提高番茄病害预测预报的时效性和检测精确度提供依据。
1 材料与方法
1.1 材料
自然状态下番茄早疫病病叶及健康叶图片,采用VIVO Y81S手机在湖北省京山县修远蔬菜育苗专业合作社自然环境下拍摄,图像拍摄角度与距离随机。共拍摄1 436张图片,其中,病叶图片包括番茄早疫病发病初期到发病晚期不同阶段的病害叶片,包含大小不一、单个或多个的目标(图1)。
1.2 DSSD网络
1.2.1 网络结构 DSSD网络结构(图2)的基础网络为ResNet101,网络中conv3_x层为ResNet101中的卷积层。在conv5_x区块后面增加了5层逐渐减小的卷积层,其与conv3_x共同组成为DSSD网络的特征层。后面增加反卷积模块用于融合先前的特征层和反卷积层的上下文信息;同时,DSSD设计了新的预测模块将多尺度特征图导入由残差单元组成的预测模块中进行预测。
1.2.2 DSSD运算过程 DSSD网络目标检测是一个回归分类问题,其损失函数表达式如下:
式中,N是先验框的正样本数量;Lconf(x,c)为前景的分类误差平方和(SSE,sum of the squared errors)与背景的分类误差平方和的和;c为类别置信度;a为权重,设置为1;Lloc(x,l,g)为定位损失,是预测框l与实际目标框g间的Smooth L1损失;l=(lx,ly,lw,lh),(x,y)为预测边框的中心位置,w、h为预测边框的宽和高;g=(gx,gy,gw,gh),(x,y)为真实目标的中心位置,w、h为真实边框的宽和高。
1.3 番茄叶片病害的检测
番茄叶片病害的检测包括6个步骤:第一,先验框匹配真实目标框;第二,匹配完成后将真实目标的位置信息映射到先验框上;第三,对各个特征图中的正负样本进行预测得到预测框的置信度和位置信息;第四, 预测框的置信度和位置信息再与先前得到的先验框进行损失计算;第五,依据类别置信度确定番茄叶片病害的类别且剔除背景;第六, 运用NMS算法[9]隔离重叠度较大的预测框。
1.3.1 预选框宽高比的选取 由DSSD的目标检测原理知道,预选框越多匹配到真实目标的概率越大,从而提高检测精度,但在预测及进行NMS过程中也增加了计算量。基于此,选取合适的宽高比尤其重要。通过引进K-means聚类算法获取番茄叶片病变区域宽高比的k个聚类中心,并且利用手肘法寻找聚类的最佳簇数。手肘法的核心指标是误差平方和(SSE),最佳k值出现在SSE值下降最明显的位置(图3)。
DSSD生成预测框的原始方法是把固定数值作为宽高比,即使在训练过程中不断调整预选框的宽高比,最终得到预选框的维度也不能吻合检测物体的实际宽高。因此,依据YOLOv2生成预测框的方法,使用K-means聚类,计算出更精确的预选框宽(W)高(H)比。在原算法中,人为设定6种预选框{1,2,3,1/2,1/3,1},通过聚类试验选取k=5,从标签文件中获取番茄早疫病病害区域的宽高比,然后以获取到的宽高比数据进行目标框维度聚类试验。
式中,md表示降采样倍率,ωr表示预选框的宽度,ωk表示输入图像的宽度,hr表示预选框高度,hk表示输入图像的高度。
1.3.2 网络参数设置与测试样本制作
1) 测试样本制作。为了直观地看到用K聚类重新选取预选框后在小目标上检测能力更强,选取有代表性的样本图片进行对比,定义分辨率小于50×50像素的障碍物为小目标,在测试样本中标注物体共计954个,属于小目标的物体占比为75%。
2) 番茄叶片病害检测网络参数设置。为提高算法检测的正确率,在不同的训练阶段需调节学习率让模型收敛更快。在训练的初始阶段,随机权重与最优值差距较大,设置较大学习率。随着迭代次数的增加差距缩小,不断下调学习率,使神经网络的权重更精细。设置训练模型学习率初始值0.001,迭代3 000次后更改为0.000 1,迭代10 000次后更改为0.000 01。采用随机梯度下降算法优化,训练的batch_size大小为64。对于DSSD网络的训练,设置迭代次数为100 000,loss为0.25。训练结束后将测试集的图像输入模型进行测试,选取0.5作为置信度阈值,将K聚类方法选取先验框维度的DSSD算法与原默认先验框的DSSD算法目标检测结果准确率(mAP)比较,以此验证新方法在检测目标物上有更高的精确度。
1.3.3 迁移学习 通常传统机器学习和深度学习算法在设计上独立工作,其训练用于解决特定的问题。一旦特征空间的分布发生变化,就需要从头开始重新构建模型。迁移学习[10]具有可以合理利用现有网络的优点,当神经网络非常大型时,采用迁移学习通常可共用前面几层的训练,解决此类相互隔离的学习方式,并使用从其他任务获取的知识去解决相关的问题。因此,迁移学习摒弃了传统机器学习算法的两大基本假设: 1) 原有的训练样本和新的测试样本之间满足独立同分布;2) 训练样本量决定模型好坏。对于计算机视觉需要大量的数据,而且运算量很大,合理利用现有训练好的网络进行迁移学习,可以提高工作效率。通常可以使用域、任务和边缘概率定义迁移学习框架。域D定义为由特征空间X和边缘概率P(X)组成双元素元组;任务T可定义为标签空间y和目标函数P(Y|X)的双元素元组。在此选用之前已经训练好的3个最优DSSD模型AlexNet、VGG16和ResNet101进行测试,同时测试其无迁移学习的检测效果以作比较。
D={X,P(X)}
T={y,P(Y|X)}
Y={y1,…,yn},y1∈y
式中,X为特征空间(抽样数据点);P(X)而特征空间对应的边缘特征概率分布;y为标签空间,P(Y|X)为目标函数。
2 结果与分析
2.1 预选框的宽高比
从表1看出,通过聚类试验得到先验框的宽高比为1~3,大致聚为5类。宽高比,5类的平均宽高比在1.02~2.98,其中,Ⅴ类最高,平均宽高比为2.98,最高为2.98;Ⅱ类其次,平均宽高比为1.48,最高为1.48;Ⅲ类最低,平均宽高比约为0.49,最大为2.03。各类在试验总数中的占比依次为Ⅰ>Ⅱ>Ⅲ>Ⅳ>Ⅴ,依次为41.3%、25.6%、16.2%、10.1%和6.8%。表明,更符合样本的宽高比为1.0、1.5、2.0和3.0。
表1 检测输入图像宽高比的聚类结果
2.2 番茄叶片病害检测效果
从表2看出,DSSD算法中原始默认预选框对番茄病害细微粒的检测mAP为72.3%,而通过K聚类算法重新选取先验框后的mAP达86.1%;经过优化先验框的宽高比后,该检测方法的mAP提高13.8百分点,表明,通过K聚类算法选取的宽高比能提高目标检测精确度,降低漏检和误检率。
从图4看出,按照默认预选框DSSD网络检测的结果(a)与通过K-means重新选取预选框宽高比后DSSD网络检测出的结果(b)存在差异,改进算法可以检测出原算法漏检的部分目标。表明,改进算法对小目标有更好的检测能力。
表2 默认预选框与K聚类预选框检测番茄病害叶片精度
2.3 迁移学习对小数据集的检测效果
从表3看出,迁移学习在小数据集上对检测准确率产生了积极作用。AlexNet、VGG16和ResNet101 3种DSSD模型无迁移学习算法的检测准确率为61.3%~78.2%,而迁移学习算法的检测准确率为72.6%~86.0%,均以ResNet101为基础网络的DSSD模型具有最高的检测准确率;3种DSSD模型迁移学习算法较无迁移学习算法的检测精度分别提高18.43%、13.22%和9.97%。因此,可以选定ResNet101为迁移学习算法的基础模型。
表3 迁移学习与非迁移学习检测精度
3 结论与讨论
采用K-means和手肘法确定K值,运用聚类方法选取预选框合适的宽高比,并结合迁移学习优化AlexNet、VGG16和ResNet101为基础网络的DSSD模型构建番茄病害检测识别方法。研究结果表明,经优化后的AlexNet、VGG16和ResNet101为基础网络的DSSD模型,通过自制数据集,利用迁移学习算法解决了小量数据样本检测精度不够高的问题,其检测准确率为72.6%~86.0%;其中,以ResNet101为迁移学习算法的基础网络的DSSD模型对番茄病害的识别精确度较其余2种模型的更高,其对番茄病害的检测精确度达86%。该图像识别算法后期可集成于番茄病害检测系统,用于帮助番茄种植户方便、快速、及时且准确地检测番茄病害,做到早发现、早预防和早治疗。