许玉蕊,刘银华,2,高 鑫
(1.青岛大学 自动化学院,青岛266071;2.青岛大学 未来研究院,青岛266071)
随着我国经济快速增长,人们日常生活产生越来越多的垃圾所带来的环境问题日益严峻。现阶段我国对生活垃圾的处理主要采用焚烧、填埋和堆肥等方式,既占用了宝贵的土地资源,也增加了环境污染和资源浪费。实行垃圾分类,关系广大人民群众生活环境,关系节约使用资源,也是社会文明水平的一个重要体现[1]。
近年来,随着计算机软硬件的巨大发展,神经网络的研究与应用得到了飞速的发展,尤其在图像识别领域,算法精度有了巨大的提升。所以将神经网络应用到垃圾处理中不仅可以快速而准确地进行垃圾分类处理,还能够大大减少因垃圾分类处理所需的人工成本。传统的图像分类方法普遍使用纹理或颜色等特征,常用的算法有SVM[2]、HOG[3]、ELM[4]等。神经网络相对于传统算法减少了人工对数据特征的提取,缩减了到达目标效果所需的时间,提高了鲁棒性。为加强特征拟合和加快特征提取能力,基于卷积神经网络(Convolution Neural Network,CNN)的多种算法被广泛提出与应用。1998年LeCun 等人提出了LeNet 模型,最初是为了解决手写数字识别的问题,同时也标志着卷积神经网络发展的开始。随后,多种优秀的神经网络模型接连被提出,例如AlexNet、VGGNet、ResNet、Inecption 等。这些模型已被成功地应用于日常生活及工业生产场景当中,如人脸识别[5]、图像分类[6]、缺陷检测[7]等不同的领域。为解决垃圾分类问题,文献[8]采用了改进的Faster R-CNN 的方法将识别率达到了81.77%;文献[9]采用卷积神经网络对塑料垃圾进行分类;文献[10]通过引入注意力机制来提高网络的准确率。虽然已有研究人员将卷积神经网络运用于垃圾分类,但其准确率和识别速度都有待提升,实用性也需考量。
本次研究通过对Inception 模块和残差模块进行特征融合,可以对两种模块进行优势互补。这不仅能通过不同尺寸的卷积核来提取更为丰富有利的信息,也能防止梯度爆炸。同时在Inception 模块后加一层Batch Normalization 组成Inception-Residual 模块进一步提高网络的准确率和分类速度,最终模型的准确率为97.67%,从而达到应用标准。本文首先探索了本次研究所使用的网络模型,并对其进行分析;其次通过对数据集和网络参数的选择对实验结果进行比较分析,从而验证本次研究的可靠性。
卷积神经网络(CNN)是模拟人的大脑来分析图像和数据信息,常用于解决目标检测和分类问题,其核心“成员”是卷积层和池化层。CNN 能自动提取每类图片中的特征进行自主学习,模型结构如图1所示。其主要是通过增加卷积层的通道数或改变卷积核的大小来提高特征提取能力。但伴随着卷积层的层数和每层输出通道数的增加会带来计算量增大、卷积核大小的选择多样化和容易出现过拟合等问题。
图1 CNN 模型结构Fig.1 CNN model structure
1.1.1 Inception 模块
为保证多种卷积核可以同时对同一层数据进行多种特征提取,Inception 模块由此诞生。Inception 模块采用了多分支结构和1×1 卷积核。多分支结构构造了一种较高的稀疏结构,保证了最优的卷积结果和较高的特征复用率,有效地避免了因卷积核大小选取的差异而导致网络学习效果较差。在弥补了现有方法在特征提取上不足的同时,提高了网络的分类性能和泛化能力[11]。1×1 卷积可以跨通道组织信息,优化了网络的表达能力,并且能够达到升维或降维的作用。
Inception 模块不仅在宽度上有所改善,还对卷积核结构进行了改进。Inception 模块采用2 个3×3的卷积核来替代1 个5×5 的卷积核,其结构如图2(a)所示。除此之外,Inception 模块还采用了拆分卷积核的方法,即将1 个二维卷积核拆成2 个一维卷积核。如图2(b)、2(c)所示,将7×7 的卷积核拆分成1×7 和7×1 的2 个卷积核;将3×3 的卷积核分解成1×3 和3×1 的2 个卷积核。这种处理方式具有增加特征多样性、简化空间结构、加快运算速度和增加非线性表达能力等优势。
图2 Inception 模块Fig.2 Inception model
1.1.2 残差模块
在深层网络模型中,随着模型层数的不断加深,网络会出现梯度爆炸和权重衰减现象。残差网络(ResNet)的提出解决了这一问题。同时解决了因计算量的提高和运行时间的增加,而导致准确率出现饱和甚至下降的现象。该网络通过采用跳跃连接(Shortcut Connections)的方式拟合前一层的残差映射,在不增加模型的参数和复杂度的前提下,极大地保证了特征提取的准确性和多样性[12]。残差模块(Residual Module)如图3所示,在传统的卷积模型上加入了一个恒等映射层y=x,图中F(x)表示的是残差,F(x)+x 是最终的映射输出。
图3 残差模块Fig.3 Residual module
残差模块最后输出的公式为
式中:F(x,{wi})=W2σ(W1x),Wi为偏置,σ 表示ReLU激活函数。残差模块可以有效地防止因梯度爆炸而导致的输入信息丢失和准确率瞬间下降的问题,同时能够帮助神经网络学习不同层之间的差异性信息。
本次研究采用了基于特征融合卷积神经网络的垃圾分类方法,保留了传统InceptionV3 卷积神经网络的结构。该模型是将原InceptionV3 中的Inception 模块替换成Inception-Residual 模块。模型的输入是经过预处理后的垃圾图片,输出的是要估计的垃圾分类。
Inception-Residual 模块是由Inception 模块、残差模块和Batch Normalization(简称BN)层组成,改进后的模块保留了原有模块的优点,进一步提高了深度神经网络的特征提取能力,有利于网络对原始数据的全面学习和防止过度学习。Inception 模块和残差模块各有其优缺点。Inception 模块通过增加网络宽度来提升网络的准确率和训练速度,但也会因其对网络性能的提升作用有限、宽度与深度失衡和变种复杂等问题而导致出现过拟合和参数运算效率低的现象。残差模块虽然加深了网络的深度,但同时也增加了参数量和运算速度,并且特征提取效果略逊于Inception 模块。因此,将Inception 模块和残差模块相融合可以起到特征互补和优化网络模型的作用,但相对于单独的Inception 模块增加了训练参数量,并且跳跃连接在复杂的模块中会容易导致训练中断的现象。
Inception-Residual 模块如图4所示。该模块既保留了Inception 的轻量化的特点,减少了网络整体的训练参数,提高识别速度,还可以防止因梯度爆炸而导致的准确率下降和因模型复杂而带来的训练中断的问题。同时,在Inception 模块后面加入一层BN 层可进一步对拼接后的数据进行归类、优化数据分布,可以防止训练中断、提高训练速度和减少达到最优训练结果的迭代次数等[13],BN 层表示如下。
图4 Inception-Residual 模块Fig.4 Inception-Residual module
式(2)是对每个Batch 求取平均值;式(3)是求每个Batch 的方差;式(4)是对输入的数据进行标准差归一化操作,使得数据符合标准正态分布,有助于加快梯度下降;式(5)的作用是恢复出原始某一层所学到的特征分布。
该模型的整体结构如图5所示。首先对输入的图片采用3×3 卷积和最大池化,进行简单的处理和特征提取。然后将输出的结果依次传入Inception-Residual-A、Inception-B、Inception-Residual-C、Inception-D、Inception-Residual-E,通过更多不同尺寸的卷积,获取更加丰富的特征。最后对输出结果进行全局平均池化和全连接,从而获得最终的分类结果。
图5 Inception-Residual 网络模型Fig.5 Inception-Residual network model
其中Inception-Residual-A、Inception-Residual-C、Inception-Residual-E 3 个模块是在Inception-A、Inception-C、Inception-E 的基础上对其进行如图4所示的改进,在原有模块的拼接输出后添加一层BN 层,然后拟合上一层的残差映射。Inception-B 和Inception-D 均是由3 个分支组成的Inception 模块,具有改变输出通道和图片大小的作用。Inception-B 与Inception-A 相似,只是减少了单独的1×1 分支,并且将平均池化层(Avg poolling)改为最大池化(Max poolling)。Inception-D 相比于Inception-C 保留了1×7 和7×1 分支,并在其后增加了1 层3×3 卷积,同时添加了3×3 和最大池化2 个分支。因此,本实验所提出的方法实现了整个网络端到端的训练,并且在增加层数的同时避免了梯度爆炸、提高了训练速度和减少信息丢失等问题的出现。
2.1.1 数据采集
本次研究采用的数据集大多数来自华为垃圾分类挑战杯的数据集,其余数据集是采用网络爬虫的方式收集到的,并进行手工标注,总共包含2.5 万张图片。数据集包含日常生活中较为常见的4 种垃圾类别:其他垃圾、厨余垃圾、可回收垃圾和有害垃圾。输入卷积神经网络中的图片大小均为299×299×3 的三通道RGB 彩色JPG 图片。将数据集中所有图片打乱后按照6∶2∶2 的比例划分成训练集、验证集和测试集。
2.1.2 数据预处理
为确保模型结果的可靠性、提高训练精度,故在数据处理阶段对数据进行了信息归一化和标准化操作。同时对数据进行了随机裁剪、水平翻转、垂直翻转等不同的数据增强技术,从而降低了对图像的成像要求。在训练过程中,处理后的图片随机组合后进入网络模型中,有利于提升模型的鲁棒性和泛化能力。
2.2.1 参数设置
在模型训练过程中,学习率(lr)设置为0.001,批尺寸(Batch_Size)设置为16,进行600 次迭代(Epoch)运算。为增强神经网络各层之间的非线性关系训练采用ReLU 作为卷积层之后的激活函数。ReLU是一个分段函数,当输入为负时,输出为0;否则,输出等于输入[14]。使用Softmax 分类器输出最后的识别结果,并且采用随机梯度下降(SGD)的方法进行参数学习,其中动量(Momentum)设置为0.9。
2.2.2 实验评估指标
在进行多目标检测和分类中,准确率(Accuracy)作为目前最主要的评判指标,即模型预测正确数量占总数量的百分比。本文主要通过对各模型的准确率对比作为本次模型评判标准。除准确率以外,对模型评估的标准还有精确率(Precision)、召回率(Recall)、综合评价指标(F1-score)。精确率是在被识别为正类样本中实际为正类的比例;召回率为在所有正类样本中,被正确识别为正类的比例;综合评价指标是一种统计量,是精确量与召回率的加权调和平均,其综合了精确率与召回率的结果,常被用来评价模型好坏[15]。本文应用精确率、召回率和F1 值来分析改进后的Inception-Residual 模型对4类垃圾的识别效果。各评估指标的计算公式如式(6)~式(9)所示。
TP(True Positive,真正例)是指将正类正确预测为正类的个数。TN(True Negative,真反例)是指将负类正确预测为负类的个数。FP(False Positive,假正例)是指将负类错误预测为正类的个数。FN(False Negative,假反例)是指将正类错误预测为负类的个数。
针对本次研究所提出的Inception-Residual 模型,通过进行对比实验来验证其性能。本文记录了相同数据集、相同训练环境下使用3 种不同模型所训练的准确率,如表1所示分别罗列了InceptionV3、ResNet101 和Inception-Residual 3 种不同图像识别模型应用于本次研究的准确率、测试集所消耗的时间和总的训练参数。其中本次研究所提出的方法最终训练准确率为97.67%,验证准确率为93.98%,测试准确率为94.19%,训练准确率分别高于其它图像识别算法2.08%、3.31%;测试集所消耗的时间也略低于其它网络;总训练参数也比Resnet101 减少了152.2 M。综合评价,改进后的Inception-Residual 网络通过牺牲较少的训练参数从而提高准确率这是值得的。
表1 各种图像识别算法的性能比较Tab.1 Performance comparison of various image recognition algorithms
本次研究所采用的Inception-Residual 模型对4种类别垃圾识别的精确率、召回率和F1 值如表2所示。除有害垃圾的召回率外,其余数值均在90%以上,相较于其它模型均有所提升。由实验结果可知,该模型对4 类垃圾有较好地识别效果,并且该模型可以对垃圾图片进行快速稳定的识别,这也证明了本此研究所设计的垃圾分类模型完全符合预期目标。
表2 Inception-Residual 模型对不同垃圾种类的评估结果Tab.2 Inception-Residual model assessment of different types of garbage
由于本次实验所采用的数据集图片背景杂乱、数据分布不均,导致卷积神经网络对垃圾图片的分类带来了极大的挑战。图6显示了该模型在测试集上所得出来的混淆矩阵,从图中可以看出,被误分类的数据较多,下一阶段将重点解决这一问题。
图6 测试模型混淆矩阵Fig.6 Test the model confusion matrix
本次研究主要针对人工分拣垃圾工作环境差、效率低和垃圾处理不当而造成的环境污染等问题,通过对现有的Inception 模块和残差模块进行融合和改进,构建了一种更加快速和准确的Inception-Residual 模型,并对其进行分析和实验验证,最终准确率可达到97.67%,满足实际应用的需求,充分证明了该模型对垃圾图片有较高的准确率。下一步将在本次研究的基础上进一步改善模型,提高模型的整体性能;扩大数据集并对四大类垃圾进行细分,从而实现更加精准地识别各种垃圾,提高识别精度。