雨天道路目标检测数据集 3600张 雨天 带标注 voc yolo
白天
分类名: (图片张数, 标注个数)
car :(1134,10528)
truck:(394,722)
per son:(387,1585)
rider: (47, 56)
bike:(64,86)
bus:(187, 256)
motor :(29,32)
总数: (1150, 13265)
总类(nc): 7类
晚上
分类名:
(图片张数,标注个数)
car: (2470, 21655)
truck:(384,499)
per son:(510,1532)
bus:(220,248)
bike: (76, 121)
rider: (64, 71)
motor :(43,49)
总数: (2494, 24175)
总类(nc): 7类
雨天道路目标检测数据集介绍
项目名称
雨天道路目标检测数据集
项目概述
本数据集包含3600张带有标注的图像,专门用于训练和测试雨天道路目标检测模型。数据集分为白天和晚上两个部分,每张图像都标注了道路上的目标位置,使用VOC和YOLO格式进行标注。该数据集旨在帮助研究人员和开发者构建能够准确检测和识别雨天道路上各种目标(如汽车、卡车、行人等)的深度学习模型。
数据集特点
- 大规模数据量:总共有3600张图像。
- 多样化类别:涵盖7种不同的目标类别。
- 高质量标注:每张图像都进行了详细的标注,包括类别和边界框。
- 多用途:适用于目标检测任务,特别是涉及雨天道路场景的检测。
- 易于使用:提供了详细的说明文档,方便用户快速上手。
数据集结构
Rainy_Weather_Detection_Dataset/
├── images/ # 图像文件夹
│ ├── day/ # 白天图像
│ └── night/ # 晚上图像
├── annotations/ # 标注文件夹
│ ├── day/ # 白天标注
│ └── night/ # 晚上标注
├── README.md # 项目说明文档
└── data_split.py # 数据集划分脚本
数据集内容
- 总数据量:3600张图像。
- 标注格式:VOC和YOLO格式。
- 标注对象:各类目标的位置。
- 类别及数量:
白天部分
类别名 | 图像数量 | 标注个数 |
---|---|---|
汽车 (Car) | 1134 | 10528 |
卡车 (Truck) | 394 | 722 |
行人 (Person) | 387 | 1585 |
骑行者 (Rider) | 47 | 56 |
自行车 (Bike) | 64 | 86 |
公交车 (Bus) | 187 | 256 |
摩托车 (Motor) | 29 | 32 |
- 总数:
- 图像总数:1150张
- 标注总数:13,265个
- 总类别数 (nc):7类
晚上部分
类别名 | 图像数量 | 标注个数 |
---|---|---|
汽车 (Car) | 2470 | 21655 |
卡车 (Truck) | 384 | 499 |
行人 (Person) | 510 | 1532 |
公交车 (Bus) | 220 | 248 |
自行车 (Bike) | 76 | 121 |
骑行者 (Rider) | 64 | 71 |
摩托车 (Motor) | 43 | 49 |
- 总数:
- 图像总数:2494张
- 标注总数:24,175个
- 总类别数 (nc):7类
总计
- 图像总数:3644张
- 标注总数:37,440个
- 总类别数 (nc):7类
使用说明
-
环境准备:
- 确保安装了Python及其相关库(如
shutil
、sklearn
等)。 - 下载并解压数据集到项目根目录。
- 确保安装了Python及其相关库(如
-
运行数据集划分脚本:
- 在命令行中运行
data_split.py
脚本,将数据集划分为训练集和测试集。 - 运行后,
images/
和annotations/
目录下会生成train/
和test/
子目录。
- 在命令行中运行
-
加载数据集:
- 可以使用常见的深度学习框架(如PyTorch、TensorFlow等)来加载数据集。
- 示例代码如下:
import torch
from torchvision import transforms
from torch.utils.data import DataLoader, Dataset
import cv2
import os
import xml.etree.ElementTree as ET
class RainyWeatherDetectionDataset(Dataset):
def __init__(self, image_dir, annotation_dir, transform=None):
self.image_dir = image_dir
self.annotation_dir = annotation_dir
self.transform = transform
self.image_files = [f for f in os.listdir(image_dir) if f.endswith('.jpg') or f.endswith('.png')]
def __len__(self):
return len(self.image_files)
def __getitem__(self, idx):
img_path = os.path.join(self.image_dir, self.image_files[idx])
annotation_path = os.path.join(self.annotation_dir, self.image_files[idx].replace('.jpg', '.xml').replace('.png', '.xml'))
image = cv2.imread(img_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
tree = ET.parse(annotation_path)
root = tree.getroot()
boxes = []
labels = []
for obj in root.findall('object'):
label = obj.find('name').text
bbox = obj.find('bndbox')
xmin = int(bbox.find('xmin').text)
ymin = int(bbox.find('ymin').text)
xmax = int(bbox.find('xmax').text)
ymax = int(bbox.find('ymax').text)
boxes.append([xmin, ymin, xmax, ymax])
labels.append(label)
if self.transform:
image = self.transform(image)
return image, {'boxes': torch.tensor(boxes, dtype=torch.float32), 'labels': labels}
# 数据预处理
transform = transforms.Compose([
transforms.ToPILImage(),
transforms.Resize((416, 416)),
transforms.ToTensor(),
])
# 加载数据集
day_train_dataset = RainyWeatherDetectionDataset(image_dir='images/day/train', annotation_dir='annotations/day/train', transform=transform)
day_test_dataset = RainyWeatherDetectionDataset(image_dir='images/day/test', annotation_dir='annotations/day/test', transform=transform)
night_train_dataset = RainyWeatherDetectionDataset(image_dir='images/night/train', annotation_dir='annotations/night/train', transform=transform)
night_test_dataset = RainyWeatherDetectionDataset(image_dir='images/night/test', annotation_dir='annotations/night/test', transform=transform)
day_train_loader = DataLoader(day_train_dataset, batch_size=8, shuffle=True, num_workers=4)
day_test_loader = DataLoader(day_test_dataset, batch_size=8, shuffle=False, num_workers=4)
night_train_loader = DataLoader(night_train_dataset, batch_size=8, shuffle=True, num_workers=4)
night_test_loader = DataLoader(night_test_dataset, batch_size=8, shuffle=False, num_workers=4)
注意事项
- 数据格式:确保图像文件和标注文件的命名一致,以便正确匹配。
- 硬件要求:建议使用GPU进行训练和推理,以加快处理速度。如果没有足够的计算资源,可以考虑使用云服务提供商的GPU实例。
- 超参数调整:根据实际情况调整网络架构、学习率、批次大小等超参数,以获得更好的性能。
应用场景
- 智能交通系统:在智能交通监控系统中,自动检测和识别雨天道路上的各种目标,提供实时警报。
- 自动驾驶:在自动驾驶系统中,检测雨天道路上的目标以提高行驶安全性。
- 城市安全管理:帮助城市管理部门及时发现和处理雨天道路交通问题,提高城市管理效率。
- 移动应用:开发移动应用程序,帮助驾驶员在雨天更好地了解道路情况。
通过上述步骤,你可以轻松地使用这个雨天道路目标检测数据集,并将其应用于深度学习模型的训练和测试。希望这个项目能帮助你更好地理解和应用目标检测技术。
标签:3600,voc,image,transform,day,雨天,self,dir,标注 From: https://blog.csdn.net/ALiLiLiYa/article/details/142773210