桑一梅 陆萍
摘要:垃圾分类已经成为当前社会生活的新风尚。本论述针对当前垃圾分类工作环境差和容易分类出错的问题,研究基于深度学习的垃圾自动分类方法,并设计基于深度残差卷积神经网络ResNet50的垃圾识别方法。为避免垃圾图像数据集中训练数据量的不足,采用对使用ImageNet训练好的ResNet50模型进行迁移微调的方法来优化网络参数。在华为云垃圾图像数据集上的实验结果表明,该方案可以到94%左右的分类准确率,基本上能够满足城市生活垃圾自动分类的需求。
关键词:深度学习;卷积神经网络;迁移学习;图像识别;垃圾分类
中图分类号:TP391.4 文献标志码:A
0引言
伴随我国城市化发展的不断深入与人民生活水平的提高,城市生活垃圾的产生量急剧增加,成为环境治理刻不容缓的问题。在对生活垃圾的处理上,传统的填埋与焚烧处理存在着占用土地、污染地下水、排放废气等问题,而且处理能力有限。事实上,生活垃圾中绝大部分是可以通过分类回收实现循环利用的。为此我国已在各大城市推行垃圾分类制度,通过合理的分类投放从源头上减少生活垃圾数量,促进资源回收利用。
尽管目前各大城市推行垃圾分类已有一段时间,但总体收效仍有待提升。其中的原因一方面是人们长久以来的不分类习惯,在短时间内很难彻底改变。另一方面在于各城市制定的垃圾分类规则比较复杂,市民在投放垃圾时难以准确地进行分类投放。比如作为我国首个推行垃圾分类试点的上海,人们普遍认为分类规则过于复杂。
近年来,以深度学习为代表的人工智能技术迅速发展,已渗透到各行各业之中。如何利用人工智能技术高效地进行垃圾自动化分类,利用现代科技更好地服务人类生活,成为人们关心的话题。借助深度学习技术开发智能垃圾分类系统也因此引起了人们广泛的研究兴趣[1~3]。
本论述借助深度学习中的卷积神经网络架构设计了基于垃圾图像识别的智能分类系统,使用华为云垃圾图像分类竞赛[4]数据集作为训练与评估数据。为避免模型训练时数据量不足的问题,采用迁移学习方法对在ImageNet[5]上训练好的模型进行微调优化的方法。实验结果表明本论述方法能够达到94%左右的正确识别率,能够基本满足当前生活垃圾的自动分类需求。
1相关研究
使用深度学习方法对图像中的垃圾进行自动识别是机器学习中一项典型的分类任务,在该任务中应用最为广泛的是卷积神经网络(Convolutional Neural Net? works,CNN)架构。在 CNN 中通过多层卷积(Convolution)、池化(Pooling)、批归一化(Batch Normalization)、非线性激活运算的堆叠,能够从图像中自动提取具有判别性的特征表达。随着网络层次的加深,提取的特征就会更抽象,更具有语义信息,相应地识别能力也会越强。不过更深的网络也需要使用更多的训練数据来学习模型参数。自2012年AlexNet[6]网络架构提出并在当前的ImageNet 图像识别竞赛上取得成功后,其他层次更深、性能更强的CNN 网络架构陆续被设计出来,如 VGG[7]、GoogLeNet[8]、ResNet[9]、DenseNet[10]等,这些网络架构目前已经成为图像识别与视频分析等计算机视觉任务的骨干模型。
在使用VGG 与 ResNet 等网络架构作为其他计算机视觉任务的骨干模型时,如果从头开始训练网络模型对于硬件条件要求比较高,而且也需要比较长的训练时间。由于实际使用时的数据集大小一般都比较小,难以支撑起这些模型的训练,因此一般会采用在 ImageNet数据集上训练好的参数作为模型初始状态。 ImageNet 图像数据集作为当前最大的图像识别数据集,其中包含有2.2万个类别的约1500万张图片,这使得在该数据集上训练后的CNN 网络能够识别现实世界中绝大多数的目标。为了让这些骨干模型拥有更好的性能,可以使用当前任务的数据对ImageNet上训练好的模型参数进行微调优化。这种处理也被称为迁移学习,它使得模型在其他数据集上学习到的知识能够在新的环境中得到应用。
2基于ResNet 迁移学习的垃圾分类模型
针对垃圾图像的分类与识别任务,本论述选用当前在计算机视觉任务中获得广泛应用的ResNet 网络架构作为分类模型的骨干网络。为进一步提升模型对不同垃圾图像的识别性能,本论述设计多分枝的分类架构,并借助迁移学习来解决训练数据不足的问题。 2.1 ResNet 残差网络
在深度网络架构中,随着网络层数的加深,极易发生梯度消失或梯度爆炸问题,使得网络在优化时变得非常困难。在梯度消失或梯度爆炸时,只有靠近损失函数比较近的一些层才能有效的学习,而较深层的参数很难进行更新。在ResNet 网络中引入了“残差”的概念来解决这一问题,设计短路连接Block如图1所示。这样的短路使得整体网络具有至少不弱于恒等变换的性能,有效地抑制了网络层次加深时的梯度消失问题。
图1ResNet短路连接Block 中,输入 x 在经过两层的weight layer进行 F(x)运算后,需要加上原始的输入 x ,实现对初始输入信号的复用,也即为恒等映射(ide? ntity mapping),然后再经过ReLU激活。这样的处理使得经网络处理的结果由 F(x)变为 F(x)+x ,也就使得网络具有不弱于恒等变换的性能,并且有效地解决了网络中的梯度消失或爆炸问题。通过堆叠如图1所示的短路模块,能够使得网络在达到上百层后仍能够有效的学习。
2.2多分枝垃圾图像分类模型
由于ResNet具有优秀的性能,本论述将其选用为垃圾图像分类的骨干网络,但是ResNet仅提取了图像的全局特征,图像中背景噪声会对分类性能带来一定的干扰。为提升模型的识别性能,本论述设计多分支图像分类模型如图2所示。5F205054-FABA-472C-BF81-EB31AFBEB609
多分支垃圾图像分类模型中采用ResNet对缩放到统一大小后的垃圾图像进行特征的提取。每张垃圾图像提取后的图像为一个h×w×c 的特征张量,其中h 、 w 、c 分别为特征张量的高、宽与通道数。与一般的图像识别模型不同的是,本论述模型对提取的特征张量采用不同尺度与不同方案的池化处理操作,使得提取的特征张量得到最大程度的利用,充分挖掘其中的判别信息来进行分类处理。
在深度卷积神经网络中 GAP 与 GMP 为全局平均池化(Global Average Pooling)与全局最大池化(Global Max Pooling)是最为常用的降低特征张量尺度的运算,它们能够有效地汇聚特征信息,提高感受野并降低运算量。采用两种池化运算的原因是GAP在池化运算中能够更好地保留特征中的空间信息,特别是在采用最为常用的步长为2、尺寸为2的设置时,GAP运算后的每个点即原四个像素的平均值,这就很好地保留了原始的空间信息。而GMP在相同的设置下获得的是四个原始像素的最为显著的信息,但是通常GMP能够获得比GAP更为优秀的性能。
为将GAP与GMP两者各自的优势结合起来,在本论述多分支垃圾图像识别模型中,对由ResNet提取的特征张量采用GAP、GMP与GAP-2、GMP-2四种不同的池化处理,再进行特征张量相加的方案。其中GAP与 GMP为自适应输出尺寸的池化运算,最终输出的结果为1×1× c 的特征张量,对它们各自运算后的结果再按元素相加,从而综合利用两者的处理优势。图2中的 GAP-2与 GMP-2为输出结果为2×2×c 的特征张量,这样的处理能够更为精细地保留图像的细节特征,不过特征的维度要比GAP与GMP运算后的结果更高一些。
在获得两组不同的特征后,模型中将进一步对它们作变形处理获得 c 维与4c 维度的特征向量,再经过 Dropout层与全连接层获得最终的特征表达。最后对两个特征向量分别使用Softmax 映射的处理来输出各自的最终识别结果。在训练模型时也相应的采用了交叉熵分类损失函数来对模型进行联合训练,总的损失值取为两个分支的损失之和。
2.3模型迁移训练
迁移学习是机器学习中一种常用的知识转移方法,它可以将在某一任务中学习到知识或经验应用到其他场景中,避免从头学习所带来时间消耗与硬件代价。由于在大多数情况下,用于训练模型的数据量都比较少,完全从随机初始化的模型开始训练会导致过拟合,无法学习到当前任务中数据的内在模式。在这种情况下,迁移学习可以很好地解决该矛盾。利用已经在其他任务中训练后的模型参数作为初始状态,再利用当前任务中的数据对模型参数进行微调,既可以利用原有的知识经验,又可以获得对当前任务数据的拟合。
在本论述设计的垃圾分类模型中,也采用了迁移学习方法来解决训练数据量有限的问题。模型采用了在ImageNet上训练好的ResNet50模型参数作为初始状态,在训练时采用了分两阶段优化的方案。首先是固定ResNet50的Layer1~Layer4各模块的参数,对各分支进行优化处理;然后再将整体网络全部打开,进行整体微调。
3实验
实验使用的垃圾图像为华为垃圾分类大赛中提供的Garbage-classify数据集。该数据集中的图像均已提供垃圾名称与所属类别,原始类别数为43。根据比赛规则这些类别又被进一步归为4个类别:可回收物、厨余垃圾、有害垃圾、其他垃圾。数据集中的训练集含有14000多张图像。在实验时这些图像被统一缩放到224×224像素大小,并使用随机裁剪与图像标准化等方法进行数据扩增处理。由于华为垃圾分类比赛无法获得测试数据集,因此采用对训练集作4:1的随机拆分,即4/5数据用于训练,1/5数据用于验证模型的性能。实验时采用最终类别为43类的设置,即网络的输出层为43维的预测向量,再进一步根据规则词典输出垃圾分类结果。
实验在Ubuntu20.04系统中采用PyTorch深度学习框架构建垃圾分类模型,并使用Nvidia GTX1080+GU? DA 进行硬件加速,使用的处理器为 Intel(R)CoreTM i7-6700@3.4GHZ。在训练模型时使用学习率为0.001的SGD优化器,训练阶段的每个批次中样本数设置为32,迭代的epoch总数为80。
实验对模型采用 GAP 与 GMP后的单分枝模型与本论述多分枝模型获得的分类准确率进行对比,并把模型输出43个类别再按规则分类4类的结果与模型直接预测4类的结果也作了对比,具体结果见表1所列。从结果可以看出采用先预测原始类别再按规则分类时,使用GAP与GMP单分支结构的预测准确率分别为92.12%与92.73%,已经具有比较好的性能。在使用本论述的多分支架构后准确率上升到94.36%,说明多分支架构所带来的性能提升。在直接预测4个类别时,各模型的性能整体上要弱于先预测原始类别再按规则进行分类的结果。本论述认为这可能是按4个类别预测时,每个类别内数据差异太大的结果。比如“筷子”与“花盆”同属于其他垃圾,两者间的特征差异太大,直接将它们归为同一类处理时模型内部参数顯然会比将两个类别分开预测时要更为困难。
4 总结
本论述提出一种基于深度卷积神经网络的垃圾自动系统模型,在使用ResNet50残差网络作为骨干网络的基础上设计多分支的垃圾图像分类网络结构,并借助了迁移学习方法来解决训练数据不足的问题。本论述设计的模型在华为云垃圾分类数据集上取得了94.36%的分类准确率,基本能够达到现实中的分类需求。在后续工作中将进一步考虑引入注意力机制来提升模型性能,或尝试实现基于视频检测的自动分类系统,增强模型在复杂场景中的适用性。
参考文献:
[1]袁建野,南新元,蔡鑫,等. 基于轻量级残差网路的垃圾图片分类方法[J].环境工程,2021,39(2):110-115.5F205054-FABA-472C-BF81-EB31AFBEB609
[2]董子源,韩卫光. 基于卷积神经网络的垃圾图像分类算法[J].计算机系统应用,2020,29(8):199-204.
[3] Adedeji O,Wang Z. Intelligent waste classification system us?ing deep learning convolutional neural network[J]. ProcediaManufacturing,2019(35):607-612.
[4]华为云大赛平台[EB/OL]. https://competition.huaweicloud.com/home.
[5] Deng J,Dong W,Socher R,et al. ImageNet:a large-scale hi?erarchical image database[C]// Proceedings of the IEEE con?ference on Computer Vision and Pattern Recognition. 2009:248-255.
[6] Krizhevsky A,Sutskever I,Hinton G. ImageNet Classificationwith Deep Convolutional Neural Networks[J].Advances inneural information processing systems,2012,25(2):1-9.
[7] Simonyan K,Zisserman A.Very Deep Convolutional Networksfor Large- Scale Image Recognition[J]. CoRR,2014,abs/1409.1556.
[8] Szegedy C,Liu W,Jia Y,et al. Going Deeper with Convolu?tions[C]// Proceedings of the IEEE conference on ComputerVision and Pattern Recognition. 2015:1-9.
[9] He K,Zhang X,Ren S,et al. Deep residual learning forimagerecognition[C]// Proceedings of the IEEE conference on Com?puter Vision and Pattern Recognition. 2016:770-778.
[10] Huang G,Liu Z,Van Der Maaten L,et al. Densely connect?ed convolutional networks[C]//Proceedings of the IEEE con?ference on Computer Vision and Pattern Recognition. 2017:4700-4708.5F205054-FABA-472C-BF81-EB31AFBEB609