垃圾分类识别数据集 | YOLO格式

垃圾分类识别数据集介绍

1. 数据集概述

本项目使用的数据集位于 datasets/GarbageSorting 目录下,主要用于垃圾分类目标检测任务。数据集采用 YOLO 标准目录结构组织,包含图像文件、对应标注文件以及数据集配置文件 data.yaml,可直接用于 YOLOv8 系列模型训练、验证和测试。

该数据集面向垃圾分类识别场景,检测目标共分为 4 类:

类别ID 英文类别名 中文含义
0 recyclable waste 可回收垃圾
1 hazardous waste 有害垃圾
2 kitchen waste 厨余垃圾
3 other waste 其他垃圾

数据集整体包含 2743 张图片和 2743 个标注文件,标注目标框总数为 3925 个。所有图片均为 .jpg 格式,图片与标签文件一一对应,未发现缺失标签文件。

2. 数据集目录结构

datasets/GarbageSorting ├── data.yaml ├── images │ ├── train │ ├── val │ └── test └── labels ├── train ├── val └── test

各目录说明如下:

路径 说明
data.yaml YOLO 数据集配置文件,定义数据路径、类别数量和类别名称
images/train 训练集图片
images/val 验证集图片
images/test 测试集图片
labels/train 训练集 YOLO 标注文件
labels/val 验证集 YOLO 标注文件
labels/test 测试集 YOLO 标注文件

3. data.yaml 配置说明

当前 data.yaml 内容如下:

path: datasets/GarbageSorting train: images/train val: images/val test: images/test nc: 4 names: ['recyclable waste', 'hazardous waste', 'kitchen waste', 'other waste']

其中:

字段 含义
path 数据集根目录,当前使用相对路径,便于项目移动
train 训练集图片相对路径
val 验证集图片相对路径
test 测试集图片相对路径
nc 类别数量,共 4 类
names 类别名称列表,类别顺序必须与标注文件中的类别ID一致

4. 数据集划分统计

数据划分 图片数量 标注文件数量 目标框数量 图片占比 目标框占比
训练集 train 1920 1920 2750 70.00% 70.06%
验证集 val 548 548 757 19.98% 19.29%
测试集 test 275 275 418 10.03% 10.65%
合计 2743 2743 3925 100.00% 100.00%

从划分比例看,数据集约按照 7:2:1 的比例划分为训练集、验证集和测试集,整体划分较适合常规目标检测训练流程。

5. 类别分布统计

5.1 全量类别分布

类别ID 类别名称 中文含义 目标框数量 占比
0 recyclable waste 可回收垃圾 1609 40.99%
1 hazardous waste 有害垃圾 800 20.38%
2 kitchen waste 厨余垃圾 834 21.25%
3 other waste 其他垃圾 682 17.38%
合计 - - 3925 100.00%

从类别数量看,recyclable waste 样本最多,占比约 40.99%;other waste 样本最少,占比约 17.38%。数据集存在一定类别不均衡问题,训练时可适当关注少样本类别的召回效果。

5.2 各数据划分类别分布

数据划分 类别ID 类别名称 目标框数量 划分内占比
train 0 recyclable waste 1115 40.55%
train 1 hazardous waste 594 21.60%
train 2 kitchen waste 588 21.38%
train 3 other waste 453 16.47%
val 0 recyclable waste 314 41.48%
val 1 hazardous waste 152 20.08%
val 2 kitchen waste 146 19.29%
val 3 other waste 145 19.15%
test 0 recyclable waste 180 43.06%
test 1 hazardous waste 54 12.92%
test 2 kitchen waste 100 23.92%
test 3 other waste 84 20.10%

训练集、验证集和测试集中均包含 4 个类别。测试集中 hazardous waste 占比相对较低,评估时该类别的单类指标可能更容易受样本数量影响。

6. 标注格式说明

数据集采用 YOLO 目标检测标注格式。每张图片对应一个同名 .txt 标注文件,例如:

images/train/fimg_1.jpg labels/train/fimg_1.txt

标注文件中每一行表示一个目标框,格式如下:

class_id x_center y_center width height

字段说明:

字段 说明
class_id 类别ID,取值范围为 0 到 3
x_center 目标框中心点 x 坐标,已按图片宽度归一化
y_center 目标框中心点 y 坐标,已按图片高度归一化
width 目标框宽度,已按图片宽度归一化
height 目标框高度,已按图片高度归一化

坐标数值均为 0 到 1 之间的归一化浮点数。一个标注文件可以包含多行,表示同一张图片中存在多个垃圾目标。

7. 单图目标数量统计

数据划分 图片数量 目标框数量 平均每图目标数 最少目标数 最多目标数
train 1920 2750 1.43 1 13
val 548 757 1.38 1 10
test 275 418 1.52 1 21

整体来看,数据集中多数图片包含 1 个目标,部分图片包含多个垃圾目标。多目标图片数量如下:

数据划分 多目标图片数量
train 431
val 122
test 56

8. 图片规格统计

