工地各类工程车,数据集,如何自己训练

 55dfdfcee39642bf935ce930ff338758.png工程车卡车数据集 一,矿场工程车检测数据集 10类 4900张 工程车 带标注voc yolo 分类名: (图片张数,标注个数)

e25d1b9011764d338e4473b6074cc523.png
excavator :(1086,1356)
dump_ truck: (1074, 1816)
compactor: (538, 583)
mobile_ crane: (529, 589)
tower_ cr ane :(169,235)
wheel_ loader :(851,922)
concrete_ mixer_ truck: (376, 427)
backhoe_ loader: (666, 693)
dozer: (492, 536)
grader: (622, 641)
总数: (4981, 7798)
总类(nc): 10类

07964325f5394abf9c5dc7becfe6bc48.png

4d815f3ed4324c4589181e21db4333b5.png

 

矿场工程车检测数据集介绍

数据集概述

此数据集专为矿场工程车检测设计,包含了十种常见工程车辆的高清图像及相应的标注文件。数据集涵盖了多种类型的工程车辆,并且每个类别都有详细的标注信息。该数据集可以用于基于YOLO的目标检测算法模型训练。

数据集特点

  • 高清影像:所有图像均为高清影像,适合用于精确的目标检测。
  • 详细标注:每张图像都标注了不同工程车辆的位置,可以用于训练模型来识别这些车辆。
  • 多样性:涵盖了不同类型的工程车辆,适用于多种环境下的应用。
  • 直接可用性:数据集已按照标准VOC和YOLO TXT格式标注,无需进一步处理即可直接用于模型训练。
  • 多类别:数据集中标注了十种类别,适合进行多目标检测任务。

数据集统计

车辆类型图片数量标注个数
Excavator1,0861,356
Dump Truck1,0741,816
Compactor538583
Mobile Crane529589
Tower Crane169235
Wheel Loader851922
Concrete Mixer Truck376427
Backhoe Loader666693
Dozer492536
Grader622641
总计4,9817,798

数据集结构

MiningEquipmentDetectionDataset/
├── images/  # 图像文件
│   ├── train/  # 训练集图像
│   │   ├── image_00001.jpg
│   │   ├── image_00002.jpg
│   │   └── ...
│   ├── val/  # 验证集图像
│   │   ├── image_00001.jpg
│   │   ├── image_00002.jpg
│   │   └── ...
│   └── test/  # 测试集图像
│       ├── image_00001.jpg
│       ├── image_00002.jpg
│       └── ...
└── labels/  # YOLO格式标注文件夹
    ├── train/  # 训练集标签
    │   ├── image_00001.txt
    │   ├── image_00002.txt
    │   └── ...
    ├── val/  # 验证集标签
    │   ├── image_00001.txt
    │   ├── image_00002.txt
    │   └── ...
    └── test/  # 测试集标签
        ├── image_00001.txt
        ├── image_00002.txt
        └── ...

标注格式示例

YOLO格式

每行表示一个物体的边界框和类别:

class_id cx cy w h
  • class_id:类别ID(从0开始编号)
    • 0: Excavator
    • 1: Dump Truck
    • 2: Compactor
    • 3: Mobile Crane
    • 4: Tower Crane
    • 5: Wheel Loader
    • 6: Concrete Mixer Truck
    • 7: Backhoe Loader
    • 8: Dozer
    • 9: Grader
  • cx:目标框中心点x坐标 / 图像宽度。
  • cy:目标框中心点y坐标 / 图像高度。
  • w:目标框宽度 / 图像宽度。
  • h:目标框高度 / 图像高度。

例如:

0 0.453646 0.623148 0.234375 0.461111
1 0.553646 0.723148 0.134375 0.361111
2 0.353646 0.823148 0.154375 0.261111

使用该数据集进行模型训练

1. 数据预处理与加载

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

import os
from PIL import Image
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms

