1. 引言
伴随经济生活水平的不断提高,垃圾数量呈现爆炸式的增长,目前虽然提倡从源头开始分类,然而实际操作中依旧利用人工分拣海量的垃圾,工作环境差,分类效率低,社会的真实需求无法满足。近年来,人工智能迅速发展,有效推进了图像识别在计算机视觉领域的应用,针对垃圾分类的智能识别技术应运而生。
传统的垃圾分类以机器学习为主,利用特征工程对目标数据进行特征提取,寻找数据内部之间存在的关系和潜在的规律。黄浩然 [1] 等利用几何矩尺度不变性、平移等属性优势,利用7个Hu不变矩和多颜色空间特征,采取关键信息作为特征向量,通过构建一个相似性度量方法得到衡量标准以获取分类结果。申新杰 [2] 等采用AGAST二叉树角点域的算法,使用非极大值抑制法对角点进行处理,获得AGAST特征点,通过特征点匹配实现对特定垃圾的识别。潘丽 [3] 等采用BRISK特征提取算法实现对图像的监测,实现了高准确率的垃圾识别。李勇 [4] 利用灰色预测模型预测产生量,设计朴素贝叶斯分类器对数据训练,实现更高效的垃圾分类。黄兴华 [5] 等将局部二值模式(LBP)改进,再与Uniform LBP融合得到AD-LBP,将AD-LBP与梯度方向直方图算法对图像进行特征提取。
然而传统技术直接将数据输入模型,难以获取正确的规律,导致分类精度低,同时浪费人工成本和时间成本。伴随2012年AlextNet [6] 的诞生,深度学习重新引起广泛的关注,许多学者将其应用到垃圾分类中。Wang H [7] 利用VGG16卷积网络,嵌入Batch Normalization以加快收敛速度、保证垃圾的识别精度。Sultana [8] 通过AlexNet进行多次实验,分别实现了对室内垃圾与室外垃圾的分类。迁移学习 [9] [10] 同样被引入到网络模型中实现对废弃物的分类,以减少模型训练时间。Adedeji [11] 等提出一种将ResNet与SVM相结合的方式对城区固体废物进行分类,通过ResNet提取图像特征,将特征放入SVM中进行训练以获得结果。陈牧图 [12] 等也讨论了深度学习相关方法并实现了对垃圾的自动化识别。高静 [13] 等设计一种基于Xception的轻量型模型,引入锯齿状扩张卷积且结合预热与余弦退火的方式控制学习率,实现了学习率的凸变化,加快了模型的收敛效率,提高识别的精度。
在以上学者的研究中,深度学习在图像分类的实际应用中普遍高于传统机器学习方法,通过卷积神经网络实现自动化的特征提取,摆脱了繁琐的特征工程,利用反向传播不断训练网络模型,使得模型的分类准确率不断提升,超越了机器学习模型。在深度学习模型中ResNeXt [14] 和MobileNetV2 [15] 正是图像分类任务中,两种不同量级、性能突出的模型。同时迁移学习实现了对已有知识的复用,加快了模型训练的效率,利用微调与冻结的迁移方法,能够进一步提升模型分类的准确率。
基于此,本文研究了基于迁移学习的深度学习模型并应用于垃圾图片分类的问题。首先,构建垃圾分类数据集,分别采用位置和颜色两种不同维度的数据增强方式,提高模型的泛化能力,避免模型过拟合。其次,通过ImageNet数据集构建了ResNeXt与MobileNetV2两种预训练网络模型,微调模型的网络结构以适应垃圾分类任务,不断调整模型参数以提升图像分类准确率,最后采用迁移学习的冻结方法与调整学习率的方式,探究网络冻结层数和学习率在不同量级的网络结构中,对图像分类结果的影响,同时获取分类效果最佳的网络冻结层数和学习率。
2. 图像分类模型
2.1. ResNeXt
图像识别的基础是提取具有代表性的语义特征和细节特征,网络模型的深度和宽度决定着网络模型提取特征的性能。然而,伴随模型容量的不断增加,设计难度和计算开销在逐渐增大,网络深度和宽度带来的收益在逐渐降低,为此,本文采用ResNeXt深度学习模型作为垃圾图像分类模型之一以缓解收益降低的问题。
ResNeXt模型的网络结构打破了深度和宽度对模型性能提升的局限,采用高度模块化的设计,改进了ResNet网络结构,通过融合VGG网络堆叠、ResNet网络的残差模块以及Inception网络的拆分–变换–聚合的思想,其模型设计涵盖两个优点:1) 堆叠相同的拓扑结构,减少了超参数的自由选择,降低超参数对特殊数据集产生过拟合的风险。2) 将网络拆分成若干小模块,经过不同滤波器变换,沿通道维度以串联的方式聚合,实现减少计算开销,增强模型提取特征的性能。拆分–变换–聚合思想的公式如式(1)所示:
(1)
其中,x是输入向量、Ti是能把x投影到子空间进行变换的函数,C是具有相同拓扑结构分支的数目,称为基数,可以取任意值,本文将C取值为32,其ResNeXt基本模块如图1所示。图中Path是一个基数,代表一个ResNeXt模块,每一层的显示值由上到下分别表示为输入通道、滤波器大小和输出通道。
![](//html.hanspub.org/file/9-2670322x8_hanspub.png?20230724102825441)
Figure 1. ResNeXt module (base C = 32)
图1. ResNeXt模块(基数C = 32)
基数为网络模型引入一个度量,实验证明,基数的增加比深度或宽度更有效,有效减少模型对深度和宽度的依赖,模型提取特征的能力得到有效提升。
2.2. MobileNet-V2
MobileNetV2深度学习模型是MobileNetV1基础上改进的轻量级网络结构,其保留原有MoblieNet架构使用深度可分离卷积代替普通卷积的特性,同时利用逆向残差结构和线性瓶颈结构的特点提升模型的性能。因此,本文使用MobileNetV2作为验证分类结果的轻量级网络,同时探究轻量级网络在不同网络冻结层数及学习率下所受到的影响。
深度可分离卷积是由深度卷积和点卷积组合构成,深度卷积与普通卷积不同,而点卷积就是1 × 1的普通卷积,在输入特征图时,先利用深度卷积对输入图进行过滤,再通过点卷积对过滤特征线性组合,达到缩减模型参数量、减少计算量的目的。
逆向残差结构借鉴了残差结构的思想,改变了传统残差结构先降低通道维度,再提取特征,最后扩大通道维度的顺序。通过先利用点卷积升维,再利用深度卷积提取特征,最后使用点卷积降维的顺序,解决由于模型参数量减少,导致提取特征信息不足的问题,保证了模型提取特征的性能。其基本模块如图2所示,图中Conv表示点卷积,Dwise表示深度卷积,Relu6表示激活函数,Linear表示线性激活函数,此外,模块仅在步长为1时,才有残差结构,而步长为2时,直接使用串联结构。
线性瓶颈结构是将激活函数更换成ReLu6,同时将最后一步点卷积的激活函数替换成线性激活函数,进一步保留更多的特征信息。
3. 基于深度迁移学习的分类模型
3.1. 深度迁移学习
迁移学习的思想是利用数据、任务、模型之间的相似性,将在旧领域学习到的知识转移到新领域,进而完成任务的学习过程。依据方法分类,迁移学习分成基于实例、特征、模型、关系的学习方法。
本文采用基于模型的迁移学习方法,通过共享模型的权重、偏置等网络参数训练模型,完成从现有数据集转移至垃圾数据集的分类任务,深度学习与迁移学习的结合可以有效减少模型的训练时间,加快模型的收敛速度,提高训练模型的效率。
3.2. 模型分类流程
本文提出的基于深度迁移学习的垃圾图像分类模型流程主要分成两个部分,一部分是对数据的数据增强处理,防止过拟合问题的产生,提升模型的泛化能力。另一部分是针对垃圾分类的任务,利用对预训练模型结构的修改与参数的引用以训练模型,提取图像的特征信息,实现垃圾分类。
本文数据增强采用多种处理方式,位置部分采用随机裁剪、水平/垂直翻转、随机旋转的处理方式,颜色部分采用调整色度、对比度以及饱和度的处理方式,图像数据增强示例如图3所示,为一次性快餐盒图像原图与其进行数据增强的16个处理结果的示例。
(a) 原图
(b) 数据增强图像
Figure 3. Data augmentation example
图3. 数据增强示例
本文提出的算法主要分成两个部分,一部分是构建预训练模型,利用迁移学习的优势,将迁移参数代表的具体特征和抽象特征,提升模型的训练效率,另一部分是数据集的处理,采用多维度的处理方式进行数据增强,防止过拟合。最终,分别调整冻结层数和学习率,实现对垃圾图像的高准确率分类,基于深度迁移学习的详细分类流程如图4所示。
1) 将ImageNet数据集作为源域数据,使其训练参数加载到ResNeXt和MobileNetV2的预训练模型中,以便提升模型训练的效率,以预训练模型为基准,通过去除原有结构中末尾的全连接层,添加全新的全连接层以适应20分类的垃圾分类任务,使模型能够在迁移学习的微调方式中,实现对模型训练参数的调整。
2) 将垃圾数据集作为目标域数据,将64%划分成训练集、16%划分成验证集、20%划分成测试集,实现对模型的有效训练。同时采用数据预处理中的数据标准化平衡特征所占用的权重,提高模型的决策效率。
3) 通过对原始样本参数的操作,重新生成全新的、独特的样本,以此获取同等价值的样本,实现数据增强。采用位置与颜色两种维度的数据增强方式,对训练集和验证集进行处理,采用随机裁剪、水平/垂直翻转、随机旋转以及调整色度、对比度以及饱和度的方式,提高模型的泛化能力,防止模型在训练时发生过拟合。
4) 在ResNeXt和MobileNetV2模型训练前,分别调整网络冻结层数和学习率,调整冻结层数,是为了通过固定前几层的模型参数,合理的运用模型在ImageNet训练中产生的具体特征和抽象特征,提高模型在图像分类中的能力,探究不同量级的网络模型在不同冻结层数下的垃圾图像分类效果。调整学习率,是为了使模型在合适的学习率,目标函数在适当的时间收敛到局部最小值,提升训练效率,探究不同量级的网络模型在不同学习率下的垃圾图像分类效果。
5) 将数据增强后的训练集和验证集数据输入到网络模型中进行训练,再通过测试集验证模型的分类结果,实现垃圾图像的分类。
![](//html.hanspub.org/file/9-2670322x12_hanspub.png?20230724102825441)
Figure 4. Garbage classification flow chart based on deep transfer learning
图4. 基于深度迁移学习的垃圾分类流程图
4. 实验结果与分析
4.1. 数据集简介
本文实验的垃圾数据集源自华为云,其中包含可回收垃圾、厨余垃圾、有害垃圾以及其他垃圾四大垃圾类别图像,从中筛选出20小类,每个类别随机分配300~350张图像,共计6581张图像作为实验数据,表1为具体分类及图像数量。
![](Images/Table_Tmp.jpg)
Table 1. Garbage classification dataset image classification statistics
表1. 垃圾分类数据集图像分类统计
4.2. 实验设置
本文实验对训练数据与测试数据按照8:2的比例随机划分以用来训练模型。针对两种不同量级的网络结构,探究在不同网络冻结层数和学习率的设置下,对于分类结果的影响,具体参数设置如表2所示,对ResNeXt和MobileNetV2分别设置网络冻结层数为20到150,学习率分别设置0.001、0.003、0.005、0.0001、0.0003、0.0005。
![](Images/Table_Tmp.jpg)
Table 2. Parameter settings of network freezing layers and learning rate
表2. 网络冻结层数与学习率的参数设置
衡量指标是判断实验结果的重要依据,根据指标的结果,能够实时监测实验进行的程度,本文采用准确率作为实验的衡量标准,其公式如式(2)所示。
(2)
其中,Accuracy表示准确率,N是样本总数量,
是实际结果,
是预测结果,I是条件判断函数。对训练集、验证集以及测试集进行计算,将训练集和验证集的结果作为判断模型训练程度以及是否发生过拟合问题的实验依据,测试集的结果用来判断模型的分类能力,本文中表格内的准确率指测试集的准确率结果。
4.3. 网络冻结层数的分类影响
ResNeXt模型的网络冻结层数对垃圾分类结果的影响如表3所示。
根据表3可知,ResNeXt在冻结层数不同时,对分类结果有着不同的影响,并且依据网络冻结层数越多,训练时间越短的趋势以及分类准确率,显示当网络冻结层数为50层时,分类效果最佳,说明此时ResNeXt模型针对当前数据集所提取的特征最具代表性,模型效果最佳的训练变化曲线如图5所示。
![](Images/Table_Tmp.jpg)
Table 3. ResNeXt network freezing layer results
表3. ResNeXt网络冻结层数结果
(a) 准确率曲线(b) 损失率曲线
Figure 5. Change curve of ResNeXt training model
图5. ResNeXt训练模型的变化曲线
MobileNetV2轻量级模型的网络冻结层数对垃圾分类结果的影响如表4所示。
![](Images/Table_Tmp.jpg)
Table 4. MobileNetV2 network freezing layer results
表4. MobileNetV2网络冻结层数结果
依据表4所知,MobileNetV2轻量级网络在冻结不同层数后同样受到了不同程度的影响,其最佳冻结层数为80层,可以判断此时网络权重所提取的特征与数据集的潜在模式最为相近,模型最佳的训练曲线如图6所示。
(a) 准确率曲线 (b) 损失率曲线
Figure 6. Change curve of MobileNetV2 training model
图6. MobileNetV2训练模型的变化曲线
ResNeXt网络与冻结效果最差的分类结果相差5.15%,MobileNetV2轻量级网络与冻结效果最差的分类结果相差7.41%,说明网络冻结层数对MobileNetV2轻量级网络影响更大,对ResNeXt网络影响更小。
4.4. 学习率的分类影响
ResNeXt和MobileNetV2分别选用效果最佳的网络冻结层数进行实验,分别冻结50层和80层,实验结果如表5所示。
![](Images/Table_Tmp.jpg)
Table 5. ResNeXt and MobileNetV2 different learning rate results
表5. ResNeXt与MobileNetV2不同学习率结果
当ResNeXt冻结层数为50层,学习率为0.0003时,准确率最高,通过混淆矩阵可以直观地展现模型在各个类别上的表现以及难以区分的类别,ResNeXt混淆矩阵如图7所示,其中,横坐标为真实标签,纵坐标为模型预测结果,矩阵对角线表示模型分类的正确结果,其余部分表示分类的误差。图7表明,模型对于充电宝的分类误差相对较大,然而整体分类准确率普遍达到90%以上,验证了本文算法的有效性。
对比表5可知,ResNeXt的最佳学习率为0.0003,最差的学习率为0.005,两者相差8.57%,MobileNetV2轻量级网络最佳学习率为0.0001,最差的学习率为0.005,两者相差5.15%,并且在学习率为0.005的同等条件下,准确率高于ResNeXt的分类结果,说明学习率对ResNeXt网络的影响程度更大,对MobileNetV2轻量级网络的影响程度更小。
4.5. 实验对比
由于数据集的数量和种类不同于其他实验,因此,为了验证算法的有效性,本文自行构建了VGGNet和Xception网络模型与文本使用的ResNeXt和MobileNetV2进行比较,实现垃圾图像的分类,以便直观体现模型的分类优势,具体实验结果如图8所示。
通过图8对比得出,ResNeXt算法获得了93.21%的识别准确率,是四种模型中分类准确率最高的,相较于AlexNet,其分类准确率相差了10.38%,因此,从ResNeXt模型的角度分析,一方面,直观地展现出本文算法的有效性,另一方面也侧面体现出模型选择的科学性与合理性。MobileNetV2虽然不是第二高的分类准确率,但是作为轻量型网络模型,其分类结果能够接近常规体量Xception模型,准确率仅相差0.3%,为此,从MobileNetV2模型的角度分析,进一步说明,通过调整网络冻结层数与学习率,模型的性能能够得到有效提升。
![](//html.hanspub.org/file/9-2670322x19_hanspub.png?20230724102825441)
Figure 8. Comparative experiment of four models
图8. 四种模型的对比试验
5. 结论
本文构建了基于深度迁移学习的垃圾分类模型,通过创建垃圾图像数据集,对数据采取多种数据增强处理,防止图像数量导致的过拟合,建立ResNeXt和MobileNetV2预训练网络模型,微调模型以适应垃圾分类的任务,实现了对多种常见垃圾的有效分类。通过混淆矩阵直观地表现出模型对于各个垃圾类别的分类能力,验证了本文算法的有效性,同时探究了网络冻结层数和学习率在不同量级的网络结构,对分类结果的影响。实验结果表明,网络冻结层数和学习率都能对不同量级的网络结构产生不同程度的影响,通过适当的调整,可以获得性能更好的模型,横向对比实验结果可知,MobileNetV2轻量级网络受到网络冻结层数的影响则更多,而ResNeXt网络受到学习率的影响更强。