APP下载

基于深度学习的蘑菇图像分类研究

2020-07-27肖杰文赵铖博李欣洁刘钟钰庞博杨彝华王建新

软件工程 2020年7期
关键词:图像分类卷积神经网络蘑菇

肖杰文 赵铖博 李欣洁 刘钟钰 庞博 杨彝华 王建新

摘  要:为了解决蘑菇图像分类的问题,实现野生菌毒性快速识别,以7种蘑菇作为研究对象,提出了一种基于深度学习的蘑菇图像分类的方法。所提出的分类方法在考虑了自然场景图像的特点下,利用图像像素信息进行特征提取,提取到的特征向量具有可辨别性、独立性和鲁棒性;轻量级ShuffleNetV2模型与作为其他常用CNN模型相比具有更高的精度。实验表明,基于ShuffleNetV2的蘑菇分类模型的Top-1准确率为55.18%,Top-5准确率为93.55%,能够一定程度上解决蘑菇图像分类困难的问题。未来结合移动设备和嵌入式开发,将能够用于自然环境下野生菌的自动分类,为蘑菇产业智能化和自动化提供新的思路。

关键词:深度学习;图像分类;蘑菇;卷积神经网络

中图分类号:TP399     文献标识码:A

Abstract: In order to cope with the problem of mushroom image classification and facilitate the rapid identification of wild mushroom toxicity, a method of mushroom image classification based on deep learning is proposed for seven kinds of mushrooms. The proposed classification method takes into account the characteristics of natural scene images and uses image pixel information for feature extraction. The extracted feature vectors are distinguishable, independent and robust; the lightweight ShuffleNetV2 model is used and has higher accuracy compared with other commonly used models such as CNN. Experiment results show that the mushroom classification model based on ShuffleNetV2 has a Top-1 accuracy of 55.18% and a Top-5 accuracy of 93.55%, which can solve, to some extent, the difficulty of mushroom image classification. If combined with mobile devices and embedded development in the future, it can be used for automatic classification of wild fungi in natural environments.

Keywords: deep learning; image classification; mushroom; convolutional neural networks

1   引言(Introduction)

