【金属铸件缺陷检测数据集】8类
类别 (names): ['Defect surface', 'Good', 'Long Black Scratch', 'Multiple dent', 'Multiple scratch', 'Short Black Scratch', 'Tiny dent', 'Tiny scratch']
名称: ['缺陷表面', '良好', '长黑色划痕', '多个凹痕', '多处划痕', '短黑色划痕', '微小凹痕', '微小划痕']
共计图片数量: 训练集 209 张, 验证集 45 张, 测试集 45 张(可数据增强)
标注文件格式: YOLO的txt格式
金属铸件缺陷检测数据集介绍
数据集名称
金属铸件缺陷检测数据集 (Metal Casting Defect Detection Dataset)
数据集概述
本数据集是一个专门用于训练和评估金属铸件缺陷检测模型的数据集。数据集包含高分辨率的图片,这些图片展示了金属铸件的各种表面缺陷。数据集已经按照8:2的比例划分为训练集、验证集和测试集,并且所有图片都已标注好,适用于训练目标检测模型,例如YOLO系列模型。数据集涵盖了八类常见的金属铸件缺陷:缺陷表面、良好、长黑色划痕、多个凹痕、多处划痕、短黑色划痕、微小凹痕和微小划痕。
数据集特点
- 高分辨率:图片分辨率高,能够提供丰富的细节信息。
- 多类别标注:数据集涵盖了八种常见的金属铸件缺陷类型,每张图片都有详细的标注信息。
- 预处理完成:数据集已经划分好训练集、验证集和测试集,并提供了类别描述文件,可以直接用于模型训练,无需额外处理。
- 支持数据增强:可以通过数据增强技术进一步增加数据集的多样性和鲁棒性。
- 实用性强:数据集来源于实际生产环境,具有较高的实用性和代表性。
数据集结构
深色版本
metal_casting_defect_dataset/
├── images/ # 图像文件
│ ├── train/ # 训练集图像
│ │ ├── 0001.jpg # 示例图像
│ │ ├── 0002.jpg
│ │ └── ...
│ ├── val/ # 验证集图像
│ │ ├── 0001.jpg
│ │ ├── 0002.jpg
│ │ └── ...
│ ├── test/ # 测试集图像
│ │ ├── 0001.jpg
│ │ ├── 0002.jpg
│ │ └── ...
├── labels/ # 标注文件
│ ├── train/ # 训练集标注
│ │ ├── 0001.txt # 示例标注
│ │ ├── 0002.txt
│ │ └── ...
│ ├── val/ # 验证集标注
│ │ ├── 0001.txt
│ │ ├── 0002.txt
│ │ └── ...
│ ├── test/ # 测试集标注
│ │ ├── 0001.txt
│ │ ├── 0002.txt
│ │ └── ...
├── data.yaml # 类别描述文件
└── README.md # 数据集说明
数据集内容
-
images/
- 功能:存放图像文件。
- 内容:
train/
:训练集图像,共209张。val/
:验证集图像,共45张。test/
:测试集图像,共45张。
-
labels/
- 功能:存放标注文件。
- 内容:
train/
:训练集标注文件,与训练集图像一一对应。val/
:验证集标注文件,与验证集图像一一对应。test/
:测试集标注文件,与测试集图像一一对应。
-
data.yaml
- 功能:定义数据集的类别和其他相关信息。深色版本
-
train: ./images/train val: ./images/val test: ./images/test nc: 8 names: ['Defect surface', 'Good', 'Long Black Scratch', 'Multiple dent', 'Multiple scratch', 'Short Black Scratch', 'Tiny dent', 'Tiny scratch']
-
README.md
- 功能:数据集的详细说明文档。
- 内容:
- 数据集的来源和用途。
- 数据集的结构和内容。
- 如何使用数据集进行模型训练和评估。
- 其他注意事项和建议。
使用说明
-
环境准备
- 安装依赖库:
pip install -r requirements.txt
- 确保安装了YOLOv8所需的库,例如
ultralytics
。
- 安装依赖库:
-
数据集路径设置
- 将数据集解压到项目目录下,确保路径正确。
-
训练模型
- 使用YOLOv8或其他目标检测模型进行训练。以下是一个示例命令: Bash
深色版本
python train.py --data data.yaml --weights yolov8n.pt --epochs 100 --img 640 --batch 16
- 使用YOLOv8或其他目标检测模型进行训练。以下是一个示例命令: Bash
-
验证模型
- 使用验证集进行模型验证:
python val.py --data data.yaml --weights runs/train/exp/weights/best.pt --img 640 --batch 16
- 使用验证集进行模型验证:
-
推理模型
- 使用训练好的模型进行推理:
python detect.py --source test_images/ --weights runs/train/exp/weights/best.pt --img 640 --conf 0.5
- 使用训练好的模型进行推理:
-
数据增强
- 可以通过数据增强技术来增加数据集的多样性和鲁棒性。常用的增强方法包括旋转、翻转、缩放、亮度调整等。可以使用
albumentations
库来进行数据增强:import albumentations as A from albumentations.pytorch import ToTensorV2 transform = A.Compose([ A.HorizontalFlip(p=0.5), A.VerticalFlip(p=0.5), A.RandomRotate90(p=0.5), A.RandomBrightnessContrast(p=0.2), A.Resize(640, 640), ToTensorV2(), ], bbox_params=A.BboxParams(format='yolo', label_fields=['class_labels']))
- 可以通过数据增强技术来增加数据集的多样性和鲁棒性。常用的增强方法包括旋转、翻转、缩放、亮度调整等。可以使用
注意事项
- 数据格式:确保输入的数据格式正确,特别是图像和标注文件的格式。
- 超参数调整:根据实际情况调整学习率、批大小等超参数,以获得最佳训练效果。
- 硬件要求:建议使用GPU进行训练,以加快训练速度。如果没有足够的计算资源,可以考虑使用云服务提供商的GPU实例。
- 平衡数据:注意数据集中各类别之间的不平衡问题,可以通过过采样、欠采样或使用类别权重等方式来解决。
通过上述步骤,你可以成功地使用这个高质量的金属铸件缺陷检测数据集进行模型训练和评估。这个数据集不仅适用于学术研究,还可以应用于实际的工业场景中,帮助提升金属铸件的质量控制和缺陷检测效率。希望这个数据集能帮助你更好地理解和应用最新的目标检测技术。