Computer Science and Application
Vol. 09  No. 04 ( 2019 ), Article ID: 29711 , 11 pages
10.12677/CSA.2019.94081

Research on Leaf Image Disease Spot Segmentation Algorithm Based on SSD Network

Yanyan Ma1, Guoying Zhang1, Juan Liu2

1China University of Mining & Technology, Beijing, Beijing

2Beijing Information Science & Technology University, Beijing

Received: Mar. 28th, 2019; accepted: Apr. 8th, 2019; published: Apr. 15th, 2019

ABSTRACT

Image-based automatic segmentation of leaf disease spot is the basis for plant disease identification. A deep learning method based on SSD neural network is proposed in order to solve the problem of adaptive extraction of disease spot from uneven image and noise difference images in traditional feature segmentation. The idea of the algorithm is to transform the whole segmentationinto partial segmentation. The depth features are extracted by multi-scale convolution to generate a set of leaf disease spot bounding-boxes, and the disease spot regions of leaf are obtained by non-maximum suppression. Experiments on the image of potato leaves were carried out to obtain the exact boundary of the disease spots in the image. The location accuracy of the disease spot was more than 85%, and the accuracy of boundary segmentation was 80%. Compared with the traditional method of segmentation of disease spot, this method proposes an effective solution for complex background and automatic segmentation of multiple disease spots, which lays a foundation for further leaf disease identification.

Keywords:Disease Spot Segmentation, Deep Learning, Support Vector Machines, Color Model

基于SSD的马铃薯叶片图像病斑分割算法研究

马彦彦1,张国英1,刘 娟2

1中国矿业大学(北京),北京

2北京信息科技大学,北京

收稿日期:2019年3月28日;录用日期:2019年4月8日;发布日期:2019年4月15日

摘 要

为解决传统特征分割对光照不匀、噪声差异图像的叶片病斑提取适应性问题,提出一种基于SSD神经网络的深度学习方法。先通过多尺度卷积提取深度特征,产生病斑边界候选框集合,再利用非极大值抑制获取病斑叶片区域。之后对于获得的病斑区域利用SVM进行像素分割得到病斑精准边界。对马铃薯叶片图像进行实验验证,获得了图像中病斑的准确边界,病斑区域定位准确率达85%以上,在该基础之上的边界分割准确率可达到80%。相比其他病斑分割方法,该方法利用化整体分割为局部分割的思想,实现了复杂背景下的马铃薯病斑的有效分割,为下一步马铃薯病斑识别打下基础。

关键词 :病斑分割,深度学习,支持向量机,颜色模型

Copyright © 2019 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

在农业领域,基于图像的自动检测技术代替科技人员人工检测,及时客观获取虫害状态,降低损失越来越受到重视。基于图像的农作物病虫害识别和检测,需要在图像中定位出叶片区域,并在该区域中分割出病斑部分,提取特征进行分析 [1] [2] 。因此复杂背景中叶片位置定位和病斑边界分割是重要内容。夏永泉等人 [3] 利用颜色空间信息,对单一背景下的叶片图像进行处理 [15] 。张建华等人 [4] 对棉花病害图像用分水岭方法实现单一背景下的病斑分割。白文斌 [5] 等人研究了对于特定背景下高粱病斑图像病斑分割。侯兆静等人 [6] 研究了葡萄叶分割方法,利用高斯混合方法实现叶片提取。以上大部分是对单一背景下的图像进行处理或直接仅对叶片处理。近几年随着深度学习的发展,Sharada Prasana Mohanty等人 [7] 对大量植物图像进行分类,准确率达到一定水平,只是在自然环境下实验效果差强人意。目前物联网技术的发展,使得计算机技术与无线传输技术结合,以及随着智能手机在农村的普及以及4G网络的推行,通过将拍摄的田间图片上传到系统得到病害识别结果,对大面积作物进行远程智能监测监控成为可能 [8] 。而在这些作物叶片病虫害识别方法中最核心的问题是病害叶片病斑的检测及其分割。但是由于自然环境中光照不均匀,目前病斑分割算法 [9] [13] [14] [19] 存在以下问题:1) 在自然环境下,摄像头拍摄的叶片图像呈现多片和重叠状态,存在多片健康叶片和病斑叶片,影响分割效果。2) 自然光照在一天之中存在强弱变化,对拍摄的图片质量造成影响,容易产生误分割。3) 由于土地和植物病斑颜色接近,必然会对基于颜色的病斑分割方法造成误分割。目前的分割技术需要人为干预才能达到较好的分割效果。

