刘阗宇,冯 全,杨 森
(甘肃农业大学机电工程学院,兰州 730070)
近年来,我国酿酒葡萄产量居世界前列,葡萄酒需求增加。目前,识别葡萄病害多采用专家人工鉴定,人员素质要求高,无法实现病害自动化监测与处理。叶片病害自动检测对葡萄生长评估、病害危害程度评价等工作有重要意义。为此,本文提出一种基于卷积神经网络葡萄病害检测方法,首先对监控视频图像中葡萄叶片检测定位,在叶片有效区域准确检测病害位置,可为后续病害处理措施提供技术支持(如检测到病害区域可自动喷洒农药等)。
基于机器视觉目标检测算法,从滑动窗口类型目标检测算法[1]到基于卷积神经网络目标检测算法[2-4]在检测精度上有显著提升。基于机器视觉目标检测方法应用广泛,如人脸检测[5-6]、行人检测[7-8]、车辆检测[9-10]等。将机器视觉目标检测方法应用于叶片病害自动检测,可实现后续病害处理工作自动化,提高葡萄产量、节约人力。
杨森等提出改进后可变部件模型(Deformable Parts Model,DPM)葡萄叶片检测算法,可消除光照变化对叶片检测结果影响,但对叶片间相互遮挡情况检测效果较差。对叶片表面病害区域,不同病害呈现图像特征不同,成片状或点状;同一病害不同发病阶段特征变化,逐渐从点到片。在发病初期,病斑较小,在整幅图像中所占面积较小,不易检测。采用滑动窗口提取特征检测方法对于病害区域检测难度大。此外,现有基于机器视觉病害分析方法以病害识别为主,张建华等提出一种基于最优二叉树支持向量机(Support vector machine,SVM)蜜柚叶部病害识别方法可对黄斑病、炭疽病、疮痂病、煤烟病等4种蜜柚叶部病害分类识别[11-12];王守志等提出基于核K-均值聚类算法植物叶部病害识别,对采集的玉米病害图像用矢量中值滤波法去除噪声,提取玉米叶部病害的纹理特征和颜色特征为特征向量,把输入空间的样本映射到高维特征空间作K-均值聚类及植物病害识别[13]。病害识别不同于病害检测,无法自动从图像中获取病害区域,需要人工提取病害区域后识别[14-15]。
本文提出适用于复杂背景下葡萄叶片病害检测方法,可准确定位叶片中病害区域。叶片中病害区域具有不规则、小尺寸特点,实际采集叶片图像,背景部分(例如杂草、地面)与叶片表面病害区域相似,直接在原始图像中病害检测可造成误检,精度降低。褐斑病样例见图1,其中蓝色和红色框分别是错误和正确检测结果。
图1 病害检测结果Fig.1 Diseases detection
本文检测图像中叶片区域为病害。由于叶片形状较固定,图像中占面积较大,相对病害斑点易检测,可有效减少背景干扰。叶片形态多变,相互间存在遮挡,自然环境干扰(如风力影响)可使葡萄叶片形态发生变化,不同姿态叶片可影响检测精度。
本文提出在基于卷积神经网络区域建议算法(Faster-Region Convolutional Neural Network,Faster-RCNN)检测结构基础上,改进检测结构中区域建议网络[4]。通过对区域建议网络(Region Proposal Network,RPN)[4]生成建议区域(Proposals)[16]多角度旋转,选出最优建议区域,提高建议区域质量。相较原Faster-RCNN检测算法,对自然条件下多姿态叶片检测精度更高。获得叶片具体位置和区域后,本文在叶片上采用两种方法检测病害,检测框架如图2所示。
图2 病害检测框架Fig.2 Network architecture of diseases detection
试验样本图像采集于甘肃农业大学酿酒葡萄试验田及甘肃省天水市多个葡萄种植园,采集对象为自然条件下生长叶片,采集时间为农历5~6月中旬,图像采集过程中,不同角度拍摄取样实际生长叶片,拍摄距离为距叶片1~4 m,综合考虑天气、光照变化影响,分别在光照充足、阴影和光照不足(阴天)3类情况下采集试验样本。3类试验样本中,按以下条件分类:①图像中叶片间无互相遮挡,有完整叶片形状;②图像中叶片生长密集,存在相互遮挡;③自然条件下形态变化叶片,多为风力影响导致叶片形变、旋转。采集图像共6 000张,分为训练集和测试集。其中,训练集包含3 841幅图像,分为叶片训练集(3 500幅图像)和病害训练集(341幅图像);测试集共2 159幅图像,分为叶片测试集(1 800幅图像)和病害测试集(359幅图像)。病害类型包括下面几种典型葡萄病害:褐斑病、白粉病、灰霉病、霜霉病、黑痘病和炭疽病,6种病害样本如图3所示。
图3 葡萄病害叶片Fig.3 Example of leaf diseases
2.1.1 叶片检测结构
在目标检测任务中,基于深度学习目标检测算法比传统检测算法在常见对象检测方面精度高。其中Faster-RCNN是典型算法,引入RPN网络,结合基础区域建议卷积神经网络(Fast-Region Convolutional Neural Network,Fast-RCNN)检测结构,将整个检测过程统一在1个网络内,实现到端训练[3]。本文发现,自然生长葡萄叶片角度变化较大时,普通Faster-RCNN对叶片检测效果下降。
本文使用Faster-RCNN作为基本检测结构,葡萄叶片形态特点优化检测算法,检测算法更适于葡萄叶片检测,检测精度提高。在叶片检测过程中,Faster-RCNN利用卷积方式实现建议区域提取,在最后一层卷积特征图上,加入RPN网络结构提取候选区,经候选区域(Region Of Interest,ROI)池化层将建议区域统一到同一尺度下,目标分类、边框位置与尺寸预测[3],叶片检测结构见图4。
图4 叶片检测结构Fig.4 Network architecture of leaves detection
2.1.2 叶片检测方法优化
检测结构中RPN区域建议网络实现建议区域提取。原始RPN锚点采用三种尺度长宽比例(0.5、1.0、1.5)[4],为适应多类目标检测(PASCALVOC数据集中为20类)[17]。但对特定对象,不合适锚点长宽比可降低检测精度,考虑葡萄叶片形状特点,需更紧致边界框,本文将原始RPN锚点窗口优化。自然条件下叶片姿态不同,同一地点不同时刻拍摄图像,叶片角度可发生改变,影响检测结果。为解决此问题,制作训练集时对叶片图像分类,其呈角度分4类:①叶片方向大体端正为第1类;②大体叶片大体呈45°或-45°为第2类;③叶片大体呈90°为第3类;④叶片侧翻为第4类。本方法待检测目标类为4种叶片类。分别对每一类叶片人工标定边界框长宽聚类,得到锚点窗口4种优化长宽比,分别是:第1类1∶0.86,第2类1∶1,第3类:1.16∶1,第四类:1.75∶1。此外,设置3种检测尺度(64、128、256),以适应图像中叶片尺寸(拍摄距离不同,同一张叶片在图像中尺寸不同),每个锚点上合计12个检测窗口。
在叶片图像训练过程中,输入图像经过Visual Geometry Group(VGG-16)网络获得特征图[18],VGG-16为牛津视觉几何组开发卷积神经网络结构,在深度学习领域中应用广泛,该网络结构共16层,在最后一层特征图上(即conv5_3,深度512维)[18],RPN网络3×3滑动窗口扫描,找到窗口中心点在原图对应点为锚点,以锚点为中心12个检测窗口任一窗口与预先标定边界框比较重叠区域,如果某个锚点上交叠率IOU(intersection over union,IOU)>0.7时[16],即一个目标正样本(叶片区域);当IOU<0.3时,则为负样本(背景区域)。当滑动窗口对整张特征图扫描完后,获一幅图像目标正样本,对特征图上目标正、负样本位置窗口(3×3×512)经卷积操作,生成512维特征向量。最后对所有特征向量按照上述4类Faster RCNN损失函数分类和回归训练,可实现4类叶片分类和边界框精细预测。训练过程如下:
①用ImageNet-pre-trained VGG-16 net模型初始化[19],独立训练RPN网络。
②以RPN网络产生建议区域作为输入,仍用ImageNet模型初始化Faster-RCNN,并训练该网络。此时Faster-RCNN网络与RPN网络并不共享参数(训练前)。
③使用②训练出Faster-RCNN初始化新RPN网络,但在训练时仅更新RPN网络特有网络层。训练后,两个网络共享所有公共卷积层。
④固定2个网络共享网络层,加入Faster-RCNN特有网络层,形成统一网络,完成训练。
在图5中,图5a为原始Faster RCNN算法检测,红框表示算法检测到叶片,蓝框表示算法未检测到叶片。图5b为本文改进后叶片检测算法,可提高角度发生变化及有遮挡叶片检测效果。
图5 两种叶片检测方法检测结果Fig.5 Example of leaf detection with two methods
检测叶片后在叶片区域检测病害,可缩小待检测病害区域提升病害检测准确率。本文病害检测器用Faster-RCNN框架,检测病害时采用以下两种方法:
方法1:在叶片检测结果中将各叶片区域提取,分别输入病害检测器中。由于将单个叶片作为独立图像输入检测器,可放大叶片及病害区域尺寸,利于提高病害检测精度高,计算复杂度较高。方法2:在检测叶片位置构建叶片掩膜(掩模见图6),将整幅掩模图像输入病害检测器。由于不放大叶片区域,病害区域尺寸较小,病害特征不显著,检测精度稍低(相比方法1)。但由于一幅图像仅需一次病害检测,速度较方法1提升。
在病害检测过程中,将叶片有效区域(叶片掩模或单个已检测到叶片)作为输入图像,网络检测到病害候选区后,与叶片检测一样,在VGG16卷积网络最后一层特征图上生成512维特征向量,将其输入全连接层中分类(病害或非病害)。对病害区域分类采用Softmax分类器[20],将多个标量映射为一个概率分布,对于叶片病害训练数据集
图6 掩模示例Fig.6 Exampleof leaves mask
为测试叶片检测算法有效性,将叶片作算法试验,对比3种目标检测算法(原Faster-RCNN、R-CNN和文献[21]叶片检测算法)。
操作系统为Windows 7操作系统,在Matlab R2015b下编程实现本算法;硬件平台为:CPU:Intel Xeon E5-2683v3;GPU:NVIDIA TESLA K20。自然条件多变因素,测试样本分为光照充足(晴天)、阴影条件和光照不足(阴天)三大类,测试数据不包含训练集,在测试集中:光照充足)图片为700张;阴影环境图片为500张;光照不足图片为600张。
针对叶片检测,用PASCAL目标检测协议评价检测精度,即当交叠率IOU>0.5时,认为检测器检测到目标。通过描绘各类测试数据集上不同算法精度(Precision)与召回率(Recall)曲线说明。其中,精度与召回率定义为:
式(3~4)中,TP(True Positive)为真阳性,检测算法正确检测到叶片数量。FP(False Positive)为假阳性,检测算法检测错误叶片数量;FN(False Nega⁃tive)为假阴性,未检测到叶片数量。各算法叶片检测精度与召回率(Precision-Recall)曲线如图7所示,叶片检测平均精度值(Mean Average Precision,mAP)如表1所示[16]。
图7 各算法叶片检测P-R曲线Fig.7 P-R curve in different detection algorithm
表1 各算法叶片检测平均精度值Table 1 Average mAPof each algorithm for leaf detection (%)
试验结果表明,算法对光照变化不同适应性不同,当光照不足与光照阴影条件下,各算法检测精度均下降,其中叶片遮挡产生阴影条件下,各检测算法精度下降最快,本文检测算法优于3种对比算法;特定光照条件下,无叶片遮挡情况下各算法检测结果较好。叶片遮挡情况下,随召回率增大,传统算法(DPM)叶片检测精度下降较快,本文改进后卷积神经网络区域建议算法产生更高质量‘叶片建议区域’,检测精度更高,由图7可知,本文算法精度显著高于其他3种对比算法,多种检测条件下,本文算法、Faster-RCNN、R-CNN、DPM4种叶片检测算法平均mAP分别为75.52%、70.29%、63.62%、55.12%。
由图8可知,A1、A2、A3分别表示正常光照条件下(晴天),无叶片遮挡、有叶片遮挡、有一定旋转角度叶片检测实例;B1、B2、B3分别表示光照不足条件下(阴天),无叶片遮挡、有叶片遮挡、有一定旋转角度叶片检测例子;C1、C2分别表示阴影条件下,叶片遮挡、有一定旋转角度叶片检测。
图8 本文算法叶片检测结果Fig.8 Example of our algorithm for leaves detection
本文在叶片检测基础上检测病害。检测方法为2.2病害检测中介绍两种方法(掩模法检测与每个叶片区域病害检测)。通过数据统计分析,对比在原始图像中病害检测方法与本文方法,对6种病害(褐斑病、白粉病、灰霉病、霜霉病、黑痘病和炭疽病)作数据分析,在样本测试集中,褐斑病叶片图像共70张;白粉病共60张;灰霉病共55张;霜霉病共54张;黑痘病叶片图像共63张;炭疽病共57张,病害图像共计359张。各方法病害检测结果评价准则与叶片检测相同,仍然采用精度与召回率关系曲线,评价病害检测方法性能。
由图9可知,本文两种方法均优于后者,但方法一效果更好。
分别统计6种病害检测分别数据,各病害检测方法6种病害检测精度召回率曲线见图10,各病害检测方法平均精度值见表2,方法1、2及原图检测平均检测时间分别为1.416、0.352和0.196 s。
图9 6种病害样本总体检测结果Fig.9 Result of six type of diseasesdetection
图10 各方法病害检测结果Fig.10 Result of each method for diseases detection
表2 各病害检测方法平均精度值Table 2 Average mAPof each method for diseases detection (%)
由表2可知,本文提出病害检测方法1对各种葡萄病害检测效果良好。其中,方法1对褐斑病与白粉病mAP>70%,分别为72.64%与75.52%,炭疽病、霜霉病、灰霉病和黑痘病mAP均超过60%,分别为62.14%、65.19%、60.56%、62.78%,6种病害检测平均值为66.47%;病害检测方法2(掩模法)对各种病害检测精度低于方法1,主要原因是掩模有效区域(检测到叶片区域)与方法1相比减小,检测过程中产生病害建议区域质量低于方法1,检测精度下降。方法2对病害检测效果最好为白粉病,mAP(%)达64.01%,其余5种病害(葡萄炭疽病、葡萄霜霉病、葡萄灰霉病、葡萄黑痘病、葡萄褐斑病)检测mAP分别为40.73%、51.53%、38.34%、54.15%、59.82%,平均值为51.43%,方法2对病害检测精度下降,但检测时间缩短,效率提高;在原图直接病害检测方法检测精度最低,mAP平均值为34.04%,原图中无效区域(叶片外区域)较多,在检测器对病害建议区域打分时,部分背景区域在卷积特征上与病害区域相似,即检测器误将背景区域当作病害,此种方法检测时间最短,但精度最低。
病害检测结果如图11~12所示。其中,A1、A2为各方法对葡萄白粉病检测结果;B1、B2为各方法对葡萄褐斑病检测结果;C1、C2为各方法对葡萄黑痘病检测结果;D1、D2为各方法对葡萄灰霉病检测结果;E1、E2为各方法对葡萄霜霉病检测结果;F1、F2为各方法对葡萄炭疽病检测结果。
图11 方法1病害检测图Fig.11 Example of disease detection with method 1
图12 方法2病害检测图Fig.12 Example of disease detection with method 2
本文以葡萄叶片病害检测为研究对象,对自然条件下采集图像,基于卷积神经网络算法检测葡萄病害。首先用多角度建议区域Faster-RCNN在图像中检测葡萄叶片,再检测叶片区域病害。结果表明,叶片检测算法精度显著高于三种对比检测算法,尤其对叶片旋转具有较高鲁棒性,对自然条件下葡萄叶片检测适应性更好。在叶片检测基础上提出两种不同病害检测方案,检测常见六种葡萄病害,其中方法1对叶片病害检测精度更高。在实际应用中,当硬件条件允许情况下,方法1检测叶片病害效果更好。
[参考文献]
[1] Felzenszwalb P,Girshick R,Mcallester D,et al.Visual object detection with deformable part models[C].Florida:Computer Vision and Pattern Recognition.IEEE,2010.
[2] Girshick R,Donahue J,Darrell T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C].Columbia:Proceedings of the IEEE conference on computer vision and pattern recognition,2014.
[3] Girshick R.Fast R-CNN[C].IEEE International Conference on Computer Vision.IEEEComputer Society,2015:1440-1448.
[4] Ren S,He K,Girshick R,et al.Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[5] Qin H,Yan J,Li X,et al.Joint training of cascaded cnn for face detection[C].Lasvegas:Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2016.
[6] Rowley H,Baluja S,Kanade T.Neural network-based face detec⁃tion[J].IEEETransactionson Pattern Analysisand Machine Intel⁃ligence,1998,20(1):23-38.
[7] 王斌,刘洋,唐胜,等.融合多模型和帧间信息行人检测算法[J].计算机辅助设计与图形学学报,2017,29(3):444-449.
[8] 芮挺,费建超,周遊,等.基于深度卷积神经网络行人检测[J].计算机工程与应用,2016,52(13):162-166.
[9] Chen X,Xiang S,Liu C L,et al.Vehicle detection in satellite images by hybrid deep convolutional neural networks[J].IEEE Geoscience and Remote Sensing Letters,2017,11(10):1797-1801.
[10] 曹诗雨,刘跃虎,李辛昭.基于Fast R-CNN车辆目标检测[J].中国图象图形学报,2017,22(5):671-677.
[11] 张建华,孔繁涛,李哲敏,等.基于最优二叉树支持向量机蜜柚叶部病害识别[J].农业工程学报,2014,30(19):222-231.
[12] Adankon M M,Cheriet M.Support vector machine[C].Shenyang:Third International Conference on Intelligent Networks and Intel⁃ligent Systems.IEEEComputer Society,2010.
[13] 王守志,何东健,李文,等.基于核K-均值聚类算法植物叶部病害识别[J].农业机械学报,2009,40(3):152-155.
[14] 周爱武,于亚飞.K-Means聚类算法研究[J].计算机技术与发展,2011,21(2):62-65.
[15] 李永峰,丁润涛,国澄明.一种彩色图像滤波改进矢量中值滤波算法[J].数据采集与处理,2003,18(3):361-364.
[16]Hosang J,Dollar P,Dollar P,et al.What makesfor effectivedetec⁃tion proposals?[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2016,38(4):814-830.
[17] Everingham M,Gool L V,Williams CK I,et al.The pascal visual object classes(VOC)challenge[J].International Journal of Com⁃puter Vision,2010,88(2):303-338.
[18] Liu B,Zhang X,Gao Z,et al.Weld defect images classification with VGG16-based neural network[C].Shanghai:International Forum on Digital TV and Wireless Multimedia Communications.Springer,Singapore,2017.
[19] Krizhevsky A,Sutskever I,Hinton G E.Imagenet classification with deep convolutional neural networks[C].Nevada:Advances in neural information processingsystems.2012:1097-1105.
[20]Memisevic R,Zach C,Hinton G,et al.Gated softmax classification[C].Guangzhou:International Conference on Neural Information Processing Systems.Curran Associates Inc.2010.
[21] 杨森,冯全,王书志,等.基于改进可变形部件模型与判别模型葡萄叶片检测与跟踪[J].农业工程学报,2017,33(6):140-147.