【作品集】智能垃圾分类识别系统(基于深度学习的迁移学习模型 + 交互式应用)
模型背景分析
在进行垃圾分类系统的研究和设计时,选择适当的模型至关重要。本文将总结CNN、ResNet和MobileNet三个模型,并分析后两个模型是如何基于CNN改进的,最后对比它们的优缺点。

交互窗口
基于PyQt5和上述实验已得到模型的图形用户界面(GUI)。主窗口继承自QTabWidget类,包含多个标签页,每个标签页都有不同的功能和布局。

窗口主界面
实时视频流处理
通过OpenCV库捕获摄像头的视频流,将每一帧图像转换为适合在PyQt界面中显示的格式。在每次新的视频帧到来时,同时进行垃圾分类的推断,实时更新界面上的识别结果和垃圾信息。
关于摄像头使用触发频率为300毫秒的定时器,以达在摄像头进行动态识别其所获取的图像进行识别时较为稳定,减小光线或人体动作对物体识别的影响。具体代码如下:


附件1:源码
附件2:爬虫关键词目录
评估与测试
ResNet50
针对ResNet50模型其其初始参数如表1:

其训练结果如图4(左),经过30个epoch后,模型在验证集上的loss值为3.0561,accuracy为0.2969,能够明显的看出,模型收敛的速度极其缓慢,为了参考模型的具体的准确率,重新设定epoch=200,实验结果如图1(右):

图1 ResNet模型训练可视化
看出模型并没有实质性的改变,因此还需要进一步优化模型,考虑ResNet50模型的迁移策略问题,在上述实验中,我们冻结了ResNet50模型的全部卷积层,只训练针对垃圾分类任务的全连接层,但是由于ResNet50模型的参数量较多,模型的层级较深,只训练全连接层并不能很好的获取垃圾分类任务的特征。故对的迁移学习策略进行了实验,全部层级都设定为可训练,当然这里的epoch依旧设置为30次,得图2:

可看出模型的收敛速度变快,在训练集上达到了超过 0.95 的准确率,而在验证集准确率达到大约0.82。训练集上损失在下降,而验证集上损失在波动,表明模型在训练集上学习良好,但可能过度拟合了训练集,根据根据分析故进入MonileNetV2模型实验。
MobileNetV2
预训练模型的复用中,我删除原始的分类器,加入针对于垃圾分类任务的分类器。并根据常用的三种迁移策略,对模型进行微调,其参数如表2.
策略1:冻结全部卷积层,只训练针对垃圾分类任务的全连接层
策略2:冻结前80层网络,训练剩余卷积层以及全连接层
策略3:训练模型的全部卷积层以及全连接层



⚖️ 迁移学习策略选择
核心发现:
策略1(仅训练顶层分类器)参数量仅为策略3的6.5%、策略2的7.01%,但在30轮训练中准确率与损失函数最稳定(图6),适合数据量有限的垃圾分类场景。
❓ 问题与优化
- 策略1的短板:训练集准确率99.53% vs 验证集85.38%,存在过拟合。
- 根本原因:冻结卷积层后,全连接层过度拟合训练集特征。
- 关键改进:加入Dropout机制(概率0.5),随机丢弃全连接层前的神经元,抑制过拟合(图7验证效果)。
✅ 最终决策依据
- 放弃策略3:虽训练参数最多,但因数据量不足(120类仅3.9万图),准确率反最低。
- 放弃策略2:准确率接近策略1,但损失函数频繁抖动,落地风险高。
- 选择策略1+Dropout:以最低参数量+最高稳定性平衡精度与可靠性,避免分类错误导致的资源浪费。
💡 一句话总结技术决策
“通过迁移学习策略对比实验,选定仅训练顶层分类器(参数减少93%以上),并创新性引入Dropout解决过拟合问题,在保障85%+准确率的同时,显著提升模型稳定性,满足垃圾分类场景的可靠性需求。”

⚙️ 关键技术实现
-
数据工程
- 爬虫系统:自主开发百度图片爬虫,构建120类垃圾数据集(39,348张图像),按8:1:1划分训练/验证/测试集。
- 数据增强:采用旋转、裁剪、缩放等策略解决样本不均衡问题,提升模型泛化能力。
- 标签优化:设计自动化标注流程,修复原始数据集无标签缺陷(原数据集致命问题)。
-
模型架构与调优
- 迁移学习策略:对比测试ResNet50与MobileNetV2,最终选定轻量化MobileNetV2作为主干网络。
- 创新微调方案:
- 实验三种迁移策略(全冻结/部分冻结/全训练),冻结全部卷积层+训练顶层分类器效果最佳。
- 引入Dropout层(0.5概率) 解决过拟合,验证集准确率从86.43%→85.87%,测试集泛化能力提升。
- 性能指标:
- 测试集准确率:85.52%(120类别分类)
- 单张图像推理时间:<0.1秒(满足实时性需求)
-
系统应用开发
- 交互式GUI:基于PyQt5开发桌面系统,支持:
- 图片上传识别
- 摄像头实时捕获+动态分类
- 垃圾处理指南推送(联动分类结果生成环保建议)
- 部署优化:预加载模型文件,降低启动延迟;支持Escape键快速切换实时/静态模式。
- 交互式GUI:基于PyQt5开发桌面系统,支持:
🚀 项目亮点
- 技术深度:
- 深入优化MobileNetV2的Inverted Residual结构,对比ResNet50的残差块差异,针对性改进特征提取效率。
- 设计“冻结主干+动态分类层”训练策略,减少75%参数量,兼顾精度与速度。
- 问题解决能力:
- 修复数据集无标签缺陷,设计自动化标注流程。
- 通过Dropout和动态学习率(Adam lr=0.0001)解决小样本过拟合问题。
- 落地价值:
- 系统可直接部署于社区垃圾站、回收中心,降低人工分拣成本。
- 提供实时环保指导(如“有害电池需单独回收”),增强公众参与度。
📊 成果展示
| 模型 | 训练集准确率 | 测试集准确率 | 参数量 |
|---|---|---|---|
| MobileNetV2(策略1) | 99.54% | 86.09% | 153K |
| + Dropout优化 | 89.61% | 85.52% | 153K |
交互系统效果:
- 实时分类响应速度:300ms/帧
- 支持120类垃圾识别(覆盖可回收物/厨余/有害/其他四大类)
- 输出结果含物品名称、分类概率及处理指南(如*"充电宝→可回收物,需拆解电池单独处理"*)
💡 一句话项目定位
“轻量级MobileNetV2迁移学习模型 + 交互式垃圾分类系统,以85.5%准确率实现垃圾自动化识别,推动环保场景AI落地。”
代码:链接: https://pan.baidu.com/s/1Q7wFQIaPumkPxoeDptcYwQ?pwd=qtc3 提取码: qtc3
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)