杨 康,熊 凯,周 平,杨启良
(1昆明理工大学现代农业工程学院,云南 昆明 650500;2长沙理工大学水利与环境工程学院,湖南 长沙 410114;3四川三河职业学院,四川 泸州 646200)
作为我国重要的地道中药材,三七Panax notoginseng特有的三七总皂苷、三七素、三七黄酮A和三七黄酮B等有效成分对人体血液循环系统相关疾病有着非常好的治疗效果[1-3]。但随着种植面积的增加,三七病害类型愈发复杂,病害区域也在逐年增加,已成为限制三七产量和品质的重要因素[4-5]。准确识别病害类型是田间管理和保护的重要措施,但传统的三七病害识别依赖于专业技术人员或种植户的经验,存在工作量大、周期长、主观性强、实时性低等缺点[6-8],且大部分三七病害为侵染性病害,传播速度极快,往往在采取防治手段之前就已大面积感染,严重影响三七产量,因此实现快速、准确、无损的三七病害检测至关重要。
近年来,国内外学者利用机器视觉技术对作物病害的无损识别和诊断进行了广泛研究。早期对于作物病害的识别方法有支持向量机(SVM)[9]、决策树[10]、DPM检测器[11]、贝叶斯分类[12]等,但这些方法在特征抽取阶段仅能获取颜色、形状等图像的底层特征,由于田间气候的多样性以及病害种类的相似性,这些特征表达能力受到极大挑战,导致图像识别精度较低,难以直接应用于实际的农业生产[13]。
随着计算机硬件水平的提高,深度学习技术凭借强大的特征表达能力以及自动学习特征的优点,在复杂环境下的图像识别中表现优秀[14],并广泛应用于作物病害识别研究中。林建吾等[15]基于轻量化卷积神经网络对番茄病害进行识别,平均准确率达到99.87%。刘合兵等[16]将卷积神经网络MobileNet和迁移学习相结合识别玉米病害,平均准确率为84%。周巧黎等[17]提出一种基于改进MobileNetV3的番茄叶片病害分类识别方法,准确率为98.25%。王远志等[18]通过改进的Faster RCNN对苹果叶部病害进行识别,平均精度为87.21%。上述基于深度学习的农作物病害识别应用场景大多局限于室内环境。田间也有大量案例。王云露等[19]通过改进Faster R-CNN对苹果叶片病害进行识别,结果表明改进后的模型对单张病害图像的识别准确率达98.3%。李就好等[20]提出一种基于改进Faster R-CNN的苦瓜叶部病害目标检测方法,平均精度为86.39%。王林柏等[21]通过对比不同神经网络模型,提出一种改进型的CenterNet-SPP模型对马铃薯晚疫病进行检测。张文静等[22]基于InceptionV3网络使用迁移学习方法构建烟草病害识别模型。
三七病害极强的侵染性以及其复杂的田间生长环境,导致两阶段目标检测算法在训练和检测时容易产生窗口冗余,难以满足实时检测的要求。而单阶段模型网络较深,计算量大,导致对移动端设备有很高的要求[23]。本研究基于SSD(Single shot multibox detector)[24]模型,提出一种改进的精准性、实时性、轻量性并存的RFB-MobileNet-SSD模型,以期为移动端实时检测三七叶片病害提供技术支持。
试验以昆明理工大学三七控水减排提质增效关键技术研究与示范基地大棚内的5年生三七为试验对象,通过基地搭建的3台摄像头(凯卫讯HVX-ZS71200W-LS)进行图片样本采集,共采集样本10500张,将所有样本大小裁剪到640像素×640像素,并使用LabelImg工具对数据集中的灰霉病、病毒病、白粉病、圆斑病4类叶片病害分别进行标注,其中,灰霉病2739张,病毒病3025张,白粉病3156张,圆斑病2382张。最后按照7∶2∶1的比例将数据集分为训练集、验证集与测试集。
三七病害的病害表征各异且区别较大,圆斑病和灰霉病的发病区域较大,病害特征较为明显;白粉病发病区域较小,病害部位较为密集;病毒病发病表现不明显。SSD模型具有高密度锚点设计和多维多纵横比金字塔特征,可以实现多尺度地预测。本文选用SSD模型作为基础模型架构,采用轻量级网络MobileNet改进SSD模型基础网络的参数量,构建RFB(Receptive field block)模块扩大轻量级卷积神经网络的感受野并提高轻量级网络的深层特征,通过对比分析SSD、MobileNet-SSD、RFBSSD、RFB-MobileNet-SSD 4种拓扑模型的运行性能,得出精准性、实时性、轻量性并存的三七叶片病害检测模型。
1.2.1 SSD算法为实现不同发病特征的三七叶片病害检测,本文采用SSD作为基础架构搭建模型,模型前端采用VGG16网络结构作为基础特征提取网络,用于提取低尺度的特征映射图;后端为额外添加的多尺度特征检测网络,通过池化操作将前端网络所提取的特征图尺寸逐层降维,进而使用不同卷积层的多个特征图预测物体的类别以及边界框的偏移,实现多个尺度的特征图预测,使用非极大值抑制(Non-maximum suppression,NMS)产生最后的检测结果。
1.2.2 MobileNet网络结构为解决三七病害检测存在的时间长、参数调整困难、模型尺寸大等问题,本文选用适用于移动端的MobileNet轻量级神经网络作为特征提取主干网络,实现轻量化、实时性的三七叶片病害检测。MobileNet使用深度可分离卷积(Depthwise separable convolution)来代替传统的标准卷积,通过改变卷积计算方法,以降低网络参数量,平衡检测精度和检测速度。
深度可分离卷积将标准卷积分解为深度卷积和点卷积。深度卷积将每个卷积核单独应用于每一个输出通道,生成二维平面特征图。点卷积将深度卷积生成的特征图在深度方向上进行加权组合。采用该操作不仅可以增加网络的深度,提高网络的非线性表示,并且还可以降低模型的参数量,从而实现轻量化的目的。普通卷积与深度可分离卷积的操作对比如图1所示。
图1 卷积操作对比示意图Fig.1 Comparison diagram of convolution operations
输入、输出的特征图大小分别为Q和P,计算公式为:
式中,W1、W0分别为输入、输出特征图的宽度;H1、H0分别为输入、输出特征图的高度,M、N分别为输入、输出通道数。
标准卷积的参数量(Y)、计算量(R)为:
式中,K为卷积核的大小。
深度可分离卷积的参数量(Z)和计算量(X)为:
则标准卷积与深度可分离卷积的参数量、计算量对比如式(7)、(8)所示:
在本文模型中,输入图像尺寸为640×640×3,且由于输出通道数量较多,卷积层数量较多,各卷积层多采用3×3卷积核,对比VGG16和MobileNet的计算量以及计算参数发现,VGG16网络参数量约为1.38亿,计算量约为464.17亿,采用MobileNet基础网络的参数量约为0.046亿,占VGG16网络参数量的3.33%,计算量约为18.13亿,占VGG16网络计算量的3.90%。一般而言,神经网络的层数越深,计算参数越多,计算量越大,虽然产生的网络更深且更加细致,但最终训练的模型效果反而不佳。采用MobileNet作为模型的基础网络,不仅可以增加模型的深度,提高模型的特征提取能力,而且在减少模型参数的同时,降低计算损耗,以4字节进行储存时,采用MobileNet基础网络的模型所占内存更小,模型更加轻量化,更易于移植到移动端设备中。
1.2.3 RFB结构基于轻量级网络MobileNet的检测器可以实现实时检测的目的,且更利于移动端的工程部署,但相对检测精度较低,因此,本研究通过手工机制增强轻量级特征,构建了1个快速准确的检测器。选用RFB(Receptive field block)模块能够更好地模拟人类视觉系统,具有不同尺寸的感受野相对应的不同卷积核的多分支卷积层,应用膨胀卷积为每个分支分配单独的偏心率,以模拟群智感受野pRF(Population receptive field)的大小和视野偏心率之间的比率,将所有的分支合并进行卷积变换,产生RF(Receptive field)的最终空间阵列,整合输出最后的特征图尺寸,以此增大特征提取层的感受野,在不增加网络计算量的同时,提高轻量级卷积神经网络的准确率。
首先,在每个分支中使用1×1的卷积层构成的瓶颈结构,以减少特征图中的通道数量,再结合3×3的卷积层;其次,将5×5卷积层替换为2个叠加的3×3卷积层,在获取相同感受野大小的同时减少参数量,并且可以增加网络更深层次的非线性表示;最后,采用Shortcut连接,通过这种连接方式的改进,可以缓解深度网络中的梯度发散问题。其结构如图2所示。
图2 RFB模块结构图Fig.2 RFB module structure diagram
结合空洞卷积的特点,设置RFB模块结构来改善模型的精度,空洞卷积的原理如图3所示。RFB结构通过设置不同分支上大小不同的卷积,匹配与自身核大小相同的多分支池化,利用扩张卷积控制离心率的大小,采用填充的方式将采样点周围像素点均设为0,然后将图中每个采样点所对应的感受野叠加,构成多层级感受野,如图3d所示,达到增大感受野的目的。距离中心采样点较近时赋予小卷积核较大的权重,距离中心采样点较远时赋予大卷积核较小的权重,最后将不同尺寸和不同离心率卷积层的输出进行融合,达到融合不同特征的效果,进而提高主干网络的深层特征。
图3 空洞卷积原理图Fig.3 Schematic diagram of the hole convolution
1.2.4 三七病害检测模型本研究主要目的是保证网络模型性能,减少模型参数量,提升模型速度和可移植性,但由于MobileNet网络提取特征能力较弱,因此提出RFB-MobileNet-SSD模型,能在采用轻量级卷积网络的同时,扩大卷积层的感受野,从而提高三七病害深层特征的可辨性,其构建流程如下:输入端,图像的分辨率由300×300提升为640×640,因为多层卷积会压缩图片的分辨率,导致图像信息的流失,而采用更高分辨率图像,会使后续提取特征图尺寸变大,提取信息更加完善;采用MobileNet(去掉全局平均池化层、全连接层和softmax层)作为特征提取骨干网络,骨干网络及额外特征层卷积核的大小(除Conv14_1、Conv15_1、Conv16_1、Conv17_1是1×1的卷积核)都为3×3的卷积核;结合SSD模型多尺度预测结构,在主干网络后添加8个卷积层,设置提取特征卷积层为Conv11、Conv13、Conv14_2、Conv15_2、Conv16_2、Conv17_2,在Conv11、Conv13、Conv14_2、Conv15_2分别添加4个RFB模块来扩大感受野。由于特征图的空间分辨率逐渐降低,视野逐渐增大,浅层特征对于检测小物体起至关重要的作用,所以Conv16_2、Conv17_2未添加RFB模块,最终构建的网络模型结构如图4所示。
图4 RFB-MobileNet-SSD网络结构Fig.4 RFB-MobileNet-SSD network structure
模型训练采用微型计算机进行,系统选用Windows10操作系统,计算机硬件配置分别为:NVIDIA GeForce RTX 2070GPU,32GB运行内存,模型训练框架为Pytorch,Python3.6语言进行编程,以CUDA 11.0 GPU作为加速库。通过不断训练调整参数,以获取最佳的参数配置:模型权重为0.001,初始学习率0.004,批量尺寸设置为8。
为了对三七叶片病害检测效果进行合理分析,本研究选用检测准确率(P)、召回率(R)、F1精度、平均准确率(Mean average precision,mAP)、模型单幅图像检测时间以及模型尺寸来比较模型优劣以及检测效果。单幅图像检测时间表征模型的检测速度,模型尺寸表征模型参数以及计算量大小。
式中,TP为算法检测正确的目标数量;FP为算法检测错误的目标数量;FN为算法漏检的目标数量;n表示图片数量。
训练过程中曲线走势能够反映出训练的有效性。图5为SSD、MobileNet-SSD、RFB-SSD以及RFB-MobileNet-SSD模型的训练曲线,结果显示,MobileNet-SSD模型在迭代5000次时尚未收敛,且在0到3 000次迭代时曲线还存在明显数据震荡,说明MobileNet作为主干网络提取病害特征能力不足,进而导致模型不能完全有效、准确地识别三七叶片病害部位以及病害类别。对比SSD与MobileNet-SSD模型,VGG16具有更深层次的特征提取网络,数据震荡相对减缓,但并未收敛。对比RFB-SSD与RFB-MobileNet-SSD可以发现,2个模型都存在着较小的数据震荡,但是在迭代到3 000次左右时损失曲线已趋近平缓,震荡基本消失,表明模型精度已趋向稳定,且相比RFB-MobileNet-SSD模型,RFB-SSD模型将最后的稳定损失值从3.2降低为2.8。
图5 各模型训练Loss曲线图Fig.5 The training Loss curve of each model
RFB-MobileNet-SSD与SSD模型在相同的三七叶片病害数据集上进行消融试验,各性能指标如表1所示。由消融试验结果可知,使用MobileNet网络改进后的模型,准确率、召回率、F1精度分别下降了1.5、3.4和2.5个百分点,模型尺寸缩小45.5%。这是由于MobileNet特征提取能力不足,导致模型精准度有所下降,但采用深度可分离卷积操作,可以减少模型的计算量以及参数量,缩小模型尺寸。采用RFB结构实现卷积核采样点的均匀分布,以此获得多层级感受野,使改进后的模型对三七叶片病害图像提取特征具有较大感受野的同时,保持三七叶片病害图像的分辨率,保留更多的三七叶片病害信息,进而提升模型检测精度,准确率、召回率、F1精度分别提高了4.9、7.3和6.2个百分点,并且引入RFB模块,对模型尺寸的影响较小。综合使用MobileNet和RFB模块的改进后模型的准确率、召回率、F1精度分别提高了4.6、6.1和5.4个百分点,模型尺寸降低了45.4%。因此采用轻量级卷积神经网络可以减少模型的尺寸,提高模型的检测速度,RFB模块可以通过增大模型感受野的方式,提高病害特征的可辨性,综合使用2种结构得到的RFB-MobileNet-SSD不仅可以达到较好的检测效果,且模型更小,更利于三七叶片病害检测模型的移动端部署。
表1 消融试验性能指标对比Table1 Comparison of performance indicators of ablation experiments
RFB-MobileNet-SSD与其他算法模型的检测性能对比如表2所示,试验对比了SSD和以MobileNet为基础网络的SSD模型,此外还对比了单阶段模型YOLOv3(You only look once算法的v3版本)以及二阶段中表现较优的Mask R-CNN。
表2 不同模型检测性能对比Table2 Comparison of detection performance of different models
由表2可知,各模型对圆斑病和灰霉病的检测效果均优于白粉病和病毒病,这是由于白粉病发病区域小导致所占像素点较少,而病毒病的病害表征不明显,所以这2种病害在固定区域内的信息反映较少导致检测效果较差。RFB-MobileNet-SSD在所有类型病害的检测中准确率均优于SSD、MobileNet-SSD和YOLOv3,但低于RFB-SSD和Mask RCNN。这是由于YOLO系列算法直接在图像上进行回归,没有复杂的框架限制;虽然对于全局信息表现较好且速度很快,但对小目标表现较差。
对比RFB-SSD可以发现,RFB-MobileNet-SSD模型损失了较小性能,但单幅图像检测时间缩短了71.83%,这是因为不同基础网络提取出的病害特征不同,而VGG16网络模型计算量巨大,对各类病害的准确率提升较小,但检测速度严重损失,而由于三七田间环境的复杂性以及病害的侵染性,RFB-MobileNet-SSD模型可以在保证较高精度的同时,实现实时检测的目的,且模型尺寸的缩减更利于部署在移动端设备中。
对比二阶段的Mask R-CNN模型可以发现,改进后的RFB-MobileNet-SSD的准确率、召回率、F1值精度都有所下降,但RFB-MobileNet-SSD每秒检测的图片数量几乎是Mask R-CNN的107倍,这是因为在二阶段模型RPN(Region proposal network)结构中进行了前景和背景的分类和检测,而单阶段的目标检测是直接在图像上进行回归,因此二阶段模型分类和检测要更加简单,有了前景和背景的区分,就可以选择性地挑选样本,使得正负样本更加均衡,然后重点对一些参数进行分类训练,使Mask R-CNN的检测准确率较RFB-MobileNet-SSD表现更优,但是正是因为二阶段模型的RPN结构,候选框的生成以及框分类不能同时进行,所以导致其速度严重下降。
在三七实际病害检测中,需要考虑到算法的检测速度和模型的复杂度。二阶检测模型Mask RCNN虽然精度高,但其构成相对复杂,模型尺寸较大,检测速度较慢,不能满足实时检测的需求;RFBSSD模型由于巨大的参数量,速度也不能达到要求;相比于原始SSD,RFB-MobileNet-SSD准确率、召回率、F1精度分别提高了4.6、6.1和5.4个百分点,单幅图像检测时间由SSD模型的0.073 s缩短为0.020 s,所以改进后模型可以实现精度与速度并存,模型尺寸更小,更利于移动端三七叶片病害防治系统的部署。
随机选取含有不同类型病害的图片对SSD和RFB-MobileNet-SSD进行测试,典型测试结果如图6所示,由图6可知,RFB-MobileNet-SSD检测灰霉病、圆斑病和病毒病的置信度均高于SSD模型的。对于发病区域较小且密集性发病的白粉病,SSD模型置信度最大为78%,且存在较多漏检区域,而RFBMobileNet-SSD模型对于白粉病的置信度均为90%以上(图6c)。SSD模型检测圆斑病的置信度均为99%,高于RFB-MobileNet-SSD模型的96%(图6d)。
置信度差异表明原始SSD模型对于圆斑病以及发病区域较大的灰霉病识别效果较好,这是因为圆斑病以及灰霉病的病害特征更明显,特征图经过层层卷积的降维,病害信息流失较少;但对白粉病以及病毒病的识别效果较差,这是因为白粉病的发病区域较小、病毒病的发病特征不明显,在检测时,采用低层网络特征信息,导致缺乏高层病害特征,使得对小物体的检测效果较差。RFB-MobileNet-SSD通过RFB模块增强了对不同视野的分辨能力,通过对不同特征的融合,能够获取更高分辨率的特征,从而获取图像中更丰富的病害信息,增大对小目标(白粉病)以及发病区域不明显的病毒病的敏感性,提高这2种病害检测的准确率。
图6 置信度对比图Fig.6 Confidence comparison image
算法鲁棒性是指算法在各种干扰噪声中保持正常工作的能力,三七叶片病害的实际检测中存在各种环境干扰问题,例如拍摄叶片图像时光线不足、雨雾干扰等情况,这就要求算法有较强的鲁棒性,能够在不同条件下保证检测的准确性。随机选取拍摄图片并对图片进行雾化、加雨等操作后作为测试图片,结果如图7所示。浓雾环境与降雨环境下SSD模型对于灰霉病的识别效果均低于RFBMobileNet-SSD,且浓雾环境中SSD模型并未检测出白粉病的发病区域,RFB-MobileNet-SSD检测夜间白粉病的置信度达到89%;降雨环境与夜间环境下,SSD模型对病毒病和白粉病的检测效果均低于RFB-MobileNet-SSD,且出现明显漏检。SSD模型检测白粉病时,发病区域的检测框出现大量重叠;在夜间,SSD模型对于圆斑病的检测置信度高于RFB-MobileNet-SSD的。
图7 鲁棒性对比图Fig.7 Robustness comparison image
鲁棒性差异表明,由于白粉病和病毒病在固定区域中表现的信息较少,所以通过多层卷积提取特征后,特征会变得越抽象,细节也会越差,所以SSD模型对于白粉病和病毒病的检测效果相对较差。而RFB-MobileNet-SSD由于采用扩大感受野模块,增强了对不同视野的分辨能力,进而增强网络特征提取能力,对小目标的检测更加敏感,能够在实际环境中达到更好的检测效果。
本研究将SSD作为基础模型架构,使用RFB模块和轻量级卷积神经网络(MobileNet)改进SSD算法的主干提取网络和顶部卷积层,并用含有4种三七叶片病害的图像进行训练,通过置信度和鲁棒性对比试验,得出以下结论:
相较于原始SSD算法,轻量级卷积神经网络(MobileNet)和RFB模块不仅能够减少模型训练时间、缩小模型尺寸,且对算法的精确率提升明显。改进后算法的网络参数量以及参数计算量仅为原始算法的3.33%和3.90%,单幅图像检测时间由SSD模型的0.073 s缩短为0.020 s,模型尺寸缩小了45.4%。
改进算法(RFB-MobileNet-SSD)在提升检测速度的同时对4种病害的检测精准率均优于原始算法,准确率、召回率、以及F1精度较原SSD算法分别提升了4.6、6.1和5.4个百分点,且添加RFB模块对模型的尺寸以及检测速度影响很小。
模型的置信度与鲁棒性对比试验结果表明,改进算法对小目标病害的检测均优于原始算法,且在不同环境中鲁棒性得到提升,更适合复杂的田间环境下的三七病害检测。