0


毕业设计-基于深度学习的垃圾分类系统

前言

 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长毕设专题,本次分享的课题是

🎯基于深度学习的垃圾分类系统设计与实现

课题背景和意义

人类自诞生以来,就在不断产生垃圾。垃圾的产生总是不可避免,但是随着时代的发展,我们可以用不同的手段处理垃圾。事实上,垃圾也是一种资源,绝大部分都可回收再利用。多种垃圾放置在一起就是垃圾,如果分开处理就可以变废为宝。垃圾分类,是指将垃圾按照某种规则依据类别分别投放,保存和运输,实现资源重新利用的过程。随着工业革命人类的生产力水平以指数级提升,也使得垃圾数量飞速上涨,如何处置垃圾在全世界范围变成一个棘手的问题。垃圾分类作为资源回收利用的重要环节之一,可以有效地提高资源回收利用效率,减轻环境污染带来的危害。传统的图像分类算法很难满足垃圾分拣设备的要求,随着深度学习技术的发展,使借助视觉技术自动分拣垃圾具有了现实的可能性。通过摄像头拍摄垃圾图片,利用卷积神经网络检测出垃圾的类别及位置,借助机械手或推板自动完成分拣任务,可以降低人工成本,提高分拣效率。因此,开展垃圾图像分类算法的研究,具有理论意义和重要的应用价值。

实现技术思路

一、深度学习理论及技术基础

**卷积神经网络(CNN) **

在最初的人工神经网络中,相邻两层的神经元全部连接在一起,简称全连接。 但全连接层将 3 维向量压缩成 1 维,会丢失图像很多关键信息。卷积层的出现改 变了这一点,可以将输入的 3 维数据经过卷积运算之后依然保持 3 维基本形状不 变,输出给下一层。

卷积层:

卷积层中的操作就是卷积运算,也即滤波运算。对输入图像,卷积运算以一定步长不断滑动窗口,并将滤波器中对应数值与输入图片中的像素相乘再相加,求得的值加上一个偏置,作为输出特征图中的像素值。

其中,I 为输入图像,K 为卷积核,S 为输出结果。卷积运算:

池化层:

池化(pooling)也叫下采样,可以进一步降低特征图中长与宽的大小,减少网络中参数量,节约计算时间;同时由于参数量减少,输入数据量不变,池化可以防止过拟合。池化的步长一般设置为与滤波器的尺寸相同。池化操作示意:

激活函数

在神经网络中,如果只有卷积层,则输入与输出之间的关系为一种简单的线性运算。其表达式为:

为了让神经网络更好地拟合非线性问题,同时也为了使得深层神经网络真正的发挥作用,要使用非线性激活函数,常用包含如下几种。

(1)Sigmoid 函数

Sigmoid 函数,可以看成是二分类情况下的 Softmax 函数。输入与输出之间关系的表达式为:

Sigmoid 函数的输出在(0,1)之间并且是 光滑曲线,处处可微分。但当函数值接近于 0 和 1 的时候,函数的导数接近于 0, 造成梯度消失,在深层神经网络中,可能会造成无法反向传播梯度。Sigmoid 函数的图形:

(2)ReLU 函数:

Sigmoid 函数是一种饱和函数,而 ReLU(Rectified Linear Unit)函数是非饱和的。

ReLU 函数的表达式非常简单,但是效果很好。在 x 大于 0 的时候,函数的导数值始终为 1,不存在梯度消失的问题。

** 图像分类模型:**

图像分类是目前深度学习应用最为成功的一个领域,同时也是目标检测问题的理论基础。第一个用于图像分类模型的神经网络是LeNet-5,共有 7 层神经网络,在手写字符识别上取得了能够达到商用程度的效果。

**VGGNet 和 GoogleNet 模型 **

VGGNet(Simonyan K 等.,2014)在 2014 年 ImageNet 比赛中获得了第二名 的成绩。该模型可看做是更深层数的 AlexNet,最常用的 VGG 网络是 16 层的, 其次是 19 层。VGGNet 的主要创新点为全局都用 3×3 的小卷积核,使用多个非线性激活层,拟合能力更强。

