☰
基于 YOLOv8 的垃圾分类识别系统
2026/10/23 3:00:22 网站建设 项目流程

本项目是一套基于YOLOv8的垃圾分类识别系统,以44 细类垃圾目标检测数据集为数据基础,面向四十四种具体垃圾物品的定位、识别与四大类归并完成模型训练、评估与系统应用。系统提供Web 端和 PyQt6 桌面端,支持图片、视频和摄像头输入,并集成结果查看、历史查询、模型管理与训练指标展示,适用于项目设计、课程实践和答辩展示。

一、项目简介

使用四十四细类垃圾目标检测数据识别具体物品,再按照项目内的类别映射归入可回收物、厨余垃圾、有害垃圾和其他垃圾。系统同时展示目标框、细类明细与大类统计,支持大批量处理、历史查询和结果导出。

组成项目内容
数据集44 细类垃圾目标检测数据集
模型YOLOv8n
识别任务四十四种具体垃圾物品的定位、识别与四大类归并
实验资料训练参数、日志、权重与已有图表
应用端桌面界面与浏览器操作界面

二、系统功能设计

2.1 登录与系统概览

账号登录后通过侧栏进入图片、批量、视频、摄像头、历史、分类规则、模型与指标页面。概览汇总已有检测记录与实验信息。

2.2 图片检测与目标定位

上传图像后显示目标框、44 细类名称、置信度、坐标及四大类统计。支持目标定位和类别筛选,方便逐项检查同一图像中的多个物品。

2.3 大批量图片检测

支持多选、拖拽和文件夹导入,单批最多 15,000 张,分块上传、逐张推理并分页浏览。损坏图片单独记录,没有检出目标的图片按成功处理,任务可取消并保留完成部分。

2.4 四大类与细类对应

分类规则页展示四大类与 44 个细类的对应关系,检测框、大类统计、结果明细与导出保持关联。归并依据是本项目映射,实际使用时可结合目标场景调整。

2.5 视频、历史与导出

视频按采样帧处理,可查看播放、趋势与分类统计。历史长期保存检测明细和统计,标注媒体保留 24 小时;标注图片、视频、CSV 与批量 ZIP 可按页面下载。

2.6 模型与参数

模型页展示项目既有垃圾检测权重和推理参数。训练日志中的峰值、轮次与末轮结果分别呈现,可回看完整实验变化。

三、技术栈

类别技术及用途
编程语言Python、JavaScript
深度学习框架PyTorch
模型训练与推理Ultralytics YOLOv8
桌面界面PyQt6
Web 服务FastAPI
Web 前端HTML、CSS、JavaScript
图像与视频处理OpenCV、NumPy
训练日志与离线绘图Matplotlib;CSV 训练记录
结果保存Web 独立目录中的账号、任务、历史与结果文件

四、项目结构

项目将训练代码、界面、模型产物和 Web 服务分别组织,主要目录如下:

c293/ ├─ data/ ├─ data_prepare/ ├─ main.py ├─ plot_results.py ├─ README.md ├─ requirements.txt ├─ runs/ ├─ ui/ ├─ utils/ └─ web/ ├─ backend/ # 服务接口与推理任务 ├─ frontend/ # 页面与交互 └─ data/ # Web 独立运行数据

本文对应的训练日志位于runs/detect/train/results.csv。 数据集按实际配置定位;浏览器端的运行结果独立保存在 Web 数据目录。

五、数据集说明

5.1 数据集与识别任务

项目使用44 细类垃圾目标检测数据集,面向四十四种具体垃圾物品的定位、识别与四大类归并。每个目标由类别与边界框共同描述,模型输出位置及对应预测分数。

5.2 数据规模与划分

以下数量按当前本机配套数据目录统计;所列划分对应本项目的数据组织。

数据划分图像数量
训练集10,319
验证集1,478
测试集2,964
合计14,761

5.3 类别与标注格式

