城市街道垃圾数据源城市街道垃圾检测数据集(YOLO)
城市街道垃圾数据源城市街道垃圾检测数据集(YOLO)该数据集是城市街道场景下包含3300张街道垃圾图像。该数据集包含塑料瓶、香蕉皮、易拉罐、玻璃瓶等28种垃圾类型。该数据集已进行数据划分为训练集、验证集和测试集。具有完整的txt标注文本和yaml配置文件该数据精度较高。YOLO格式28类3300张”由于这是一个具体的数据资源包我无法直接“发送”文件给您数据准备与目录结构代码帮您快速整理数据。YOLOv8/v5 训练代码直接用于该数据集的模型训练。推理/检测代码训练完成后对街道图片进行垃圾检测。data.yaml 配置文件模板包含28种垃圾类别的定义。 第一步数据集目录结构准备YOLO格式的数据集需要特定的文件夹结构。假设您下载到的图片在 images 文件夹标注在 labels 文件夹请确保结构如下street_garbage_dataset/├── images/│ ├── train/ (存放训练集图片)│ ├── val/ (存放验证集图片)│ └── test/ (存放测试集图片)├── labels/│ ├── train/ (存放对应的txt标注)│ ├── val/│ └── test/└── street_garbage.yaml (配置文件)import osimport shutilimport randomdef split_dataset(base_dir, image_ext‘.jpg’):# 定义路径images_dir os.path.join(base_dir, ‘images’)labels_dir os.path.join(base_dir, ‘labels’)# 创建子目录 for split in [train, val, test]: os.makedirs(os.path.join(images_dir, split), exist_okTrue) os.makedirs(os.path.join(labels_dir, split), exist_okTrue) # 获取所有图片文件名 all_images [f for f in os.listdir(os.path.join(base_dir, images_raw)) if f.endswith(image_ext)] random.shuffle(all_images) total len(all_images) train_size int(total * 0.8) val_size int(total * 0.1) splits { train: all_images[:train_size], val: all_images[train_size:train_sizeval_size], test: all_images[train_sizeval_size:] } for split_name, files in splits.items(): for fname in files: # 移动图片 src_img os.path.join(base_dir, images_raw, fname) dst_img os.path.join(images_dir, split_name, fname) shutil.move(src_img, dst_img) # 移动对应的txt标签 (假设标签文件名与图片名一致仅后缀不同) label_name fname.replace(image_ext, .txt) src_lbl os.path.join(base_dir, labels_raw, label_name) if os.path.exists(src_lbl): dst_lbl os.path.join(labels_dir, split_name, label_name) shutil.move(src_lbl, dst_lbl) print(f数据集划分完成训练集:{len(splits[train])}, 验证集:{len(splits[val])}, 测试集:{len(splits[test])})使用示例将原始数据放在 images_raw 和 labels_raw 中运行split_dataset(‘./street_garbage_dataset’) 第二步创建 data.yaml 配置文件这是YOLO模型识别28种垃圾的关键文件。请创建名为 street_garbage.yaml 的文件。注意由于您未提供具体的28类名称列表我根据常见街道垃圾列举了部分示例塑料瓶、香蕉皮等请您根据实际数据集的 classes.txt 或文档补全剩余的类别名称。street_garbage.yaml数据集根路径 (请修改为您本地的绝对路径)path: /absolute/path/to/street_garbage_dataset # — 修改这里图片子目录train: images/trainval: images/valtest: images/test类别数量nc: 2828种垃圾类别名称 (请根据实际情况补全/修正)names:0: plastic_bottle # 塑料瓶1: banana_peel # 香蕉皮2: aluminum_can # 易拉罐3: glass_bottle # 玻璃瓶4: paper_cup # 纸杯5: plastic_bag # 塑料袋6: cigarette_butt # 烟头7: tissue # 纸巾8: food_wrapper # 食品包装9: straw # 吸管10: cardboard # 纸板11: styrofoam # 泡沫塑料12: metal_cap # 金属盖13: broken_glass # 碎玻璃14: battery # 电池15: mask # 口罩16: umbrella # 雨伞17: shoe # 鞋子18: toy # 玩具19: book # 书本20: leaf # 落叶 (如果是作为垃圾)21: branch # 树枝22: stone # 石块23: cloth # 布料24: tire # 轮胎25: bucket # 桶26: box # 盒子27: other_trash # 其他垃圾⚠️ 请务必核对您的数据集文档确保顺序和名称与txt标注中的数字对应 第三步模型训练代码 (基于 YOLOv8)推荐使用 Ultralytics 的 YOLOv8它对多类别小目标检测效果很好。安装依赖pip install ultralytics训练脚本 (train_model.py)from ultralytics import YOLOdef train_garbage_detector():# 1. 加载预训练模型 (推荐 yolov8n.pt 或 yolov8s.pt速度快且适合移动端部署)# nnano, ssmall, mmedium, llarge, xxlargemodel YOLO(‘yolov8n.pt’)# 2. 开始训练 results model.train( datastreet_garbage.yaml, # 指向上面创建的yaml文件 epochs100, # 训练轮数可根据收敛情况调整 imgsz640, # 输入图片尺寸 batch16, # 批次大小根据显存调整 (显存小可设为8) workers4, # 数据加载线程数 device0, # 使用GPU (0)如果是CPU则改为 cpu projectgarbage_detection, # 项目保存目录 nameexp_street_28classes, # 实验名称 patience20, # 早停耐心值防止过拟合 saveTrue, # 保存检查点 plotsTrue # 生成训练过程图表 ) print(训练完成模型保存在 runs/detect/exp_street_28classes/weights/best.pt)if name ‘main’:train_garbage_detector() 第四步推理/检测代码训练完成后使用以下代码对新图片进行检测。检测脚本 (detect.py)from ultralytics import YOLOimport cv2def detect_garbage(image_path, model_path):# 加载训练好的最佳模型model YOLO(model_path)# 进行预测 results model.predict( sourceimage_path, conf0.25, # 置信度阈值 iou0.45, # NMS IoU阈值 showTrue, # 是否直接显示结果窗口 saveTrue, # 是否保存图片到 runs/detect/predict line_width2 # 边框粗细 ) # 打印检测结果详情 for result in results: boxes result.boxes for box in boxes: cls_id int(box.cls[0]) conf float(box.conf[0]) class_name result.names[cls_id] print(f检测到: {class_name}, 置信度: {conf:.2f})if name ‘main’:# 替换为您的模型路径和图片路径model_file ‘runs/detect/exp_street_28classes/weights/best.pt’test_image ‘test_street.jpg’detect_garbage(test_image, model_file) 针对该数据集的特别建议类别不平衡问题28类垃圾中某些类别如塑料瓶小目标检测街道垃圾如烟头、吸管通常很小。优化训练时将 imgsz 设置为更大如 1280虽然会减慢速度但能显著提升小物体检测率。model.train(…, imgsz1280, …)