在机器学习领域,深度学习在许多研究领域有了最新的成果,尤其是目标分类和目标检测方面 [10] [16] [17] 。在深度学习之前,传统的目标检测方法 [13] [18] 大致为区域选择、提取特征、分类回归,人工提取的特征存在一定的局限性,深度学习的优势在于能够直接利用原始数据而无需使用手工设计特征,其在学术研究和工业领域取得了一定的成果得益于两个原因,一是每天产生的大量的数据为模型训练提供了样本,二是计算机算力突破性的提高,GPU和TPU的超强计算能力能够实现训练更深层次网络结构并实现并行计算。本文试图解决在复杂背景下病斑分割难的问题,提出采用深度学习进行病斑分割方法,以实现植物病斑的自动提取,为此研究引入目标检测定位。在目标检测研究领域,基于深度学习的SSD (Single Shot MultiBox Detector) [11] 算法理论上能够适应不同尺度的目标检测,采用多尺度特征分层提取,并依次进行边框回归和分类,已经成功应用于行人等目标定位检测任务。该算法采用单个深度神经网络模型实现病斑区域定位,对输入的一幅图像进行端到端的处理,输出带有病斑图像定位框的图像,为进一步分割病斑提供基础。在此基础上,鉴于定位病斑图像只剩关于病斑和小范围背景,可利用SVM的图像像素分割 [5] 对病斑边界进行提取。我们以马铃薯病斑叶片作为实验对象,实验表明,本方法相比其他方法能较好解决复杂背景和多种病斑的自动分割问题。

本文算法整体流程图见图1

Figure 1. Overall framework of the algorithm

图1. 文中所提算法整体流程图

2. 基于SSD网络的病斑叶片定位算法

深度学习在目标检测领域取得了一定成果,SSD网络具有端到端的处理优势,能够解决不同尺度的目标检测,相比于其他深度网络,处理速度和精度能在实际应用中达到平衡。马铃薯叶片图像背景嘈杂,土地颜色易于病斑颜色混淆,传统方法对于病斑叶片的检测较难处理,而SSD网络能够自动学习更深层次病斑图像特征,因此本节使用SSD网络处理复杂背景下病斑叶片的定位。

不同层次的特征图能代表不同层次的语义信息,低层次的特征图能代表低层语义信息,能提高语义分割质量,适合小尺度目标的学习。高层次的特征图能代表高层语义信息,能光滑分割结果,适合对大尺度的目标进行深入学习。SSD就是对所提取的特征进行分层处理,使得其适合不同尺度的定位问题。

2.1. SSD网络结构

SSD网络是在VGG16网络基础上改进,新增了四个卷积层,基础网络也有微小的改变,网络结构如图2所示。

基于传统的特征提取网络作为基础网络,再在此基础上增加其他的层,而这些其他卷积层的特征图在大小上有明显的变化(逐层递减),以此实现不同尺度下的检测。这是该网络的一个创新点,充分利用不

Figure2. The framework is an SSD network structure, and the layer used for detection includes four layers of yellow frame area (conv8_2, conv9_2, conv_10_2, pool_11) and two base layers of conv4_3 and conv7 layers

图2. 该框架为SSD网络结构,用于检测的层包括黄色框区域的四层(conv8_2, conv9_2, conv_10_2, pool_11)和conv4_3和conv7层两个基础层

同网络层的信息来模拟不同尺度下的图像特征来辅助预测。在后面大小差别较大的特征图层(即在不同层次)上的每个点,按照不同的尺度和比例,利用小的卷积核生成k个候选框。然后综合所有层中的特征图上的检测结果,利用非极大值抑制的方式对所有检测出的候选框进行筛选,以此可以提升对同种物体不同尺度的泛化能力。

