带标注的饮料瓶罐分类,可识别玻璃瓶,塑料瓶,水壶易拉罐,识别率95% ,15645张图,支持yolo,coco json,voc xml,文末有模型训练代码

带标注的饮料瓶罐分类,可识别玻璃瓶,塑料瓶,水壶易拉罐,识别率95% ,15645张图,支持yolo,coco json,voc xml,文末有模型训练代码
本文介绍一个高质量的饮料瓶罐分类数据集包含 15,645 张带标注的图像可用于训练目标检测模型。该数据集支持识别多种常见饮料容器包括玻璃瓶、塑料瓶、水壶、易拉罐等在测试中达到了约 95% 的识别准确率。数据集提供 YOLO、COCO JSON 和 Pascal VOC XML 三种标注格式文末还附带了完整的模型训练代码。模型训练指标参数下图展示了使用本数据集训练 YOLO 模型时的主要性能指标包括精确率Precision、召回率Recall、mAP50 和 mAP50-95 等关键评估参数。模型训练图训练过程中的损失函数变化曲线如下图所示反映了模型在训练集和验证集上的收敛情况。数据集拆分总图数15645 张图数训练集13689 张图验证集1303 张图测试集653 张图预处理自动定向应用调整大小拉伸到1024*1024增强无数据集标签[‘bottle-plastic’, ‘gym bottle’, ‘glass-mug’, ‘glass-wine’, ‘glass-normal’, ‘tin can’, ‘bottle-glass’, ‘cup-handle’, ‘cup-disposable’]标签解释bottle-plastic — 塑料瓶gym bottle — 健身运动水壶glass-mug — 玻璃马克杯glass-wine — 玻璃酒杯glass-normal — 普通玻璃杯tin can — 金属易拉罐/锡制罐bottle-glass — 玻璃瓶cup-handle — 带把手水杯cup-disposable — 一次性杯子数据集图片和标注信息示例数据集下载yolo26,yolo v12,yolo v11,yolo v9,yolo v8,yolo v7,coco json,pascal voc xml:https://download.csdn.net/download/pbymw8iwm/93125516YOLO模型训练下载数据集之后解压到当前文件夹然后将 我的仓库 https://gitcode.com/pbymw8iwm/YOLOProject 里的训练模型脚本复制到文件夹下假设你使用的是yolov8来训练你就用python train_yolov8.py​​模糊图片在模型训练中的优势分析该数据集中包含了如果包含了一些模糊图片这并非数据缺陷而是一种精心设计的数据增强策略能为模型训练带来以下显著优势提升模型鲁棒性现实场景中可能发生在运动模糊对焦不准或光线不足的情况下。在训练集中引入模糊样本可以迫使模型学习更本质的特征而不是过度依赖清晰的边缘或纹理细节从而提升模型在复杂、非理想成像条件下的识别能力。模拟真实世界噪声监控摄像头、手机等设备在低光照或快速移动时极易产生模糊。包含此类图片的数据集能让模型提前“见识”并适应这种噪声减少在实际部署时因图像质量下降而导致的性能骤降。防止模型过拟合如果训练集全是高清、摆拍的完美图片模型容易记住这些特定场景下的“干净”特征而对新的、稍有模糊的图片泛化能力差。模糊图片作为一种有效的正则化手段可以增加数据分布的多样性防止模型过拟合到有限的清晰样本上。总结因此数据集中包含的模糊图片与你看到的“水平翻转”、“剪切形变”、“随机遮挡”等增强操作一样都是为了构建一个更接近真实世界复杂分布的数据环境从而训练出更健壮、更泛化、更实用的模型。模型验证测试情况验证测试代码#需要安装pip install ultralyticsfromultralyticsimportYOLOimportcv2# 1. 加载YOLO模型 # 自动下载预训练模型(yolov8n最轻量快速)也可换 yolov8s/m/l/xmodelYOLO(best.pt)# 2. 推理配置 image_path326_jpg.rf.8ad64cc0668df32c4e5f59b50e899e9c.jpg# 你的图片路径save_resultTrue# 是否保存标注后的图# 3. 执行推理 resultsmodel.predict(sourceimage_path,conf0.01,# 置信度阈值低于该值忽略saveFalse,# 关闭默认保存自定义保存verboseFalse# 关闭冗余日志)# 4. 解析结果目标区域 标注信息 print(*50)print(YOLO 推理结果目标区域 标注信息)print(*50)# 获取图片用于绘制框imgcv2.imread(image_path)# 遍历所有检测目标foridx,resultinenumerate(results):boxesresult.boxes# 所有检测框forboxinboxes:# 提取目标区域坐标 # xyxy: 左上角x, 左上角y, 右下角x, 右下角yx1,y1,x2,y2box.xyxy[0].cpu().numpy()# 宽高wx2-x1 hy2-y1# 提取标注信息 cls_idint(box.cls[0])# 类别IDcls_namemodel.names[cls_id]# 类别名称conffloat(box.conf[0])# 置信度# 打印信息 print(f目标{idx1}:)print(f 标注类别{cls_name})print(f 置信度{conf:.2f})print(f 目标区域坐标)print(f 左上角 ({x1:.1f},{y1:.1f}))print(f 右下角 ({x2:.1f},{y2:.1f}))print(f 宽×高{w:.1f}×{h:.1f})print(-*30)# 在图片上绘制检测框 cv2.rectangle(img,(int(x1),int(y1)),(int(x2),int(y2)),(0,255,0),2)cv2.putText(img,f{cls_name}{conf:.2f},(int(x1),int(y1)-10),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,255,0),2)# 5. 保存/显示结果 ifsave_result:cv2.imwrite(yolo_result.jpg,img)print(✅ 标注图片已保存为yolo_result.jpg)# 显示图片可选cv2.imshow(YOLO Result,img)#cv2.waitKey(0)#cv2.destroyAllWindows()