Zum Inhalt springen

VisDrone-Datensatz

Der VisDrone-Datensatz ist ein umfangreicher Benchmark, der vom AISKYEYE-Team im Labor fĂŒr maschinelles Lernen und Data Mining der UniversitĂ€t Tianjin, China, erstellt wurde. Er enthĂ€lt sorgfĂ€ltig kommentierte Ground-Truth-Daten fĂŒr verschiedene Computer-Vision-Aufgaben im Zusammenhang mit drohnenbasierter Bild- und Videoanalyse.



Beobachten: So trainieren Sie Ultralytics YOLO Modelle auf dem VisDrone-Datensatz fĂŒr die Drohnenbildanalyse

VisDrone besteht aus 288 Videoclips mit 261.908 Einzelbildern und 10.209 statischen Bildern, die von verschiedenen an Drohnen montierten Kameras aufgenommen wurden. Der Datensatz deckt ein breites Spektrum an Aspekten ab, darunter Standort (14 verschiedene StĂ€dte in China), Umgebung (stĂ€dtisch und lĂ€ndlich), Objekte (FußgĂ€nger, Fahrzeuge, FahrrĂ€der usw.) und Dichte (spĂ€rliche und ĂŒberfĂŒllte Szenen). Der Datensatz wurde mit verschiedenen Drohnenplattformen in unterschiedlichen Szenarien und bei unterschiedlichen Wetter- und LichtverhĂ€ltnissen aufgenommen. Diese Bilder wurden manuell mit ĂŒber 2,6 Millionen Bounding Boxes von Zielen wie FußgĂ€ngern, Autos, FahrrĂ€dern und DreirĂ€dern versehen. Zur besseren Datennutzung werden auch Attribute wie Sichtbarkeit der Szene, Objektklasse und Okklusion bereitgestellt.

Struktur des Datensatzes

Der VisDrone-Datensatz ist in fĂŒnf Hauptuntergruppen unterteilt, die sich jeweils auf eine bestimmte Aufgabe konzentrieren:

  1. Aufgabe 1: Objekterkennung in Bildern
  2. Aufgabe 2: Objekterkennung in Videos
  3. Aufgabe 3: Verfolgung von Einzelobjekten
  4. Aufgabe 4: Multi-Objekt-Verfolgung
  5. Aufgabe 5: ZĂ€hlen von Menschenmengen

Anwendungen

Der VisDrone-Datensatz wird hĂ€ufig zum Trainieren und Evaluieren von Deep-Learning-Modellen fĂŒr Drohnen-basierte Computer-Vision-Aufgaben wie Objekterkennung, Objektverfolgung und PersonenzĂ€hlung verwendet. Die vielfĂ€ltigen Sensordaten, Objektannotationen und Attribute des Datensatzes machen ihn zu einer wertvollen Ressource fĂŒr Forscher und Praktiker auf dem Gebiet des drohnenbasierten Computersehens.

Datensatz YAML

Eine YAML-Datei (Yet Another Markup Language) wird zur Definition der Dataset-Konfiguration verwendet. Sie enthĂ€lt Informationen ĂŒber die Pfade, Klassen und andere relevante Informationen des Datasets. Im Fall des Visdrone-Datensatzes ist die Datei VisDrone.yaml Datei wird verwaltet unter 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

Verwendung

Um ein YOLO11n-Modell auf dem VisDrone-Datensatz fĂŒr 100 Epochen mit einer BildgrĂ¶ĂŸe von 640 zu trainieren, können Sie die folgenden Codeschnipsel verwenden. Eine umfassende Liste der verfĂŒgbaren Argumente finden Sie auf der Seite Modelltraining.

Beispiel fĂŒr einen Zug

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=VisDrone.yaml model=yolo11n.pt epochs=100 imgsz=640

Beispieldaten und Anmerkungen

Der VisDrone-Datensatz enthÀlt eine Reihe von Bildern und Videos, die von an Drohnen montierten Kameras aufgenommen wurden. Hier sind einige Beispiele von Daten aus dem Datensatz mit den entsprechenden Anmerkungen:

Datensatz Beispielbild

  • Aufgabe 1: Objekterkennung in Bildern - Dieses Bild zeigt ein Beispiel fĂŒr die Objekterkennung in Bildern, bei der Objekte mit Bounding Boxes versehen werden. Der Datensatz enthĂ€lt eine Vielzahl von Bildern, die an unterschiedlichen Orten, in unterschiedlichen Umgebungen und in unterschiedlichen Dichten aufgenommen wurden, um die Entwicklung von Modellen fĂŒr diese Aufgabe zu erleichtern.

