车辆行人检测数据集数据集

SODA10M车辆行人检测数据集 数据集概述: -YOLO格式标注,直接适用于YOLO模型训练 -样本数量:训练集:5000,验证集:5000测试集 10000未标注 -目标类别:行人、骑自行车的人、汽车、卡车、有轨电车、三轮车
-'Pedestrian', 'Cyclist', 'Car', 'Truck', 'Tram', 'Tricycle'。

 

SODA10M车辆行人检测数据集 数据集概述: -YOLO格式标注,直接适用于YOLO模型训练 -样本数量:训练集:5000,验证集:5000测试集 10000未标注 -目标类别:行人、骑自行车的人、汽车、卡车、有轨电车、三轮车

-'Pedestrian', 'Cyclist', 'Car', 'Truck', 'Tram', 'Tricycle'。

数据集名称

SODA10M车辆行人检测数据集

数据集描述

SODA10M数据集是一个用于车辆和行人检测的大型数据集,特别设计用于训练和评估基于深度学习的目标检测模型,如YOLO(You Only Look Once)系列模型。该数据集涵盖了城市交通环境中的多种目标类别,旨在提高模型在复杂场景下的检测性能。

数据规模

数据集总共有三个子集:

  • 训练集:包含5000个带标注的图像。
  • 验证集:包含5000个带标注的图像。
  • 测试集:包含10000个未标注的图像。
目标类别

该数据集的目标类别包括:

  1. 行人 (Pedestrian)
  2. 骑自行车的人 (Cyclist)
  3. 汽车 (Car)
  4. 卡车 (Truck)
  5. 有轨电车 (Tram)
  6. 三轮车 (Tricycle)

这些类别涵盖了城市交通中最常见的移动目标,对于开发和优化车辆及行人检测算法非常有用。

标注格式

数据集中的标注信息采用了YOLO格式的TXT文件,每个图像都有一个对应的标签文件,记录了每个目标的位置信息(边界框坐标)和类别标签。这种格式直接适用于YOLO系列模型的训练。

数据集结构

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

1SODA10M/
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    ├── img_00001.jpg
22    ├── img_00002.jpg
23    └── ...
应用场景

该数据集可以用于以下应用场景:

  • 智能交通系统:用于实时检测道路上的行人和车辆,提高交通安全。
  • 自动驾驶:帮助自动驾驶车辆识别道路上的障碍物,避免碰撞。
  • 安防监控:用于监控系统中的目标检测功能,提高安全性。
  • 科研分析:用于研究目标检测算法和技术的发展趋势。

示例代码

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

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

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

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

以下是使用YOLO预训练模型进行推理的示例代码:

1import torch
2import cv2
3import numpy as np
4from pathlib import Path
5
6# 数据集路径
7dataset_path = 'path/to/SODA10M/'
8subset = 'test'  # 可以选择 'train' 或 'valid'
9
10# 加载预训练模型
11weights_path = 'path/to/pretrained/yolov5_weights.pt'  # 替换成实际的预训练模型路径
12model = torch.hub.load('ultralytics/yolov5', 'custom', path=weights_path, force_reload=True)
13
14# 主函数
15if __name__ == "__main__":
16    images_dir = os.path.join(dataset_path, subset, 'images')
17    
18    # 获取图像列表
19    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
20    
21    # 随机选择一张图像
22    selected_image = np.random.choice(image_files)
23    image_path = os.path.join(images_dir, selected_image)
24    
25    # 使用预训练模型进行推理
26    results = model(image_path)
27    results.show()  # 显示结果
28    results.save()  # 保存结果图像

这段代码展示了如何使用YOLO预训练模型进行推理,并显示和保存推理结果。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值