如何训练自己的轴承数据集之—轴承缺陷数据集 滚动轴承数据集大类

1.轴承数据集 轴承缺陷数据集 3类5824张xml2.滚动轴承数据集 故障诊断,预测、分类 最全套数据集 j集合西储大学XJTU西安交通大学江南大学渥太华变速轴承数据集可做对比实验一,轴承表面缺陷检测数据集

1.该数据集的缺陷类别共为三类,分别包含:擦伤缺陷(cashang),凹槽缺陷(aocao),划痕缺陷(huahen)。


2.该数据集共5824张JPG图片,5824个xml标签文件。三类缺陷在标签文件中分别命名为:cashang,aocao,huahen。
3.可以提供无压缩的高清轴承图片。
4.还可以提供高分辨率轴承缺陷数据集,为拍摄时只进行内存压缩后的数据。

此数据集主要用于轴承表面缺陷检测任务,涵盖了三类不同的缺陷:擦伤缺陷(cashang)、凹槽缺陷(aocao)和划痕缺陷(huahen)。该数据集包含5824张高清JPG图像,每张图像对应一个VOC XML格式的标签文件。数据集为一手资源,提供了无压缩的高清图像,并且还提供了高分辨率版本的数据集(内存压缩后)。

数据集特点
  • 高清影像:所有图像均为高清影像,适合用于精确的缺陷检测。
  • 详细标注:每张图像都标注了三种不同缺陷的位置,可以用于训练模型来识别这些缺陷。
  • 多样性:涵盖了不同情境下的缺陷场景,适用于多种环境下的应用。
  • 直接可用性:数据集已按照标准VOC XML格式标注,无需进一步处理即可直接用于模型训练。
  • 多类别:数据集中标注了三种类别,适合进行多目标检测任务。
数据集统计
缺陷类型类别ID图像数量标注个数
擦伤缺陷0未知未知
凹槽缺陷1未知未知
划痕缺陷2未知未知
总计5824未知
数据集结构
BearingSurfaceDefectDetectionDataset/
├── images/  # 图像文件
│   ├── train/  # 训练集图像
│   │   ├── image_00001.jpg
│   │   ├── image_00002.jpg
│   │   └── ...
│   ├── val/  # 验证集图像
│   │   ├── image_00001.jpg
│   │   ├── image_00002.jpg
│   │   └── ...
│   └── test/  # 测试集图像(如果存在)
│       ├── image_00001.jpg
│       ├── image_00002.jpg
│       └── ...
└── annotations_voc/  # VOC/Pascal VOC格式标注
    ├── train/  # 训练集标注
    │   ├── image_00001.xml
    │   ├── image_00002.xml
    │   └── ...
    ├── val/  # 验证集标注
    │   ├── image_00001.xml
    │   ├── image_00002.xml
    │   └── ...
    └── test/  # 测试集标注(如果存在)
        ├── image_00001.xml
        ├── image_00002.xml
        └── ...
标注格式示例
VOC/Pascal VOC格式

每个XML文件包含图像信息和标注信息:

<annotation>
    <folder>images</folder>
    <filename>image_00001.jpg</filename>
    <path>/path/to/images/image_00001.jpg</path>
    <source>
        <database>Unknown</database>
    </source>
    <size>
        <width>640</width>
        <height>480</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>cashang</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>100</xmin>
            <ymin>150</ymin>
            <xmax>200</xmax>
            <ymax>300</ymax>
        </bndbox>
    </object>
    <object>
        <name>aocao</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>300</xmin>
            <ymin>250</ymin>
            <xmax>400</xmax>
            <ymax>350</ymax>
        </bndbox>
    </object>
    <object>
        <name>huahen</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>400</xmin>
            <ymin>350</ymin>
            <xmax>500</xmax>
            <ymax>450</ymax>
        </bndbox>
    </object>
</annotation>
使用该数据集进行模型训练
1. 数据预处理与加载

首先,我们需要加载数据并将其转换为适合YOLOv5等模型使用的格式。假设你已经安装了PyTorch和YOLOv5。

import os
from PIL import Image
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
import xml.etree.ElementTree as ET

