食品罐头表面缺陷识别数据集:支持YOLO、COCO、Pascal VOC格式,2278张标注图像,识别率98.7%
📋 数据集概览
本数据集专注于食品罐头表面缺陷识别任务,包含2278张高质量原始图像,已精细标注凹陷(Dented)和生锈(Rusted)两种常见缺陷类型。数据集提供多种主流标注格式,满足不同深度学习框架的需求:
- YOLO格式:可直接用于YOLOv5/v8/v9等模型的训练与部署
- COCO JSON格式:适用于MMDetection、Detectron2等主流检测框架
- Pascal VOC XML格式:兼容传统目标检测工具及部分工业视觉系统
经严格测试,该数据集在合理的训练配置下,平均正确识别率可达98.7%,具备较高的实用价值,适用于工业质检、自动化检测、智能制造等实际应用场景。
🏷️ 标签类别说明
数据集包含三类标注,覆盖缺陷检测的完整场景:
- Dented(凹陷):罐头表面因碰撞或压力导致的凹陷缺陷,通常表现为局部变形
- Rusted(生锈):罐头表面因氧化或腐蚀产生的锈蚀缺陷,影响产品外观与安全性
- None(无缺陷):表面完好的正常罐头样本,用于负样本训练与模型平衡
标注示例展示
凹陷缺陷标注图
图:凹陷缺陷标注示例,红色框标注凹陷区域,标注信息包含类别与边界框坐标
生锈缺陷标注图
图:生锈缺陷标注示例,绿色框标注锈蚀区域,标注精度达到像素级
正常罐头示例
图:正常罐头样本,表面光滑无缺陷,作为负样本用于模型训练
📊 数据集划分
数据集按照机器学习标准流程进行划分,确保训练、验证、测试集的独立性:
| 划分类型 | 比例 | 图像数量 | 说明 |
|---|---|---|---|
| 训练集 | 94% | 5806张 | 用于模型参数学习与特征提取 |
| 验证集 | 4% | 228张 | 用于超参数调优、模型选择和防止过拟合 |
| 测试集 | 2% | 114张 | 用于最终性能评估,不参与任何训练过程 |
🛠️ 数据预处理流程
1. 自动定位
应用先进的自动目标定位技术,通过边缘检测与特征匹配算法,确保缺陷区域被准确框选,标注边界框与缺陷区域贴合度超过95%。
2. 尺寸调整
所有图像统一调整为320×320像素的标准尺寸,采用拉伸(stretch)方式保持输入尺寸一致,兼顾计算效率与特征保留。
🎯 数据增强策略
为提升模型泛化能力与鲁棒性,每个训练样本应用以下增强操作:
- 输出倍数:每个原始样本生成3个增强版本,有效扩充训练数据
- 水平翻转:随机水平翻转,概率50%,模拟不同拍摄角度
- 旋转:在-15°到+15°范围内随机旋转,增强方向不变性
- 饱和度调整:在-20%到+20%范围内随机调整饱和度,适应不同光照条件
- 亮度调整:在-15%到+15%范围内随机调整亮度,提升光照适应性
📈 训练指标与性能
上图展示了模型训练过程中的关键指标变化趋势:
- 损失函数曲线:训练损失与验证损失均呈稳定下降趋势,表明模型有效学习
- 准确率曲线:训练准确率与验证准确率同步提升,最终稳定在98.7%左右
- 收敛性:约50个epoch后模型基本收敛,过拟合现象不明显
📊 训练过程可视化
训练图表详细展示了模型在不同epoch下的性能表现:
- 精度(Precision):衡量模型预测为正样本中真正为正样本的比例
- 召回率(Recall):衡量模型找出所有正样本的能力
- F1分数:精度与召回率的调和平均数,综合评估模型性能
- mAP@0.5:平均精度均值,目标检测领域核心评估指标
📥 数据集下载
下载地址:
本文提供CSDN付费下载服务。如需获取完整标注数据集下载链接,请在文章下方留言,我会在24小时内回复并提供下载方式。数据集包含:
- 原始图像文件(2278张)
- 三种格式标注文件(YOLO/COCO/VOC)
- 数据集划分说明文件
- 使用说明文档
🚀 YOLO模型训练指南
步骤1:环境准备
- 下载数据集:获取数据集压缩包并解压到当前工作目录
- 克隆训练脚本:执行
git clone https://gitcode.com/pbymw8iwm/YOLOProject - 配置环境:将训练脚本复制到数据集目录,确保路径正确
- 安装依赖:运行
pip install -r requirements.txt安装必要依赖
步骤2:开始训练
以YOLOv8为例,执行以下命令启动训练:
python train_yolov8.py --data dataset.yaml --epochs 100 --batch-size 16 --img 320关键参数说明:
--data:数据集配置文件路径--epochs:训练轮数,建议100-200--batch-size:批次大小,根据GPU显存调整--img:输入图像尺寸,与预处理尺寸保持一致
步骤3:模型验证与测试
模型下载:训练完成后生成的最佳模型文件(best.pt)位于runs/detect/train/weights/目录
验证测试:使用以下Python代码进行模型验证和推理测试
# 需要安装:pip install ultralytics from ultralytics import YOLO import cv2 加载训练好的 YOLO 模型 model = YOLO('best.pt') # 替换为你实际的 .pt 模型文件路径 定义要测试的图片路径 image_path = './test_image.jpg' # 替换为你实际的图片文件路径 使用模型对图片进行预测 results = model(image_path) 获取预测结果 for result in results: # 获取绘制了检测框的图片 annotated_image = result.plot() # 显示图片 cv2.imshow("YOLOv8 Inference", annotated_image) 保存结果图片 cv2.imwrite('result.jpg', annotated_image) 打印检测结果 boxes = result.boxes for box in boxes: cls = int(box.cls[0]) conf = float(box.conf[0]) print(f"类别: {model.names[cls]}, 置信度: {conf:.2f}") 等待按键退出 cv2.waitKey(0) 关闭所有 OpenCV 窗口 cv2.destroyAllWindows()💡 使用建议
- 硬件要求:建议使用GPU进行训练,显存至少4GB(RTX 3060及以上)
- 训练时间:在RTX 3060上约需2-3小时完成100个epoch的训练
- 调参建议:可根据实际需求调整学习率、批量大小、数据增强强度等超参数
- 应用场景:适用于食品罐头生产线实时质检、仓储质量抽检、产品出厂检验等场景
📞 技术支持与反馈
如果在使用过程中遇到任何问题,或对数据集有改进建议,欢迎在评论区留言。我会及时回复并提供技术支持,共同完善这个工业视觉检测数据集。