模型背景分析

在进行垃圾分类系统的研究和设计时,选择适当的模型至关重要。本文将总结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. ​策略1的短板​​:训练集准确率99.53% vs 验证集85.38%,存在过拟合。
  2. ​根本原因​​:冻结卷积层后,全连接层过度拟合训练集特征。
  3. ​关键改进​​:​​加入Dropout机制(概率0.5)​​,随机丢弃全连接层前的神经元,抑制过拟合(图7验证效果)。

✅ ​​最终决策依据​

  • ​放弃策略3​​:虽训练参数最多,但因数据量不足(120类仅3.9万图),准确率反最低。
  • ​放弃策略2​​:准确率接近策略1,但损失函数频繁抖动,落地风险高。
  • ​选择策略1+Dropout​​:以​​最低参数量+最高稳定性​​平衡精度与可靠性,避免分类错误导致的资源浪费。

💡 ​​一句话总结技术决策​

“通过迁移学习策略对比实验,选定仅训练顶层分类器(参数减少93%以上),并创新性引入Dropout解决过拟合问题,在保障85%+准确率的同时,显著提升模型稳定性,满足垃圾分类场景的可靠性需求。”

 

⚙️ ​​关键技术实现​

  1. ​数据工程​

    • ​爬虫系统​​:自主开发百度图片爬虫,构建​​120类垃圾数据集​​(39,348张图像),按8:1:1划分训练/验证/测试集。
    • ​数据增强​​:采用旋转、裁剪、缩放等策略解决样本不均衡问题,提升模型泛化能力。
    • ​标签优化​​:设计自动化标注流程,修复原始数据集无标签缺陷(原数据集致命问题)。
  2. ​模型架构与调优​

    • ​迁移学习策略​​:对比测试ResNet50与MobileNetV2,最终选定轻量化MobileNetV2作为主干网络。
    • ​创新微调方案​​:
      • 实验三种迁移策略(全冻结/部分冻结/全训练),​​冻结全部卷积层+训练顶层分类器​​效果最佳。
      • 引入​​Dropout层(0.5概率)​​ 解决过拟合,验证集准确率从86.43%→85.87%,测试集泛化能力提升。
    • ​性能指标​​:
      • 测试集准确率:​​85.52%​​(120类别分类)
      • 单张图像推理时间:<0.1秒(满足实时性需求)
  3. ​系统应用开发​

    • ​交互式GUI​​:基于PyQt5开发桌面系统,支持:
      • 图片上传识别
      • 摄像头实时捕获+动态分类
      • 垃圾处理指南推送(联动分类结果生成环保建议)
    • ​部署优化​​:预加载模型文件,降低启动延迟;支持Escape键快速切换实时/静态模式。

🚀 ​​项目亮点​

  • ​技术深度​​:
    • 深入优化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

github:https://github.com/GuoHuiTian/DeepLearning_GarbageClassification?tab=readme-ov-filehttps://github.com/GuoHuiTian/DeepLearning_GarbageClassification?tab=readme-ov-file

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