class MiningEquipmentDetectionDataset(Dataset):
    def __init__(self, image_dir, label_dir, transform=None):
        self.image_dir = image_dir
        self.label_dir = label_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)
        label_path = os.path.join(self.label_dir, img_name.replace('.jpg', '.txt'))

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

        # 加载标注
        with open(label_path, 'r') as file:
            lines = file.readlines()
            boxes = []
            labels = []
            for line in lines:
                class_id, cx, cy, w, h = map(float, line.strip().split())
                xmin = (cx - w / 2) * image.width
                ymin = (cy - h / 2) * image.height
                xmax = (cx + w / 2) * image.width
                ymax = (cy + h / 2) * image.height
                boxes.append([xmin, ymin, xmax, ymax])
                labels.append(int(class_id))

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

        return image, boxes, labels

# 数据增强
transform = transforms.Compose([
    transforms.RandomHorizontalFlip(),  # 随机水平翻转
    transforms.RandomRotation(10),      # 随机旋转
    transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.1),  # 随机颜色变换
    transforms.Resize((640, 640)),
    transforms.ToTensor(),
])

# 创建数据集
train_dataset = MiningEquipmentDetectionDataset(image_dir='MiningEquipmentDetectionDataset/images/train/', label_dir='MiningEquipmentDetectionDataset/labels/train/', transform=transform)
val_dataset = MiningEquipmentDetectionDataset(image_dir='MiningEquipmentDetectionDataset/images/val/', label_dir='MiningEquipmentDetectionDataset/labels/val/', transform=transform)
test_dataset = MiningEquipmentDetectionDataset(image_dir='MiningEquipmentDetectionDataset/images/test/', label_dir='MiningEquipmentDetectionDataset/labels/test/', 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)
test_loader = DataLoader(test_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/mining_equipment_detection.yaml

train: path/to/MiningEquipmentDetectionDataset/images/train
val: path/to/MiningEquipmentDetectionDataset/images/val
test: path/to/MiningEquipmentDetectionDataset/images/test

nc: 10  # 类别数
names: ['Excavator', 'Dump Truck', 'Compactor', 'Mobile Crane', 'Tower Crane', 'Wheel Loader', 'Concrete Mixer Truck', 'Backhoe Loader', 'Dozer', 'Grader']

3. 训练模型

使用YOLOv5进行训练。

python train.py --img 640 --batch 16 --epochs 100 --data data/mining_equipment_detection.yaml --weights yolov5s.pt --cache

4. 评估模型

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

python val.py --img 640 --batch 16 --data data/mining_equipment_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框架,可以方便地构建和训练高性能的目标检测模型。实验报告可以帮助你更好地理解和分析模型的表现,并为进一步的研究提供参考。由于数据集规模适中,建议在训练过程中使用数据增强技术以提高模型的泛化能力。

 二,垃圾车 渣土车数据集 3450张 yolo格式、voc格式 yolo格式、voc格式,直接训练

7dce0fc73a224927885487617156925b.png

垃圾车 渣土车数据集】 数据集中包含垃圾车、渣土车目标框,可用于垃圾车、渣土车目标检测; ***真人标注,保证标注质量; 共有图片数据3450张,已划分好训练集2911和测试集539; 已处理成yolo格式、voc格式,可直接用于训练; 标签类别集标签个数:
mucktruck:5039;

8b339734849b40d29ae99f5e4228da0b.png

a946ac359199416398a92a4e7bfb4612.png

 8a9042c6f0494351bab11e3ad54a705d.png

垃圾车与渣土车检测数据集介绍

数据集概述

此数据集专为垃圾车与渣土车检测设计,包含了两种常见车辆类型的高清图像及相应的标注文件。数据集涵盖了这两种车辆的详细位置标注,适用于基于YOLO或VOC格式的目标检测算法模型训练。

数据集特点

  • 高清影像:所有图像均为高清影像,适合用于精确的目标检测。
  • 详细标注:每张图像都由真人标注了不同车辆的位置,可以用于训练模型来识别这些车辆。
  • 多样性:涵盖了不同场景下的垃圾车与渣土车,适用于多种环境下的应用。
  • 直接可用性:数据集已按照标准YOLO和VOC格式标注,无需进一步处理即可直接用于模型训练。
  • 单类别:数据集中标注了一种类别(渣土车),适合进行单一目标检测任务。

数据集统计

车辆类型图片数量标注个数
Mucktruck3,4505,039
总计3,4505,039

数据集划分

  • 训练集:2,911张图片
  • 测试集:539张图片

数据集结构

TrashAndMuckTruckDetectionDataset/
├── images/  # 图像文件
│   ├── train/  # 训练集图像
│   │   ├── image_00001.jpg
│   │   ├── image_00002.jpg
│   │   └── ...
│   └── test/  # 测试集图像
│       ├── image_00001.jpg
│       ├── image_00002.jpg
│       └── ...
└── labels/  # YOLO/VOC格式标注文件夹
    ├── train/  # 训练集标签
    │   ├── image_00001.txt
    │   ├── image_00002.txt
    │   └── ...
    └── test/  # 测试集标签
        ├── image_00001.txt
        ├── image_00002.txt
        └── ...

标注格式示例

YOLO格式

每行表示一个物体的边界框和类别:

class_id cx cy w h
  • class_id:类别ID(从0开始编号)
    • 0: Mucktruck
  • cx:目标框中心点x坐标 / 图像宽度。
  • cy:目标框中心点y坐标 / 图像高度。
  • w:目标框宽度 / 图像宽度。
  • h:目标框高度 / 图像高度。

例如:

0 0.453646 0.623148 0.234375 0.461111

VOC格式

每个XML文件表示一张图像中的多个物体的边界框和类别:

<annotation>
    <folder>TrashAndMuckTruckDetectionDataset</folder>
    <filename>image_00001.jpg</filename>
    <path>/path/to/image_00001.jpg</path>
    <source>
        <database>The VOC2007 Database</database>
        <annotation>PASCAL VOC2007</annotation>
        <image>flickr</image>
    </source>
    <size>
        <width>640</width>
        <height>480</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>Mucktruck</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>140</xmin>
            <ymin>120</ymin>
            <xmax>320</xmax>
            <ymax>240</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

class TrashAndMuckTruckDetectionDataset(Dataset):
    def __init__(self, image_dir, label_dir, transform=None):
        self.image_dir = image_dir
        self.label_dir = label_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)
        label_path = os.path.join(self.label_dir, img_name.replace('.jpg', '.txt'))

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

        # 加载标注
        with open(label_path, 'r') as file:
            lines = file.readlines()
            boxes = []
            labels = []
            for line in lines:
                class_id, cx, cy, w, h = map(float, line.strip().split())
                xmin = (cx - w / 2) * image.width
                ymin = (cy - h / 2) * image.height
                xmax = (cx + w / 2) * image.width
                ymax = (cy + h / 2) * image.height
                boxes.append([xmin, ymin, xmax, ymax])
                labels.append(int(class_id))

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

        return image, boxes, labels

