APP下载

应用卷积神经网络识别花卉及其病症

2019-06-06林君宇李奕萱郑聪尉罗雯波

小型微型计算机系统 2019年6期
关键词:分类器花卉准确率

林君宇,李奕萱,郑聪尉,罗雯波,许 蕾

(南京大学 计算机科学与技术系,南京 210023)

1 引 言

随着我国花卉种植销售产业规模的日益扩大,养花赏花的人数不断增加.但由于缺乏相应专业的养护知识,很多花卉销售者和消费者往往不甚了解甚至忽视花卉的生长状态,导致花卉的死亡.

如果存在一种经济便捷的途径对花卉状态进行自动分析,尤其是对花卉种类和花卉病症的识别,让种植者能够及早发现问题并采取对应措施,就能确保花卉良好生长.因此,此类自动识别技术对花卉市场有着积极的影响.

叶部的生长状况是判断花卉疾病的重要依据,多数疾病会导致花卉叶部产生明显的病斑等特征.利用计算机视觉技术实现对花卉叶部病症检测,可以为没有专业知识的花卉种植者提供参考,从而及早采取对应的防治措施.

目前软件市场上已有多款手机APP产品向用户提供免费的花卉图像识别服务(例如形色、花伴侣、微软识花、绿手指等).经测试,此类产品有较好的花卉分类能力,正确率最优的产品达到了73%,尚有提升空间.部分产品建立了社区供使用者交流花卉养护过程中遇到的问题,然而社区论坛的形式无法确保问题得到快速正确的专家意见反馈.因此,自动且即时反馈的花卉病症识别属于一个较新的研究领域.

我们拟提出一种基于计算机视觉技术的花卉和病症识别方法,包括数据集收集、图像预处理、分类器训练、工具封装等过程,既能够提升识别准确率,同时实现花卉叶部病症的识别,实现花卉生长状态的自动化、智能化分析,为花卉爱好者提供更加经济、便捷、有效的养护方案.

1https://arxiv.org/abs/1708.03763

本文余下内容的组织方式为:第2节介绍相关工作,第3节介绍工具的设计和实现,第4节是实验结果的分析比较,第5节对全文进行总结.

2 相关工作

图像分类是计算机视觉方面的一个重要课题.近年来深度学习和神经网络技术获得了突破性进展,尤其是卷积神经网络(Convolutional Neural Network,CNN),在大规模图像分类任务中有很好的表现[1].CNN适用范围广,能够自动提取图像低级特征并进一步学习高级特征,现已被广泛应用于图像分类、图像分割和物体定位等领域.

花卉种类和病症识别是一个非常具有挑战性的任务,不同于大规模图像分类,花卉分类的粒度更细,而且花卉形态各异的特点也成了影响分类准确性的重要因素.传统花卉分类问题[2-4]的主 要解决方法为手工提取花卉图像特征并采用支持向量机(Support Vector Machine,SVM)分类器进行分类,该方法也应用于农作物叶部病害的识别.裴勇提出基于花卉特点的区域特征提取方法,使用SVM分类器对50种类别的花进行分类,达到了90.8%的准确率[3].余秀丽等人采用人工拍摄的方式建立小麦病叶数据集并使用SVM对其三个病症进行分类,达到99.3%的准确率[4].

CNN在花卉分类问题上已经取得了很大进展[5-8],识别准确率有了很大提升,分类器设计基于Krizhevskys所提出的模型[9].Gurnani等对花卉图片进行图像分割处理,并将大规模图片分类的CNN应用于花卉分类.Liu Yuanyuan等人使用图像显著性和亮度图进行区域选择,使用CNN分类器对79类别的花进行分类,达到了76.5%的准确率,次年又结合了迁移学习和SVM替换输出层,在Oxford 102花卉数据集上达到99.4%的准确率[5,6].在生长状况方面,一些研究者将神经网络引入检测作物疾病和品质评估.Yu Sun等人人工拍摄建立大岩桐数据集并使用CNN对其三个品质进行评估,达到89.6%的准确率[7].Al-Hiary等人比较了多种机器学习方法,对苹果、蓝莓、玉米等作物的疾病图像进行分类,准确率在83%以上[8].