Das Beispiel zeigt die Vielfalt und KomplexitĂ€t der Daten im VisDrone-Datensatz und unterstreicht die Bedeutung hochwertiger Sensordaten fĂŒr drohnenbasierte Computer-Vision-Aufgaben.

Zitate und Danksagungen

Wenn Sie den VisDrone-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das folgende Dokument:

@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 im Labor fĂŒr maschinelles Lernen und Data Mining an der UniversitĂ€t Tianjin, China, fĂŒr die Erstellung und Pflege des VisDrone-Datensatzes als wertvolle Ressource fĂŒr die dronenbasierte Computer-Vision-Forschungsgemeinschaft danken. Weitere Informationen ĂŒber den VisDrone-Datensatz und seine Ersteller finden Sie im GitHub-Repository fĂŒr den VisDrone-Datensatz.

FAQ

Was ist der VisDrone-Datensatz und was sind seine wichtigsten Merkmale?

Der VisDrone-Datensatz ist ein umfangreicher Benchmark, der vom AISKYEYE-Team an der UniversitĂ€t Tianjin, China, erstellt wurde. Er wurde fĂŒr verschiedene Computer-Vision-Aufgaben im Zusammenhang mit drohnenbasierter Bild- und Videoanalyse entwickelt. Die wichtigsten Merkmale sind:

  • Zusammensetzung: 288 Videoclips mit 261.908 Frames und 10.209 statische Bilder.
  • Beschriftungen: Über 2,6 Millionen Bounding Boxes fĂŒr Objekte wie FußgĂ€nger, Autos, FahrrĂ€der und DreirĂ€der.
  • VielfĂ€ltigkeit: In 14 StĂ€dten, in stĂ€dtischer und lĂ€ndlicher Umgebung, bei unterschiedlichen Wetter- und LichtverhĂ€ltnissen gesammelt.
  • Aufgaben: Aufgeteilt in fĂŒnf Hauptaufgaben: Objekterkennung in Bildern und Videos, Verfolgung von einzelnen und mehreren Objekten und ZĂ€hlen von Menschenmengen.

Wie kann ich den VisDrone-Datensatz verwenden, um ein YOLO11 -Modell mit Ultralytics zu trainieren?

Um ein Modell YOLO11 auf dem VisDrone-Datensatz fĂŒr 100 Epochen mit einer BildgrĂ¶ĂŸe von 640 zu trainieren, können Sie die folgenden Schritte ausfĂŒhren:

Beispiel fĂŒr einen Zug

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n.pt")

# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=VisDrone.yaml model=yolo11n.pt epochs=100 imgsz=640

Weitere Konfigurationsmöglichkeiten finden Sie auf der Seite Modellschulung.

Was sind die wichtigsten Teilmengen des VisDrone-Datensatzes und ihre Anwendungen?

Der VisDrone-Datensatz ist in fĂŒnf Hauptuntergruppen unterteilt, die jeweils auf eine bestimmte Computer-Vision-Aufgabe zugeschnitten sind:

  1. Aufgabe 1: Objekterkennung in Bildern.
  2. Aufgabe 2: Objekterkennung in Videos.
  3. Aufgabe 3: Verfolgung eines einzelnen Objekts.
  4. Aufgabe 4: Multi-Objekt-Verfolgung.
  5. Aufgabe 5: ZĂ€hlen von Menschenmengen.

Diese Teilmengen werden hĂ€ufig fĂŒr das Training und die Bewertung von Deep-Learning-Modellen bei Drohnenanwendungen wie Überwachung, VerkehrsĂŒberwachung und öffentliche Sicherheit verwendet.

Wo kann ich die Konfigurationsdatei fĂŒr den VisDrone-Datensatz in Ultralytics finden?

Die Konfigurationsdatei fĂŒr den VisDrone-Datensatz, VisDrone.yamlfinden Sie im Repository Ultralytics unter dem folgenden Link: VisDrone.yaml.

Wie kann ich den VisDrone-Datensatz zitieren, wenn ich ihn in meiner Forschung verwende?

Wenn Sie den VisDrone-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das folgende Dokument:

@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}
}
📅 Erstellt vor 1 Jahr ✏ Aktualisiert vor 2 Monaten

Kommentare