基于改进EfficientNet的中草药识别技术
作者: 张志光 张永健 宋卫虎
摘要:为了实现种类繁多的中草药识别,提升中草药识别效率,朝着快速、便捷、高效的方向发展,提出了改进Efficientnet卷积神经网络的中草药识别技术。首先选用EfficientNet-b0作为中草药特征提取网络,删减网络结构,并加入RFB模块和CBAM注意力机制,最后结合微信小程序,实现中草药在线识别技术。改进后的EfficientNet-b0相比于原网络,准确率从96.83%提升至97.31%。研究结果表明,该方法有助于中草药识别朝着更快、更准确的方法发展,并且结合微信小程序,实现了随走随用,方便检测。
关键词: EfficientNet;中草药;卷积神经网络;图像识别
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2022)16-0068-04
中草药历经几千年的传承,其独特的养生保健优势备受世界瞩目。但中草药种类繁多,对非专业人士来说难以识别,在使用时,也会因为不了解其主治功能等,造成错误食用。因此实现一种能在线中草药识别技术,并包括相关介绍说明,具有重大的应用价值和研究意义。
传统的中草药识别方法多凭借专业人士的主观感觉进行识别[1],此类方法不仅消耗人力、财力,而且识别效率低,受主观影响极大。近些年,基于图像识别的中草药鉴别方法可分为两大类。一类是基于物理或化学特征的识别方法。如2002年,Yibo Li等采用监督模糊ART神经网络实现了基于高效液相色谱的中草药识别[2]。2009年,陈艳江等将支持向量机理论应用于中草药太赫兹光谱识别[3],通过傅里叶变换得到吸收系数数据,最后使用支持向量机方法进行分类识别。此类中草药识别方法,过程复杂,识别效率低,难以应用于实际。另一类是基于中草药图像特征的识别方法。随着人工智能的快速发展,AlexNet[4]、VGG[5]、GoogLeNet[6]、ResNet[7]、ShffuleNet[8]、Senet[9]等优秀网络模型相继问世,此类深度学习方法在中草药识别方面大放异彩。如2017年,孙鑫等人基于VGG16网络对中草药饮片图像进行识别,测试了50种中草药[10]。2020年,黄方亮等人基于AlexNet深度学习模型对5类中草药植物进行分类[11]。相比基于物理或化学的检测方法,深度学习中草药图像识别方法更加高效。据文献统计可知,目前中草药在线识别技术还在发展阶段,对实现不同复杂背景和光照下的准确识别,仍是当前研究的难题。卷积神经网络是近几年兴起的图像识别技术,相比于传统的识别技术,更加高效、准确,能解决不同复杂背景的图像识别问题。其中EfficientNet[12]系列网络于2019年提出,并在当年ImageNet竞赛上远超第二名,因此本文以EfficientNet网络为中草药识别的研究对象,主要贡献如下:
1)删减原EfficientNet-b0中部分网络模块,减少卷积神经网络的运算量,缩短模型训练时间。
2)加入RFB模块和CBAM注意力机制模块,提升卷积神经网络模型对不同尺度中草药的识别。
3)基于改进的EfficientNet-b0网络,开发一款中草药在线识别检测小程序,实现随走随用,帮助用户查看各中草药相关介绍。
1 材料
计算机硬件环境为Inter Core i7-9700F型中央处理器(CPU)和NVIDIA GeForce RTX 2080Ti型显卡,在Linux操作系统上进行训练,采用Pytorch1.7.1框架搭建计算环境,CUDA的版本为10.1。
实验样本为16种中草药图像,包括人参、党参、白豆蔻、肉豆蔻、太子参、丹参、当归、冬虫夏草、赤小豆、西洋参、黄芪、枸杞、甘草、麦冬、五味子、鹿茸等,以上中草药图像均由网络爬虫获得。
2 方法
2.1 图像数据集制作
爬虫获得的16种中草药常见且常用,具有代表性。以各自的中草药名称作为关键词,通过爬虫依次对以上各中草药图像进行搜索,各筛选出1000张图像作为实验样本。这些实验样本均是互联网上真实存在的图像,图像的背景各异兼具随机性和复杂性,中草药背景的复杂,更加符合现实生活中的实际情况。网络爬虫获得的图像样本尺寸不一,为了提高图像的有效识别区域,笔者首先进行图像样本预处理,将图像裁剪为正方形,调整图像的尺寸为224×224。预处理后中草药图像数据集中的部分图像如图1所示。
本实验中每类中草药有1000张图像,共16000张,划分训练集与测试集比例为7:3,训练集总数共11200张,测试集总数共4800张,在训练过程中,为了方便实验样本输入卷积神经网络中进行训练,创建了train.txt文本,如图2所示。其中,train.txt文本用于保存每张训练集图像样本的存放路径和标签,测试集文本的制作相同。
2.2 基于Pytorch框架改进的EfficientNet
2.2.1 EfficientNet网络结构分析
本文采用EfficientNet作为特征提取的网络模型,该模型高效、轻量。在识别准确率上,它击败了当时识别准确率最高的Gpipe模型,在ImageNet数据集上获得84.3%的Top1精度。并且在参数量上,相比Gpipe模型缩小了8.4倍[13]。
EfficientNet网络的核心是提出了一种复合缩放方法,使用一个复合系数φ统一缩放网络的深度、宽度和分辨率:
[depth:d=αφ]
[width : w = βφ]
[resolution : r = γφ] (1)
[α ·β2 ·γ2≈2]
[α≥1,β≥1,γ≥1]
其中(α,β,γ)是需要求解的一组参数,分别表示深度、宽度和分别率。深度为卷积神经网络的layer(层数),宽度为网络在训练过程中的channel(通道数),分辨率为网络训练过程中的feature map(图像特征)。φ值是一个指定的系数,控制有多少资源用于模型缩放,而α、β、γ指定如何将这些额外的资源分配给网络的深度、宽度和分别率。当φ值为1,可用资源增加2倍时,通过网格搜索计算出最优的α、β、γ,从而得到了EfficientNet-b0。在固定α、β、γ值后,增大φ值,得到了EfficientNet-b1,EfficientNet-b2,…,EfficientNet-b7。
EfficientNet网络共有8个模型,分别对应不同的输入图像尺寸,根据中草药图像的尺寸选择EfficientNet-b0作为提取特征网络,其网络结构如图3(a)所示。
EfficientNet-b0主要由16个大结构块(MBConv)组成。如图3(b)所示,MBConv的结构首先是1×1的卷积(Conv),用作升维,然后再通过标准化(BN)和激活函数(Swish)。接着是深度可分离卷积进行提取特征操作,输出结果同样需要经过BN和Swish。然后经过SENet注意力机制后,再经过一个1×1的卷积,这里1×1卷积的作用是降维,接着经过BN和Dropout。最后输出的特征与输入MBConv的特征进行融合,将较深层的特征信息,通过短接边,与较浅层的图像特征相融合,达到更好的中草药图像特征提取。
2.2.2 改进的EfficientNet-b0网络模型设计
针对EffcientNet-b0的网络特点,本文对其进行了以下改进:
1)简化原有EfficientNet-b0网络
原EfficientNet-b0由16个大结构块组成,运算量大,运算速度较慢。本文对EfficientNet-b0中影响较小的第13,14个大结构块进行删除,减少运算量,缩短训练速度。
2)添加注意力机制(CBAM)
如图4所示是CBAM(Convolutional Block Attention Module)注意力机制示意图,它将注意力过程分为两个独立部分,通道注意力机制模块CAM (Channel Attention Module)和空间注意力机制模块SAM (Spatial Attention Module)。这不仅节约了参数和计算力,而且保证了即插即用的模块集成到现成的网络中去。相比于EfficientNet网络中只有通道注意力机制的SeNet,具有更好的效果[14]。
3)添加RFB模块
如图5所示,是RFB模块的结构示意图,该结构借鉴了Inception结构,都采用了1×1的卷积,用于减少计算量和跨通道的信息融合。RFB主要不同点在于引入了空洞卷积,扩张率dilation可增大感受野,相比普通卷积,可捕获多尺度上下文信息,最后通过特征融合输出。
结合以上3点,改进后的EfficientNet-B0网络结构示意图如图6所示。
3 实验
3.1 基于改进EfficientNet-b0的中草药识别实验
3.1.1 改进的EfficientNet-b0与其他网络模型对比
本实验输入卷积神经网络测试的中草药图像尺寸为224×224,通过改进前后的EfficientNet-b0网络模型,与其他迁移学习网络模型结果进行了对比,设置初始学习率lr为0.0003和0.00003,batch_size为64的情况下,训练epoch为50轮,各网络模型的超参数设置及识别结果如表1所示:
测得改进后的EfficientNet-b0网络在初始学习率lr为0.0003,batch_size为64时,识别效果最好,相比于原EfficientNet-b0识别精确度从96.83%提升至97.31%。为了评估模型的识别结果可信度,采用AUC作为评估模型好坏的指标。
准确率和AUC值的计算都可以使用混淆矩阵,如图7所示是混淆矩阵示意图。
根据混淆矩阵可得到用于评价指标的计算公式如下:
[TPR=TPTP+FN]
[FPR=FPFP+TN] (2)
[Accuracy=TP+TNTP+FN+FP+TN]
TPR是指所有正样本中预测为正的比例,FPR是指所有负样本中预测为负的比例,准确率Accuracy是由总的预测中预测为正的比例计算得到。以FPR为横坐标,TPR为纵坐标绘制得到的曲线称为ROC曲线,该曲线与坐标轴围成的面积即为AUC值,AUC值越接近于1表明模型越可靠。改进后的网络模型与原网络模型的AUC值均在0.95以上,因此识别结果可信度极高。
3.1.2 改进算法在不同光照背景条件下实验
为了验证改进后的算法性能,同时模拟真实应用场景不同光照下的中草药识别。对中草药图像进行调节亮度,分别进行增暗50%和增亮50%,来模拟在真实环境下的中草药识别,由于真实环境中,光线的强弱并不是一成不变的,设置明暗与原始图像的对比,更利于验证改进后的算法性能。如图8所示,是不同亮度的中草药图像。
对亮度变换后的中草药图像数据集,分别在原EfficientNet-b0和改进后的EfficientNet-b0测试,lr为0.0003,batch_size为64,训练50个epoch,测试结果如图9所示。