数据划分 图片数量 宽度范围 平均宽度 高度范围 平均高度 平均文件大小
train 1920 53-1600 473.5 83-1200 394.9 27.7 KB
val 548 111-1200 472.4 90-1200 395.1 29.1 KB
test 275 134-1024 463.9 130-1024 384.2 27.6 KB

数据集中图片分辨率不完全统一,训练时 YOLO 会根据输入尺寸进行缩放和填充。由于原始图片尺寸差异较大,模型训练阶段应保留合理的数据增强策略,以提升模型对不同尺寸图片的适应能力。

9. 目标框尺度分布

按目标框归一化面积 width * height 统计,目标尺度分布如下:

目标尺度 判定标准 目标框数量
小目标 面积 < 1% 1
中等目标 1% <= 面积 < 9% 505
大目标 面积 >= 9% 3419

目标框归一化面积统计:

指标 数值
最小面积 0.006579
最大面积 0.977423
平均面积 0.319718

从统计结果看,数据集中大尺寸目标占比较高,中等目标次之,小目标数量较少。但在实际检测场景中,垃圾目标可能会因拍摄距离、遮挡、背景复杂度等因素变小,因此训练和部署时仍需关注小目标、边缘目标和遮挡目标的识别效果。

10. 数据质量检查结果

对当前数据集进行基础检查后,结果如下:

检查项 结果
图片格式 全部为 .jpg
图片总数 2743
标注文件总数 2743
图片与标注是否一一对应
缺失标注文件数量 0
空标注文件数量 0
标注字段数量异常 未发现
类别ID越界 未发现
坐标超出 0-1 范围 未发现

整体来看,数据集目录结构清晰,标注格式规范,可直接用于 YOLOv8 目标检测模型训练。

11. 训练结果介绍

当前项目已将模型训练结果保存到 datasets/train_result 目录中,该目录记录了本次 YOLOv8 垃圾分类检测模型训练过程中生成的权重文件、指标日志、训练曲线、混淆矩阵以及预测可视化结果,可用于模型效果分析、论文说明、项目验收和后续模型部署。

11.1 训练结果目录结构

datasets/train_result

├── weights

│ ├── best.pt

│ └── last.pt

├── results.csv

├── results.png

├── labels.jpg

├── confusion_matrix.png

├── confusion_matrix_normalized.png

├── BoxF1_curve.png

├── BoxP_curve.png

├── BoxR_curve.png

├── BoxPR_curve.png

├── train_batch0.jpg

├── train_batch1.jpg

├── train_batch2.jpg

├── train_batch134400.jpg

├── train_batch134401.jpg

├── train_batch134402.jpg

├── val_batch0_labels.jpg

├── val_batch0_pred.jpg

├── val_batch1_labels.jpg

├── val_batch1_pred.jpg

├── val_batch2_labels.jpg

└── val_batch2_pred.jpg

各文件说明如下:

文件或目录 说明
weights/best.pt 训练过程中综合验证指标最优的模型权重,通常用于最终部署和推理
weights/last.pt 最后一轮训练结束后的模型权重,可用于继续训练或对比分析
results.csv 每轮训练的损失值、Precision、Recall、mAP 和学习率等详细日志
results.png 训练过程指标曲线汇总图
labels.jpg 数据集标签分布与目标框分布可视化图
confusion_matrix.png 混淆矩阵,用于观察不同类别之间的误判情况
confusion_matrix_normalized.png 归一化混淆矩阵,更便于比较各类别识别比例
BoxF1_curve.png F1 分数随置信度变化曲线
BoxP_curve.png Precision 随置信度变化曲线
BoxR_curve.png Recall 随置信度变化曲线
BoxPR_curve.png Precision-Recall 曲线
train_batch*.jpg 训练批次样本可视化结果,用于检查训练数据和标注效果
val_batch*_labels.jpg 验证集真实标签可视化
val_batch*_pred.jpg 验证集模型预测结果可视化

11.2 训练日志概况

本次训练日志记录于 datasets/train_result/results.csv,共包含 300 轮训练结果。根据日志统计,训练总耗时约 6047.49 秒,约 100.79 分钟。

指标 数值
训练轮数 300
最终 Precision 0.89368
最终 Recall 0.76075
最终 mAP50 0.87324
最终 mAP50-95 0.58176
最终训练 box_loss 0.57260
最终训练 cls_loss 0.48940
最终训练 dfl_loss 1.19121
最终验证 box_loss 1.20444
最终验证 cls_loss 1.01379
最终验证 dfl_loss 1.80593

从训练过程看,模型的 mAP50 从第 1 轮的 0.23325 提升到最终的 0.87324,mAP50-95 从 0.13927 提升到最终的 0.58176,说明模型在训练后已具备较好的垃圾目标定位和分类能力。

11.3 最佳验证指标

根据 results.csv 中的验证指标统计,本次训练的最佳指标如下:

指标 最佳轮次 最佳值
Precision 279 0.90107
Recall 110 0.81519
mAP50 251 0.87455
mAP50-95 252 0.58577

其中,mAP50 表示 IoU 阈值为 0.5 时的平均精度,适合观察模型是否能较好地检测出目标;mAP50-95 是多个 IoU 阈值下的综合平均精度,对目标框定位质量要求更高。当前最佳 mAP50 达到 0.87455,说明模型在该垃圾分类数据集上具有较好的整体检测效果。

