无人驾驶飞机的高空红外热数据
集,txt标注,2866张 yolo可直接训练。
已划分train val test(配有配置文件.yaml)
yolov5 、yolov7、yolov8、yolov9、yolov10可直接训练
数据集描述:
数据采集:由无人机从不同场景(学校,停车场,道路,游乐场等)捕获,涵盖了各种方面,包括物体(人,自行车,汽车,其他车辆,其他;对应标签 0: Person 1: Car 2: Bicycle
3: OtherVehicle 4: DontCare),飞行高度数据(从60到130米),摄像机的透视数据(从30到90度)以及日光强度(白天和黑夜)。
无人驾驶飞机高空红外热成像数据集(UAV High-Altitude Infrared Thermal Dataset, UHID)
摘要
UHID 是一个专为无人驾驶飞机(无人机)在高空进行红外热成像而设计的数据集,它包含了2866张高质量的红外图像,涵盖了多种场景和目标类型。数据集提供了一套全面的标注信息,可以用于训练和评估YOLO系列的目标检测模型。UHID 的目标是帮助研究人员和工程师开发更精确的高空红外热成像检测系统,应用于城市监控、安全防护、交通管理等多个领域。
数据集特点
- 多样化的场景:数据集包括学校、停车场、道路、游乐场等多种场景,提供了丰富的背景变化。
- 多样的物体类别:数据集包含人、汽车、自行车、其他车辆以及其他不可分类的目标,满足各种应用场景的需求。
- 飞行高度变化:图像采集时无人机的飞行高度从60米到130米不等,这有助于模型学习不同视角下的目标特征。
- 摄像机视角多样性:摄像机的透视角度从30度到90度变化,增加了数据的复杂性和实用性。
- 光照条件覆盖:数据集涵盖了白天和黑夜的不同光照条件,增强了模型对光线变化的鲁棒性。
- 精准的标注信息:每张图像都经过专业人员的精细标注,确保了目标区域的准确性。
- 易于使用:数据集已经按照YOLO格式整理,并且划分了训练集、验证集和测试集,可以直接用于训练和评估YOLO系列的目标检测模型。
数据集构成
- 总图像数量:2866张
- 类别数:5类
- 类别名称:
Person
(标签0)Car
(标签1)Bicycle
(标签2)OtherVehicle
(标签3)DontCare
(标签4)
- 数据集划分:
- 训练集: 1719张
- 验证集: 573张
- 测试集: 574张
示例代码
以下是一个详细的Python脚本示例,用于加载数据集中的一对图像-标签对,并可视化其中的标注信息。此外,还包括了如何使用YOLOv5进行训练的基本步骤。
加载并可视化图像与标签
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
# 数据集目录路径
data_dir = 'path/to/uhid_dataset'
train_image_dir = os.path.join(data_dir, 'images/train')
train_label_dir = os.path.join(data_dir, 'labels/train')
# 选取一张训练图像及其对应标签
image_files = os.listdir(train_image_dir)
image_file = image_files[0] # 假设取第一张图
label_file = os.path.splitext(image_file)[0] + '.txt' # 假设是TXT格式的标签
image_path = os.path.join(train_image_dir, image_file)
label_path = os.path.join(train_label_dir, label_file)
# 加载图像
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) # 红外图像是灰度图像
height, width = image.shape
# 解析YOLO格式标签
def parse_yolo_label(label_path, image_width, image_height):
bboxes = []
with open(label_path, 'r') as f:
lines = f.readlines()
for line in lines:
class_id, x_center, y_center, box_width, box_height = map(float, line.strip().split())
x_min = int((x_center - box_width / 2) * image_width)
y_min = int((y_center - box_height / 2) * image_height)
box_width = int(box_width * image_width)
box_height = int(box_height * image_height)
bboxes.append((class_id, x_min, y_min, box_width, box_height))
return bboxes
# 解析标签
bboxes = parse_yolo_label(label_path, width, height)
# 可视化标注
fig, ax = plt.subplots(figsize=(10, 10))
ax.imshow(image, cmap='gray')
colors = ['#FFA500', '#00FFFF', '#00BFFF', '#EE82EE', '#F08080'] # 这里展示五个颜色作为示例
names = ['Person', 'Car', 'Bicycle', 'Other Vehicle', 'Dont Care'] # 这里仅展示五个类别作为示例
for bbox, color_name in zip(bboxes, colors):
class_id, x, y, w, h = bbox
rect = Rectangle((x, y), w, h, linewidth=2, edgecolor=color_name, facecolor='none')
ax.add_patch(rect)
ax.text(x, y - 10, names[int(class_id)], color=color_name, fontsize=8)
plt.title('UAV High-Altitude Infrared Thermal Dataset')
plt.axis('off')
plt.show()
使用YOLOv5进行训练
假设你已经安装了YOLOv5,并且配置文件(例如uhid.yaml
)已经准备好,以下是使用YOLOv5进行训练的基本步骤:
-
克隆YOLOv5仓库(如果尚未完成):
bash深色版本
git clone https://github.com/ultralytics/yolov5 cd yolov5
-
安装依赖:
pip install -r requirements.txt
-
创建数据配置文件(如果尚未创建): 创建一个名为
uhid.yaml
的文件,内容如下:train: path/to/uhid_dataset/images/train val: path/to/uhid_dataset/images/val test: path/to/uhid_dataset/images/test nc: 5 # 类别数 names: ['Person', 'Car', 'Bicycle', 'OtherVehicle', 'DontCare']
-
开始训练:
bash深色版本
python train.py --img 640 --batch 16 --epochs 50 --data uhid.yaml --weights yolov5s.pt
其中,
--img 640
指定输入图像大小,--batch 16
指定批次大小,--epochs 50
指定训练轮数,--data uhid.yaml
指定数据配置文件,--weights yolov5s.pt
指定预训练权重。 -
评估模型: 训练完成后,你可以使用以下命令来评估模型性能:
python val.py --data uhid.yaml --weights runs/train/exp/weights/best.pt --img 640
-
推理和可视化: 你还可以使用训练好的模型进行推理,并可视化结果:
python detect.py --source path/to/your_test_images --weights runs/train/exp/weights/best.pt --conf 0.4
以上步骤可以帮助你快速启动基于YOLOv5的高空红外热成像数据集的训练和评估。对于YOLOv7、YOLOv8、YOLOv9、YOLOv10等版本,基本流程类似,但具体命令可能会有所不同,请参考各自版本的官方文档。