GoogleNet 拓宽网络宽度,讨论了并行分支对网络结构的影响,称为 Inception 结构,这是 GoogleNet 最大的创新点。具体来说,GoogleNet对输入图像使用多尺度的滤波器做卷积运算,再将结果做拼接,可以提取出更加丰富的特征。

二、基于特征融合和注意力机制的垃圾检测算法

垃圾检测数据集

选择国内唯一的公开数据集—华为垃圾分类数据集作为数据来源。其中包括可回收垃圾包含:塑料衣架、箱、调料瓶、酒瓶等;不可回收垃圾中包含:一次性快餐盒、污损塑料、烟蒂、牙签、过期药物等。

** 垃圾检测算法的数据集标注**

在垃圾分拣回收实际场景中,需要手动对数据进行二次标注。标注了垃圾的位置信息后,就可以通过检测算法对垃圾的位置信息进行提取,为了实现基于 SSD 的垃圾检测算法,需要先对数据集中垃圾的位置进行标注。

通过对初始预测结果的检查,修正检测错误图像的检测框作为图像中目标位置的标签,得到初始训练后的扩充数据集。

** GCNet 总体架构**

GCNet(Garbage Classification Net),主要包括主干模块、特征融合模块和注意力机制模块。构建一个基于特征融合和注意力机制的 ResNet 变体—GCNet 垃圾分类网络。

输入一张垃圾图片,通过特征提取器进行特征提取,特征提取器由 resnet101 作为主干部分,共包括 5 个 bottleneck,并在不同的 bottleneck 后加入注意力机制模块,同时对不同模块提取到的特征进行特征融合。

** 空间注意力与通道注意力结合模块**

注意力机制在人类感知中是非常关键的。使用注意力机制的目的是关注重要特征并抑制不必要的特征。构建是软注意力模块,关注空间和通道两个维度,在网络中快速扩大感受野以获得空间注意力图谱,同时使用 SENet的通道注意力结构筛选通道之间的重要性程度。

**特征融合模块 **

选取 ResNet101 作为主干网络进行特征提取在特征提取过程中,会出现高层特征图的抽象语义信息丰富,底层特征图包含更多的分辨率信息的现象.因此,不同层次不同尺度的特征进行全局与局部的融合有助于高层特征的语义信息与底 层特征的细节信息进行有效的融合,使网络充分获取上下文信息。

损****失函数修改

数据集中存在类别不平衡的现象,为解决类别比不平衡导致的检测精度下降问题,使用 focal

损失函数(Tsung-Yi Lin,2017)进行处理。该损失函数降低了简单负样本在训练中所占的比率,是对交叉熵损失函数的改进。

三、多目标垃圾视频追踪算法

对于垃圾分拣视频中切出的任何一帧,由于摄像头视野的问题,垃圾有被遮挡的可能性,对于某些目标垃圾检测会以一定概率出现误检,漏检的情况;但综合多帧信息可大大降低误检率。为解决这些问题,需要引
入多目标视频追踪方法。Deep SORT 算法是基于 SORT 算法的改进,在度量方式上做了改进,在遮挡条件下效果有了很大提升。

基本流程可以描述为:首先进行各帧图像的目标检测得到图像的特征信息以及目标的边界框并初始化各参数值。其次,去除掉检测置信度小于 0.7 的检测框,并通过极大值抑制去除检测中重叠的边界框。确认追踪的状态是否正常,后进行级联匹配操作。最后,基于上一小节的 SORT 算法,计算预测边界框之间的交并比(IoU)计算分配成本矩阵,再进行矩阵的更新以及后续处理。

Deep SORT 算法追踪结果:

实现效果图样例

**检测结果可视化 **

大量数据统计实验之后,基于特征融合与注意力机制的垃圾检测算法的结果进行了部分可视化,并对改进前后的 SSD 算法进行了可视化比较。

SSD算法检测结果:

文本算法检测结果:

我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后


本文转载自: https://blog.csdn.net/qq_37340229/article/details/128417061
版权归原作者 HaiLang_IT 所有, 如有侵权,请联系我们删除。

“毕业设计-基于深度学习的垃圾分类系统”的评论:

还没有评论