温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
Swin_Transf
rmer
家居
垃圾
分类
系统
瞿定垚
wwwele169com|67软件开发0 引言中国是全世界人口最多的国家,在日常生活的过程中,会制造大量垃圾。在由生态环境部所公布的 2019年全国大、中城市固体废物污染环境防治年报中显示,在 2018 年里,在全国中的 200 个大、中城市里生活垃圾产生量为 21147.3万吨,处置量为 21028.9 万吨,处置率达到了 99.4%1。虽然由数据显示的处置率己经很高了,只有其中少部分未被处理。但是这并不是全国所有城市的数据,除了生态环境部统计的这 200 个大、中城市,还有许多城市和落后的中小城镇的数据并未被统计到,可以推断出未被处理的生活垃圾仍有很多。在年报中,20132018 年中国 200 个大、中城市生活垃圾产生量统计及增长情况,可以得出生活垃圾产生量以5-10%的增长速率逐年递增2。在垃圾产量巨大的同时,处置垃圾的方法仍然十分落后。我国解决垃圾分类主要依靠人工二次分拣,其弊端如下:(1)二次分拣模式的参与主体是分类指导员,居民其实还是没有真正地参与进来,所以它解决不了居民参与率低的问题3;要让居民真正地参与垃圾分类,从根本上还是要让他们从源头开始做好分类。(2)二次分拣的对象是厨余垃圾,像可回收垃圾、有害垃圾等其他垃圾,分类指导员们都不分拣,所以没有真正地达到生活垃圾的减量化、资源化、无害化4。(3)此模式操作简单,方法原始,效率低,安全性差,更谈不上精细化管理运营。因此靠“二次分拣”支撑的垃圾分类是走不长远的。使用计算机视觉技术实现自动的垃圾分类识别,存在的问题是效率低,回收利用效率降低,安全性差5。精度差,价格昂贵。针对居民参与率低的问题,我国应该从垃圾产生源头入手,以家居垃圾为研究环境,走出二次分拣的困境,使全民参与进来,切实解决分类问题。针对垃圾数据集数据少、质量较差、背景单一、存在标注错误的情况,神经网络无法全面、准确分析、理解分类特征的问题,构建大规模垃圾图像数据库是重要途径。同时数据量的大幅增加与计算机硬件性能的提升,使得深度学习技术开始在计算机视觉领域大放异彩。由于其速度快、准确率高的优点,使得其在各个领域都取得了一定的成果。图像分类在深度学习领域主要依靠CNN 卷积神经网络和视觉 Transformer 图卷积神经网络,由于家居环境对分类精度要求高,对推理速度要求较低,使用单图像分类而不是目标检测。1 系统组成家居垃圾分类系统主要由三部分组成,构建垃圾分类数据集、设计垃圾分类网络和搭建安卓 app。首先,本文构建垃圾分类数据集。数据集来源为:网络爬虫技术爬取生活中常见的各种家居垃圾图片,将不符合要求的垃圾图片剔除6;使用华为垃圾数据集中垃圾图片,选择符合要求的垃圾图片数据;通过摄像设备收集邯郸市河北工程大学生活中的常见家居垃圾图片。通过数据增强方式,旋转,镜像,对比度,进一步扩大数据集。其次,本文设计垃圾分类网络。比较 CV 领域中的 CNN 经典图像分类模型的优缺点,设计实验选出适用于本课题的图像分类模型789。通过 NLP 领域对 CV 领域的迁移,搭建了适用于本课题的图像分类模型。通过迁移学习10,数据增强和添加全局注意力的方式,对网络进行了优化。最后,搭建了安卓端口app,对训练好了的模型成功进行了转换和量化,将自己训练好了的深度学习模型移植到了手机安卓 app 上。垃圾分类系统框架图如图 1 所示。1.1 Swin transformer 简介Transformer 在 NLP 领域应用十分广泛,但是在 CV基于 Swin Transformer 的家居垃圾分类系统瞿定垚1,王学1,2(1.河北工程大学 数理科学与工程学院,河北邯郸,056038;2.河北省计算光学成像与光电检测技术创新中心,河北邯郸,056038)基金项目:国家自然基金资助项目(62175059);河北省自然科学基金重点资助项目(F2018402285)。摘要:为了从家居源头解决垃圾分类的难题,选取Swin Transformer图卷积神经网络构建家居垃圾分类系统。该系统由三部分组成,构建垃圾分类模型、搭建安卓app、嵌套嵌入式设备。构建大规模垃圾分类数据集,进行垃圾分类实验,选取最优模型Swin Transformer,通过数据增强、迁移学习和添加全局注意力机制等策略进一步提升分类模型的性能。在数据集复杂度更高的情况下,已经超过了华为2019年垃圾分类挑战杯的方案,40垃圾分类的准确率达到了97.63,超过了它的96.96,并且param和flops远远低于其方案。搭建安卓app,通过MNN手机移动端架构,将Pytorch架构下训练的模型进行了转化和量化,让超大模型可以在轻型移动端设备完美适用,同时验证了模型转化和量化基本无精度损失,并优化了APP推理速度。关键词:图像处理;图卷积神经网络;全局注意力;迁移学习;模型转化与量化;移动端架构;安卓appDOI:10.16589/11-3571/tn.2023.01.01468|电子制作 2023 年 1 月软件开发领域的应用存在很多困难,这源自于两类任务的本质区别,例如 CV 里物体尺寸变化很大,模型需要处理不同尺度的同类物体,而在 NLP 领域,把 word tokens 作为基本要素,并不存在以上问题。同时图片分辨率高,自注意力如果逐像素计算成本过高11。图 1 垃圾分类系统框架图Swin Transformer 是一种新型的 transformer,可以用作视觉和语言处理的统一模型,引出了一种具有层级的特征表达方式和具有线性的计算复杂度。Swin Transformer 有两个特征:(1)层级特征结构;(2)线性复杂度。层级特征结构使得本模型适用于 FPN 或者 U-Net 模型;线性复杂度是因为使用 local window self-attention12。这些特点使得本模型可以作为一种通用模型用于各种视觉任务。在目标检测、图像分割等视觉任务中,Swin Transformer 均得到了 SOTA 的结果。Swin Transformer 在上游任务取得了极好的成绩,可拿来可直接做下游任务,并且效果很好。本文选择了 swin_base_patch4_window12_384_in22k 作为预训练模型,在保持高精度的同时推理速度也适用于家居垃圾分类任务,并在后续的任务中加速了推理速度。1.2 训练流程首先输入像素 384384 图片到 Patch Partition 模块中进行分块,即每 44 相邻的像素为一个 Patch,然后在channel 方向展平(flatten)。本文输入的是 RGB 三通道图片,每个patch就有44=16个像素,然后每个像素有R、G、B 三个值,展平后是 163=48,所以通过 Patch Partition后图像 shape 由 H,W,3 变成了 H/4,W/4,48。然后在通过 Linear Embeding 层对每个像素的 channel 数据做线性变换,由 48 变成 C,即图像 shape 再由 H/4,W/4,48变成了 H/4,W/4,C。其实在源码中 Patch Partition 和Linear Embeding 就是直接通过一个卷积层实现的。然后就是通过四个 Stage 构建不同大小的特征图,除了 Stage1 中先通过一个 Linear Embeding 层外,剩下三个 stage 都是先通过一个 Patch Merging 层进行下采样,然后都是重复堆叠 Swin transformer Block。Swin transformer 网络结构如图 2 所示。这 里 的 Block 有 两种结构,如图 3 所示,这两种结构的不同之处仅在于一个使用了 W-MSA 结构,一个使用了 SW-MSA结构13。而且这两个结构是成对使用的,先使用一个 W-MSA 结构再使用一个 SW-MSA 结 构,堆 叠Swin Transformer Block的次数都是偶数。最后对于图像分类网络,后面还会接上一个 Layer Norm 层、全局池化层以及全连接层得到最终输出。2 模型优化与算法改进 2.1 模型优化2.1.1 数据增强数据增强:通过旋转,镜像,对比度的方法扩充了约图 2 Swin transformer 网络结构图 3 Swin transformer 两种blocks 结构wwwele169com|69软件开发54000 张图片用于训练,对扩充后的数据集图像数据进行预处理,增加模型的鲁棒性和模型泛化能力14。2.1.2 迁移学习微调 Fine-tuning:将在大数据集上训练得到的 weights作为特定任务(小数据集)的初始化权重,重新训练该网络(根据需要,修改全连接层输出)15。训练的方式可以是:(1)微调所有层,(2)固定网络前面几层权重,只微调网络的后面几层,这样做有两个原因:A.避免因数据量小造成过拟合现象;B.CNN前几层的特征中包含更多的一般特征(比如,边缘信息,色彩信息等),这对许多任务来说是非常有用的,但是 CNN 后面几层的特征学习注重高层特征,也就是语义特征,这是针对于数据集而言的,不同的数据集后面几层学习的语义特征也是完全不同的16,本文选择训练方式 2。网络微调是一项非常强大的技术,无需从头开始训练整个网络,“快速启动”学习,最终得到更高精度的迁移学习模型,同时节省了计算资源17。2.2 模型改进在 swintransformer 基础上加入了 NLP 领域的全局注意力 Global Attention1820。Global Attention 的目的:Gobal Attention 的目的是为了在生成上下文向量,用来处理文本信息的,单词和句子存在联系,局部像素点也和全图存在联系21。transformer 是用来处理文本信息的,现在可以用来处理 CV 领域的图像信息。swintransformer在 CV 领域起到了突破性的重大作用,选择在 swin t ra n s f o r m e r的 head 前边插入 Global Attention,经 过训练,精度得到了提升。全局注意力如图 4 所示。改进实验分为三组,插入一层 Gobal Attention,命名模型为 Swin transformer-A;插入两层 Gobal Attention,命名模型为 Swin transformer-B;插入三层 Gobal Atten-tion 命名为 Swin transformer-C。使用基于微调的迁移学习,固定部分层数的权重,插入一层 Gobal Attention 模型训练层数如下代码。“training layers.4.norm1.weighttraining layers.4.norm1.biastraining layers.4.attn.qkv.weighttraining layers.4.attn.qkv.biastraining layers.4.attn.proj.weighttraining layers.4.attn.proj.biastraining layers.4.norm2.weighttraining layers.4.norm2.biastraining layers.4.mlp.fc1.weighttraining layers.4.mlp.fc1.biastraining layers.4.mlp.fc2.weighttraining layers.4.mlp.fc2.biastraining head.weighttraining head.bias”插入两层和三层就是将代码中的 layers.4 进行堆叠。3 垃圾分类实验 3.1 获取数据集实验整理的原始数据集共 20022 张,约 13000 张来自华为云比赛数据集,7022 张自己收集标注。提前做好四分类,O 代表 other waste,H 代表 harm garbage,K 代表kitchen waste,R 代表 recyclable garbage,小类