蘑菇又稱大型真菌,野生的蘑菇也称野生菌。据报告(State of the World's Fungi 2018)统计,世界共有14万余种真菌被报道。随着人们生活水平的不断提高,营养价值高、附加值高的野生食用菌也逐渐进入大众的视野[1]。在中国被报道的食用菌有1020种,药用菌有692种,毒蘑菇480种[2]。但是目前我国野生菌市场鱼龙混杂,多次出现野生菌致人中毒死亡事件[3]。我国食物中毒患者死亡案例中蘑菇中毒占比一成以上,蘑菇中毒为主要的食物中毒死亡原因之一[4]。所以,加强预防毒蘑菇中毒知识的宣传教育,提高防范意识,提前预警、预报,避免误采、误食毒蘑菇是减少毒蘑菇中毒的有效措施[5]。

然而,目前毒蘑菇识别方法主要有通过外形辨别以及通过生化分析两种手段[6]。野外场景难以进行生化分析,普通民众在野外难以从形态学上辨别有毒野生菌。为此,国内外学者展开了一些蘑菇毒性预测的研究,刘斌等人[7]通过贝叶斯分类算法可以从蘑菇的特征属性出发预测蘑菇毒性。庞凤丽[8]开发的基于Android移动终端的毒蘑菇辅助识别系统,提取蘑菇的颜色和纹理作为特征向量,能够利用BP神经网络对蘑菇毒性进行识别。然而,在野外情况下难以准确获得野生菌的特征属性,而且,由于野生菌的特征属性与其种类息息相关,在缺少种类先验知识的情况下,基于特征属性的毒性预测模型在缺少种类先验知识的情况下,其适应能力和泛化能力会大大降低。

因此,开发基于生境图像的蘑菇分类的算法具有重大意义。尽管基于外观和图像的识别有一定的错误率,但相比于其他检测方法有快速、方便和及时的特点,可以起到辅助毒性预警的作用。在植物分类[9,10]、识别[11]、疾病检测[12]领域,图像处理和深度学习技术已经被广泛应用,现有技术有希望移植到蘑菇分类领域。在蘑菇领域,罗宏波等人[13]在水平集复杂背景下已经实现毒蘑菇图像的提取。同时,图像处理和深度学习技术在蘑菇的分级[14]、采摘[15,16]、定位[17]和识别[18]上发挥了重要的作用。然而,针对蘑菇图像分类的研究相对较少,已有研究在数据集、方法上存着局限性。为此,本研究选择7种蘑菇作为研究对象,建立了图像数据集,提取了图像像素作为特征,同时搭建了包括人工神经网络、卷积神经网络等多种图像分类模型,对野外不同种类的蘑菇进行分类,为未来政府部门建立面向普通民众的蘑菇中毒风险警示系统、食用菌生态旅游产业园识别服务,以及野生食用菌产业化生产中自动分拣等的实现提供新的思路。

2  实验数据集与预处理(Experimental data set and preprocessing)

数据集的构建在本研究中占有很大的工作量,是后续研究和实验工作的基础。在原始数据集的基础上,我们做了数据预处理和数据增强等工作。

2.1   原始数据集构建

2.1.1   数据集类型

传统训练方法使用标识数据集进行训练。标识符作为输入源使得模型的应用受到极大的限制:在对于真实图像的处理过程中必须要进行人工的复杂标注,和实际应用明显脱节。

为更好地处理野外不同情况下的图像,本研究以互联网上收集的原始图像为原始数据,并以此为基础进行预处理与输入。这意味着该神经网络没有蘑菇和背景差异的先验知识。并且由于不同图片的拍摄角度、地点、光线不同,这将能扩大模型的使用范围。

为了提高模型的识别效果和增强系统的鲁棒性,本文训练图像尽可能为多场景的、能反映不同复杂背景和蘑菇不同特征的、具有差异的蘑菇图片,同一种类的图像尽量来自形态特征明显的不同个体,拥有不同的形态特征,其中包括:菌盖、菌柄、菌褶、菌环、菌托的形状、颜色。使用的图像为RGB三通道彩色图像,原始图像分辨率均大于500×500。

2.1.2   数据集构架

为明确主要识别对象,最大化模型部署识别效能,首先对全国蘑菇中毒种类进行调查。在我国主要食用菌大省云南省,主要误食毒野生菌种类为鹅膏[19]。结合相关毒性、品种常见程度,确定了七种野生菌种类。从百度和Google的图库中搜集了七种野生菌共1675张图像,用于进行神经网络的训练和测试。图像包含七种不同的野生菌种类,由于一些野生菌种类的外观太相似而无法标记,故这些种类被归类为包括多个种的分类单元。例如,块菌属分类单元里各种类因为外观非常相似而被分为同一组。

2.2   数据集声明

所有图像均来源于网络,因此存在水印等少量人为引入的干扰元素。同时,图像并未经过基因层面的检测,主要通过互联网标签及二次外观进行分类,可能存在少量错误标签。

2.3   数据增强

考虑到蘑菇形态一般少见规则,所以蘑菇图像对于对称、旋转、缩放操作具有敏感性;图像为彩色三通道图像,因此蘑菇图像对颜色增强操作具有敏感性。所以使用颜色随机增强、随机旋转、随机裁剪和随机水平翻转对原始数据集进行数据增强处理,数据增强后总图像数量为1675×5=8375张。

2.4   数据预处理

为了将原始图像转化为模型和算法所能作用的形式,所以对图像进行裁剪和归一化的预处理。

3  蘑菇图像分类模型(Mushroom image classification model)

由于蘑菇生长环境复杂,并且蘑菇本身特征较多,蘑菇图像的背景和图像采集条件复杂,因此蘑菇图像分类识别较为困难。本文选择多种深度学习模型对蘑菇图像进行分类研究,包括ANN、LeNet-5、VGGNet-16、AlexNet和轻量级ShuffleNetV2。

3.1   人工神经网络

人工神经网络(Artificial Neural Network, ANN)又叫多层感知机(Multilayer Perceptron, MLP)。由众多神经元连接构成,各层间通过全连接的方式连接,因此ANN可以看作是由全连接层构成的神经网络。

本文构建的ANN由三层全连接层组成,除输出层外的两层隐含层大小均为100,激活函数为ReLu。

3.2   卷积神经网络

卷积神经网络(Convolutional Neural Networks, CNN)是一种特殊的深层前馈网络,其基本结构包括:一个或多个卷积层、池化层、全连接层及一个输出层。

一个基CNN学习器即一个独立的CNN,CNN可自动提取图像的特征,相比人工选择、标记、识别图像特征,CNN具有高效、便捷、可量化、自适应的特点。在本文中,CNN用于提取蘑菇的形态学特征,并且通过所提取特征给出图像分类的概率,并且自适应调节自身参数。CNN通过卷积的方式提取蘑菇图像的特征,并通过卷积层输出特征图,高层卷积层较低层卷积层提取的特征图抽象。一般CNN结构包括输入层、中间层和输出层。具体地,输入层即CNN的第一层,通常由卷积层构成,用于接收图像。中间层一般由一个或多个卷积层、全连接层或卷积层与池化层的组合构成,其中全连接层连接所有的特征,池化层对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征。输出层一般由全连接层构成,用于将输出值送给分类器,其中分类器对全连接层的输出值进行分类,通常为softmax。

LeNet是最早的卷积神经网络之一,基于LeNet改进的经典CNN模型有LeNet-5、AlexNet、ZF-Net、VGGNet、GoogLeNet、ResNet和DenseNet[20]。

1998年,LeCun设计了LeNet-5,LeNet-5最初在手写数字识别上取得了较好的效果。本文使用的LeNet-5卷积神经网络的结构包括输入层、卷积层、下采样层、全连接层和输出层。

VGGNet是牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司的研究员一起研发的深度卷积神经网络。本文使用的VGGNet为深度为16层的VGGNet-16结构。

AlexNet包含八个带权重的網络层,其中,前5层是卷积层,剩下的三层是全连接层。最后一层全连接层的输出是k维softmax的输入,softmax会产生k类标签的分布。本文使用的AlexNet模型结构如表2所示。

4  实验结果与分析(Experimental results and analysis)

4.1   实验平台

实验是在百度AI Studio平台上使用单个Tesla V100GPU,显存16GB,内存32GB。编程环境为Python3.7,框架结构为PaddlePaddle。

4.2   模型训练

实验对本文构建的原始蘑菇数据集1675张图像(共七种蘑菇)进行分类识别,预处理后图像尺寸为224×224×3。

数据集划分为训练集、验证集、测试集,比例为6:2:2。训练集、验证集、测试集中的图片均为随机选择,用于并交叉验证,以提高结果的可信度。

使用ShuffleNetV2进行实验训练,实验过程设置80个迭代周期,学习率设置为0.001,学习率衰减设置为阶梯形衰减,最后采用分类交叉熵损失函数。

实验步骤具体包括:

(1)对原始数据集1675张图片七种蘑菇进行数据增强和数据预处理,数据扩增至8375张,其中训练集为5007张,验证集1669张,测试集1669张。

(2)搭建和配置PaddlePaddle实验环境,搭建并实现ShuffleNetV2网络模型。

(3)设定相关参数,将训练集(图6)喂入神经网络进行训练,获得訓练集的损失Loss和准确率Acc(图2、图3);每次迭代训练结束后喂入验证集,获得模型在验证集上的准确率Acc(图4)。每批训练网络参数根据损失进行更新,并得到最后一层全连接参数如图5所示。其中,第一层卷积层的特征图如图7所示。当训练结束,将模型在测试集上测试,获得最终模型的Top-1和Top-5准确率。

(4)选取ANN、LeNet-5、VGGNet-16,AlexNet模型分别使用的训练参数和相同数据集进行实验,分别得出Top-1和Top-5准确率作为对比,得出实验结论。

4.3   实验结果

经过实验对比ANN、LeNet-5、VGGNet-16、AlexNet和轻量级ShuffleNetV2的训练和验证效果如图8和图9。可以看出ShuffleNetV2在整个训练过程中都表现出比较好的效果,在训练集和验证集上的准确率上实现了最优效果。

由于蘑菇生长在野外,其图像特征较多,背景和图像采集的情况复杂,故蘑菇图像分类识别较为困难。本文使用的ShuffleNetV2模型在蘑菇分类的准确率有较优的效果,能够解决一定的蘑菇分类识别问题。与其他神经网络相比,ShuffleNetV2拥有较小的参数量、较快的运行速度,无论是将ShuffleNetV2运用在移动设备还是进行嵌入式开发,都较其他神经网络拥有更好的性能,更适用于野外进行蘑菇分类任务。

本文的数据集还可以进一步扩充,特别对不同特征、不同场景、不同拍摄情况下对图像进行扩充,还可以使用更多对数据增强方法扩充数据集,进一步扩大模型使用范围和提高模型性能。本文的实验使用线上平台的GPU进行训练,未来还能对训练设备和方法等进行提升,提高模型训练效率。实验中还可以优化更多的参数,以获得精度更高的模型,从而形成可以投入实际应用的蘑菇图像分类器。本文模型再结合移动设备和嵌入式开发,可以在野外实现蘑菇自动识别,具有重要的意义和应用价值。

5   结论(Conclusion)

本文使用轻量级卷积神经网络对野外复杂环境下的蘑菇图像进行了分类,能够在一定程度上解决蘑菇图像分类困难的问题。通过在本文构建的蘑菇图像数据集上的实验,ShuffleNetV2能够提取蘑菇图像特征,实现蘑菇图像的分类识别。综合对比ANN、LeNet-5、VGGNet-16、AlexNet和ShuffleNetV2的实验结果,ShuffleNetV2的Top-1和Top-5准确率最高(分别为55.18%和93.55%),训练速度、收敛速度和测试速度最快。同时,ShuffleNetV2参数量小、运行速度快的优点,让其更适用于野外蘑菇分类任务,若结合移动设备和嵌入式开发,将能够用于自然环境下野生菌的自动分类。总之,基于深度学习的蘑菇图像分类方法为未来为蘑菇产业智能化和自动化提供了新思路。

参考文献(References)

[1] 白宏芬,杨彝华.论菌文化在楚雄州野生食用菌产业中的影响[J].中国食用菌,2017,36(02):1-4.

[2] Fang Wu, Li-Wei Zhou, Zhu-Liang Yang, et al. Resource diversity of Chinese macrofungi: edible, medicinal and poisonous species[J]. Fungal Diversity, 2019(98): 1-76.

[3] 江凯,熬亚平,罗海波,等.1999—2015年全国食物中毒情况分析[J].安徽农业科学,2018,46(28):147-150;154.

[4] 陈兴,侯天文,李玮,等.我国急性中毒流行病学现状分析[J].医学综述,2008,14(15):2374-2376.

[5] 赵江,汤钦岚,闵向东,等.2010-2018年云南省毒蕈中毒事件分析[J].首都公共卫生,2019,13(06):280-282.

[6] 朱元珍,张辉仁,祝英,等.古今毒蘑菇识别方法评价[J].甘肃科学学报,2008,20(04):40-44.

[7] 刘斌,张振东,张婷婷.基于贝叶斯分类的毒蘑菇识别[J].软件导刊,2015,14(11):60-62.

[8] 庞凤丽.基于Android的毒蘑菇识别系统研究与设计[D].内蒙古工业大学,2019.

[9] Qingguo Xiao, Guangyao Li, Li Xie, et al. Real-world plant species identification based on deep convolutional neural networks and visual attention[J]. Ecological Informatics, 2018(48): 117-124.

[10] Mads Dyrmann, Henrik Karstoft, Henrik Skov Midtiby. Plant species classification using deep convolutional neural network[J]. Biosystems Engineering, 2016(151): 72-80.

[11] Youxiang Zhu, Weiming Sun, Xiangying Cao, et al. TA-CNN: Two-way attention models in deep convolutional neural network for plant recognition[J]. Neurocomputing, 2019, 365(6): 191-200.

[12] Kamlesh Golhani, Siva K Balasundram, Ganesan Vadamalai, et al. A review of neural networks in plant disease detection using hyperspectral data[J]. Information Processing in Agriculture, 2018, 5(3): 354-371.

[13] 羅宏波,曾海欧,周苏娟,等.基于水平集复杂背景下毒蘑菇图像的提取[J].自动化与信息工程,2015,36(02):27-29.

[14] 卢丹,王丽丽,郑纪业,等.基于图像处理的双孢蘑菇分级方法研究[J].山东农业科学,2017,49(10):126-130.

[15] 袁兴,王德胜,朱云霞,等.高端蘑菇智能图像识别无损伤采摘系统的研究[J].科技创新导报,2018,15(17):93-95.

[16] 杨永强.基于机器视觉的蘑菇自动采摘系统关键技术研究[D].南京航空航天大学,2019.

[17] 白云,袁兴,闻平.基于图像软件系统的蘑菇精准识别定位系统的研究[J].科技创新导报,2019,16(02):155-156.

[18] 于跃.基于卷积神经网络的平菇图像识别研究[D].吉林农业大学,2018.

[19] 邓春英,康超,向准,等.贵州省毒蘑菇资源名录[J].贵州科学,2018,36(05):24-30.

[20] 郑远攀,李广阳,李晔.深度学习在图像识别中的应用研究综述[J].计算机工程与应用,2019,55(12):20-36.

猜你喜欢

图像分类卷积神经网络蘑菇
基于云计算的图像分类算法
基于深度卷积神经网络的物体识别算法
基于锚点建图的半监督分类在遥感图像中的应用
深度学习算法应用于岩石图像处理的可行性研究
一种基于引导滤波和MNF的高光谱遥感图像分类方法
蘑菇
基于最大似然法的南京市土地利用类型分类研究
基于卷积神经网络的树叶识别的算法的研究
蘑菇伞