YOLOv11城市垃圾分类回收站目标检测数据集-13104张-YOLO-Waste-Detection-1
YOLOv11城市垃圾分类回收站目标检测数据集
📊 数据集基本信息
- 目标类别: [‘Aerosols’, ‘Aluminum can’, ‘Aluminum caps’, ‘Cardboard’, ‘Cellulose’, ‘Ceramic’, ‘Combined plastic’, ‘Container for household chemicals’, ‘Disposable tableware’, ‘Electronics’, ‘Foil’, ‘Furniture’, ‘Glass bottle’, ‘Iron utensils’, ‘Liquid’, ‘Metal shavings’, ‘Milk bottle’, ‘Organic’, ‘Paper’, ‘Paper bag’, ‘Paper cups’, ‘Paper shavings’, ‘Papier mache’, ‘Plastic bag’, ‘Plastic bottle’, ‘Plastic can’, ‘Plastic canister’, ‘Plastic caps’, ‘Plastic cup’, ‘Plastic shaker’, ‘Plastic shavings’, ‘Plastic toys’, ‘Postal packaging’, ‘Printing industry’, ‘Scrap metal’, ‘Stretch film’, ‘Tetra pack’, ‘Textile’, ‘Tin’, ‘Unknown plastic’, ‘Wood’, ‘Zip plastic bag’]
- 中文类别:[‘喷雾罐’, ‘铝制易拉罐’, ‘铝制瓶盖’, ‘纸板’, ‘纤维素’, ‘陶瓷’, ‘复合塑料’, ‘家用化学品容器’, ‘一次性餐具’, ‘电子设备’, ‘箔’, ‘家具’, ‘玻璃瓶’, ‘铁制厨具’, ‘液体’, ‘金属碎屑’, ‘牛奶瓶’, ‘有机物’, ‘纸张’, ‘纸袋’, ‘纸杯’, ‘纸屑’, ‘纸浆’, ‘塑料袋’, ‘塑料瓶’, ‘塑料罐’, ‘塑料罐’, ‘塑料瓶盖’, ‘塑料杯’, ‘塑料摇瓶’, ‘塑料碎屑’, ‘塑料玩具’, ‘邮政包装’, ‘印刷行业’, ‘废金属’, ‘拉伸膜’, ‘利乐包装’, ‘纺织品’, ‘锡制品’, ‘未知塑料’, ‘木材’, ‘拉链式塑料袋’]
- 训练集:11466 张
- 验证集:1092 张
- 测试集:546 张
- 总计:13104 张
📄 data.yaml 配置信息
该数据集提供了data.yaml文件,内容如下:
train:../train/imagesval:../valid/imagestest:../test/imagesnc:42names:['Aerosols','Aluminum can','Aluminum caps','Cardboard','Cellulose','Ceramic','Combined plastic','Container for household chemicals','Disposable tableware','Electronics','Foil','Furniture','Glass bottle','Iron utensils','Liquid','Metal shavings','Milk bottle','Organic','Paper','Paper bag','Paper cups','Paper shavings','Papier mache','Plastic bag','Plastic bottle','Plastic can','Plastic canister','Plastic caps','Plastic cup','Plastic shaker','Plastic shavings','Plastic toys','Postal packaging','Printing industry','Scrap metal','Stretch film','Tetra pack','Textile','Tin','Unknown plastic','Wood','Zip plastic bag']🖼️ 标注可视化
📝 数据集分析
YOLOv11城市垃圾分类回收站目标检测数据集
该数据集专为城市垃圾分类回收场景设计,涵盖了多种常见可回收及有害垃圾类别。通过高精度标注和多样化场景采集,为智能垃圾分类系统提供了可靠的数据支撑,有助于提升城市环境管理水平。
数据集包含总计13104张图像,其中训练集11466张、验证集1092张、测试集546张。这种7:0.8:0.4的划分比例合理均衡,能够充分满足模型训练、调优和性能评估的需求,确保模型在不同场景下的泛化能力。
所有图像均经过专业人员严格标注,每个目标物体都配有精确的边界框和清晰的类别标签。标注过程遵循统一规范,确保了数据的一致性和准确性,为后续模型训练奠定了坚实基础。
该数据集可广泛应用于城市环卫管理、智能垃圾分类设备开发、环保科技企业等领域。其丰富的场景覆盖和精细的类别划分,能够有效支持各类垃圾分类识别任务,助力构建智慧环保生态系统。
YOLOv11训练步骤
一、环境安装
pipinstallultralytics# 依赖要求:Python≥3.8,PyTorch≥1.8。安装完成后可通过 `yolo checks` 验证环境。二、数据集准备(YOLO格式)
1. 目录结构
数据集必须严格按以下结构组织:
dataset/ ├── train/ │ ├── images/ # 训练图片(jpg/png) │ └── labels/ # YOLO格式标注(txt) ├── val/ │ ├── images/ │ └── labels/ └── data.yaml # 数据集配置文件2. YOLO标注格式
每个*.txt文件对应一张图片,每行格式为:
class_id center_x center_y width height所有数值均为相对于图片宽高的归一化值(0~1)。
3. data.yaml 配置文件
# data.yamlpath:../dataset# 数据集根目录(相对或绝对路径)train:train/images# 训练集图片路径val:val/images# 验证集图片路径test:test/images# 测试集图片路径(可选)# 类别信息nc:2# 类别数量names:['class1','class2']# 类别名称列表三、模型选择
YOLO11 提供 5 种尺度,官方命名规则为yolo11{n/s/m/l/x}.pt:
| 模型 | 参数量 | 适用场景 |
|---|---|---|
yolo11n | 2.6M | 边缘设备、速度优先 |
yolo11s | 9.4M | 平衡精度与速度 |
yolo11m | 20.1M | 常规GPU训练 |
yolo11l | 25.3M | 高精度需求 |
yolo11x | 56.9M | 极致精度、算力充足 |
四、模型训练
方式1:Python API(推荐)
创建train.py:
fromultralyticsimportYOLOdefmain():# 加载预训练模型(推荐:基于COCO预训练权重微调)model=YOLO("yolo11m.pt")# 训练参数train_params={'data':'data.yaml',# 数据集配置文件'epochs':100,# 训练轮次'imgsz':640,# 输入图像尺寸'batch':16,# 批次大小(根据显存调整)'device':'0',# GPU设备号,'cpu'表示CPU训练'workers':8,# 数据加载线程数'optimizer':'SGD',# 优化器:SGD/Adam/AdamW'lr0':0.01,# 初始学习率'patience':50,# 早停耐心值'save':True,# 保存模型'project':'runs/train',# 项目保存路径'name':'exp',# 实验名称'single_cls':False,# 单类别检测设为True'close_mosaic':10,# 最后N轮关闭马赛克增强}# 开始训练results=model.train(**train_params)# 输出最佳模型路径print(f"Best model saved at:{results.best}")if__name__=='__main__':main()三种模型加载方式对比:
# 方式A:从YAML构建全新模型(从头训练,适合网络结构改进)model=YOLO("yolo11m.yaml")# 方式B:加载预训练权重(最常用,推荐)model=YOLO("yolo11m.pt")# 方式C:构建新模型并迁移预训练权重(改进网络后使用)model=YOLO("yolo11m.yaml").load("yolo11m.pt")方式2:命令行 CLI
# 基础训练yolo detect traindata=data.yamlmodel=yolo11m.ptepochs=100imgsz=640batch=16device=0# 多GPU训练yolo detect traindata=data.yamlmodel=yolo11m.ptepochs=100device=0,1# 从YAML+预训练权重训练yolo detect traindata=data.yamlmodel=yolo11m.yamlpretrained=yolo11m.ptepochs=100五、关键训练参数说明
| 参数 | 说明 | 建议值 |
|---|---|---|
epochs | 训练总轮次 | 100~300 |
imgsz | 输入尺寸 | 640(标准) |
batch | 批次大小 | 8/16/32(根据显存) |
device | 训练设备 | 0(单GPU)、0,1(多GPU)、cpu、mps(Apple芯片) |
workers | 数据加载线程 | 8~16(Windows建议≤8) |
optimizer | 优化器 | SGD(默认)、Adam、AdamW |
lr0/lrf | 初始/最终学习率 | 0.01 / 0.01 |
momentum | SGD动量 | 0.937 |
weight_decay | 权重衰减 | 0.0005 |
single_cls | 单类别模式 | True/False |
resume | 恢复中断训练 | True(需指定last.pt) |
amp | 自动混合精度 | True(默认开启,省显存) |
六、模型验证
创建val.py:
fromultralyticsimportYOLOdefmain():# 加载训练好的最佳权重model=YOLO('runs/train/exp/weights/best.pt')# 验证metrics=model.val(data='data.yaml',split='val',# 验证集:'val' 或 'test'imgsz=640,batch=16,iou=0.6,# NMS IoU阈值device='0',save_json=False,# 是否保存COCO格式JSON)# 输出关键指标print(f"mAP50-95:{metrics.box.map}")# mAP@0.5:0.95print(f"mAP50:{metrics.box.map50}")# mAP@0.5print(f"mAP75:{metrics.box.map75}")# mAP@0.75if__name__=='__main__':main()CLI 方式:
yolo detect valmodel=runs/train/exp/weights/best.ptdata=data.yaml七、模型推理/预测
创建predict.py:
fromultralyticsimportYOLOimportcv2defmain():model=YOLO('runs/train/exp/weights/best.pt')# 单张图片推理results=model.predict(source='test_images/',# 图片路径、文件夹、URL或摄像头索引(0)imgsz=640,conf=0.25,# 置信度阈值iou=0.45,# NMS IoU阈值device='0',save=True,# 保存结果图show=False,# 是否弹窗显示)# 遍历结果forresultinresults:boxes=result.boxes# 检测框masks=result.masks# 分割掩码(如使用分割模型)probs=result.probs# 分类概率# 获取坐标、置信度、类别forboxinboxes:x1,y1,x2,y2=box.xyxy[0].tolist()conf=box.conf[0].item()cls=int(box.cls[0].item())print(f"Class:{cls}, Conf:{conf:.2f}, Box: [{x1:.1f},{y1:.1f},{x2:.1f},{y2:.1f}]")if__name__=='__main__':main()CLI 方式:
yolo detect predictmodel=runs/train/exp/weights/best.ptsource=test_images/save=True## 数据集下载> 小郭AI日志