在现有工作的基础上,本文设计和实现了一个花卉识别APP,采用多输入卷积神经网络作为分类模型,结合迁移学习,并且提供了一个花卉叶部病症图片的数据集用于模型训练和测试,为数据集中的花卉分别设计和调试CNN,进一步能够对花卉进行病症识别,最终形成一个集花卉分类与病症识别为一体的工具原型.

3 工具设计和实现

3.1 软件框架

如图1所示,软件框架包含一个花卉分类器和多个病症分类器,分类器使用CNN实现.用户输入花卉图片和叶部病症图片,工具通过花卉分类器对花卉图片进行分类,输出预测花卉类别,再根据花卉类别选择相应的病症分类器,对叶部病症图片进行病症识别,输出预测病症.允许仅进行花卉分类或已知花卉仅进行病症识别.

3.2 卷积神经网络

卷积神经网络[10-11,19-20]是受人体神经系统启发而创造的一种多层感知模型,具有参数共享、稀疏连接、平移不变性等特性.Fukushima提出了最初的卷积神经网络原型Neocognitron[10],Vaillant等将卷积神经网络用于手写数字识别系统[11].现在卷积神经网络在图像分类、图像分割、物体定位等计算机视觉方面取得了巨大成功.

图1 算法流程图Fig.1 Flow chart of algorithm

CNN主要包含三种层:卷积层、池化层和全连接层.卷积层(Convolutional layer)输入上层的特征图,通过多个卷积核在图上卷积并提取特征,输出该层的特征图,层数越多输出特征图代表的特征越复杂.池化层(Pooling layer)用于减小卷积层输出特征图的大小,减少了图的维数,防止过度拟合.全连接层(Fully connected layer)将二维图像连接成一个一维向量,用于结果的输出.CNN的神经元、参数和连接数更少,在图像处理方面比起等大小的BPNN有着更高的效率.

图2 卷积神经网络结构Fig.2 Structure of CNN model

多输入CNN能够有效提高植物品质分类准确率[7].为了使输入样本能够覆盖更多特征信息,我们设计了多输入CNN,将多张图片视为一个样本作为网络输入.在我们实现的软件中,使用者可以使用单张花卉图片进行识别(此时模型效果与单输入CNN相同),也可以选择提供多角度拍摄的多张花卉图片进行一次识别.

3.3 多输入卷积神经网络设计

图2详细描述了多输入CNN结构.输入图片大小为300×300×3.每3张图片作为一个样本输入网络,图片均相同时等效于单输入CNN.将第一卷积层conv1划分为conv1a、conv1b和conv1c,分别接收3张图片,各使用32个大小为3×3的卷积核进行卷积,步长为1,输出的特征图堆叠合一.conv2至conv6的卷积核数量为64,大小为3×3,步长为1.fc1层和fc2层有32个神经元,并在fc2层中加入失活概率为0.25的Dropout层.所有pool层大小被设置为2×2,步长为2.所有conv层都加入了Batch Normalization,激活函数为ReLU.输出层的激活函数为softmax.

2https://arxiv.org/abs/1412.6980

3https://arxiv.org/abs/1502.03167

多输入的设计能带来以下好处:

1)相同的时间开销:如果3张输入图片相同,那么把图片分别输入第一卷积层的不同入口这一行为等效于单输入,因此多输入卷积神经网络不会带来计算时间的增加.

2)准确率提高:相较于单输入模型,多输入模型覆盖了更多真实世界信息,同时降低了误分类的偶然性,在样本易获取的情形下能够普遍提升识别准确率.

3.4 训练算法

