YOLO交通目标识别数据集(红绿灯-汽车-自行车-卡车等)
YOLO交通目标识别 数据集 模型 ui界面

✓图片数量15000,xml和txt标签都有;
✓class:biker,car,pedestrian,trafficLight,trafficLight-Green,trafficLight-GreenLeft, trafficLight-Red,trafficLight-RedLeft,trafficLight-Yellow,trafficLight-YellowLeft,truck(也可按需求除去其中一些类别);
数据集名称

YOLO交通目标识别数据集(YOLO Traffic Object Recognition Dataset)
数据集概述
该数据集专为交通目标识别设计,包含15,000张图像及其对应的VOC XML和YOLO TXT格式标签文件,标签类别包括九种常见的交通目标:骑自行车者(biker)、汽车(car)、行人(pedestrian)、交通灯(trafficLight)及其细分状态(Green、GreenLeft、Red、RedLeft、Yellow、YellowLeft)、卡车(truck)。该数据集适用于使用深度学习和机器学习方法进行交通目标检测的任务,特别是适用于基于YOLO系列(如YOLOv5、YOLOv6、YOLOv7、YOLOv8等)的模型训练。
数据集特点

- 高清图像:所有图像均为高清画质,确保交通目标的细节清晰可见。
- 详细标注:每张图像都有对应的VOC XML和YOLO TXT格式标签文件,标注了交通目标的位置信息。
- 标准化格式:标签文件采用VOC XML和YOLO TXT格式,方便直接用于模型训练。
- 多类别标注:涵盖多种交通目标类别,有助于提高模型的泛化能力和应用场景的广泛性。
数据集构成

- 图像数量:15,000张高清图像
- 类别:
- biker(骑自行车者)
- car(汽车)
- pedestrian(行人)
- trafficLight(交通灯)
- trafficLight-Green(绿灯)
- trafficLight-GreenLeft(左转绿灯)
- trafficLight-Red(红灯)
- trafficLight-RedLeft(左转红灯)
- trafficLight-Yellow(黄灯)
- trafficLight-YellowLeft(左转黄灯)
- truck(卡车)

