无人机视角应急救援(人)数据集

无人机视角应急救援(人),两个数据集

part1,使用DJI Phantom 4A拍摄,分辨率为1920×1080像素。山区场景,图像中人员姿势分为站立、坐着、躺着、行走、奔跑。共1981张图像6500个不同姿势的标记,

part2,无人机视角,高度涵盖20m-120m,同时使用可见光与热传感检测搜救行人,涵盖场景更加丰富,草地,雪地,海岸,森林,山地等多种地形,共55000余图像,40GB数据量,

数据集名称

无人机视角应急救援(人)数据集

数据集描述

该数据集是一个专门用于无人机视角下应急救援场景中人员检测的数据集,旨在帮助研究人员和开发者训练和评估基于深度学习的目标检测模型。数据集结合了两个部分的数据,涵盖了多种复杂场景下的行人检测,包括不同姿势、不同高度以及多种地形。

数据规模
  • 总样本数量 :56981张图像
    • Part 1: 1981张图像,包含6500个不同姿势的标记。
    • Part 2: 55000余张图像,约40GB的数据量。
  • 标注目标:所有图像都带有详细的标注信息,用于训练和验证目标检测模型。
目标类别及数量
  • Part 1:

    • 站立 (Standing)
    • 坐着 (Sitting)
    • 躺着 (Lying)
    • 行走 (Walking)
    • 奔跑 (Running)
    • 总计6500个不同姿势的标记。
  • Part 2:

    • 行人 (Pedestrian): 覆盖了草地、雪地、海岸、森林、山地等多种地形中的行人。
图像分辨率
  • Part 1: 1920×1080像素(DJI Phantom 4A拍摄)
  • Part 2: 多种分辨率,具体取决于无人机的高度和传感器类型(可见光与热传感)
拍摄高度
  • Part 1: 主要为山区场景,未指定具体高度。
  • Part 2: 高度涵盖20m-120m。
场景多样性
  • Part 1: 山区场景,图像中人员姿势分为站立、坐着、躺着、行走、奔跑。
  • Part 2: 涵盖草地、雪地、海岸、森林、山地等多种地形,使用可见光与热传感检测搜救行人。
标注格式

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

数据集结构

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

复制代码
复制代码
1drone_emergency_rescue_dataset/
2├── part1/
3│   ├── images/
4│   │   ├── img_00001.jpg
5│   │   ├── img_00002.jpg
6│   │   └── ...
7│   └── labels/
8│       ├── img_00001.txt
9│       ├── img_00002.txt
10│       └── ...
11├── part2/
12│   ├── images/
13│   │   ├── img_00001.jpg
14│   │   ├── img_00002.jpg
15│   │   └── ...
16│   └── labels/
17│       ├── img_00001.txt
18│       ├── img_00002.txt
19│       └── ...
20└── README.md  # 数据集说明文件
应用场景

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

  • 应急救援:在自然灾害或紧急情况下,通过无人机快速搜索并定位受困人员。
  • 安全监控:辅助安全监控系统,在各种复杂环境中进行人员检测。
  • 智能交通:在交通管理中,通过无人机监测行人行为,提高交通安全。
  • 科研分析:用于研究目标检测算法和技术的发展趋势,特别是在无人机视角下的应用。

示例代码

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

复制代码
1import os
2import cv2
3import numpy as np
4from PIL import Image
5
6# 数据集路径
7dataset_path = 'path/to/drone_emergency_rescue_dataset/'
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 = ['Standing', 'Sitting', 'Lying', 'Walking', 'Running', 'Pedestrian']
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    part = 'part1'  # 可以选择 'part2'
43    subset = 'train'  # 可以选择 'val' 或 'test'
44    images_dir = os.path.join(dataset_path, part, 'images', subset)
45    labels_dir = os.path.join(dataset_path, part, 'labels', subset)
46    
47    # 获取图像列表
48    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
49    
50    # 随机选择一张图像
51    selected_image = np.random.choice(image_files)
52    image_path = os.path.join(images_dir, selected_image)
53    label_path = os.path.join(labels_dir, selected_image.replace('.jpg', '.txt'))
54    
55    # 加载图像和标签
56    image, boxes = load_image_and_label(image_path, label_path)
57    
58    # 展示带有标注框的图像
59    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/drone_emergency_rescue_dataset/'
8part = 'part1'  # 可以选择 'part2'
9subset = 'test'  # 可以选择 'train' 或 'val'
10
11# 加载预训练模型
12weights_path = 'path/to/pretrained/yolov8_weights.pt'  # 替换成实际的预训练模型路径
13model = torch.hub.load('ultralytics/yolov5', 'custom', path=weights_path, force_reload=True)
14
15# 主函数
16if __name__ == "__main__":
17    images_dir = os.path.join(dataset_path, part, 'images', subset)
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    results = model(image_path)
28    results.show()  # 显示结果
29    results.save()  # 保存结果图像

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

相关推荐
qq_25294131682 天前
无人机视角公路两侧滑坡检测数据集 | 公路巡检 滑坡检测 地质灾害 无人机航拍9302期
yolo·目标检测·目标跟踪·无人机·地质灾害·无人机视角·滑坡检测
城南皮卡丘3 天前
苹果果实成熟度检测数据集 4195张+YOLO格式
深度学习·yolo·目标检测·计算机视觉·数据集
微尘hjx4 天前
【数据集 11】面向城市道路的坑洞检测数据集(含8760张,已按比例划分训练、验证、测试集,支持YOLO全系列训练)
人工智能·yolo·目标检测·数据集·道路坑洞·路坑数据集·路坑
数聚天成DeepSData7 天前
两份名录里的同名机构,主键该怎么合并
人工智能·深度学习·机器学习·数据集·deepsdata
Felaim10 天前
【SLAM】SLAM数据集相机规格说明
数据集·vslam·slam·相机标定
数聚天成DeepSData10 天前
第三方地图工具导出的 Landsat 影像,使用条件和 USGS 官方下载的一样吗
人工智能·深度学习·机器学习·数据集·deepsdata
数聚天成DeepSData11 天前
验收一批标注数据时,一致性到底在比谁和谁
人工智能·深度学习·机器学习·数据集·deepsdata
数聚天成DeepSData12 天前
两批标注数据合并前要核对什么
人工智能·深度学习·机器学习·数据集·deepsdata
数聚天成DeepSData12 天前
外部标注需求里该写清哪几项,样例包才验收得动
人工智能·深度学习·机器学习·数据集·deepsdata
数聚天成DeepSData13 天前
Landsat 影像去哪里下载:选景、批量与脚本检索怎么选
人工智能·深度学习·机器学习·数据集·deepsdata