11.4 权重文件说明

训练后的模型权重位于 datasets/train_result/weights 目录:

权重文件 文件大小 推荐用途
best.pt 约 4.17 MB 推荐用于系统部署、图片检测、视频检测和摄像头检测
last.pt 约 4.17 MB 适合继续训练或复现实验最后一轮状态

项目部署和实际检测时,通常优先选择 best.pt。如果后续需要在当前训练基础上继续训练,可以使用 last.pt 作为恢复训练权重。

11.5 可视化结果说明

训练结果目录中的可视化图片可以辅助判断模型训练质量:

可视化文件 主要作用
results.png 查看训练损失、验证损失、Precision、Recall、mAP 等指标随训练轮数变化趋势
confusion_matrix.png 查看模型容易混淆的垃圾类别
confusion_matrix_normalized.png 查看各类别归一化识别比例,适合分析类别不均衡影响
BoxPR_curve.png 观察不同类别的 Precision-Recall 表现
BoxF1_curve.png 选择较合适的置信度阈值
val_batch*_pred.jpg 直观看模型在验证集上的检测框位置、类别和漏检误检情况

结合训练指标和可视化结果可知,该模型整体检测效果较好,但由于数据集中类别数量不完全均衡,实际评估时仍建议重点查看 hazardous waste、other waste 等样本相对较少类别的召回率和混淆情况。

12. 使用建议

  1. 训练时建议直接使用 datasets/GarbageSorting/data.yaml 作为数据配置文件。
  2. 当前 data.yaml 使用相对路径,项目移动到其他位置后,只要保持目录结构不变,一般不需要修改数据路径。
  3. 类别顺序必须保持一致,不能随意调整 names 中的顺序,否则会导致模型预测类别与中文类别解释不匹配。
  4. 数据存在一定类别不均衡,尤其是 other waste 和测试集中的 hazardous waste 样本相对较少,评估时应关注各类别单独的 Precision、Recall 和 mAP。
  5. 图片尺寸差异较大,训练时建议使用 YOLO 默认的自适应缩放、Mosaic、HSV 增强等策略,以提升模型泛化能力。
  6. 如果后续新增数据,应保持 images 与 labels 的同名对应关系,并确保标注坐标仍为 YOLO 归一化格式。
  7. 模型部署时建议优先使用 datasets/train_result/weights/best.pt 权重文件。
  8. 如果需要继续训练或复现实验最后状态,可使用 datasets/train_result/weights/last.pt。

13. 适用任务

该数据集适合用于以下任务:

任务类型 说明
垃圾目标检测 检测图像中的垃圾位置并输出类别
垃圾分类识别 根据检测框类别判断垃圾所属分类
YOLOv8 模型训练 可直接作为 YOLOv8 数据集输入
桌面端检测系统 可用于本项目垃圾分类检测系统的模型训练与效果验证
部署效果测试 可使用测试集评估模型在未参与训练图片上的检测效果

14. 总结

GarbageSorting 是一个面向垃圾分类识别的 YOLO 格式目标检测数据集,共包含 4 类垃圾目标、2743 张图片和 3925 个目标框。数据集已完成训练集、验证集和测试集划分,图片与标注文件匹配完整,标注格式规范,适合用于 YOLOv8 垃圾分类检测模型训练和评估。

需要注意的是,数据集中可回收垃圾样本占比最高,其他垃圾样本占比最低,整体存在一定类别不均衡。模型训练和结果分析时,应重点关注少样本类别的识别效果,并结合混淆矩阵、单类 mAP、召回率等指标判断模型是否存在类别偏向。当前训练结果已保存到 datasets/train_result,其中 best.pt 可作为后续系统部署和检测推理的主要模型权重。

相关推荐
MobotStone12 小时前
用 AI 写 PRD 的人越来越多,但真正会用的人不到 10%
人工智能
架构谨制@涛哥12 小时前
本体从入门到实战-03.为什么AI需要一个本体层?
人工智能·架构·软件工程·软件构建
ACP广源盛1392462567312 小时前
OpenAI 推出的 GPT-5.5 大模型,倒逼接口芯片升级迭代@ACP#IX8012应用迭代
大数据·网络·人工智能·嵌入式硬件·电脑·音视频
Python私教12 小时前
GPT-5.6 泄露信息汇总:预计六月发布
人工智能
stsdddd12 小时前
【YOLO安防防护场景安全帽-安全背心目标检测数据集】
安全·yolo·目标检测
Everybody_up12 小时前
大模型开发中format_messages、invoke、format三种方法的对比
人工智能·python·大模型
weixin_4462608512 小时前
超人级安全敏捷多智能体强化学习飞行动力系统
人工智能
阳艳讲ai12 小时前
九尾狐AI 2026年战略级更新:专注1对1深度陪跑,重新定义中小企业AI落地实战与变现的行业服务标准
大数据·人工智能·企业ai培训·九尾狐ai
动物园猫12 小时前
人体姿态检测数据集分享(适用于YOLO系列深度学习检测任务)
人工智能·深度学习·yolo