Skip to content

VisDrone数据集

VisDrone数据集是由中国天津大学机器学习与数据挖掘实验室的AISKYEYE团队创建的大规模基准。它包含了与无人机图像和视频分析相关的各种计算机视觉任务的精心标注的地面实况数据。



观看: 如何在VisDrone数据集上训练Ultralytics YOLO模型进行无人机图像分析

VisDrone由288个视频片段组成,包含261,908帧和10,209张静态图像,这些图像由各种无人机搭载的相机拍摄。数据集涵盖了广泛的范围,包括地点(中国14个不同城市)、环境(城市和农村)、对象(行人、车辆、自行车等)和密度(稀疏和拥挤场景)。数据集在不同场景和天气及光照条件下使用各种无人机平台收集。这些帧手动标注了超过260万个目标的边界框,如行人、汽车、自行车和三轮车。还提供了场景可见性、对象类别和遮挡等属性,以更好地利用数据。

数据集结构

VisDrone数据集分为五个主要子集,每个子集专注于特定任务:

  1. 任务1:图像中的目标检测
  2. 任务2:视频中的目标检测
  3. 任务3:单目标跟踪
  4. 任务4:多目标跟踪
  5. 任务5:人群计数

应用

VisDrone数据集广泛用于训练和评估无人机基础的计算机视觉任务中的深度学习模型,如目标检测、目标跟踪和人群计数。数据集的多样化传感器数据、对象标注和属性使其成为无人机基础计算机视觉领域研究人员和从业者的宝贵资源。

数据集YAML

YAML(另一种标记语言)文件用于定义数据集配置。它包含有关数据集路径、类别和其他相关信息。在Visdrone数据集的情况下,VisDrone.yaml文件保存在https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml

ultralytics/cfg/datasets/VisDrone.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
# Documentation: https://docs.ultralytics.com/datasets/detect/visdrone/
# Example usage: yolo train data=VisDrone.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── VisDrone  ← downloads here (2.3 GB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/VisDrone # dataset root dir
train: VisDrone2019-DET-train/images # train images (relative to 'path')  6471 images
val: VisDrone2019-DET-val/images # val images (relative to 'path')  548 images
test: VisDrone2019-DET-test-dev/images # test images (optional)  1610 images

# Classes
names:
  0: pedestrian
  1: people
  2: bicycle
  3: car
  4: van
  5: truck
  6: tricycle
  7: awning-tricycle
  8: bus
  9: motor

# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
  import os
  from pathlib import Path

  from ultralytics.utils.downloads import download

  def visdrone2yolo(dir):
      from PIL import Image
      from tqdm import tqdm

      def convert_box(size, box):
          # Convert VisDrone box to YOLO xywh box
          dw = 1. / size[0]
          dh = 1. / size[1]
          return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh

      (dir / 'labels').mkdir(parents=True, exist_ok=True)  # make labels directory
      pbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')
      for f in pbar:
          img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).size
          lines = []
          with open(f, 'r') as file:  # read annotation.txt
              for row in [x.split(',') for x in file.read().strip().splitlines()]:
                  if row[4] == '0':  # VisDrone 'ignored regions' class 0
                      continue
                  cls = int(row[5]) - 1
                  box = convert_box(img_size, tuple(map(int, row[:4])))
                  lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
                  with open(str(f).replace(f'{os.sep}annotations{os.sep}', f'{os.sep}labels{os.sep}'), 'w') as fl:
                      fl.writelines(lines)  # write label.txt


  # Download
  dir = Path(yaml['path'])  # dataset root dir
  urls = ['https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-train.zip',
          'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-val.zip',
          'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip',
          'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip']
  download(urls, dir=dir, curl=True, threads=4)

  # Convert
  for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':
      visdrone2yolo(dir / d)  # convert VisDrone annotations to YOLO labels

使用

要在VisDrone数据集上训练一个YOLO11n模型100个epoch,图像大小为640,您可以使用以下代码片段。有关可用参数的完整列表,请参阅模型训练页面。

训练示例

from ultralytics import YOLO

# 加载模型
model = YOLO("yolo11n.pt")  # 加载预训练模型(推荐用于训练)

# 训练模型
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)
# 从预训练的*.pt模型开始训练
yolo detect train data=VisDrone.yaml model=yolo11n.pt epochs=100 imgsz=640

样本数据和标注

VisDrone数据集包含由无人机搭载相机拍摄的多样化图像和视频。以下是数据集中的一些数据示例及其相应的标注:

数据集样本图像

  • 任务1图像中的目标检测 - 此图像展示了图像中目标检测的示例,其中对象用边界框标注。数据集提供了从不同地点、环境和密度拍摄的广泛图像,以促进此任务的模型开发。

该示例展示了VisDrone数据集中数据的多样性和复杂性,并强调了高质量传感器数据对无人机基础计算机视觉任务的重要性。

引用和致谢

如果您在研究或开发工作中使用VisDrone数据集,请引用以下论文:

@ARTICLE{9573394,
  author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Detection and Tracking Meet Drones Challenge},
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3119563}}

我们感谢中国天津大学机器学习与数据挖掘实验室的AISKYEYE团队创建并维护VisDrone数据集,作为无人机计算机视觉研究社区的宝贵资源。有关VisDrone数据集及其创建者的更多信息,请访问VisDrone数据集GitHub仓库

常见问题

什么是VisDrone数据集及其主要特点是什么?

VisDrone数据集是由中国天津大学的AISKYEYE团队创建的大规模基准数据集。它旨在用于与无人机图像和视频分析相关的各种计算机视觉任务。主要特点包括:

  • 组成:288个视频片段,包含261,908帧和10,209张静态图像。
  • 标注:超过260万个用于行人、汽车、自行车和三轮车等物体的边界框。
  • 多样性:在14个城市收集,涵盖城市和农村环境,不同天气和光照条件下。
  • 任务:分为五个主要任务——图像和视频中的目标检测、单目标和多目标跟踪以及人群计数。

如何使用VisDrone数据集通过Ultralytics训练YOLO11模型?

要在VisDrone数据集上以640的图像尺寸训练YOLO11模型100个周期,您可以按照以下步骤操作:

训练示例

from ultralytics import YOLO

# 加载预训练模型
model = YOLO("yolo11n.pt")

# 训练模型
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)
# 从预训练的*.pt模型开始训练
yolo detect train data=VisDrone.yaml model=yolo11n.pt epochs=100 imgsz=640

有关其他配置选项,请参阅模型训练页面。

VisDrone数据集的主要子集及其应用是什么?

VisDrone数据集分为五个主要子集,每个子集针对特定的计算机视觉任务:

  1. 任务1:图像中的目标检测。
  2. 任务2:视频中的目标检测。
  3. 任务3:单目标跟踪。
  4. 任务4:多目标跟踪。
  5. 任务5:人群计数。

这些子集广泛用于训练和评估深度学习模型,应用于无人机监控、交通监控和公共安全等应用。

在Ultralytics中哪里可以找到VisDrone数据集的配置文件?

VisDrone数据集的配置文件VisDrone.yaml可以在Ultralytics仓库的以下链接中找到: VisDrone.yaml

如果我在研究中使用VisDrone数据集,如何引用它?

如果您在研究或开发工作中使用VisDrone数据集,请引用以下论文:

@ARTICLE{9573394,
  author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Detection and Tracking Meet Drones Challenge},
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3119563}
}

📅 Created 11 months ago ✏️ Updated 13 days ago

Comments