相关新闻

华三HCL实验报告,全套多场景实验内容➕项目拓扑文件

华三HCL实验报告,全套多场景实验内容➕项目拓扑文件

华三HCL实验报告,全套多场景实验内容➕项目拓扑文件根据您提供的网络拓扑图,这是一个典型的多协议、多区域路由实验场景,包含: RIP 域(绿色区域):R1、R2、R3 OSPF Area 0(蓝色区域&a…

2026/7/5 8:08:39 阅读更多 →
小龙虾OpenClaw免费无限量调用GLM-5和Qwen3.5-397B-A17B

小龙虾OpenClaw免费无限量调用GLM-5和Qwen3.5-397B-A17B

小龙虾OpenClaw免费无限量调用GLM-5和Qwen3.5-397B-A17B AtomGit 发福利啦 下面3个模型免费不限量,500次/分zai-org/GLM-5Qwen/Qwen3.5-122B-A10BQwen/Qwen3.5-397B-A17B(接近398B级别)第一步:注册AtomGit账号直接点这个邀请链接&…

2026/5/17 10:20:13 阅读更多 →
【交警手势识别】系统实现~Python+深度学习+人工智能+算法模型+图像识别+2026原创

【交警手势识别】系统实现~Python+深度学习+人工智能+算法模型+图像识别+2026原创

项目介绍 本项目是一套面向交通指挥场景的交警手势识别系统,围绕“图像上传、智能识别、结果展示、历史留存、用户管理、公告发布”等业务需求进行设计与实现。系统前端采用 Vue3 与 Element Plus 构建交互界面,能够完成用户登录、图片上传、识别结果查…

2026/5/17 10:20:12 阅读更多 →

最新新闻

10分钟学会OpenEuler bridge-utils:新手必备网络桥接配置技巧

10分钟学会OpenEuler bridge-utils:新手必备网络桥接配置技巧

10分钟学会OpenEuler bridge-utils:新手必备网络桥接配置技巧 【免费下载链接】bridge-utils Utilities for configuring the linux ethernet bridge 项目地址: https://gitcode.com/openeuler/bridge-utils 前往项目官网免费下载:https://ar.ope…

2026/7/5 8:08:17 阅读更多 →
超实用!内网/交换机/路由器/无线运维排障干货大全

超实用!内网/交换机/路由器/无线运维排障干货大全

🌟 一、网络排障黄金流程(核心必记)所有网络故障排查遵循由近到远原则,适配80%办公网络问题,一步快速定位故障点!排查顺序:本地网卡 → 网线/墙面网口面板 → 交换机端口 → 网关 → 外网万能排…

2026/7/5 8:08:17 阅读更多 →
NVIDIA Profile Inspector深度探索:解锁显卡隐藏性能的7个实战技巧

NVIDIA Profile Inspector深度探索:解锁显卡隐藏性能的7个实战技巧

NVIDIA Profile Inspector深度探索:解锁显卡隐藏性能的7个实战技巧 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款能够深入访问NVIDIA驱动内部数据库的工具…

2026/7/5 8:08:17 阅读更多 →
openEuler安全设施实战指南:从日志分析到入侵检测的10个最佳实践 [特殊字符]

openEuler安全设施实战指南:从日志分析到入侵检测的10个最佳实践 [特殊字符]

openEuler安全设施实战指南:从日志分析到入侵检测的10个最佳实践 🔒 【免费下载链接】security-facility The repository for security facility SIG 项目地址: https://gitcode.com/openeuler/security-facility 前往项目官网免费下载&#xff1…

2026/7/5 8:06:17 阅读更多 →
NestOS-Config核心架构解析:深入理解rpm-ostree与ignition配置

NestOS-Config核心架构解析:深入理解rpm-ostree与ignition配置

NestOS-Config核心架构解析:深入理解rpm-ostree与ignition配置 【免费下载链接】nestos-config nestos-config provides base manifest configuration for building NestOS. 项目地址: https://gitcode.com/openeuler/nestos-config 前往项目官网免费下载&am…

2026/7/5 8:04:16 阅读更多 →
ExtFUSE社区贡献指南:如何参与这个开源文件系统革命

ExtFUSE社区贡献指南:如何参与这个开源文件系统革命

ExtFUSE社区贡献指南:如何参与这个开源文件系统革命 【免费下载链接】extfuse Extension Framework for FUSE 项目地址: https://gitcode.com/openeuler/extfuse 前往项目官网免费下载:https://ar.openeuler.org/ar/ ExtFUSE(Extensi…

2026/7/5 8:00:16 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