class BearingSurfaceDefectDetectionDataset(Dataset):
    def __init__(self, image_dir, annotation_dir, transform=None):
        self.image_dir = image_dir
        self.annotation_dir = annotation_dir
        self.transform = transform
        self.image_files = [f for f in os.listdir(image_dir) if f.endswith('.jpg')]

    def __len__(self):
        return len(self.image_files)

    def __getitem__(self, idx):
        img_name = self.image_files[idx]
        img_path = os.path.join(self.image_dir, img_name)
        annotation_path = os.path.join(self.annotation_dir, img_name.replace('.jpg', '.xml'))

        # 加载图像
        image = Image.open(img_path).convert('RGB')
        if self.transform:
            image = self.transform(image)

        # 加载标注
        tree = ET.parse(annotation_path)
        root = tree.getroot()

        boxes = []
        labels = []
        for obj in root.findall('object'):
            category = obj.find('name').text.lower()
            if category == 'cashang':
                class_id = 0
            elif category == 'aocao':
                class_id = 1
            elif category == 'huahen':
                class_id = 2
            else:
                continue
            
            bbox = obj.find('bndbox')
            xmin = int(bbox.find('xmin').text)
            ymin = int(bbox.find('ymin').text)
            xmax = int(bbox.find('xmax').text)
            ymax = int(bbox.find('ymax').text)
            
            boxes.append([xmin, ymin, xmax, ymax])
            labels.append(class_id)

        boxes = torch.tensor(boxes, dtype=torch.float32)
        labels = torch.tensor(labels, dtype=torch.int64)

        return image, boxes, labels

# 数据增强
transform = transforms.Compose([
    transforms.Resize((640, 640)),
    transforms.ToTensor(),
])

# 创建数据集
train_dataset = BearingSurfaceDefectDetectionDataset(image_dir='BearingSurfaceDefectDetectionDataset/images/train/', annotation_dir='BearingSurfaceDefectDetectionDataset/annotations_voc/train/', transform=transform)
val_dataset = BearingSurfaceDefectDetectionDataset(image_dir='BearingSurfaceDefectDetectionDataset/images/val/', annotation_dir='BearingSurfaceDefectDetectionDataset/annotations_voc/val/', transform=transform)

train_loader = DataLoader(train_dataset, batch_size=4, shuffle=True, num_workers=4)
val_loader = DataLoader(val_dataset, batch_size=4, shuffle=False, num_workers=4)
2. 构建模型

我们可以使用YOLOv5模型进行目标检测任务。假设你已经克隆了YOLOv5仓库,并按照其文档进行了环境设置。

git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt

创建数据配置文件 data/bearing_surface_defect_detection.yaml

train: path/to/BearingSurfaceDefectDetectionDataset/images/train
val: path/to/BearingSurfaceDefectDetectionDataset/images/val
test: path/to/BearingSurfaceDefectDetectionDataset/images/val  # 如果没有单独的测试集,可使用验证集作为测试集

nc: 3  # 类别数
names: ['cashang', 'aocao', 'huahen']
3. 训练模型

使用YOLOv5进行训练。

python train.py --img 640 --batch 16 --epochs 100 --data data/bearing_surface_defect_detection.yaml --weights yolov5s.pt --cache
4. 评估模型

在验证集上评估模型性能。

python val.py --img 640 --batch 16 --data data/bearing_surface_defect_detection.yaml --weights runs/train/exp/weights/best.pt --task test
5. 推理

使用训练好的模型进行推理。

python detect.py --source path/to/test/image.jpg --weights runs/train/exp/weights/best.pt --conf 0.5

实验报告

实验报告应包括以下内容:

  1. 项目简介:简要描述项目的背景、目标和意义。
  2. 数据集介绍:详细介绍数据集的来源、规模、标注格式等。
  3. 模型选择与配置:说明选择的模型及其配置参数。
  4. 训练过程:记录训练过程中的损失变化、学习率调整等。
  5. 评估结果:展示模型在验证集上的性能指标(如mAP、准确率)。
  6. 可视化结果:提供一些典型样本的检测结果可视化图。
  7. 结论与讨论:总结实验结果,讨论可能的改进方向。
  8. 附录:包含代码片段、图表等补充材料。

依赖库

确保安装了以下依赖库:

pip install torch torchvision
pip install -r yolov5/requirements.txt

总结

这个轴承表面缺陷检测数据集提供了丰富的标注数据,非常适合用于训练和评估缺陷检测模型。通过YOLOv5框架,可以方便地构建和训练高性能的缺陷检测模型。实验报告可以帮助你更好地理解和分析模型的表现,并为进一步的研究提供参考。由于数据集规模较大且多样,建议在训练过程中使用数据增强技术以提高模型的泛化能力。

