当前位置: 首页 > news >正文

重型工程车辆数据集

重型工程车辆数据集,内含Bull_dozer(推土机), Dumb_truck(卡车), Excavator(挖掘机), Grader(平地机), Loader(转载机), Mobile_crane(起重机), Roller(滚轮压路机)七种类别。整套数据集有6338张图片,训练集、验证集与测试集均已按比例划分完成,数据标记为txt格式,标签与图片一一对应,适用于YOLO系列模型训练,无需进行任何处理即可直接用于训练,数据集实测有效,精度相对较高。

该数据集是一个专门用于重型工程车辆检测的数据集,旨在帮助研究人员和开发者训练和评估基于深度学习的目标检测模型。数据集涵盖了七种常见的重型工程车辆类型,包括推土机、卡车、挖掘机、平地机、转载机、起重机和滚轮压路机。这些车辆在建筑工地、矿山和其他大型工程项目中扮演着重要角色。通过高质量的图像和详细的标注信息,该数据集为开发高效且准确的工程车辆检测系统提供了坚实的基础。

数据规模

  • 总样本数量:6,338张图片
    • 训练集 (train):已按比例划分
    • 验证集 (valid):已按比例划分
    • 测试集 (test):已按比例划分
  • 数据量:具体大小未提供
  • 标注格式:txt格式(适用于YOLO系列模型)
  • 目标类别
    • 推土机 (Bull_dozer)
    • 卡车 (Dumb_truck)
    • 挖掘机 (Excavator)
    • 平地机 (Grader)
    • 转载机 (Loader)
    • 起重机 (Mobile_crane)
    • 滚轮压路机 (Roller)
图像特性

  • 多样化场景:覆盖了不同类型的重型工程车辆,在各种环境和背景下的图像情况。
  • 高质量手工标注:每张图像都有详细的边界框标注,支持直接用于训练目标检测模型。
  • 真实拍摄:所有图像均为实际拍摄的真实场景,增强了模型在实际应用中的鲁棒性。
  • 无需预处理:数据集已经过处理,可以直接用于训练,无需额外的数据预处理步骤。
  • 高精度标注:数据集经过实测验证,具有较高的标注精度,适合训练高性能的检测模型。
应用场景
  • 施工现场监控:自动检测施工现场的各种重型工程车辆,辅助项目管理和安全监督。
  • 智能交通管理:在道路施工区域进行车辆识别,提高交通流量管理和安全性。
  • 自动化设备管理:集成到设备管理系统中,实现对重型工程车辆的自动化追踪和管理。
  • 科研分析:用于研究目标检测算法在特定工业应用场景中的表现,特别是在复杂背景和光照条件下的鲁棒性。
  • 故障预警:通过持续监测车辆状态,提前发现潜在故障,减少停机时间。

数据集结构

典型的数据集目录结构如下:

1heavy_construction_vehicle_dataset/
2├── train/
3│   ├── images/
4│   │   ├── img_00001.jpg
5│   │   ├── img_00002.jpg
6│   │   └── ...
7│   ├── labels/
8│   │   ├── img_00001.txt
9│   │   ├── img_00002.txt
10│   │   └── ...
11├── valid/
12│   ├── images/
13│   │   ├── img_00001.jpg
14│   │   ├── img_00002.jpg
15│   │   └── ...
16│   ├── labels/
17│   │   ├── img_00001.txt
18│   │   ├── img_00002.txt
19│   │   └── ...
20├── test/
21│   ├── images/
22│   │   ├── img_00001.jpg
23│   │   ├── img_00002.jpg
24│   │   └── ...
25│   ├── labels/
26│   │   ├── img_00001.txt
27│   │   ├── img_00002.txt
28│   │   └── ...
29├── README.txt  # 数据说明文件

数据说明

  • 检测目标:以txt格式进行标注,适用于YOLO系列模型。
  • 数据集内容
    • 训练集 (train):包含一定比例的图像样张(带txt标注)。
    • 验证集 (valid):包含一定比例的图像样张(带txt标注)。
    • 测试集 (test):包含一定比例的图像样张(带txt标注)。
  • 目标标签:共包含7大类重型工程车辆。
  • 数据增广:数据集未做数据增广,用户可以根据需要自行进行数据增广。
  • 无需预处理:数据集已经过处理,可以直接用于训练,无需额外的数据预处理步骤。

示例代码

以下是一个使用Python和相关库(如OpenCV、PIL等)来加载和展示数据集的简单示例代码:

