轮胎X光缺陷数据集 四类常见轮胎X光图缺陷 数据集包含四类常见缺陷及标签,采用coco格式构建,可以直接用于yolo训练,引用请注明,训练加验证共1523张图片,有对应标签
轮胎X光缺陷数据集介绍
名称
轮胎X光缺陷数据集 (Tire X-ray Defect Detection Dataset)
规模
- 图像数量:1523张图像(训练集和验证集)。
- 类别:4类常见轮胎X光图缺陷。
数据划分
- 训练集 (Train):通常占总数据的80%左右,约1218张图像。
- 验证集 (Validation):通常占总数据的20%左右,约305张图像。
缺陷类别
- 类别1:帘线断裂 (Cord Break)
- 类别2:气泡 (Bubbles)
- 类别3:异物 (Foreign Objects)
- 类别4:裂纹 (Cracks)
标注格式
- 标注文件格式:COCO格式,可以直接用于YOLO等目标检测模型的训练。
- 标注内容:每个图像对应的标注文件包含以下信息:
- image_id:图像的唯一标识符。
- file_name:图像文件名。
- width 和 height:图像的宽度和高度。
- annotations:一个列表,每个元素表示一个缺陷实例,包含以下字段:
- category_id:缺陷类别的ID(从1到4)。
- bbox:边界框坐标
[x, y, width, height]
,其中(x, y)
是边界框左上角的坐标。 - segmentation:可选的多边形分割点,用于更精确的分割任务。
- area:边界框的面积。
- iscrowd:是否为群体目标(通常是0)。
示例COCO格式的标注文件内容:
{
"images": [
{
"id": 1,
"file_name": "000001.jpg",
"width": 800,
"height": 600
}
],
"annotations": [
{
"id": 1,
"image_id": 1,
"category_id": 1,
"bbox": [100, 150, 200, 250],
"segmentation": [[100, 150, 300, 150, 300, 400, 100, 400]],
"area": 50000,
"iscrowd": 0
},
{
"id": 2,
"image_id": 1,
"category_id": 2,
"bbox": [200, 200, 100, 100],
"segmentation": [[200, 200, 300, 200, 300, 300, 200, 300]],
"area": 10000,
"iscrowd": 0
}
],
"categories": [
{"id": 1, "name": "Cord Break"},
{"id": 2, "name": "Bubbles"},
{"id": 3, "name": "Foreign Objects"},
{"id": 4, "name": "Cracks"}
]
}
数据特点
- 高质量与高分辨率:所有图像均为高分辨率,适合进行精细的目标检测任务。
- 多样性和复杂性:图像覆盖了不同类型的轮胎和不同的缺陷情况,增加了模型的泛化能力。
- 详尽标注:每个图像都附有精确的边界框和可选的分割标注,确保了训练数据的质量。
应用领域
- 质量控制:在轮胎生产过程中,自动检测并分类常见的X光缺陷,提高产品质量。
- 维护与检修:对已使用的轮胎进行定期检查,及时发现潜在的安全隐患。
- 自动化检测:结合工业机器人或自动化系统,实现轮胎缺陷的自动化检测,提高检测效率。
实现示例
以下是一个简化的Python脚本框架,展示如何使用YOLOv5来训练这个数据集。我们将使用Ultralytics提供的YOLOv5库来进行训练。
1. 安装依赖库
首先,确保安装了必要的依赖库。可以在项目目录中的requirements.txt
文件中列出这些依赖库,然后运行以下命令进行安装:
pip install -r requirements.txt
requirements.txt
文件内容示例:
torch==1.10.0
torchvision==0.11.1
opencv-python-headless==4.5.4.60
albumentations==1.1.0
git+https://github.com/ultralytics/yolov5.git
2. 准备数据集
假设你的数据集结构如下:
tire_xray_defects/
├── images/
│ ├── train/
│ └── val/
└── labels/
├── train/
└── val/
coco_annotations/
├── train.json
└── val.json
3. 创建配置文件
创建一个YOLOv5的配置文件data.yaml
,指定数据集路径和类别信息。
# data.yaml
train: ./tire_xray_defects/images/train
val: ./tire_xray_defects/images/val
nc: 4 # number of classes
names: ['Cord Break', 'Bubbles', 'Foreign Objects', 'Cracks'] # class names
4. 训练模型
使用YOLOv5进行训练。这里以YOLOv5s为例,其他版本(如YOLOv5m, YOLOv5l, YOLOv5x)也可以按需选择
import torch
from yolov5 import train
# 设置设备
device = 'cuda' if torch.cuda.is_available() else 'cpu'
# 训练参数
data_yaml = 'path_to_data.yaml' # 替换为实际的data.yaml路径
weights = 'yolov5s.pt' # 使用预训练权重
epochs = 100
batch_size = 16
imgsz = 640 # 图像大小
workers = 4 # 数据加载线程数
# 开始训练
train.run(
data=data_yaml,
weights=weights,
epochs=epochs,
batch_size=batch_size,
imgsz=imgsz,
workers=workers,
device=device
)
5. 评估模型
训练完成后,可以使用验证集来评估模型性能。
from yolov5 import val
# 评估参数
data_yaml = 'path_to_data.yaml'
weights = 'runs/train/exp/weights/best.pt' # 替换为实际的最佳权重路径
imgsz = 640
conf_thres = 0.5 # 置信度阈值
iou_thres = 0.6 # IoU阈值
# 开始评估
val.run(
data=data_yaml,
weights=weights,
imgsz=imgsz,
conf_thres=conf_thres,
iou_thres=iou_thres,
device=device
)
说明
- 路径设置:请根据实际的数据集路径调整
path_to_data.yaml
和weights
。 - 硬件要求:YOLOv5在GPU上运行效果最佳,建议使用带有CUDA支持的NVIDIA GPU。
- 可视化:可以通过绘制边界框并叠加到原图上来直观地看到检测结果。
进一步的应用
- 模型优化:通过调整超参数、数据增强等方法进一步优化模型性能。
- 部署应用:将训练好的模型部署到实际环境中,如轮胎生产线的质量控制系统,实现自动化检测。
- 持续学习:随着新数据的不断积累,可以定期更新模型,提高其准确性和鲁棒性。
这个数据集对于轮胎制造行业的质量控制具有重要的实用价值,可以帮助相关部门及时发现并处理轮胎缺陷,保障产品的安全性和可靠性。同时,它也为研究人员提供了丰富的数据资源,支持多种最新的目标检测技术的研究和应用。