基于多尺度特征引导的细粒度野生菌图像识别
1 引言
野生菌因味道鲜美、营养丰富而深受人们喜爱,但是由于许多有毒野生菌和可食用菌在外观上极为相似,对于普通人群而言,不具备鉴别野生菌是否有毒的相关知识,容易误食有毒野生菌而中毒。据文献[1]统计显示,仅2011年到2017年,云南省共报告野生菌中毒事件1789起,中毒7966人,死亡219人。因此利用深度学习技术对野生菌进行识别,帮助人们鉴别野生菌的种类,将对改善野生菌中毒问题起到重要的作用。
传统的野生菌识别方法大致分为动物实验检验法、化学检测法、真菌分类学鉴定法和形态特征识别方法等[2]。文献[3-6]分别使用动物实验检验法、化学检测法、真菌分类学鉴定法和形态特征识别方法对毒性进行检测,但这些方法实验器材难以获取,且耗时较长,实用性较差,不易推广。文献[7-9]则分别基于支持向量机、贝叶斯网络以及stack算法进行野生菌的识别,但这些方法依赖人们手工标注特征,操作繁琐,识别率不高,不利于推广和使用。随着深度学习技术的发展,基于卷积神经的图像识别方法成为图像识别的重要途径,被一些学者应用到了野生菌识别研究中。例如文献[10]基于Xception与ResNet50网络进行野生菌的识别,实验数据集是国外的kaggle数据集,此数据集仅有9类野生菌,类别较少;文献[11-12]则基于互联网采集的野生菌图片数据集进行野生菌的识别。但是由于这两种数据集都是在互联网上进行采集的,样本数量少,图片清晰度不足,部分图片还存在水印,容易丢失物体的一些细节信息,不能较好地保留图像信息,不利于增强模型的泛化能力。同时,不同于粗粒度图像各类别之间的差异,例如人和树的差异,野生菌作为一个大类,其子类繁多,类间差异相对较小,因此野生菌的识别属于细粒度识别问题,跟普通的识别问题不同。细粒度识别[13-14]在一个种类的基础上进行更精细的分类,因为类间差异较小,所以识别难度较大。例如,袁培森等[15]从细粒度图像分类角度出发,基于Inception-ResNet-v2模型对野生菌进行识别,但没有考虑到图片复杂背景的影响,识别精度相对较低。
上述基于深度学习的野生菌识别方法存在的问题主要包括几个方面。一、现有的野生菌识别方法受复杂背景的干扰较大。二、野生菌图像的低级特征往往包括很多细节信息,例如纹理等,这些低级细节特征对识别外形较为相似的野生菌细粒度具有重要的作用,高级特征则包括较多的语义信息,能够帮助定位显著性物体所在位置,有利于减少背景干扰。现有方法并没有充分利用网络提取过程中的低级特征和高级特征,也没有对低级特征和高级特征进行融合,没有利用多尺度特征来提升细粒度识别精度。三、文献[10]使用的数据集来源于国外,跟国内野生菌种类存在一定差异,在国内适用性不强。文献[11-12]使用的数据集是通过互联网采集的,图片质量参差不齐,图片数量少,分别为1675张和3500张,不利于推广使用。
本文提出了一种改进的ResNeXt50模型。该模型首先利用提出的多尺度特征引导(MSFG)结构进行特征引导,用多尺度的低级特征引导网络学习细节特征,再使用多尺度的高级语义特征来引导网络关注图像中显著性区域所在位置。其次,在网络结构中添加改进的Inverse Document Frequency-SE(IDF-SE)注意力机制,再构建特征金字塔结构进行特征融合,利用联合特征进行识别。实验识别率和热力图结果表明,改进的ResNeXt50能够有效地提升细粒度识别精度,减少网络对复杂背景的学习,识别率明显优于现有的传统模型。
2 改进的ResNeXt50模型
2.1 ResNeXt50
由于野生菌的外形特征丰富多样,并且部分野生菌在外形上存在极大的相似性,为了提升细粒度图像的识别精度,这就要求网络模型能够学习到更丰富的特征。ResNeXt50综合了ResNet[16]和Inception[17]网络的优点,在不增加网络参数量的前提下,提升了网络的分类精度。ResNeXt50采用了拆分、变换和融合的思想,实现分组卷积,将ResNet中较大的卷积核替换成一系列卷积核尺寸更小、数量更多的平行拓扑结构,对输入同时进行多组卷积来提升识别精度。ResNeXt的残差块结构如
ResNeXt50的输入
式中:
2.2 MSFG
MSFG为所提的多尺度特征引导模块。特征引导在图像显著性区域检测方面有重要的应用[18-19],能够有效地提升网络性能。MSFG通过构建多尺度特征,利用短连接来引导网络对重要特征的学习和利用,MSFG结构如
MSFG结构首先使用指数加权激活的SoftPool池化[20]对特征图进行处理,SoftPool具有更精细的下采样,能够提升识别精度,本结构采用大小为1×1,2×2,4×4,8×8的池化核来获取不同尺度感受野的特征图,增加网络对全局信息的获取。不同于传统的最大池化和平均池化,SoftPool利用softmax函数对池化区域
再将激活权重
经过SoftPool池化处理之后,会得到具有不同感受野的多尺度特征图,首先利用最邻近插值对多尺度特征图进行上采样,让四个特征图的尺寸保持一致;接着对四个特征图进行拼接,再利用1
2.3 IDF-SE注意力机制
注意力机制主要是模拟人眼的视觉注意力机制,在训练过程中关注图像中的显著性区域,以便更好地学习图像中的重要特征,其被广泛应用于诸多领域[21-22]。针对野生菌复杂背景会影响识别精度,提出了一种IDF-SE注意力机制,来减少对复杂背景的学习。IDF-SE结构如
IDF-SE注意力机制由两部分组成,一部分是改进的SE网络,为了防止SE网络[23]中多层感知机降维产生的信息丢失,本文不再进行降维,而是采用两个神经元数量相同的全连接层进行非线性关系建模;另一部分是IDF辅助权重模块,用来对SE注意力机制得到的权重进行补充。考虑到一些通道特征图中非零像素的数量少,即白色区域少,黑色区域较多,而往往这类通道特征图可能具有关键的特征,但随着卷积神经网络的不断加深,卷积和池化过程会导致这类通道特征信息丢失,为了在一定程度上减少这类通道特征图的信息丢失,使其能够尽可能多地被网络所关注,采用逆文档频率(IDF)算法思想,增强白色区域的通道特征权重。IDF常被用作信息检索的加权,常用于自然语言处理[24],IDF的主要思想是包含词条的文档越少,逆向文本指数越高。于是利用IDF的思想,将其应用于图像处理,白色区域越少的通道图,权重指数越高,再对这一权重值增加一个温度系数,控制该加权系数的影响程度。具体算法思路如下:首先计算每一个通道特征图中白色区域占比
式中:
2.4 模型结构
基于ResNeXt50主干网络进行改进,改进之后的整体网络结构如
首先对输入的野生菌图片进行预处理操作,将图片的尺寸调整为224×224,进行标准化处理,并转化为张量,依次通过ResNeXt50网络中卷积核大小为7×7的卷积层、4个Layer模块来提取特征,4个Layer模块包含的残差块数量分别是3,4,6,3。野生菌图片经过ResNeXt50网络的第一层进行特征提取,会得到具有较多底层信息的特征图,例如纹理、颜色等,考虑到一些底层特征对野生菌的识别具有重要的作用,模型在Layer 1得到的底层特征图后面添加MSFG结构,利用多感受野来获取更多的全局信息;再将MSFG得到的特征图分别作为输入送到ResNeXt50网络的Layer 3和Layer 4中,引导模型学习底层特征;接着,在Layer 1后面添加IDF-SE模块,让网络更加注重有效信息的获取,尽可能多地保留特征信息;其次,在ResNeXt50网络的基础上构建特征金字塔结构,图中的特征图Fuse 1、Fuse 2、Fuse 3、Fuse 4就是特征金字塔的自顶向下结构。由于卷积网络的高级语义特征可以定位野生菌主体所在位置,于是还在ResNeXt50网络模型的的Layer 4之后继续添加MSFG结构,获取具有不同感受野的多尺度特征图,以便更好地定位野生菌主体所在位置;再利用短连接将MSFG输出的特征图分别添加到Fuse 1、Fuse 2和Fuse 3中,这样做的目的就是将MSFG处理得到的多尺度高级语义特征融合到其他层的特征图中,以此来定位野生菌主体的位置,引导网络学习关键信息,减少背景信息的干扰,实现特征之间的高度融合;然后对特征金字塔融合之后得到的四个特征图进行相加,得到通道数为256的联合特征
3 实验及分析
3.1 实验环境及参数设置
实验环境基于操作系统为Ubuntu20.04的服务器,该服务器的CPU为i9 7900,GPU为两块Geforce GTX 3090。深度学习框架选择pytorch 1.6,编程环境选择python 3.8,CUDA驱动版本选择11.1。损失函数选择交叉熵损失函数,实验初始学习率设置为0.01,momentum设置为0.9,在训练过程中选择线性学习率衰减法调整学习率,每训练10次,学习率有0.1的缩减。在梯度下降过程中,使用SGD算法进行优化。实验中batchsize的大小设置为64,训练的epoch个数设置为200,IDF-SE中的温度系数T设置为0.3。
3.2 数据集构建
在国家自然科学基金支撑下,通过实地拍摄构建了一个高质量、多角度且普适性强的野生菌数据集,有效解决了利用互联网上的图片来构建数据集时图片清晰度不高,图片质量差,野生菌细节丢失,不利于细粒度识别等问题。本文采集的数据集共有常见菌类图片6881张,图片分辨率为3000
为了提升模型的鲁棒性和泛化能力,采用数据增强策略对数据集进行扩充,这种方法在AlexNet[25]中就已经被应用,还能有效地解决过拟合现象。主要采取的数据增强方法有旋转、裁剪、放大、镜像对称、添加白噪声,其中旋转角度使用了15°,30°,45°,90°,150°,扩充后数据集一共有13762张图片,本文的数据集按照8∶1∶1的比例依次划分为训练集、验证集、测试集。训练集用来训练模型,验证集用来选择模型,测试集用来检测模型的优劣及泛化能力。
3.3 实验结果分析
改进后的模型在训练集和验证集上训练了200个epoch,模型训练的损失曲线如
模型在训练集和验证集上的损失收敛效果好,整个训练过程呈现下降趋势,没有出现较大的振荡。选择在验证集上准确率最高的模型作为最终模型,再对这一模型在测试集上进行测试,测试的准确率为96.47%。实验结果的混淆矩阵如
通过混淆矩阵可以发现,每个种类的大部分野生菌图片都能被正确识别,只有极少部分的野生菌图片被误识别。其中,所提模型对虫草花、谷熟菌、红牛肝菌、平菇、荞面菌、皮条菌及铜绿菌的所有测试集样本具有较好的细粒度识别率。
为了进一步验证所提方法的有效性,在测试集中又单独选择了8种(如
表 1. 所提模型对不同野生菌的识别结果
Table 1. Recognition results of the proposed model for different mushroom
|
通过观察
为了更加直观地对比模型改进前后的效果和改进方法的可信度,使用卷积神经网络可视化方法Grad-CAM[26]对改进模型进行热力图的可视化。通过观察热力图,可以判断哪部分图片区域有利于最终的分类。可视化结果如
为了验证改进之后的网络是否优于其他网络,将其与VGG19、DenseNet121、Inception_v3、ResNet50、ResNeXt50以及ShuffleNet_v2这6个网络进行对比,同时对这6个网络的模型参数进行调整和优化,每个模型的训练次数为200个epoch。各模型在验证集上的损失曲线如
由
为了更加准确地评价所提模型,分别利用准确率、精确率、召回率以及F1值来进一步对模型性能进行评估,由于本实验是多分类问题,采用精确率、召回率以及F1的平均值来进行对比。不同模型在测试集上的各指标如
表 2. 不同模型在数据集上的识别结果
Table 2. Recognition results of different models on the data set
|
由
为了更好地对比改进过程中不同模块对模型性能的增益,对不同模块进行了实验对比,实验结果如
表 3. 不同模块对网络模型的增益
Table 3. Gain of different modules to the network model
|
其中Backbone是指基于ResNeXt50网络构建的特征金字塔网络。通过观察
4 结论
近年来国内野生菌中毒事件频发,为了使用深度学习算法帮助人们识别野生菌种类,针对传统网络模型对背景复杂、外形差异较小的野生菌图片的细粒度识别率低的问题,提出了一种改进的ResNeXt50。改进的ResNeXt50利用MSFG模块进行多尺度特征引导,接着使用IDF-SE注意力机制来增强网络对有用特征的学习,再构建特征金字塔进行不同层级特征的融合,最后使用联合特征来进行识别。从实验准确率结果可以看出,所提改进ResNeXt50能够在一定程度上提升细粒度图像识别精度,较ResNeXt50在准确率上提升了2.64个百分点,并且优于其他5种模型。从热力图结果可以看出,所提改进ResNeXt50明显地减少了背景信息的干扰,让网络重点关注野生菌主体所在位置。今后,课题组将继续拍摄更多的野生菌图像来扩充野生菌图像数据库,不断完善模型结构,优化模型参数,进一步提升网络模型的精度,以便在云服务器上部署深度学习模型,开发具有野生菌识别功能的移动端App应用,为普通人群鉴定野生菌的种类提供有力的支持,从而在一定程度上减少野生菌中毒事件的发生。
[1] 万蓉, 刘志涛, 万青青, 等. 2011—2017年云南省野生菌中毒情况分析[J]. 卫生软科学, 2019, 33(10): 84-86, 97.
Wan R, Liu Z T, Wan Q Q, et al. Analysis on wild mushroom poisoning in Yunnan Province from 2011 to 2017[J]. Soft Science of Health, 2019, 33(10): 84-86, 97.
[2] 李林静, 李高阳, 谢秋涛. 毒蘑菇毒素的分类与识别研究进展[J]. 中国食品卫生杂志, 2013, 25(4): 383-387.
Li L J, Li G Y, Xie Q T. Research progress on poisonous mushroom toxins classification and recognition[J]. Chinese Journal of Food Hygiene, 2013, 25(4): 383-387.
[5] 桂明英, 何容, 郭永红, 等. 基于形态特征和ITS序列对新疆芦苇根蘑菇的分类鉴定[J]. 食用菌, 2014, 36(4): 14-16.
Gui M Y, He R, Guo Y H, et al. Based on morphological characteristics and ITS classification and identifica-tion of Xinjiang Reed Root mushrooms by sequence[J]. Edible Fungi, 2014, 36(4): 14-16.
[6] 曾令奎. 毒蘑菇中毒的识别和预防[J]. 中国林副特产, 2008(1): 97-98.
Zeng L K. Recognition and prevention of poisonous mushroom poisoning[J]. Forest by-Product and Speciality in China, 2008(1): 97-98.
[7] 刘洋, 王涛, 左月明. 基于支持向量机的野生蘑菇近红外识别模型[J]. 食品与机械, 2016, 32(4): 92-94, 112.
Liu Y, Wang T, Zuo Y M. Study on recognition model for wild mushroom based on support vector machine of near infrared spectral diagnosis[J]. Food & Machinery, 2016, 32(4): 92-94, 112.
[8] 刘斌, 张振东, 张婷婷. 基于贝叶斯分类的毒蘑菇识别[J]. 软件导刊, 2015, 14(11): 60-62.
Liu B, Zhang Z D, Zhang T T. Recognition of poisonous mushrooms based on Bayesian classification[J]. Software Guide, 2015, 14(11): 60-62.
[9] 闫志峰. 基于Stacking算法的多分类器融合在毒蘑菇识别中的应用[D]. 太谷: 山西农业大学, 2019.
YanZ F. Application of multi-classifier fusion based on Stacking algorithm in identification of poisonous mushrooms[D]. Taigu: Shanxi Agricultural University, 2019.
[10] 沈若兰, 黄英来, 温馨, 等. 基于Xception与ResNet50模型的蘑菇分类方法[J]. 黑河学院学报, 2020, 11(7): 181-184.
Shen R L, Huang Y L, Wen X, et al. Mushroom classification based on Xception and ResNet50 models[J]. Journal of Heihe University, 2020, 11(7): 181-184.
[11] 肖杰文, 赵铖博, 李欣洁, 等. 基于深度学习的蘑菇图像分类研究[J]. 软件工程, 2020, 23(7): 21-26.
Xiao J W, Zhao C B, Li X J, et al. Research on mushroom image classification based on deep learning[J]. Software Engineering, 2020, 23(7): 21-26.
[12] 陈德刚, 艾孜尔古丽, 尹鹏博, 等. 基于改进Xception迁移学习的野生菌种类识别研究[J]. 激光与光电子学进展, 2021, 58(8): 0810023.
[13] 张洁, 赵红东, 李宇海, 等. 复杂背景下车型识别分类器[J]. 激光与光电子学进展, 2019, 56(4): 041501.
[14] 冯春, 赵南京, 殷高方, 等. 基于光谱相似性分析的水体致病菌种类识别方法[J]. 光学学报, 2020, 40(3): 0330002.
[15] 袁培森, 申成吉, 徐焕良. 基于迁移学习和双线性CNN的细粒度菌菇表型识别[J]. 农业机械学报, 2021, 52(7): 151-158.
Yuan P S, Shen C J, Xu H L. Fine-grained mushroom phenotype recognition based on transfer learning and bilinear CNN[J]. Transactions of the Chinese Society for Agricultural Machinery, 2021, 52(7): 151-158.
[21] 李宇昕, 杨帆, 刘钊, 等. 基于改进残差网络的道口车辆分类方法[J]. 激光与光电子学进展, 2021, 58(4): 0415009.
[22] 徐志京, 王东. 基于双路循环生成对抗网络的多姿态人脸识别方法[J]. 光学学报, 2020, 40(19): 1910002.
[24] 彭俊利, 谷雨, 张震, 等. 融合单词贡献度与Word2Vec词向量的文档表示[J]. 计算机工程, 2021, 47(4): 62-67.
Peng J L, Gu Y, Zhang Z, et al. Document representation fused with term contribution and Word2Vec word vector[J]. Computer Engineering, 2021, 47(4): 62-67.
Article Outline
张志刚, 余鹏飞, 李海燕, 李红松. 基于多尺度特征引导的细粒度野生菌图像识别[J]. 激光与光电子学进展, 2022, 59(12): 1210016. Zhigang Zhang, Pengfei Yu, Haiyan Li, Hongsong Li. Fine-Grained Image Recognition of Wild Mushroom Based on Multiscale Feature Guide[J]. Laser & Optoelectronics Progress, 2022, 59(12): 1210016.