2.2. 基于SSD网络病斑定位模型损失函数

SSD的损失函数公式(1)所示,是分类损失与定位损失加权和。

L ( x , c , l , g ) = 1 N ( L c o n f ( x , c ) + α L l o c ( x , l , g ) ) (1)

其中, L l o c ( x , l , g ) 为定位损失,具体表示为公式(2), L c o n f ( x , c ) 是默认框分类损失,由具体表示为公式(3)。N是先验框的正样本的数目,权重系数 通过交叉验证设置为1。

L l o c ( x , l , g ) = i P o s N m { c x , c y , w , h } x i j k s m o o t h L 1 ( l i m g j m ) (2)

其中, x i j k 表示预测框i与实际框j关于类别k是否匹配, l i m 为预测框, g j m 为实际框。

L c o n f ( x , c ) = i P o s N x i j p log ( c i p ) i N e g log ( c i 0 ) where c i p = exp ( c i p ) p exp ( c i p ) (3)

其中, x i j p log ( c i p ) 为预测框i与实际框j关于类别p匹配,则p的概率预测越高,损失越小。

2.3. 基于SSD网络病斑定位模型训练策略

2.3.1. 数据扩增

采用数据扩增(Data Augmentation)可以提升SSD的性能,数据扩增是让有限的数据产生更多的等价数据。主要采用的技术有水平翻转(horizontal flip),随机裁剪加颜色扭曲(random crop & color distortion),随机采集块域(Randomly sample a patch) (获取小目标训练样本)。

水平翻转属于几何空间变换,水平翻转结果见图3

裁剪方法一般裁剪感兴趣区域(ROI),通常在训练时候,会采用随机裁剪的方式,随机裁剪两次的结果,见图4

Figure 3. The example of horizontal flipping. The image on the left is the original image, and the image on the right is the image after horizontal flip

图3. 水平翻转示例,左图为原图,右图为水平翻转之后的图像

Figure 4. The example of random cropping, the left image is the original image, and the middle and right images are random crop images

图4. 随机裁剪示例,左图为原图,中间和右图为随机裁剪图像

颜色扭曲是指对彩色图像调整它的饱和度,亮度或者对比度等达到有颜色色差。颜色扭曲图,见图5

Figure 5. The example of color distortion, the left picture is the original picture, and the right picture is the color random transformation result image

图5. 颜色扭曲示例,左图为原图,右图为颜色随机变换结果图像

随机采集块域即随机裁剪出小块样本,获取小目标训练样本。随机采集块域示例见图6

Figure 6. The example of a random acquisition block field, the left side of the vertical line is the original picture, and the right side is 2 this random acquisition block domain diagram

图6. 随机采集块域示例,竖线左侧为原图,右侧为2此随机采集块域图

文中综合运用以上数据增强方法得到的数据增强结果,见图7

另外,文中需要对带边框的样本进行增强,实际包括了图像中标记框的映射变化,使得叶片的角度,变化不会影响病斑边框的标记,如图8所示。

Figure 7. The example images of potato data enhancement (the left one is the original image, the rest is the flipped, random cropping and color distortion)

图7. 马铃薯数据增强例图(左一为原图,其余为经过翻转,随机裁剪和颜色扭曲图)

Figure 8. The images with bounding boxes, the left image is before the enhancement, and the middle and right images are enhanced. The bounding box is green before it is enhanced and red when it is enhanced

图8. 带边界框图像,左图为增强前,中间和右图为增强后。边界框增强前为绿色,增强后为红色

2.3.2. 在conv4_3网络部分进行检测

若原图越清晰,分辨率越高,目标感受野也会越小,对小目标的检测就会越准,增加了网络conv4_3特征层,使得在实验过程中的精准度得到提升。

2.3.3. 使用atrous卷积

通常卷积过程中为了使特征图尺寸保持不变,通常会在边缘进行填充操作,但人工加入的填充使得噪声增大。而文中采用的atrous卷积自动保持感受野不变,噪声减少。

