智慧城市、环保监控、自动驾驶清洁车 YOLO模型如何训练智慧道路街道垃圾检测数据集

📅 发布时间:2026/7/17 20:57:39 👁️ 浏览次数:
智慧城市、环保监控、自动驾驶清洁车 YOLO模型如何训练智慧道路街道垃圾检测数据集
垃圾类 垃圾目标检测数据集。数据集已经标注好txt标注YOLO格式适用于训练YOLO系列目标检测模型YOLO5 YOLO8 YOLO9 YOLO10等数据集已经划分好训练集4526张图验证集1046张图片测试集161张图片包含类别标签文件数据集标签分为一类:垃圾 。包含类别标签说明文件数据集标注准确实测yolo8s map50为94.7%垃圾目标检测数据集。基于你提供的数据划分训练/验证/测试和实测精度mAP50 94.7%这非常适合用于智慧城市、环保监控、自动驾驶清洁车等项目的模型训练。 1. 垃圾目标检测数据集概况项目属性详细说明数据集名称Garbage-Detection-YOLO (单类别)目标类别1 类garbage(垃圾)标注格式YOLO 格式(.txt:class_id x_center y_center w h)数据总量5,733张图像数据划分训练集 (Train): 4,526 张 (约 79%)验证集 (Val): 1,046 张 (约 18%)测试集 (Test): 161 张 (约 3%)适用模型YOLOv5, YOLOv8, YOLOv9, YOLOv10, YOLOv11 等全系列实测精度mAP50: 94.7%(基于 YOLOv8s 模型实测)数据特点标注准确、场景多样、已预划分、开箱即用应用场景街道清洁监控、智能垃圾桶、环卫车自动作业、社区环境治理 2. YOLOv8 训练代码 (Python)此代码针对单类别垃圾检测进行了优化复现了高 mAP 的关键配置如输入分辨率、增强策略。 前置准备请确保目录结构如下Garbage_Dataset/ ├── images/ │ ├── train/ (4526 张) │ ├── val/ (1046 张) │ └── test/ (161 张) ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── garbage.yaml (配置文件见下方代码块) 配置文件 (garbage.yaml)path:./Garbage_Dataset# 数据集根目录train:images/trainval:images/valtest:images/test# 类别数量nc:1# 类别名称names:0:garbage 训练脚本 (train_garbage.py)fromultralyticsimportYOLOimporttorchimportosdeftrain_garbage_detector():print( 开始训练垃圾目标检测模型 (YOLOv8)...)# 1. 加载模型# 推荐使用 yolov8s.pt (平衡速度与精度)若需更高精度可换 yolov8m.ptmodelYOLO(yolov8s.pt)# 2. 定义训练参数# 关键策略高分辨率输入 强增强 单类优化resultsmodel.train(datagarbage.yaml,# 数据集配置文件epochs100,# 训练轮次 (5000数据量通常50-100轮收敛)imgsz640,# 输入分辨率 (垃圾大小不一640通常足够若小垃圾多可调至800)batch16,# 批次大小 (根据显存调整24G显存可设32)device0iftorch.cuda.is_available()elsecpu,workers8,# 数据加载线程数# --- 优化器设置 ---optimizerSGD,# SGD 在目标检测中泛化性更好lr00.01,# 初始学习率lrf0.05,# 最终学习率momentum0.937,weight_decay0.0005,# --- 数据增强 (针对垃圾场景) ---augmentTrue,hsv_h0.015,# 色调微调 (垃圾颜色多样但不过度扭曲)hsv_s0.7,# 饱和度增强 (区分鲜艳包装纸和暗淡污垢)hsv_v0.4,# 亮度增强 (模拟夜间或阴影下的垃圾)degrees0.0,# 旋转 (地面垃圾通常不需要大角度旋转保持水平视角)translate0.1,# 平移scale0.5,# 缩放 (模拟远近不同的垃圾)shear0.0,perspective0.0,flipud0.0,# 【重要】禁止上下翻转 (垃圾不会在天上)fliplr0.5,# 允许左右翻转mosaic1.0,# Mosaic (核心增强模拟密集垃圾堆场景)mixup0.05,# 轻微 Mixup# --- 训练策略 ---patience20,# 早停机制saveTrue,save_period-1,# 每轮保存verboseTrue,projectruns/garbage_detect,namegarbage_yolov8s_v1,exist_okFalse,seed42,deterministicTrue,single_clsTrue,# 【关键】强制单类模式提升收敛速度和精度rectFalse# 关闭矩形训练增加鲁棒性)print(f✅ 训练完成最佳模型保存在:{results.save_dir}/weights/best.pt)# 3. 在测试集上验证精度 (复现 94.7% mAP)print( 正在测试集上进行最终验证...)metricsmodel.val(splittest)# 指定在 test 集上验证print(-*30)print(f 测试结果 (mAP50):{metrics.box.map50:.4f})print(f 测试结果 (mAP50-95):{metrics.box.map:.4f})print(-*30)# 4. 导出模型 (可选)# model.export(formatonnx, simplifyTrue)# print( 模型已导出为 ONNX)if__name____main__:ifnotos.path.exists(garbage.yaml):print(❌ 错误未找到 garbage.yaml请先创建配置文件)else:train_garbage_detector() 3. 项目落地建议鉴于该数据集实测精度高达94.7%在实际落地应用中注意以下几点小目标优化如果实际场景中有很多远处的细小垃圾如烟头、纸屑建议将代码中的imgsz从640提升至800或1024并适当减小batchsize 以适应显存。密集遮挡处理垃圾堆往往互相遮挡。代码中开启了mosaic1.0这是提升密集检测能力的关键不要关闭。部署去重在视频流检测中同一个垃圾可能会被连续多帧检测到。建议使用DeepSORT或简单的IOU 跟踪算法对同一位置的垃圾进行 ID 锁定避免重复报警。负样本挖掘如果出现误报例如把地上的树叶、阴影当成垃圾收集这些误报图片加入训练集但不标注或标注为背景重新训练可显著降低误报率。