卷积神经网络训练过程属于监督学习,通过带标签的数据更新各卷积层的参数,预测过程使用学习的参数计算出图像可能性最大的类别.学习包括前向传播和后向传播两个步骤.

3.4.1 前向传播

前向传播(Forward propagation)指的是数据从输入层经过卷积层、池化层和全连接层到达输出层的阶段[12].每个卷积层使用卷积核在输入特征图上滑动卷积,然后经过一个激励函数输出新特征图.这一步骤的公式如下.

(1)

池化层进行下采样工作,即用一个卷积核对输入的特征图进行特征抽样,保留主要特征.计算公式如下.

(2)

全连接层的作用效果相当于多层感知机中的隐藏层,层与层之间完全连接,表达式为

al=σ(wlal-1+bl)

(3)

σ是激活函数,最后一个全连接层是输出层.输出层激活函数使用softmax函数进行多分类,公式为

(4)

3.4.2 后向传播

后向传播(Backward propagation)根据对图像的真实分类与CNN输出之间的误差,使用梯度下降法(Gradient descent)从输出层到输入层依次更新参数,从而使误差降低.误差可用交叉熵计算.

(5)

使用Adam(Adaptive Moment)梯度下降算法计算梯度并向后更新权重2.该算法结合了Momentum算法和RMSprop算法的优点,收敛速度快,学习效率高,为参数计算自适应的学习率.其表达式如下.

(6)

(7)

(8)

3.5 防止过度拟合

神经网络在学习过程中可能产生过度拟合现象(Overfitting).对于样本数量少、特征复杂的数据集,网络对某些特征产生强依赖性导致泛化性差,表现为训练集的准确率随迭代次数增加而逐渐上升或趋稳,同时测试集的准确率逐渐下降.下面介绍本实验中使用的解决过度拟合的方法.

3.5.1 Dropout优化

Dropout[14]是一种常用的抑制过度拟合的手段.训练阶段每个神经元有一定概率失活,不参与训练,从而减少网络对某些神经元的过度依赖,增强了泛化性.测试阶段不使神经元失活.

3.5.2 数据增广

数据集样本的数量是影响模型性能的重要因素,在小规模数据集的情况下我们可以使用数据增广(Data augmentation)对样本进行扩充,减少过度拟合.具体方式是对样本进行一系列随机的水平/垂直翻转、平移、旋转、倾斜、剪切等操作生成新的样本,使样本数量得到扩充.

3.5.3 L2正则化

L2正则化(L2 regularization)通过降低网络中一些神经元的权值抑制过度拟合.其公式为.

(9)

加号右边的正则项即对所有参数求平方和再除以样本大小,是正则项系数.

3.5.4 批标准化

批标准化(Batch normalization,BN)能够加速收敛,超参数的选择更稳定,范围更大3.BN包括标准化和缩放平移两个步骤,表达式如下.

(10)

(11)

其中γ是缩放大小,β是平移距离.这两个参数将参与训练,调整数据的规格,减小卷积层之间的相互依赖,进行更自主独立的学习.

3.6 迁移学习

传统机器学习需要大量带标签的样本,这将耗费大量资源,而缺乏大量的标注样本不能保证模型训练正常进行.迁移学习(Transfer learning)[18]能够借助已经训练好的模型进一步学习,没有传统机器学习的严格数据同分布假设,无需从零开始训练,能够将原任务上学习得到的先验知识迁移到目标任务上.

迁移学习方法可分为4类:样本迁移(Instance-based transfer)、特征迁移(Feature-based transfer)、模型迁移(Model-based transfer)、关联迁移(Relational transfer).模型迁移也称参数迁移,利用已适配的图像识别系统迁移到新的领域,增加先验知识,与深度学习结合良好.本文引入模型迁移,优化特征提取,作为原多输入卷积神经网络模型的输入.

4 实验结果与分析

4.1 数据集

4.1.1 Oxford 102花卉数据集