二,滚动轴承数据集 故障诊断,预测、分类 最全套数据集

滚动轴承故障诊断、预测与分类数据集介绍

数据集概述

本数据集集合了五个知名的滚动轴承故障诊断、预测与分类数据集,分别是CWRU西储大学轴承数据集、MFPT机械故障协会数据集、XJTU西安交通大学数据集、渥太华变速轴承数据集以及江南大学轴承数据集。这些数据集广泛应用于滚动轴承的健康状态监测、故障诊断及寿命预测等领域,是研究滚动轴承健康管理和故障检测的重要资源。

数据集特点
  • 多样性:涵盖多个知名研究机构的数据集,提供了多种工况下滚动轴承的振动信号和其他相关信息。
  • 实用性:可用于滚动轴承故障诊断、健康状态监测及寿命预测等多个领域的研究。
  • 全面性:提供了大量不同类型的滚动轴承数据,支持各种类型的故障诊断与分类实验。
  • 易用性:数据集整理清晰,便于研究人员快速上手进行实验。
数据集列表
1. CWRU西储大学轴承数据集
  • 来源:Case Western Reserve University (CWRU)。
  • 描述:该数据集包含了不同负载条件下的滚动轴承振动信号,涵盖了健康的轴承以及带有不同大小的人工缺陷的轴承。数据集包括了不同速度下的振动数据,可以用于滚动轴承的故障诊断。
  • 应用场景:滚动轴承的健康状态监测、故障诊断及寿命预测。
2. MFPT机械故障协会数据集
  • 来源:Machine Learning for Predictive Maintenance and Health Management (MFPT)。
  • 描述:MFPT数据集包含了多种机械故障类型的数据,其中包括滚动轴承故障数据。该数据集的特点是在实际工业环境中采集,具有很高的实用价值。
  • 应用场景:滚动轴承故障诊断、健康状态监测及寿命预测。
3. XJTU西安交通大学数据集
  • 来源:西安交通大学(XJTU)。
  • 描述:该数据集由西安交通大学的科研团队收集整理,包含了多种滚动轴承工况下的振动数据。数据集详细记录了不同故障类型下的振动信号,适用于滚动轴承的故障诊断与分类研究。
  • 应用场景:滚动轴承的健康状态监测、故障诊断及寿命预测。
4. 渥太华变速轴承数据集
  • 来源:University of Ottawa。
  • 描述:该数据集特别之处在于它包含了变速条件下滚动轴承的振动数据,这使得数据集更加贴近实际工况。变速数据集对于研究非恒定转速条件下的滚动轴承健康状况非常有价值。
  • 应用场景:滚动轴承在变速工况下的健康状态监测、故障诊断及寿命预测。
5. 江南大学轴承数据集
  • 来源:江南大学(Jiangnan University)。
  • 描述:江南大学的数据集侧重于滚动轴承在不同工况下的健康状态监测,数据集包含了多种滚动轴承类型和不同故障模式的数据,适合进行滚动轴承故障诊断和分类的研究。
  • 应用场景:滚动轴承的健康状态监测、故障诊断及寿命预测。
数据集结构

各数据集的具体结构和组织方式可能有所不同,但一般会包含以下几个部分:

  • 原始数据文件:通常为振动信号数据,可能是.csv或.mat文件格式。
  • 实验描述文件:包含了实验条件、设备信息、数据采集方法等信息。
  • 数据说明文件:对数据集的具体描述,包括数据的含义、格式等。
  • 特征提取与预处理脚本:提供了一些基本的特征提取和预处理脚本,帮助用户快速上手。
数据集获取与使用

这些数据集通常都是公开发布的学术资源,可以通过相关机构的官方网站下载。对于需要进行对比实验的研究者来说,这些数据集是非常有价值的资源。如果您需要使用这些数据集,请确保遵循相应的使用条款,并在发表研究成果时正确引用数据来源。

数据集应用案例
  • 故障诊断:利用振动信号分析滚动轴承是否存在故障,以及具体故障类型。
  • 健康状态监测:通过对振动信号的持续监控,判断滚动轴承的健康状况。
  • 寿命预测:基于历史数据预测滚动轴承的剩余使用寿命,从而提前采取维护措施。
结论

这套完整的滚动轴承故障诊断、预测与分类数据集集合了多个知名机构的研究成果,提供了丰富的实验数据和应用场景。通过使用这些数据集,研究人员可以进行广泛的实验研究,提升滚动轴承健康管理的技术水平。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值