news 2026/4/18 8:28:27

深度学习框架YOLOV8模型训练厨余垃圾检测数据集__(实为 __四类生活垃圾检测数据集 构建基于深度学习YOLOV8厨余垃圾检测系统 智慧环保建设,推动垃圾分类智能化落地

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习框架YOLOV8模型训练厨余垃圾检测数据集__(实为 __四类生活垃圾检测数据集 构建基于深度学习YOLOV8厨余垃圾检测系统 智慧环保建设,推动垃圾分类智能化落地

厨余垃圾检测数据集 14964张 4类

yolo格式

【垃圾四类检测YOLO数据集】共【14964】张,按照8比2划分为训练集和验证集,其中训练集【11971】张,验证集【2993】张,模型分为【4】类,分类为:【‘可回收垃圾’, ‘其他垃圾’, ‘厨余垃圾’, ‘有害垃圾’】
每个类别的图片数量和标注框数量如下:
可回收垃圾: 图片数【7183】,标注框数【9229】
其他垃圾: 图片数【5527】,标注框数【9121】
厨余垃圾: 图片数【3449】,标注框数【5257】
有害垃圾: 图片数【1538】,标注框数【1983】

1

以下是厨余垃圾检测数据集(实为四类生活垃圾检测数据集)的详细信息汇总表,采用清晰结构化表格呈现,便于用于项目文档、模型训练说明或技术报告:


🗑️ 四类生活垃圾检测数据集信息表(YOLO 格式)

项目内容
数据集名称生活垃圾四分类目标检测数据集(YOLO格式)
总图像数量14,964 张 JPG 图像
标注格式YOLO.txt(每张图对应一个标签文件,坐标归一化)
类别数量4 类
数据划分比例训练集 : 验证集 =8 : 2
训练集数量11,971 张
验证集数量2,993 张
测试集未单独提供(可从验证集中划分或自行预留)

📊 各类别分布统计表

类别(中文)类别索引(YOLO class_id)图片数量(含该类的图像数)标注框总数(实例数)占总图像比例
可回收垃圾07,1839,229≈48.0%
其他垃圾15,5279,121≈36.9%
厨余垃圾23,4495,257≈23.1%
有害垃圾31,5381,983≈10.3%

⚠️ 注:

  • 图片数量 ≠ 总图像数之和(因单张图像可能包含多个类别,存在重叠)
  • 总图像数为14,964,但各类别图片数之和为7,183 + 5,527 + 3,449 + 1,538 = 17,697,表明约2,733 张图像包含多类垃圾

📁 推荐目录结构

garbage_detection_dataset/ ├── images/ │ ├── train/# 11,971 张 .jpg│ └── val/# 2,993 张 .jpg├── labels/ │ ├── train/# 11,971 个 .txt│ └── val/# 2,993 个 .txt└── dataset.yaml# YOLO 配置文件

📄dataset.yaml示例

# dataset.yamltrain:./images/trainval:./images/valnc:4names:['可回收垃圾','其他垃圾','厨余垃圾','有害垃圾']

💡 注意:Ultralytics YOLO 支持中文类别名,但建议在部署时使用英文(如recyclable,residual,organic,hazardous)以避免编码问题。


🔍 数据集特点与挑战

特点说明
多类别共现单图常含多种垃圾(如“厨余+其他”),适合多标签检测
类别不平衡“有害垃圾”样本最少(仅 1,538 张图,1,983 个框),需关注召回率
背景复杂拍摄场景多样(垃圾桶、街道、厨房等),光照/遮挡变化大
形态多样同一类垃圾外观差异大(如“可回收垃圾”含塑料瓶、纸箱、金属罐等)

✅ 适用场景

  • 智能垃圾分类机器人
  • 垃圾投放监控系统
  • 城市环卫 AI 管理平台
  • 高校课程设计 / 毕业设计 / AI 竞赛(如天池、Kaggle)

该数据集是构建智能垃圾分类视觉系统的理想选择,支持高精度四分类目标检测,助力绿色城市与可持续发展。

以下是针对四类生活垃圾检测数据集(14,964 张图像,YOLO 格式,4 类:可回收垃圾其他垃圾厨余垃圾有害垃圾)的完整YOLOv8 训练系统代码,包含数据配置、训练、验证、推理、评估及部署全流程。


✅ 一、前提条件

1. 数据目录结构(已按 8:2 划分)

garbage_detection_dataset/ ├── images/ │ ├── train/# 11,971 张 .jpg│ └── val/# 2,993 张 .jpg├── labels/ │ ├── train/# 11,971 个 .txt│ └── val/# 2,993 个 .txt└── dataset.yaml# 配置文件

💡 若你尚未划分,请使用文末提供的自动划分脚本。

2. 安装依赖

pipinstallultralytics opencv-python torch torchvision scikit-learn

📄 二、dataset.yaml配置文件

⚠️建议使用英文类别名(避免部分系统编码问题),但 YOLOv8 支持中文。

# dataset.yamltrain:./images/trainval:./images/valnc:4names:['recyclable','residual','organic','hazardous']# 或使用中文(确保终端支持 UTF-8):# names: ['可回收垃圾', '其他垃圾', '厨余垃圾', '有害垃圾']

🔁类别映射说明

  • 0 → recyclable(可回收垃圾)
  • 1 → residual(其他垃圾)
  • 2 → organic(厨余垃圾)
  • 3 → hazardous(有害垃圾)

🚀 三、YOLOv8 训练代码(train.py

# train.pyfromultralyticsimportYOLOimporttorchdefmain():device='cuda'iftorch.cuda.is_available()else'cpu'print(f"🚀 使用设备:{device}")# 加载预训练模型(推荐 yolov8s,平衡速度与精度)model=YOLO('yolov8s.pt')# 可选: yolov8n (更快), yolov8m (更准)# 开始训练results=model.train(data='dataset.yaml',epochs=100,# 垃圾分类数据量大,100 轮通常足够imgsz=640,# 推荐 640(兼顾细节与速度)batch=32,# 根据 GPU 显存调整(RTX 3090 可设 64)name='garbage_yolov8s_640',optimizer='AdamW',lr0=0.001,lrf=0.01,weight_decay=0.0005,warmup_epochs=3,# 数据增强(针对复杂背景优化)hsv_h=0.015,# 色调扰动(适应不同光照)hsv_s=0.7,hsv_v=0.4,degrees=10.0,# 轻微旋转translate=0.1,scale=0.5,fliplr=0.5,# 左右翻转(垃圾无方向性)mosaic=0.9,mixup=0.2,copy_paste=0.3,# 提升小目标(如有害垃圾电池)检测close_mosaic=10,device=device,workers=8,save=True,save_period=10,exist_ok=False,verbose=True)if__name__=='__main__':main()

💡为什么用copy_paste=0.3
“有害垃圾”样本少且目标小(如电池、药片),Copy-Paste 可合成更多正样本,显著提升召回率。


🔍 四、推理与可视化(detect.py

# detect.pyfromultralyticsimportYOLOimportcv2# 加载最佳模型model=YOLO('runs/detect/garbage_yolov8s_640/weights/best.pt')defdetect_image(image_path,conf_thres=0.3):"""检测单张图像并显示结果"""results=model(image_path,conf=conf_thres)annotated=results[0].plot()# 自动绘制框 + 中文/英文标签cv2.imshow("Garbage Detection",annotated)cv2.waitKey(0)cv2.destroyAllWindows()defdetect_folder(input_folder,output_folder="output"):"""批量检测文件夹并保存结果"""model.predict(source=input_folder,conf=0.3,save=True,project=output_folder,name="results",exist_ok=True)print(f"✅ 检测结果已保存至:{output_folder}/results/")

📊 五、验证集评估(evaluate.py

# evaluate.pyfromultralyticsimportYOLO model=YOLO('runs/detect/garbage_yolov8s_640/weights/best.pt')metrics=model.val(data='dataset.yaml')print("="*60)print("📊 验证集性能报告:")print(f"mAP@0.5 (Box):{metrics.box.map50:.4f}")print(f"mAP@0.5:0.95:{metrics.box.map:.4f}")print(f"Precision:{metrics.box.mp:.4f}")print(f"Recall:{metrics.box.mr:.4f}")print("="*60)# 按类别输出 AP@0.5class_names=['recyclable','residual','organic','hazardous']fori,nameinenumerate(class_names):ap50=metrics.box.ap50[i]ifhasattr(metrics.box,'ap50')else0.0print(f"{name:<12}: AP@0.5 ={ap50:.4f}")# 保存评估结果withopen("evaluation_results.txt","w",encoding='utf-8')asf:f.write(f"mAP@0.5:{metrics.box.map50:.4f}\n")f.write(f"mAP@0.5:0.95:{metrics.box.map:.4f}\n")fori,nameinenumerate(class_names):ap50=metrics.box.ap50[i]ifhasattr(metrics.box,'ap50')else0.0f.write(f"{name}: AP@0.5 ={ap50:.4f}\n")print("📝 评估结果已保存至 evaluation_results.txt")

🧩 六、自动划分脚本(如需从原始数据划分)

# utils/split_dataset.pyimportosimportrandomimportshutil# 假设原始数据在 raw_images/ 和 raw_labels/raw_img_dir='raw_images'raw_lbl_dir='raw_labels'# 获取所有图像文件(确保 .jpg 和 .txt 一一对应)all_files=[f.replace('.jpg','')forfinos.listdir(raw_img_dir)iff.endswith('.jpg')]random.seed(42)random.shuffle(all_files)split_idx=int(0.8*len(all_files))train_files=all_files[:split_idx]val_files=all_files[split_idx:]# 创建目录forsplitin['train','val']:os.makedirs(f'images/{split}',exist_ok=True)os.makedirs(f'labels/{split}',exist_ok=True)# 复制文件forfintrain_files:shutil.copy(f'{raw_img_dir}/{f}.jpg',f'images/train/{f}.jpg')shutil.copy(f'{raw_lbl_dir}/{f}.txt',f'labels/train/{f}.txt')forfinval_files:shutil.copy(f'{raw_img_dir}/{f}.jpg',f'images/val/{f}.jpg')shutil.copy(f'{raw_lbl_dir}/{f}.txt',f'labels/val/{f}.txt')print(f"✅ 划分完成: 训练集{len(train_files)}张, 验证集{len(val_files)}张")

📦 七、模型导出(用于部署)

# export_model.pyfromultralyticsimportYOLO model=YOLO('best.pt')# 导出为 ONNX(用于 CPU/Web)model.export(format='onnx',imgsz=640,simplify=True)# 导出为 TensorRT(用于 Jetson/NVIDIA GPU)model.export(format='engine',imgsz=640,half=True)# FP16 加速

该系统可助力智慧环保建设,推动垃圾分类智能化落地。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 1:24:31

光栅衍射主极大个数与大学物理衍射要点解析

光栅衍射主极大个数与大学物理衍射要点解析在光学实验中&#xff0c;当你用一束红光照射一个细密的光栅&#xff0c;屏幕上出现的不再是简单的明暗条纹&#xff0c;而是一系列明亮、锐利且对称分布的亮斑——这些就是光栅衍射的主极大。它们的位置并非随机&#xff0c;而是由一…

作者头像 李华
网站建设 2026/4/17 6:39:33

vLLM-Ascend 部署与推理服务化实战

一、前言 vLLM 是目前大模型推理领域最火热的高性能推理框架之一&#xff0c;以其 PagedAttention 技术著称。而 vLLM-Ascend 则是 vLLM 在华为昇腾 NPU 上的硬件插件&#xff0c;使得昇腾算力能够通过 vLLM 释放强大的推理性能。 在真正开始做迁移之前&#xff0c;我原本以为 …

作者头像 李华
网站建设 2026/4/17 16:21:02

GIN索引原理

gin全称generalized inverted index&#xff0c;即“通用倒排索引”。顾名思义&#xff0c;是一种倒排索引&#xff0c;但被设计成可以支持多种复杂数据类型的索引需求。 gin索引最初是为了支持全文检索而引入的。在postgresql 8.2版本中首次引入。当时&#xff0c;postgresql已…

作者头像 李华
网站建设 2026/4/11 18:00:47

城乡差距下的乡村变迁与情感记忆

城乡变迁中的记忆、断裂与回望 当高铁穿过成片的油菜花田&#xff0c;窗外飞速后退的不只是风景&#xff0c;还有那些正在悄然消失的村落。炊烟不再升起&#xff0c;老屋墙皮剥落&#xff0c;村口的小卖部锁着铁门&#xff0c;连狗都懒得吠一声。二十年前&#xff0c;这里还能听…

作者头像 李华
网站建设 2026/4/18 8:06:02

深入分析PHP木马代码的功能与危害

深入分析PHP木马代码的功能与危害 在一次常规的服务器安全巡检中&#xff0c;运维人员发现一个名为 debug.php 的文件被悄然上传到了网站根目录。它没有版本记录、不属于任何已知模块&#xff0c;内容仅数十行代码——但正是这个看似无害的小脚本&#xff0c;让整个内网暴露在攻…

作者头像 李华
网站建设 2026/4/18 8:18:57

Power BI直接回写数据到SQL Server的两种方法

ms-swift&#xff1a;让大模型能力“写回”业务系统的终极工具链 在企业数据系统中&#xff0c;我们常常会遇到这样一个场景&#xff1a;Power BI 做完数据清洗和建模后&#xff0c;需要将结果写回 SQL Server&#xff0c;以便下游应用调用。这个“写回”动作看似简单&#xf…

作者头像 李华