2.3.4. 匹配策略

匹配策略说的是病斑实际框和病斑候选框间匹配的方法。主要分为两步:第一步:根据实际框找到候选框中重叠率IOU (Intersection Over Union)最大的作为正样本;第二步,将候选框与交叠率大于某个阈值(目标检测中通常选取0.5)的实际框进行匹配。经过这样的匹配后,会有大量的负样本,导致正负样本不平衡,所以训练的时候会按照置信度对候选框排序,使得正负样本的比例控制在1:3之内。

2.4. 叶片病斑定位评价方法

针对病斑的定位检测采用准确率DR和误检率FPR作为评价准则,其中DR和FPR分别定义为:

DR = TP TP + FN (4)

FPR = FP TP + FP (5)

式中:TP表示人工标定的同时算法也定位到的马铃薯叶片病斑数量;FN表示人工标定了,但是本算法没能定位出的马铃薯病斑的数量;FP是指人工没有标注的马铃薯病斑区域数量但是定位算法定位出的病斑数量。对于是否定位出病斑,当定位算法给出的边界盒与人工标定的边界盒之间的重叠率IOU (Intersection Over Union) > 0.5时,认为检测到了目标。

3. 基于SVM叶片图像病斑自动分割提取算法

3.1. SVM图像分割基本原理

支持向量机(support vector machines, SVM) [12] 作为分类模型,在许多领域应用很广,其目标是寻找使得在特征空间上的最大间隔,是应用广泛的线性分类器,核技巧的使用使得SVM对于非线性分类也同样适用,文中只是涉及到SVM的两分类问题,故可以简化处理,以下详细解释SVM模型在马铃薯病斑分割中的理解。

做分类,需要选取特征需要区别病斑区域和背景区域,因为马铃薯病斑部分颜色呈黄褐色,其周围呈现绿色,因此,可以采用颜色特征作为其特征值,之后用SVM训练好的分类模型对待图像的所有像素点进行分类,可以把预测为背景像素的部分像素值置为0,利用掩膜取得原图像中的马铃薯病斑位置。本文病斑分割策略是先通过SSD网络定位病斑叶片大致区域后,再用该算法分割病斑,解决了田间复杂背景下多叶片下病斑部位提取。本文采用样本库中图像RGB和HSV颜色模型,分别提取单个像素点的R,G,B三通过颜色值和色调H、饱和度S和值V,共6个特征值作为区分病斑图像和背景图像像素点的特征值。

3.2. 训练SVM模型

训练样本采集,对于病斑图像像素点和背景图像像素点样本,我们从样本图像中裁取出来,叶片背景样本图像见图9,马铃薯叶片病斑样本见图10,分别随机提取5000个像素点作为正负样本。

Figure 9. The examples of background sample images.

图9. 背景样本图像示例

Figure 10. The examples of target sample images

图10. 目标样本像素示例

4. 实验结果及分析

4.1. 实验数据采集

由于实验中样本数量并不是无限多的,利用深度学习的图像增强功能,在样本不足时表现也可良好。在对马铃薯叶片图像病斑叶片进行定位时,可以将问题转化为复杂背景下植物叶片是否患病的两分类问题,在自然环境下采集的马铃薯病害叶片原始图像分辨率在送入网络前大小固定为300 × 300像素,共采集马铃薯病害图像3000幅图像,健康叶片图像3000幅图像,作为病斑叶片定位的原始样本库。另外通过ImageLabel标注方法,对病害图像和健康叶片进行标注,作为SSD网络叶片定位训练样本库,样本示例见图11

Figure 11. The sample examples of network positioning training sample library

图11. 网络定位训练样本库病害样本示例

4.2. 实验参数设置

