一文掌握ai53_19/garbage_datasets:从学术研究到工业部署的全场景应用指南
【免费下载链接】垃圾分类数据集 项目地址: https://ai.gitcode.com/ai53_19/garbage_datasets
引言:垃圾分类数据集的现状与痛点
你是否还在为垃圾分类模型训练时数据标注质量低、类别覆盖不全而烦恼?是否在学术研究与工业应用之间因数据集格式不兼容而反复调整?ai53_19/garbage_datasets 数据集的出现,正是为了解决这些问题。本文将详细介绍该数据集的结构、特性,并通过丰富的代码示例和应用场景分析,帮助你快速上手并充分利用该数据集。读完本文,你将能够:
- 深入了解 ai53_19/garbage_datasets 数据集的构成与特点
- 掌握在学术研究中使用该数据集进行模型训练与评估的方法
- 学会如何将该数据集应用于实际工业场景,如智能垃圾桶、垃圾分拣机器人等
- 了解数据集的扩展与定制方法,以满足特定需求
数据集概述
基本信息
ai53_19/garbage_datasets 是一个包含 40 个细分类别的垃圾分类图像数据集,适用于目标检测任务。数据集版本为 1.0,由 lzw 于 2024 年 6 月 1 日创建,采用 CC BY 4.0 许可证。
类别划分
数据集包含 40 个类别,涵盖了日常生活中常见的各类垃圾,具体类别如下表所示:
| ID | 英文名称 | 中文名称 | 所属大类 |
|---|---|---|---|
| 0 | FastFoodBox | 快餐盒 | OtherGarbage |
| 1 | SoiledPlastic | 污损塑料 | OtherGarbage |
| 2 | Cigarette | 烟头 | OtherGarbage |
| 3 | Toothpick | 牙签 | OtherGarbage |
| 4 | Flowerpot | 花盆 | OtherGarbage |
| 5 | BambooChopstics | 竹筷 | OtherGarbage |
| 6 | Meal | 剩饭剩菜 | KitchenWaste |
| 7 | Bone | 骨头 | KitchenWaste |
| 8 | FruitPeel | 水果皮 | KitchenWaste |
| 9 | Pulp | 纸浆 | KitchenWaste |
| 10 | Tea | 茶叶 | KitchenWaste |
| 11 | Vegetable | 蔬菜 | KitchenWaste |
| 12 | Eggshell | 蛋壳 | KitchenWaste |
| 13 | FishBone | 鱼骨 | KitchenWaste |
| 14 | Powerbank | 充电宝 | Recyclables |
| 15 | Bag | 包 | Recyclables |
| 16 | CosmeticBottles | 化妆品瓶 | Recyclables |
| 17 | Toys | 玩具 | Recyclables |
| 18 | PlasticBowl | 塑料碗 | Recyclables |
| 19 | PlasticHanger | 塑料衣架 | Recyclables |
| 20 | PaperBags | 纸袋 | Recyclables |
| 21 | PlugWire | 插头电线 | Recyclables |
| 22 | OldClothes | 旧衣物 | Recyclables |
| 23 | Can | 易拉罐 | Recyclables |
| 24 | Pillow | 枕头 | Recyclables |
| 25 | PlushToys | 毛绒玩具 | Recyclables |
| 26 | ShampooBottle | 洗发水瓶 | Recyclables |
| 27 | GlassCup | 玻璃杯 | Recyclables |
| 28 | Shoes | 鞋子 | Recyclables |
| 29 | Anvil | 铁砧 | Recyclables |
| 30 | Cardboard | 纸板箱 | Recyclables |
| 31 | SeasoningBottle | 调味品瓶 | Recyclables |
| 32 | Bottle | 酒瓶 | Recyclables |
| 33 | MetalFoodCans | 金属食品罐 | Recyclables |
| 34 | Pot | 锅 | Recyclables |
| 35 | EdibleOilBarrel | 食用油桶 | Recyclables |
| 36 | DrinkBottle | 饮料瓶 | Recyclables |
| 37 | DryBattery | 干电池 | HazardousWaste |
| 38 | Ointment | 药膏 | HazardousWaste |
| 39 | ExpiredDrugs | 过期药品 | HazardousWaste |
数据集规模
训练集包含 19028 个样本,验证集包含 18653 个样本,数据规模适中,能够满足大多数模型训练需求。
数据格式
数据集采用 YOLO 格式进行标注,便于与主流的目标检测框架集成。标注文件为文本文件,每个文件对应一张图像,每行表示一个目标,格式如下:
<class_id> <x_center> <y_center> <width> <height>
其中,class_id 为类别 ID,x_center、y_center、width、height 均为归一化坐标。
学术研究应用
模型训练
以下是使用 Ultralytics YOLOv8 框架训练垃圾分类模型的代码示例:
from ultralytics import YOLO
# 加载模型
model = YOLO('yolov8n.pt')
# 训练模型
results = model.train(
data='data.yaml',
epochs=100,
imgsz=640,
batch=16,
device=0, # 使用 GPU 训练
name='garbage_detection'
)
模型评估
训练完成后,可以使用验证集对模型进行评估:
# 评估模型
metrics = model.val(data='data.yaml', split='val')
# 打印评估指标
print("mAP@0.5:", metrics.box.map)
print("mAP@0.5:0.95:", metrics.box.map50_95)
学术实验设计
不同模型对比
可以使用该数据集对比不同目标检测模型的性能,如 YOLOv8、Faster R-CNN、SSD 等。以下是一个简单的对比实验设计:
- 使用相同的训练参数和数据增强策略
- 在相同的硬件环境下训练模型
- 比较模型在验证集上的 mAP、精度、召回率等指标
数据增强效果研究
数据集配置文件中提供了数据增强选项,可以通过调整这些参数研究数据增强对模型性能的影响:
augment: true # 启用增强
mosaic: 1.0 # Mosaic增强比例
mixup: 0.1 # MixUp增强比例
可以设计对比实验,研究不同增强策略对模型性能的影响。
工业应用场景
智能垃圾桶
智能垃圾桶是垃圾分类的重要应用场景,通过在垃圾桶上安装摄像头和边缘计算设备,可以实现垃圾的自动分类投放。以下是一个简单的智能垃圾桶应用示例:
import cv2
from ultralytics import YOLO
# 加载训练好的模型
model = YOLO('runs/detect/garbage_detection/weights/best.pt')
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
# 检测垃圾
results = model(frame)
# 在图像上绘制检测结果
annotated_frame = results[0].plot()
# 显示图像
cv2.imshow('Garbage Detection', annotated_frame)
# 按下 'q' 键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
垃圾分拣机器人
垃圾分拣机器人可以在垃圾处理厂等场景中实现垃圾的自动分拣。以下是一个基于 ROS (Robot Operating System) 的垃圾分拣机器人应用示例:
import rospy
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
from ultralytics import YOLO
import message_filters
class GarbageSortingRobot:
def __init__(self):
self.bridge = CvBridge()
self.model = YOLO('runs/detect/garbage_detection/weights/best.pt')
self.image_sub = rospy.Subscriber('/camera/rgb/image_raw', Image, self.image_callback)
self.depth_sub = message_filters.Subscriber('/camera/depth/image_raw', Image)
self.ts = message_filters.TimeSynchronizer([self.image_sub, self.depth_sub], 10)
self.ts.registerCallback(self.callback)
def callback(self, rgb_msg, depth_msg):
# 将 ROS 图像消息转换为 OpenCV 格式
rgb_image = self.bridge.imgmsg_to_cv2(rgb_msg, desired_encoding='bgr8')
depth_image = self.bridge.imgmsg_to_cv2(depth_msg, desired_encoding='passthrough')
# 检测垃圾
results = model(rgb_image)
# 处理检测结果,规划抓取路径
# ...
if __name__ == '__main__':
rospy.init_node('garbage_sorting_robot')
robot = GarbageSortingRobot()
rospy.spin()
城市垃圾分类监管系统
城市垃圾分类监管系统可以通过分析摄像头采集的图像,实时监测垃圾分类情况,并对违规行为进行预警。以下是一个简单的系统架构示例:
数据集扩展与定制
自定义类别
如果需要添加新的垃圾类别,可以按照以下步骤进行:
- 在
dataset_infos.json文件中添加新类别的信息:
{
"id": 40,
"name_en": "NewCategory",
"name_cn": "新类别"
}
- 在
data.yaml文件中更新类别列表:
nc: 41
names:
- FastFoodBox
- ...
- NewCategory
- 根据新类别的属性,将其添加到相应的大类中:
category_mapping:
Recyclables:
- ...
- NewCategory
数据标注工具推荐
以下是一些常用的数据标注工具,可用于扩展数据集:
- LabelImg:一款开源的图像标注工具,支持 YOLO 格式。
- VGG Image Annotator (VIA):一款基于网页的标注工具,支持多种标注格式。
- Make Sense:一款在线标注工具,操作简单,适合初学者。
总结与展望
ai53_19/garbage_datasets 数据集为垃圾分类相关的学术研究和工业应用提供了丰富的高质量数据支持。本文详细介绍了数据集的结构、特性,并通过代码示例展示了其在学术研究和工业场景中的应用方法。未来,随着垃圾分类需求的不断增加,该数据集有望进一步扩展,增加更多类别和样本,以满足更广泛的应用需求。
如果你觉得本文对你有帮助,请点赞、收藏并关注我们,获取更多数据集使用技巧和最新进展!下期我们将介绍如何使用该数据集训练实时垃圾分类模型,敬请期待!
【免费下载链接】垃圾分类数据集 项目地址: https://ai.gitcode.com/ai53_19/garbage_datasets
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