Oxford 102花卉数据集[15]是牛津大学VGG小组(Visual Geometry Group)创建的,包含了英国常见的102种花卉,每种花卉的图片数量在40张以上,共8189张花卉图片.其中部分花卉图片由VGG组员拍摄,部分来自互联网,图片的分辨率经过缩放最小为500像素.

4.1.2 ImageNet数据库

ImageNet数据库[16]是一个按照WordNet架构组织的图片数据库,涵盖2万多个类别,是世界上最大的图片数据库之一.其中包括了丰富的有明确标注的花卉图片.我们从Oxford 102花卉数据集和ImageNet数据库中选出向日葵、牡丹、玫瑰、兰花、万寿菊、鸢尾花、三色堇、牵牛花、雏菊、火鹤花共10类常见家庭观赏花卉,每类50张,共500张花卉图片,70%用于花卉分类器的训练,30%用于测试.

4.1.3 花卉叶部疾病数据集

上文中的数据集均未包含花卉叶部疾病的相关图像.为了训练花卉叶部疾病图像分类器,我们通过关键词搜索等方式建立了一个花卉叶部疾病数据集,数据集部分样本如图3所示.该数据集包含向日葵、牡丹、玫瑰、兰花4种花卉共16种常见叶部疾病,图片总量为609,每种花卉最少含3类疾病图像,考虑数量均衡,选用部分疾病进行实验.叶部疾病的主要表现为生长病斑,也有少数致使叶片畸形生长.由于是带病花叶的图片,所以与健康花卉的数据集相比,此数据集图片内容叶面占比更大,形状更多变,背景更复杂,拍摄环境更多样,因此具有一定的识别难度.

4.2 实验环境

实验服务器搭建于Google Cloud Platform,操作系统为Ubuntu 16.04 Server,配置有2.30GHz主频,16G内存的Intel(R) Xeon(R) CPU,和12G显存的Nvidia Tesla K80 GPU.分类器的实现使用了开源机器学习框架Tensorflow.

图3 花卉叶部疾病数据集示例Fig.3 Samples of flower leaf disease dataset

我们对数据集进行了一系列预处理,将图片缩放至300×300像素的大小,并对图片进行主要特征的裁剪和分割,见图4.对图片进行零均值化和归一化以加速收敛.采用数据增广方法,每张原图经水平翻转、平移、旋转等操作派生出4张新图,使得样本数量变为原来的5倍.所有样本划分为多个batch进行训练(batch大小为32),所有batch进行过一轮训练后需要将样本随机排序再重新划分.

图4 样本的裁剪和分割处理Fig.4 Crop and segmentation of images

4.3 实验结果

花卉分类方面,我们在数据集上进行了大量测试以得到分类效果最好的模型,包括对卷积层数、卷积核数量和卷积核大小的调整,相关图表见表1和表2.

表1 多输入花卉分类模型和结果(忽略池化层,conv1*指代conv1a,conv1b和conv1c,下同)Table 1 Multi-input flower classification

表1展示了使用不同图片作为输入的部分实验结果,拥有6层卷积层的模型有着良好的识别效果,层数过多时准确率有下降趋势,model7达到最高的识别准确率95.3%.

表2展示了使用相同图片作为输入的部分实验结果,各模型的识别准确率均有所下降,model16达到最高的识别准确率90.7%,对比可见多输入模型识别率更高.

我们认为多输入情形下每个样本包含更丰富的花卉特征信息,同时降低了测试样本因花叶残缺、植株变异、日照差异等原因而错误分类的偶然性.多输入方式能够普遍提升识别效果,同时与单输入方式使用完全相同的CNN模型,仅有输入数据的差异,因此没有产生额外的计算开销,两种输入方式具有相同的时间复杂度.

表2 单输入花卉分类模型和结果Table 2 Single input flower classification

花卉叶部疾病分类方面,由于同一种花卉可能患上不同的疾病,而同一种疾病在不同的花卉上又可能有不同的特征,因此为每种花卉分别实现了疾病图像分类器,相关图表见表3和表4.