本文在Python编程平台中利用caffe深度学习框架实现了上述目标的定位算法和分割算法。在病斑定位算法时,SSD算法进行病斑定位。基本的参数设置为:输入图像大小为300 × 300像素,识别种类为设置为3,(健康叶片,病斑叶片,背景),特征层提取使用VGG-16卷积层的4,7,8,9,10,11层,各个层宽高大小分别为(38,38),(19,19),(10,10),(5,5),(3,3),(1,1),默认框大小为[0.15,0.90],最小与最大缩放比率,默认框不同宽高比分别为[2,0.5],[2,0.5,3,1/3],[2,0.5,3,1/3],[2,5,3,1/3],[2,0.5],[2,0.5],步长感受野分别为[8,16,32,64,100,300],并交比为0.5。在马铃薯叶片病斑分割算法时SVC多项核设置为3。

4.3. 实验效果

4.3.1. SSD网络定位算法试验结果与讨论

对采集的图像进行分类分析讨论,分为单病斑叶片和多病斑叶片两类,因为数据预测结果只有两类,患病或者健康,模型训练相对简单,测试准确率均能达到85%以上,TP,FN,FP,DR相关介绍概念在1.4节叶片病斑定位评价方法一节中已详细介绍。对于测试中选择的200张图像,有以下分析结果,见表1

Table 1. Test results statistics of leaf disease spot positioning algorithm

表1. 病斑叶片定位算法测试结果统计

由于叶片残损,外观变化,实验分为两组对比实验,单病斑叶片图像和多病斑叶片图像,实验结果见图12图13,试验表明,无论是单病斑叶片还是多病斑叶片,本文采用的算法均能有效检测出病斑叶片,准确率可以达到85%以上,误检率控制在10%左右,检测反应时间控制在0.3 s,在准确性与效率之间取得了较好的平衡,较适用于工程项目。

Figure 12. Single disease spot leaf positioning effect by SSD network

图12. SSD网络单病斑叶片定位效果图

Figure 13. Multi-spot leaf positioning effect by SSD network

图13. SSD网络多病斑叶片定位效果图

4.3.2. 病斑分割算法试验结果与讨论

病斑分割部分是在病斑区域定位之后进行的操作,一般的分割算法在复杂背景下均很难将目标提取出来,直接对原始图像进行整体分割效果很不理想,对噪声表现不敏感,如图14所示直接采用SVM像素分割效果。

Figure 14. Example of pixel segmentation effect directly on the overall leaf image

图14. 直接采用SVM算法对叶片图像进行整体像素分割效果样例图

通过图14,可以看出,若不采取先定位病斑叶片的算法思想,直接对叶片图像进行病斑像素分割的话,图像背景对病斑的干扰极大,完全影响了对病斑的分割,该方法并不可取。利用本文提出了化整体为局部分割的思想,下面实验采用文中所提算法试验,图15给出了本算法分割效果样例图。

Figure 15. The algorithm proposed in this paper performs segmentation of disease spots on leaf images

图15. 本文所提算法对叶片图像进行病斑像素分割效果

图15中,从上到下5行图像中,第1行为5张原始背景复杂样例图像,第2行为SSD算法在原始叶片图像病斑定位图,第3行是SSD算法在整体分割图像上病斑定位图像。第4行为病斑提取图像,第5行为原图最终结果病斑分割图。图15的过程反映了本文算法思路,先定位后分割,变整体分割为局部分割的思想。实验表明,该方法在背景复杂下有效实现马铃薯叶片图像病斑分割,准确率可达到80%。

5. 结论

马铃薯叶片病斑分割是识别的基础,但在复杂的自然条件下,土地、光照等给其带来很大挑战。本文提出的基于SSD的方法在样本数量有限的情况下,通过多尺度卷积提取深度特征,产生病斑边界框集合,通过非极大值抑制获取病斑叶片区域。针对SSD神经网络获得的病斑区域,基于SVM的叶片病斑图像自动分割提取算法进行叶片病斑边界的准确分割。实验表明,本方法能够比较好地解决复杂背景和多个马铃薯叶片病斑的分割问题,为后一步马铃薯叶片病斑识别研究奠定基础。当然,该方法作为复杂背景下病斑分割的算法研究也存在一定问题,若病斑定位失败,则后续会导致病斑像素分割失败的情况,因此如何提高病斑定位准确率成为接下来研究的重点。

