Link to this sectionVisDrone-Datensatz#
Der VisDrone-Datensatz ist ein umfangreicher Benchmark, der vom AISKYEYE-Team am Labor für Maschinelles Lernen und Data Mining an der Tianjin-Universität in China erstellt wurde. Er enthält sorgfältig annotierte Ground-Truth-Daten für verschiedene Computer-Vision-Aufgaben im Bereich der drohnengestützten Bild- und Videoanalyse.
Watch: How to Train Ultralytics YOLO26 on the VisDrone Dataset | Aerial Detection | Complete Tutorial 🚀
VisDrone besteht aus 288 Videoclips mit 261.908 Einzelbildern und 10.209 statischen Bildern, die von verschiedenen drohnengestützten Kameras aufgenommen wurden. Der Datensatz deckt eine Vielzahl von Aspekten ab, darunter den Standort (14 verschiedene Städte in ganz China), die Umgebung (städtisch und ländlich), Objekte (Fußgänger, Fahrzeuge, Fahrräder usw.) und die Dichte (spärliche und überfüllte Szenen). Der Datensatz wurde mit verschiedenen Drohnenplattformen unter unterschiedlichen Szenarien sowie Wetter- und Lichtbedingungen gesammelt. Diese Bilder sind manuell mit über 2,6 Millionen Bounding Boxes von Zielen wie Fußgängern, Autos, Fahrrädern und Dreirädern annotiert. Attribute wie Sichtbarkeit der Szene, Objektklasse und Verdeckung werden ebenfalls bereitgestellt, um die Datennutzung zu verbessern.
Link to this sectionDatensatzstruktur#
Der VisDrone-Datensatz ist in fünf Hauptuntergruppen unterteilt, die sich jeweils auf eine bestimmte Aufgabe konzentrieren:
- Aufgabe 1: Objekterkennung in Bildern
- Aufgabe 2: Objekterkennung in Videos
- Aufgabe 3: Tracking einzelner Objekte
- Aufgabe 4: Multi-Objekt-Tracking
- Aufgabe 5: Personenzählung
Link to this sectionAnwendungen#
Der VisDrone-Datensatz wird häufig zum Trainieren und Evaluieren von Deep-Learning-Modellen für drohnengestützte Computer-Vision-Aufgaben wie Objekterkennung, Objekt-Tracking und Personenzählung verwendet. Die vielfältige Sammlung von Sensordaten, Objektannotationen und Attributen macht den Datensatz zu einer wertvollen Ressource für Forscher und Praktiker im Bereich der drohnengestützten Computer Vision.
Link to this sectionDatensatz-YAML#
Eine YAML (Yet Another Markup Language)-Datei wird zur Definition der Datensatzkonfiguration verwendet. Sie enthält Informationen über die Pfade, Klassen und andere relevante Details des Datensatzes. Im Fall des VisDrone-Datensatzes wird die VisDrone.yaml-Datei unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml gepflegt.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/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: VisDrone # dataset root dir
train: images/train # train images (relative to 'path') 6471 images
val: images/val # val images (relative to 'path') 548 images
test: images/test # test-dev 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
import shutil
from ultralytics.utils.downloads import download
from ultralytics.utils import ASSETS_URL, TQDM
def visdrone2yolo(dir, split, source_name=None):
"""Convert VisDrone annotations to YOLO format with images/{split} and labels/{split} structure."""
from PIL import Image
source_dir = dir / (source_name or f"VisDrone2019-DET-{split}")
images_dir = dir / "images" / split
labels_dir = dir / "labels" / split
labels_dir.mkdir(parents=True, exist_ok=True)
# Move images to new structure
if (source_images_dir := source_dir / "images").exists():
images_dir.mkdir(parents=True, exist_ok=True)
for img in source_images_dir.glob("*.jpg"):
img.rename(images_dir / img.name)
for f in TQDM((source_dir / "annotations").glob("*.txt"), desc=f"Converting {split}"):
img_size = Image.open(images_dir / f.with_suffix(".jpg").name).size
dw, dh = 1.0 / img_size[0], 1.0 / img_size[1]
lines = []
with open(f, encoding="utf-8") as file:
for row in [x.split(",") for x in file.read().strip().splitlines()]:
if row[4] != "0": # Skip ignored regions
x, y, w, h = map(int, row[:4])
cls = int(row[5]) - 1
# Convert to YOLO format
x_center, y_center = (x + w / 2) * dw, (y + h / 2) * dh
w_norm, h_norm = w * dw, h * dh
lines.append(f"{cls} {x_center:.6f} {y_center:.6f} {w_norm:.6f} {h_norm:.6f}\n")
(labels_dir / f.name).write_text("".join(lines), encoding="utf-8")
# Download (ignores test-challenge split)
dir = Path(yaml["path"]) # dataset root dir
urls = [
f"{ASSETS_URL}/VisDrone2019-DET-train.zip",
f"{ASSETS_URL}/VisDrone2019-DET-val.zip",
f"{ASSETS_URL}/VisDrone2019-DET-test-dev.zip",
# f"{ASSETS_URL}/VisDrone2019-DET-test-challenge.zip",
]
download(urls, dir=dir, threads=4)
# Convert
splits = {"VisDrone2019-DET-train": "train", "VisDrone2019-DET-val": "val", "VisDrone2019-DET-test-dev": "test"}
for folder, split in splits.items():
visdrone2yolo(dir, split, folder) # convert VisDrone annotations to YOLO labels
shutil.rmtree(dir / folder) # cleanup original directoryLink to this sectionVerwendung#
Um ein YOLO26n-Modell auf dem VisDrone-Datensatz für 100 Epochen bei einer Bildgröße von 640 zu trainieren, kannst du die folgenden Code-Snippets verwenden. Eine umfassende Liste der verfügbaren Argumente findest du auf der Seite zum Modell-Training.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)Link to this sectionBeispieldaten und Annotationen#
Der VisDrone-Datensatz enthält eine vielfältige Sammlung von Bildern und Videos, die mit drohnengestützten Kameras aufgenommen wurden. Hier sind einige Beispiele aus dem Datensatz zusammen mit den entsprechenden Annotationen:

- Aufgabe 1: Objekterkennung in Bildern – Dieses Bild zeigt ein Beispiel für die Objekterkennung in Bildern, bei dem Objekte mit Bounding Boxes annotiert sind. Der Datensatz bietet eine große Vielfalt an Bildern, die an verschiedenen Orten, in unterschiedlichen Umgebungen und mit variierenden Dichten aufgenommen wurden, um die Entwicklung von Modellen für diese Aufgabe zu erleichtern.
Das Beispiel verdeutlicht die Vielfalt und Komplexität der Daten im VisDrone-Datensatz und unterstreicht die Bedeutung hochwertiger Sensordaten für drohnengestützte Computer-Vision-Aufgaben.
Link to this sectionZitate und Danksagungen#
Wenn du den VisDrone-Datensatz in deiner Forschung oder Entwicklungsarbeit verwendest, zitiere bitte die folgende Arbeit:
@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}}Wir möchten dem AISKYEYE-Team am Labor für Maschinelles Lernen und Data Mining an der Tianjin-Universität in China dafür danken, dass es den VisDrone-Datensatz erstellt und als wertvolle Ressource für die Forschungsgemeinschaft im Bereich drohnengestützter Computer Vision gepflegt hat. Weitere Informationen über den VisDrone-Datensatz und seine Ersteller findest du im GitHub-Repository des VisDrone-Datensatzes.
Link to this sectionFAQ#
Link to this sectionWas ist der VisDrone-Datensatz und was sind seine Hauptmerkmale?#
Der VisDrone-Datensatz ist ein umfangreicher Benchmark, der vom AISKYEYE-Team an der Tianjin-Universität in China erstellt wurde. Er ist für verschiedene Computer-Vision-Aufgaben im Bereich der drohnengestützten Bild- und Videoanalyse konzipiert. Die Hauptmerkmale umfassen:
- Zusammensetzung: 288 Videoclips mit 261.908 Einzelbildern und 10.209 statischen Bildern.
- Annotationen: Über 2,6 Millionen Bounding Boxes für Objekte wie Fußgänger, Autos, Fahrräder und Dreiräder.
- Vielfalt: Gesammelt in 14 Städten, in städtischen und ländlichen Umgebungen sowie unter unterschiedlichen Wetter- und Lichtbedingungen.
- Aufgaben: Unterteilt in fünf Hauptaufgaben: Objekterkennung in Bildern und Videos, Tracking einzelner und mehrerer Objekte sowie Personenzählung.
Link to this sectionWie kann ich den VisDrone-Datensatz verwenden, um ein YOLO26-Modell mit Ultralytics zu trainieren?#
Um ein YOLO26-Modell auf dem VisDrone-Datensatz für 100 Epochen mit einer Bildgröße von 640 zu trainieren, kannst du diesen Schritten folgen:
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n.pt")
# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)Für weitere Konfigurationsoptionen beziehe dich bitte auf die Seite zum Modell-Training.
Link to this sectionWas sind die Hauptuntergruppen des VisDrone-Datensatzes und ihre Anwendungen?#
Der VisDrone-Datensatz ist in fünf Hauptuntergruppen unterteilt, die jeweils auf eine spezifische Computer-Vision-Aufgabe zugeschnitten sind:
- Aufgabe 1: Objekterkennung in Bildern.
- Aufgabe 2: Objekterkennung in Videos.
- Aufgabe 3: Tracking einzelner Objekte.
- Aufgabe 4: Multi-Objekt-Tracking.
- Aufgabe 5: Personenzählung.
Diese Untergruppen werden häufig zum Trainieren und Evaluieren von Deep-Learning-Modellen in drohnengestützten Anwendungen wie Überwachung, Verkehrsüberwachung und öffentlicher Sicherheit verwendet.
Link to this sectionWo finde ich die Konfigurationsdatei für den VisDrone-Datensatz in Ultralytics?#
Die Konfigurationsdatei für den VisDrone-Datensatz, VisDrone.yaml, findest du im Ultralytics-Repository unter dem folgenden Link:
VisDrone.yaml.
Link to this sectionWie kann ich den VisDrone-Datensatz zitieren, wenn ich ihn in meiner Forschung verwende?#
Wenn du den VisDrone-Datensatz in deiner Forschung oder Entwicklungsarbeit verwendest, zitiere bitte die folgende Arbeit:
@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}
}