- 标签格式:VOC XML格式和YOLO TXT格式
- 数据划分:
- 训练集:主要部分用于模型训练
- 验证集:用于调整模型超参数和防止过拟合
- 测试集:用于最终评估模型性能
数据集用途
- 交通目标检测:可用于训练模型识别交通场景中的各类目标,提高检测精度。
- 智能交通系统:帮助构建更加智能的交通管理系统,提高道路安全性和交通效率。
- 自动驾驶:为自动驾驶汽车提供关键的感知能力,使其能够在复杂的环境中安全行驶。
- 研究与开发:作为基准数据集,支持学术研究和技术开发,推动目标检测技术在交通领域的应用。
- 教育与培训:作为教学资源,帮助学生和从业人员理解并掌握交通目标检测的相关技术和方法。
示例代码
以下是一个简单的Python脚本示例,用于加载数据集中的图像及其对应的标签,并绘制出标注的边界框:
1import os
2import cv2
3import numpy as np
4import matplotlib.pyplot as plt
5from xml.etree import ElementTree as ET
6
7# 数据集目录路径
8data_dir = 'path/to/YOLO_traffic_object_recognition_dataset'
9train_image_dir = os.path.join(data_dir, 'images/train')
10train_xml_label_dir = os.path.join(data_dir, 'labels/xml/train')
11train_txt_label_dir = os.path.join(data_dir, 'labels/txt/train')
12
13# 选取一张图像及其标签文件
14image_files = os.listdir(train_image_dir)
15image_file = image_files[0] # 假设取第一张图
16image_path = os.path.join(train_image_dir, image_file)
17
18xml_label_file = os.path.splitext(image_file)[0] + '.xml'
19xml_label_path = os.path.join(train_xml_label_dir, xml_label_file)
20
21txt_label_file = os.path.splitext(image_file)[0] + '.txt'
22txt_label_path = os.path.join(train_txt_label_dir, txt_label_file)
23
24# 加载图像
25image = cv2.imread(image_path)
26
27# 从VOC XML文件加载标签
28def parse_xml(xml_file):
29 tree = ET.parse(xml_file)
30 root = tree.getroot()
31 objects = []
32 for obj in root.findall('object'):
33 name = obj.find('name').text
34 bbox = obj.find('bndbox')
35 xmin = int(bbox.find('xmin').text)
36 ymin = int(bbox.find('ymin').text)
37 xmax = int(bbox.find('xmax').text)
38 ymax = int(bbox.find('ymax').text)
39 objects.append((name, (xmin, ymin, xmax, ymax)))
40 return objects
41
42# 从YOLO TXT文件加载标签
43def parse_yolo(txt_file, width, height):
44 with open(txt_file, 'r') as f:
45 lines = f.readlines()
46 objects = []
47 for line in lines:
48 class_id, x_center, y_center, box_width, box_height = map(float, line.strip().split())
49 x_min = int((x_center - box_width / 2) * width)
50 y_min = int((y_center - box_height / 2) * height)
51 x_max = int((x_center + box_width / 2) * width)
52 y_max = int((y_center + box_height / 2) * height)
53 objects.append((int(class_id), (x_min, y_min, x_max, y_max)))
54 return objects
55
56# 解析VOC XML标签
57xml_objects = parse_xml(xml_label_path)
58
59# 解析YOLO TXT标签
60txt_objects = parse_yolo(txt_label_path, image.shape[1], image.shape[0])
61
62# 绘制图像和边界框
63plt.figure(figsize=(10, 10))
64plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
65plt.axis('off')
66
67colors = {0: 'red', 1: 'blue', 2: 'green', 3: 'yellow', 4: 'orange', 5: 'purple', 6: 'cyan', 7: 'magenta', 8: 'brown', 9: 'lime', 10: 'pink'}
68names = ['biker', 'car', 'pedestrian', 'trafficLight', 'trafficLight-Green', 'trafficLight-GreenLeft', 'trafficLight-Red', 'trafficLight-RedLeft', 'trafficLight-Yellow', 'trafficLight-YellowLeft', 'truck']
69
70for name, (xmin, ymin, xmax, ymax) in xml_objects:
71 plt.gca().add_patch(plt.Rectangle((xmin, ymin), xmax - xmin, ymax - ymin, edgecolor='black', facecolor='none'))
72 plt.text(xmin, ymin, name, color='black', fontsize=8)
73
74for class_id, (xmin, ymin, xmax, ymax) in txt_objects:
75 plt.gca().add_patch(plt.Rectangle((xmin, ymin), xmax - xmin, ymax - ymin, edgecolor=colors[class_id], facecolor='none'))
76 plt.text(xmin, ymin, names[class_id], color=colors[class_id], fontsize=8)
77
78plt.show()
数据集使用指南
- 数据准备:确认数据集路径是否正确,并且图像和标签文件均存在指定的目录下。
- 数据划分:数据集可以根据需要划分为训练集、验证集和测试集。通常建议至少保留一部分数据作为独立的测试集来评估模型的泛化能力。
- 配置文件:确保YOLOv5/v6/v7/v8等模型配置文件中的数据集路径和类别名称与数据集中的标签一致。
- 模型训练:使用YOLO框架或其他支持VOC格式的框架加载数据集,并开始训练模型。确保模型配置文件中数据集路径正确。
- 模型测试:使用已经训练好的模型进行测试,评估模型在测试集上的性能。
数据集结构示例
1├── YOLO_traffic_object_recognition_dataset
2│ ├── images
3│ │ ├── train
4│ │ │ ├── 00000.jpg
5│ │ │ ├── 00001.jpg
6│ │ │ └── ...
7│ │ ├── val
8│ │ │ ├── 00000.jpg
9│ │ │ ├── 00001.jpg
10│ │ │ └── ...
11│ │ └── test
12│ │ ├── 00000.jpg
13│ │ ├── 00001.jpg
14│ │ └── ...
15│ ├── labels
16│ │ ├── xml
17│ │ │ ├── train
18│ │ │ │ ├── 00000.xml
19│ │ │ │ ├── 00001.xml
20│ │ │ │ └── ...
21│ │ │ ├── val
22│ │ │ │ ├── 00000.xml
23│ │ │ │ ├── 00001.xml
24│ │ │ │ └── ...
25│ │ │ └── test
26│ │ │ ├── 00000.xml
27│ │ │ ├── 00001.xml
28│ │ │ └── ...
29│ │ ├── txt
30│ │ │ ├── train
31│ │ │ │ ├── 00000.txt
32│ │ │ │ ├── 00001.txt
33│ │ │ │ └── ...
34│ │ │ ├── val
35│ │ │ │ ├── 00000.txt
36│ │ │ │ ├── 00001.txt
37│ │ │ │ └── ...
38│ │ │ └── test
39│ │ │ ├── 00000.txt
40│ │ │ ├── 00001.txt
41│ │ │ └── ...
42│ └── data.yaml # 包含类别定义和数据路径
UI界面
对于UI界面的设计,可以考虑以下几个功能模块:
- 数据加载:允许用户选择数据集的路径,并加载数据集。
- 数据浏览:展示图像及其标签信息,支持用户浏览和预览数据集中的图像。
- 模型训练:提供模型训练的配置选项,如选择模型架构、设置超参数等。
- 模型评估:提供模型评估的功能,包括绘制损失曲线、显示混淆矩阵等。
- 结果展示:展示模型预测的结果,并允许用户比较预测与真实标签之间的差异。
- 模型导出:允许用户导出训练好的模型,以便在其他环境中使用。
引用出处
为了确保正确引用该数据集,请查看原始数据集发布者的具体要求。如果该数据集来自某个特定的研究项目或竞赛,引用格式可能类似于以下示例:
1@misc{dataset_paper,
2 title={Title of the Data Set},
3 author={Author Names},
4 year={Publication Year},
5 publisher={Publishing Institution},
6 url={URL of the data set}
7}
总结
YOLO交通目标识别数据集为交通目标检测提供了专业的数据支持。通过高分辨率图像和详细的VOC XML及YOLO TXT格式标注信息,该数据集能够帮助训练和评估模型在识别交通场景中的各类目标方面的能力。无论是对于学术研究还是工业应用,该数据集都是一个极具价值的研究资源。
相关文章:
YOLO交通目标识别数据集(红绿灯-汽车-自行车-卡车等)
YOLO交通目标识别 数据集 模型 ui界面 ✓图片数量15000,xml和txt标签都有; ✓class:biker,car,pedestrian,trafficLight,trafficLight-Green,trafficLight-GreenLeft, t…...
Vue学习记录之六(组件实战及BEM框架了解)
一、BEM BEM是一种前端开发中常用的命名约定,主要用于CSS和HTML的结构化和模块化。BEM是Block、Element、Modifier的缩写。 Block(块):独立的功能性页面组件,可以是一个简单的按钮,一个复杂的导航条&…...
为什么会出现电话机器人?语音电话机器人的出现起到了什么作用?
电话机器人的出现是科技发展与市场需求相结合的产物,它们的广泛应用反映了现代社会对效率、成本和服务质量的不断追求。以下是电话机器人出现的几个主要原因。 1. 市场需求的变化 随着经济的发展和消费模式的转变,客户对服务的期望不断提高。他们希望能…...
【CSS Tricks】深入聊聊前端编写css的方法论
目录 引言BEM 规范OOCSS 规范结构与样式分离容器与内容分离 SMACSS 规范ITCSS 规范设置层工具层通用层元素层对象层组件层微调层由此分层后的项目代码结构也会相应做修改,主要有两种形式:文件夹形式文件名形式引用方式按照层级顺序引用 ACSS 规范总结 引…...
多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测(Matlab)
多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测 目录 多维时序 | GWO-VMD-SSA-LSTM灰狼优化变分模态分解联合麻雀优化长短期记忆网络多变量时间序列光伏功率预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 …...
5.使用 VSCode 过程中的英语积累 - Go 菜单(每一次重点积累 5 个单词)
前言 学习可以不局限于传统的书籍和课堂,各种生活的元素也都可以做为我们的学习对象,本文将利用 VSCode 页面上的各种英文元素来做英语的积累,如此做有 3 大利 这些软件在我们工作中是时时刻刻接触的,借此做英语积累再合适不过&a…...
Java高级Day50-连接池
132.数据库连接池 传统获取Connection问题分析 传统的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证IP地址,用户名和密码。需要数据库连接的时候,就向数据库请求一个&a…...
软件设计-开闭原则
开闭原则是一种重要的设计思想,它为软件系统的可扩展性和可维护性提供了有力的支持。 一、开闭原则的原理 开闭原则(Open-Closed Principle, OCP)是指软件实体(类、模块、函数等)应当对扩展开放,对修改关…...
Angular面试题八
一、请解释Angular中的AOT编译是什么,并简述其优势。 Angular中的AOT编译,全称为Ahead-of-Time(预先编译),是一种在构建过程中将Angular应用程序的模板和组件编译成本地机器代码(通常是JavaScript代码&…...
【Kubernetes】常见面试题汇总(三十六)
目录 88. Pod 启动失败如何解决以及常见的原因有哪些? 89.简述 K8s 中 label 的几种应用场景。 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题…...
深入解析SGD、Momentum与Nesterov:优化算法的对比与应用
目录 1. 梯度下降算法2. BGD、SGD、MBGD3. momentum与dampening3.1 另一种形式的momentum3.1.1 学习率固定3.1.2 学习率不固定 4. nesterov4.1 PyTorch中的Nesterov4.2 Polyak与Nesterov的比较 Ref 1. 梯度下降算法 先考虑一元情形。假设待更新的参数为 θ \theta θ…...
Vue2实现主内容滚动到指定位置时,侧边导航栏也跟随选中变化
需求背景: PC端项目需要实现一个有侧边导航栏,可点击跳转至对应内容区域,类似锚点导航, 同时主内容区域上下滚动时,可实现左侧导航栏选中样式能实时跟随变动的效果。 了解了一下,Element Plus 组件库 和 …...
dev containers plugins for vscode构建虚拟开发环境
0. 需求说明 自用笔记本构建一套开发环境,用docker 虚拟插件 dev containers,实现开发环境的构建,我想构建一套LLMs的环境,由于环境配置太多,不想污染本地环境,所以选择隔离技术 1. 环境准备 vscodedocker 2. 步骤…...
C++ | Leetcode C++题解之第433题最小基因变化
题目: 题解: class Solution { public:int minMutation(string start, string end, vector<string>& bank) {int m start.size();int n bank.size();vector<vector<int>> adj(n);int endIndex -1;for (int i 0; i < n; i)…...
Qt窗口——QMenuBar
文章目录 QMenuBar示例演示给菜单栏设置快捷键给菜单项设置快捷键添加子菜单添加分割线添加图标 QMenuBar Qt中采用QMenuBar来创建菜单栏,一个主窗口,只允许有一个菜单栏,位于主窗口的顶部、主窗口标题栏下面;一个菜单栏里面有多…...
python网站创建001:内容概览
内容概览: 1. Python环境搭建(Python解释器、Pycharm、环境变量等) 2. 基础语法(条件、循环、输入输出、编码等) 3. 数据类型型(整型、布尔型、字符串、列表、字典、元组、集合等) 4. 函数&…...
代码随想录第22天|
class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int index s.size() - 1; // 饼干数组的下标int result 0;for (int i g.size() - 1; i > 0; i--) { // 遍历…...
WPF-基础-02 DispatcherObject类
public abstract class DispatcherObject {protected DispatcherObject();public Dispatcher Dispatcher { get; }public bool CheckAccess();public void VerifyAccess(); }WPF中使用Dispatcher更新界面 xaml<Grid><TextBlock x:Name"tbkShow" Horizontal…...
STM32与51单片机的区别:是否应该直接学习STM32?
STM32与51单片机的区别:是否应该直接学习STM32? 在单片机的世界里,STM32和51单片机都是非常重要的角色。对于初学者来说,是否可以直接跳过51单片机,直接学习STM32,这个问题一直存在争议。让我们深入探讨这…...
【网络底层原理】I/O多路复用技术select、poll和epoll详解与比较
引言 在现代网络编程中,I/O多路复用技术是实现高性能服务器的关键。本文将详细介绍select、poll和epoll这三种技术,并比较它们的工作原理、优势与限制。 1. select 工作原理 select技术使用三个集合(读、写、异常)来跟踪需要监…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
python打卡第47天
昨天代码中注意力热图的部分顺移至今天 知识点回顾: 热力图 作业:对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图,展示模…...
P10909 [蓝桥杯 2024 国 B] 立定跳远
# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上,小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时࿰…...
Linux中INADDR_ANY详解
在Linux网络编程中,INADDR_ANY 是一个特殊的IPv4地址常量(定义在 <netinet/in.h> 头文件中),用于表示绑定到所有可用网络接口的地址。它是服务器程序中的常见用法,允许套接字监听所有本地IP地址上的连接请求。 关…...