表3 花卉疾病分类模型和结果Table 3 Disease classification

表3展示了各种花卉的疾病所使用的分类模型和准确率,总体准确率达到88.2%.表4展示了具体疾病分类的查准率和查全率.不同花卉的颜色和轮廓等特征都有较大差异,而叶部疾病均发生在叶面之上,主要为病斑的差别,因此叶部疾病分类准确率较低于花卉分类.

表4 具体疾病结果Table 4 Classification of specific diseases

4类花卉中,玫瑰的4种不同病症分类效果最好,准确率为90.6%.个别花卉病症识别准确率偏低,除了测试样本数量限制的影响外,可能有以下方面原因:1)不同病症症状高度相似;2)不同的感染程度或发病阶段造成的症状差异;3)不同致病源所造成的症状差异.

为了应对训练样本数量受限问题,我们将2014年ILSVRC竞赛获得优胜的卷积神经网络模型VGG-16迁移到了花卉疾病识别任务上,作为特征提取器,所得特征输入原多输入模型.同时为了验证模型的效果,我们与SVM、HOG-SVM和SIFT-Kmeans-SVM几类传统分类方法进行了对照实验,使用了软件包libsvm[17]和OpenCV2.结果见表5和图5.其中,HOG-SVM识别效果最低,总体准确率仅有51.4%.HOG算子计算图像局部区域的梯度直方图构成特征,对物体的形变保持高度不变性,细小的变化不会影响检测结果,能够很好的提取出大型物体的轮廓,因此适用于车辆检测、行人检测等.推测花卉叶部病斑小而密集、变化细微是HOG-SVM模型对其辨识度低的主要原因.

表5 不同模型的疾病分类准确度Table 5 Disease classification of different model

SIFT-Kmeans-SVM模型总体识别准确率67.4%.SIFT算子计算图像中的特征点及其尺度和方向,并对图像进行特征点匹配.特征具有尺度不变性,对仿射变换、亮度变化等也有较高的鲁棒性,在图像分类和处理方面应用广泛.推测不同病症症状的相似,以及作为背景的叶片自身,是造成SIFT-Kmeans-SVM识别准确率低于CNN的主要原因,欲获得更高的精度需要筛选特征或对数据集进行进一步预处理.

结合迁移学习的多输入模型达到了最高准确率94.4%,较CNN模型的准确率提升了6.2%.迁移学习节约计算资源,优化原有模型,缓解样本数限制,在花卉疾病识别任务中显示出很强的泛化能力.

图5 不同模型的疾病分类准确度Fig.5 Disease classification of different model

5 总结

本文提供了一个包含4类花共16种疾病的花卉叶部疾病数据集,原图数量609,数据增广后数量为3045;设计并实现了多输入CNN模型及对花卉、叶部疾病进行识别的一体化APP.实验结果显示该工具拥有95.3%的花卉分类准确率和88.2%的疾病识别准确率,应用迁移学习后疾病识别准确率提升至94.4%,优于单输入CNN和其它传统分类方法.

对比相关研究,我们在对数据集进行轻度处理,构造小规模CNN进行特征自学习的情况下获得了良好的花卉分类效果,并通过多输入、迁移学习进一步将识别效果提升,验证了该方法的可用性和有效性.相较手工提取特征的分类方式操作简单,能够学到更丰富、复杂的图像特征信息,相较其它以农作物为对象的状态诊断研究有着更佳的识别效果.

在未来的工作中,我们会进一步扩充花卉叶部疾病数据集,包括更多的花卉种类和疾病种类.继续改进分类器的效果,包括改进特征提取、尝试半监督学习等方式.

猜你喜欢

分类器花卉准确率
学贯中西(6):阐述ML分类器的工作流程
三招搞定花卉病虫害
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
基于朴素Bayes组合的简易集成分类器①
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
基于动态分类器集成系统的卷烟感官质量预测方法
《花卉之二》
《静物花卉》