# 数据增强
transform = transforms.Compose([
    transforms.RandomHorizontalFlip(),  # 随机水平翻转
    transforms.RandomRotation(10),      # 随机旋转
    transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.1),  # 随机颜色变换
    transforms.Resize((640, 640)),
    transforms.ToTensor(),
])

# 创建数据集
train_dataset = TrashAndMuckTruckDetectionDataset(image_dir='TrashAndMuckTruckDetectionDataset/images/train/', label_dir='TrashAndMuckTruckDetectionDataset/labels/train/', transform=transform)
test_dataset = TrashAndMuckTruckDetectionDataset(image_dir='TrashAndMuckTruckDetectionDataset/images/test/', label_dir='TrashAndMuckTruckDetectionDataset/labels/test/', transform=transform)

train_loader = DataLoader(train_dataset, batch_size=4, shuffle=True, num_workers=4)
test_loader = DataLoader(test_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/trash_and_muck_truck_detection.yaml

train: path/to/TrashAndMuckTruckDetectionDataset/images/train
test: path/to/TrashAndMuckTruckDetectionDataset/images/test

nc: 1  # 类别数
names: ['Mucktruck']

3. 训练模型

使用YOLOv5进行训练。

python train.py --img 640 --batch 16 --epochs 100 --data data/trash_and_muck_truck_detection.yaml --weights yolov5s.pt --cache

4. 评估模型

在测试集上评估模型性能。

python val.py --img 640 --batch 16 --data data/trash_and_muck_truck_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框架,可以方便地构建和训练高性能的目标检测模型。实验报告可以帮助你更好地理解和分析模型的表现,并为进一步的研究提供参考。由于数据集规模适中,建议在训练过程中使用数据增强技术以提高模型的泛化能力。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值