类别编号类别名称中文含义
0一次性快餐盒一次性快餐盒
1书籍纸张书籍纸张
2充电宝充电宝
3剩饭剩菜剩饭剩菜
4包包
5垃圾桶垃圾桶
6塑料器皿塑料器皿
7塑料玩具塑料玩具
8塑料衣架塑料衣架
9大骨头大骨头
10干电池干电池
11快递纸袋快递纸袋
12插头电线插头电线
13旧衣服旧衣服
14易拉罐易拉罐
15枕头枕头
16果皮果肉果皮果肉
17毛绒玩具毛绒玩具
18污损塑料污损塑料
19污损用纸污损用纸
20洗护用品洗护用品
21烟蒂烟蒂
22牙签牙签
23玻璃器皿玻璃器皿
24砧板砧板
25筷子筷子
26纸盒纸箱纸盒纸箱
27花盆花盆
28茶叶渣茶叶渣
29菜帮菜叶菜帮菜叶
30蛋壳蛋壳
31调料瓶调料瓶
32软膏软膏
33过期药物过期药物
34酒瓶酒瓶
35金属厨具金属厨具
36金属器皿金属器皿
37金属食品罐金属食品罐
38锅锅
39陶瓷器皿陶瓷器皿
40鞋鞋
41食用油桶食用油桶
42饮料瓶饮料瓶
43鱼骨鱼骨

YOLO 标注按每行一个目标组织:

class_id center_x center_y width height

中心点坐标与宽高采用相对图像尺寸的归一化值,图像与 TXT 标注按文件名对应。

六、模型训练过程

6.1 训练流程

项目按 YOLO 格式整理垃圾细类图像与标注,训练记录保存在runs/detect/train/。本次实验使用已有预训练权重进行微调,权重、参数与 CSV 一并保留。

  1. 按当前数据目录读取图像及对应标签。
  2. 将输入调整为实验配置的尺寸,并应用训练预处理。
  3. 加载基础模型,在对应类别上进行训练。
  4. 在验证阶段计算指标并保存日志及权重。
  5. 使用已有训练图表分析结果,并在系统中加载权重开展推理。

6.2 模型与训练参数

参数本次记录
基础模型YOLOv8n
配置轮数100
日志实际轮数100
输入尺寸640 × 640
Batch Size16
优化器配置auto
预热轮数3.0
DataLoader Workers8

日志最后一行累计耗时为9,161.19 秒,约 152.7 分钟。 数据增强与学习率调度以本次参数记录和逐轮 CSV 为准;配置值与实际日志中的学习率分别读取。

6.3 训练产物

  • args.yaml:本次实验参数。
  • results.csv:每一轮损失、检测指标和学习率。
  • weights/:已保存的模型权重。
  • 训练图表:原始产物中的曲线、分布或评估图,见第八节。

七、训练结果与核心指标

7.1 最后一轮结果

以下为当前实验 CSV 的第100 轮验证结果:

指标日志数值百分比
Precision0.7564375.643%
Recall0.6270162.701%
mAP@0.50.6971269.712%
mAP@0.5:0.950.598159.810%

7.2 各指标最高值

指标最高值对应轮次
Precision0.79973第 53 轮
Recall0.6455第 66 轮
mAP@0.50.69909第 81 轮
mAP@0.5:0.950.59859第 98 轮

单项峰值可能出现在不同轮次;末轮表用于查看同一轮完整结果,峰值表用于查看各指标在本次训练中的最高记录。

7.3 结果分析

44 细类的外观差异、相近包装和同图多物品使识别更具挑战。可分别核对细类检测与四大类归并,结合真实误检、漏检样本开展后续实验。

八、可视化图表说明

以下图片直接采用源码目录已有的训练产物,保留原始图表内容与数值。

8.1 训练与验证损失

展示图中对应的损失项随训练轮次的变化,结合训练与验证结果观察拟合情况。

8.2 训练与验证损失

展示图中对应的损失项随训练轮次的变化,结合训练与验证结果观察拟合情况。

8.3 检测指标变化

展示对应检测指标随训练轮次的变化,数值与本文列出的原始 CSV 结果按同一实验读取。

8.4 检测指标变化

展示对应检测指标随训练轮次的变化,数值与本文列出的原始 CSV 结果按同一实验读取。

8.5 检测指标变化

展示对应检测指标随训练轮次的变化,数值与本文列出的原始 CSV 结果按同一实验读取。

8.6 检测指标变化

展示对应检测指标随训练轮次的变化,数值与本文列出的原始 CSV 结果按同一实验读取。

本项目为个人原创项目,配套源码、模型权重、训练资料和项目说明,可用于毕业设计、课程实践、简历展示及个人学习。有项目成品或定制需求,可以通过主页联系作者。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询