文章引用

马彦彦,张国英,刘 娟. 基于SSD的马铃薯叶片图像病斑分割算法研究
Research on Leaf Image Disease Spot Segmentation Algorithm Based on SSD Network[J]. 计算机科学与应用, 2019, 09(04): 710-720. https://doi.org/10.12677/CSA.2019.94081

参考文献

  1. 1. Barbedo, J.G.A. (2014) An Automatic Method to Detect and Measure Leaf Disease Symptoms Using Digital Image Processing. Plant Disease, 98, 1709-1716.

  2. 2. Ma, J.G. and Barbedo, A. (2013) Digital Image Processing Techniques for Detecting, Quantifying and Classifying Plant Diseases. SpringerPlus, 2, 1-12.

  3. 3. 夏勇泉, 李耀斌, 曾莎. 基于HIS颜色空间的植物叶片病斑提取方法[J]. 江苏农业科学, 2015, 43(8): 406-408.

  4. 4. 张建华, 韩书庆, 翟治芬, 孔繁涛, 冯鑫, 吴建寨. 改进自适应分水岭方法分割棉花叶部粘连病斑[J]. 农业工程学报, 2018, 34(24): 165-174.

  5. 5. 白文斌, 白帆, 贺文文, 等. 基于SVM的高粱叶片病斑图像自动分割提取方法研究[J]. 农学学报, 2014, 4(6): 101-106.

  6. 6. 侯兆静, 冯全, 张涛. 基于高斯混合模型的叶片检测分割算法[J]. 计算机应用与软件, 2018, 35(1).

  7. 7. Mohanty, S.P., Hughes, D. and Salathé, M. (2016) Using Deep Learning for Image-Based Plant Disease Detection. Frontiers in Plant Science, 7, 1419. https://doi.org/10.3389/fpls.2016.01419

  8. 8. Zhang, L., Xia, G.-S., Wu, T., Lin, L. and Tai, X.C. (2016) Deep Learning for Remote Sensing Image Understanding. Journal of Sensors, 2016, Article ID: 7954154.

  9. 9. Barbedo, J.G.A. (2016) A Review on the Main Challenges in Automatic Plant Disease Identification Based on Visible Range Images. Biosystems Engineering, 144, 52-60.

  10. 10. He, K., Zhang, X., Ren, S. and Sun, J. (2016) Deep Residual Learning for Image Recognition. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas, 26 June-1 July 2016, 770-778. https://doi.org/10.1109/CVPR.2016.90

  11. 11. Liu, W., Anguelov, D., et al. (2016) SSD: Single Shot MultiBox Detector.

  12. 12. 王书舟, 伞冶. 支持向量机的训练算法综述[J]. 智能系统学报, 2008, 3(6): 467-475.

  13. 13. 陈佳娟. 基于图像处理和人工智能的植物病害自动诊断技术的研究[D]: [博士学位论文]. 长春: 吉林大学, 2001.

  14. 14. 毛罕平, 张艳诚, 胡波. 基于模糊C均值聚类的作物病害叶片图像分割方法研究[J]. 农业工程学报, 2008, 24(9): 136-140.

  15. 15. Rafael, C.G., Richard, E.W., 等. 数字图像处理[M]. 第3版. 阮秋琦, 译. 北京: 电子工业出版社, 2013.

  16. 16. Szegedy, C., et al. (2014) Going Deeper with Convolu-tions.

  17. 17. Russakovsky, O., Deng, J., et al. (2015) Imagenet Large Scale Visual Recognition Challenge. International Journal of Computer Vision, 115, 211-252.

  18. 18. Patil, J.K. and Kumar, R. (2012) Feature Extraction of Diseased Leaf Images. Journal of Signal & Image Processing, 3, 60.

  19. 19. Al-Hiary, H., Bani-Ahmad, S., Reyalat, M., Braik, M. and Al-Rahamneh, Z. (2011) Fast and Accu-rate Detection and Classification of Plant Diseases. Machine Learning, 14, 5.

期刊菜单