重型工程车辆数据集
重型工程车辆数据集,内含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模型进行推理,并显示和保存推理结果。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。如果您需要使用其他模型进行更高级的功能,如模型微调或增量训练,可以参考相应模型的官方文档来进行相应的配置和操作。
相关文章:

重型工程车辆数据集
重型工程车辆数据集,内含Bull_dozer(推土机), Dumb_truck(卡车), Excavator(挖掘机), Grader(平地机), Loader(转载机), Mobile_crane(…...
【Kubernetes】常见面试题汇总(三十三)
目录 85.简述 kube-proxy 的三种工作模式和原理。 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属于【Kubernetes】的生产应用题。 85.简述 kub…...

ubuntu安装无线网卡驱动(非虚拟机版)
本文不是基于虚拟机,是双系统 太夸张了 实验室居然没网线 只有一个师兄留下来的无线网卡 装完了ubuntu结果没网 make都用不了 然后搜了下大概发现是没有预装gcc和make 参考如下 https://zhuanlan.zhihu.com/p/466440088 https://wwsk.lanzouj.com/iAj4t2ao46zc…...

保障电气安全的电气火灾监控系统主要组成有哪些?
电气火灾是什么? 电气火灾一般是指由于电气线路、用电设备、器具以及供配电设备出现故障性释放的热能:如高温、电弧、电火花以及非故障性释放的能量;如电热器具的炽热表面,在具备燃烧条件下引燃本体或其他可燃物而造成的火灾&…...

gitlab集成CI/CD,shell方式部署
目录 1.首先安装好gitlab和gitlab-runner,这两个,看我以往的教程 2.注册新的 Runner 3. 步骤 3.1 Enter the GitLab instance URL (for example, https://gitlab.com/): 3.2 Enter the registration token: 3.3 Enter a description for the runner: 3…...

UE学习篇ContentExample解读-----------Blueprint_Mouse_Interaction
文章目录 总览描述(Blueprint_Mouse_Interaction)阅览解析1、PlayerControler分析2、拖拽球蓝图分析:3、移动的立方体分析: 新概念总结致谢: 总览描述(Blueprint_Mouse_Interaction) 打开关卡后…...

得物App荣获新奖项,科技创新助力高质量发展
近日,备受瞩目的2024中国国际服务贸易交易会(简称“服贸会”)在北京盛大开幕,这一全球唯一的国家级、国际性、综合型服务贸易盛会再次汇聚了全球服务贸易领域的精英与前沿成果。服贸会由商务部和北京市政府携手打造,并…...

傅里叶变换(对称美)
傅里叶变换(对称美) 冲浪时发现的有趣文章,学习自https://zhuanlan.zhihu.com/p/718139299 摘下来的内容: 傅里叶变换之所以“怪美的嘞”,根本在于它有一种内在的对称性,这一点在上面的图并没有表现出来…...
基于单片机与 PC 机通信的数据采集控制系统设计
摘 要 : 设计出基于单片机与 PC 机通信的数据采集控制系统方法 。 被控对象经传感器 、 电压变换电路 、 A/D 转换芯片与单片机相连, 可将现场参数信息传送至单片机 ; 单片机经继电器驱动控制被控对象运行 。 单片机与 PC 机经电平转换芯片相连, 实现远程通信功能 。…...
MyBatis参数处理
MyBatis 参数处理详解 在 MyBatis 中,参数处理是非常重要的部分,它支持灵活的参数传递方式,以实现与数据库的交互。MyBatis 提供了多种方式来传递参数,包括单个参数、多参数、Java 对象和集合等,这些参数通过 SQL 语句…...

Beyond 5.5旗舰版和高级版激光软件
Beyond 5.5旗舰版和高级版激光软件具有以下一些特点和功能: 1. 强大的功能特性: • 多媒体支持:它是真正的多媒体控制激光软件,除支持基本的激光图案外,还支持视频、3D 动画和绘图程序等,为用户提供了丰富…...

python爬虫/引用requests/基本使用
1.安装requests 进入控制台使用该命令安装requests pip3 install requests 2.对网站使用get请求 这里用对网站进行get请求,然后打印。 import requests //引用requestsresponse requests.get(urlhttps://www.bilibili.com/)print(response.text) 3.对网站使用…...

输电线塔目标检测数据集yolo格式该数据集包括2644张输电线塔高清图像,该数据集已经过yolo格式标注,具有完整的txt标注文件和yaml配置文件。
输电线塔目标检测数据集yolo格式 该数据集包括2644张输电线塔高清图像,该数据集已经过yolo格式标注,具有完整的txt标注文件和yaml配置文件。 输电线塔目标检测数据集 数据集名称 输电线塔目标检测数据集(Transmission Tower Object Detecti…...

MySQL之基本查询(二)(update || delete || 聚合函数 || group by)
目录 一、表的更新update 二、表的删除delete 三、聚合函数 四、group by 分组查询 一、表的更新update 语法: UPDATE table_name SET column expr [, column expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...] 使用实列: ~ 将孙悟空同学的数学…...

全栈开发(五):初始化前端项目(nuxt3+vue3+element-plus)+前端代理
1.初始化前端项目 Nuxt3:搭建项目_nuxt3 项目搭建-CSDN博客、 2.配置代理 nuxt.config.ts // https://nuxt.com/docs/api/configuration/nuxt-configexport default defineNuxtConfig({devtools: { enabled: true },modules: ["element-plus/nuxt", "pinia/n…...

Linux环境变量进程地址空间
目录 一、初步认识环境变量 1.1常见的环境变量 1.2环境变量的基本概念 二、命令行参数 2.1通过命令行参数获取环境变量 2.2本地变量和内建命令 2.3环境变量的获取 三、进程地址空间 3.1进程(虚拟)地址空间的引入 3.2进程地址空间的布局和理解 …...

C++读取txt文件中的句子在终端显示,同时操控鼠标滚轮(涉及:多线程,产生随机数,文件操作等)
文章目录 运行效果功能描述代码mian.cppincludeMouseKeyControl.hTipsManagement.h srcMouseControl.cppTipsManagement.cpp 运行效果 功能描述 线程一:每隔n随机秒,动一下鼠标滚轮,防止屏幕息屏。 线程二:运行时加载txt文件中的…...
Android 中使用高德地图实现根据经纬度信息画出轨迹、设置缩放倍数并定位到轨迹路线的方法
一、添加依赖和权限 在项目的build.gradle文件中添加高德地图的依赖: implementation com.amap.api:maps:latest_version在AndroidManifest.xml文件中添加必要的权限: <uses-permission android:name"android.permission.ACCESS_FINE_LOCATIO…...

LeetCode从入门到超凡(二)递归与分治算法
引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的LeetCode学习总结文档;在算法设计中,递归和分治算法是两种非常重要的思想和方法。它们不仅在解决复杂问题时表…...

superset 解决在 mac 电脑上发送 slack 通知的问题
参考文档: https://superset.apache.org/docs/configuration/alerts-reports/ 核心配置: FROM apache/superset:3.1.0USER rootRUN apt-get update && \apt-get install --no-install-recommends -y firefox-esrENV GECKODRIVER_VERSION0.29.0 RUN wget -q https://g…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...

给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...