1import os
2import cv2
3import numpy as np
4from PIL import Image
5
6# 数据集路径
7dataset_path = 'path/to/heavy_construction_vehicle_dataset/'
8
9# 加载图像和边界框标注
10def load_image_and_boxes(image_path, label_path):
11    # 读取图像
12    image = Image.open(image_path).convert('RGB')
13    width, height = image.size
14    
15    # 读取并解析txt标注文件
16    with open(label_path, 'r') as f:
17        lines = f.readlines()
18    
19    boxes = []
20    for line in lines:
21        class_id, x_center, y_center, w, h = map(float, line.strip().split())
22        xmin = int((x_center - w / 2) * width)
23        ymin = int((y_center - h / 2) * height)
24        xmax = int((x_center + w / 2) * width)
25        ymax = int((y_center + h / 2) * height)
26        boxes.append([class_id, xmin, ymin, xmax, ymax])
27    
28    return image, boxes
29
30# 展示图像和边界框
31def show_image_with_boxes(image, boxes):
32    img = np.array(image)
33    class_names = ['Bull_dozer', 'Dumb_truck', 'Excavator', 'Grader', 'Loader', 'Mobile_crane', 'Roller']
34    for box in boxes:
35        class_id, xmin, ymin, xmax, ymax = box
36        class_name = class_names[int(class_id)]
37        cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
38        label = f'{class_name}'
39        cv2.putText(img, label, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
40    
41    cv2.imshow('Image with Boxes', img)
42    cv2.waitKey(0)
43    cv2.destroyAllWindows()
44
45# 主函数
46if __name__ == "__main__":
47    subset = 'train'  # 可以选择 'train', 'valid', 或 'test'
48    images_dir = os.path.join(dataset_path, subset, 'images')
49    labels_dir = os.path.join(dataset_path, subset, 'labels')
50    
51    # 获取图像列表
52    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
53    
54    # 随机选择一张图像
55    selected_image = np.random.choice(image_files)
56    image_path = os.path.join(images_dir, selected_image)
57    label_path = os.path.join(labels_dir, selected_image.replace('.jpg', '.txt'))
58    
59    # 加载图像和边界框
60    image, boxes = load_image_and_boxes(image_path, label_path)
61    
62    # 展示带有边界框的图像
63    show_image_with_boxes(image, boxes)

这段代码展示了如何加载图像和其对应的边界框标注文件,并在图像上绘制边界框。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。

示例代码:使用预训练模型进行推理

以下是使用预训练模型进行推理的示例代码。这里我们假设您使用的是基于YOLOv5的模型,但您可以根据需要选择其他支持目标检测的模型。

1import torch
2import cv2
3import numpy as np
4from PIL import Image
5import yolov5  # 请确保已安装yolov5库
6
7# 数据集路径
8dataset_path = 'path/to/heavy_construction_vehicle_dataset/'
9
10# 加载预训练模型
11model = yolov5.load('path/to/pretrained/yolov5_weights.pt')  # 替换成实际的预训练模型路径
12model.eval()
13
14# 主函数
15if __name__ == "__main__":
16    subset = 'train'  # 可以选择 'train', 'valid', 或 'test'
17    images_dir = os.path.join(dataset_path, subset, 'images')
18    
19    # 获取图像列表
20    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
21    
22    # 随机选择一张图像
23    selected_image = np.random.choice(image_files)
24    image_path = os.path.join(images_dir, selected_image)
25    
26    # 读取并预处理图像
27    image = Image.open(image_path).convert('RGB')
28    
29    # 使用预训练模型进行推理
30    results = model(image)
31    
32    # 处理预测结果
33    boxes = results.xyxy[0].cpu().numpy()
34    
35    # 在图像上绘制边界框
36    img = np.array(image)
37    class_names = ['Bull_dozer', 'Dumb_truck', 'Excavator', 'Grader', 'Loader', 'Mobile_crane', 'Roller']
38    for box in boxes:
39        xmin, ymin, xmax, ymax, conf, class_id = box
40        class_name = class_names[int(class_id)]
41        label = f'{class_name} {conf:.2f}'
42        cv2.rectangle(img, (int(xmin), int(ymin)), (int(xmax), int(ymax)), (0, 255, 0), 2)
43        cv2.putText(img, label, (int(xmin), int(ymin) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
44    
45    # 显示结果
46    cv2.imshow('Image with Boxes', img)
47    cv2.waitKey(0)
48    cv2.destroyAllWindows()

这段代码展示了如何使用预训练的YOLOv5模型进行推理,并显示和保存推理结果。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。如果您需要使用其他模型进行更高级的功能,如模型微调或增量训练,可以参考相应模型的官方文档来进行相应的配置和操作。

http://www.lryc.cn/news/444846.html

相关文章:

  • 【Kubernetes】常见面试题汇总(三十三)
  • ubuntu安装无线网卡驱动(非虚拟机版)
  • 保障电气安全的电气火灾监控系统主要组成有哪些?
  • gitlab集成CI/CD,shell方式部署
  • UE学习篇ContentExample解读-----------Blueprint_Mouse_Interaction
  • 得物App荣获新奖项,科技创新助力高质量发展
  • 傅里叶变换(对称美)
  • 基于单片机与 PC 机通信的数据采集控制系统设计
  • MyBatis参数处理
  • Beyond 5.5旗舰版和高级版激光软件
  • python爬虫/引用requests/基本使用
  • 输电线塔目标检测数据集yolo格式该数据集包括2644张输电线塔高清图像,该数据集已经过yolo格式标注,具有完整的txt标注文件和yaml配置文件。
  • MySQL之基本查询(二)(update || delete || 聚合函数 || group by)
  • 全栈开发(五):初始化前端项目(nuxt3+vue3+element-plus)+前端代理
  • Linux环境变量进程地址空间
  • C++读取txt文件中的句子在终端显示,同时操控鼠标滚轮(涉及:多线程,产生随机数,文件操作等)
  • Android 中使用高德地图实现根据经纬度信息画出轨迹、设置缩放倍数并定位到轨迹路线的方法
  • LeetCode从入门到超凡(二)递归与分治算法
  • superset 解决在 mac 电脑上发送 slack 通知的问题
  • SQL_UNION
  • 高等代数笔记(2)————(弱/强)数学归纳法
  • 模拟自然的本质:与IBM量子计算研究的问答
  • Robot Operating System——带有时间戳和坐标系信息的多边形信息
  • 内网穿透(当使用支付宝沙箱的时候需要内网穿透进行回调)
  • Contact Form 7最新5.9.8版错误修复方案
  • 【第十一章:Sentosa_DSML社区版-机器学习之分类】
  • kafka3.8的基本操作
  • 如何检测并阻止机器人活动
  • 《linux系统》基础操作
  • EMT-LTR--学习任务间关系的多目标多任务优化