Vai al contenuto

Set di dati VisDrone

Il VisDrone Dataset è un benchmark su larga scala creato dal team AISKYEYE presso il Lab of Machine Learning and Data Mining dell'Università di Tianjin, in Cina. Contiene dati di verità a terra accuratamente annotati per vari compiti di computer vision relativi all'analisi di immagini e video da droni.



Guarda: Come addestrare i modelli di Ultralytics YOLO sul dataset VisDrone per l'analisi delle immagini dei droni

VisDrone è composto da 288 video clip con 261.908 fotogrammi e 10.209 immagini statiche, catturate da varie telecamere montate su droni. Il set di dati copre un'ampia gamma di aspetti, tra cui la posizione (14 diverse città in Cina), l'ambiente (urbano e rurale), gli oggetti (pedoni, veicoli, biciclette, ecc.) e la densità (scene rade e affollate). Il set di dati è stato raccolto utilizzando varie piattaforme di droni in diversi scenari e condizioni atmosferiche e di illuminazione. Questi fotogrammi sono annotati manualmente con oltre 2,6 milioni di bounding box di obiettivi come pedoni, automobili, biciclette e tricicli. Per un migliore utilizzo dei dati vengono forniti anche attributi come la visibilità della scena, la classe dell'oggetto e l'occlusione.

Struttura del set di dati

Il set di dati VisDrone è organizzato in cinque sottoinsiemi principali, ognuno dei quali si concentra su un compito specifico:

  1. Compito 1: Rilevamento di oggetti nelle immagini
  2. Compito 2: Rilevamento di oggetti nei video
  3. Attività 3: Tracciamento di un singolo oggetto
  4. Compito 4: Tracciamento di più oggetti
  5. Compito 5: Conteggio delle folle

Applicazioni

Il dataset VisDrone è ampiamente utilizzato per l'addestramento e la valutazione di modelli di deep learning in compiti di computer vision basati su droni, come il rilevamento di oggetti, il tracciamento di oggetti e il conteggio di folle. La varietà di dati del sensore, le annotazioni sugli oggetti e gli attributi del dataset lo rendono una risorsa preziosa per i ricercatori e i professionisti nel campo della visione artificiale basata sui droni.

Set di dati YAML

Un file YAML (Yet Another Markup Language) è usato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, sulle classi e altre informazioni rilevanti. Nel caso del set di dati Visdrone, il file VisDrone.yaml Il file viene mantenuto all'indirizzo 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

Utilizzo

Per addestrare un modello YOLO11n sul dataset VisDrone per 100 epoche con una dimensione dell'immagine di 640, è possibile utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consultare la pagina di addestramento del modello.

Esempio di treno

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

Dati e annotazioni di esempio

Il dataset VisDrone contiene una serie di immagini e video catturati da telecamere montate su droni. Ecco alcuni esempi di dati del dataset, con le relative annotazioni:

Immagine campione del set di dati

  • Compito 1: Rilevamento di oggetti nelle immagini - Questa immagine mostra un esempio di rilevamento di oggetti nelle immagini, in cui gli oggetti sono annotati con caselle di delimitazione. Il set di dati fornisce un'ampia varietà di immagini prese da luoghi, ambienti e densità diverse per facilitare lo sviluppo di modelli per questo compito.

L'esempio mostra la varietà e la complessità dei dati contenuti nel dataset VisDrone e mette in evidenza l'importanza dei dati dei sensori di alta qualità per le attività di computer vision basate sui droni.

Citazioni e ringraziamenti

Se si utilizza il set di dati VisDrone nel proprio lavoro di ricerca o sviluppo, si prega di citare il seguente documento:

@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}}

Desideriamo ringraziare il team AISKYEYE del Lab of Machine Learning and Data Mining dell'Università di Tianjin, in Cina, per aver creato e mantenuto il dataset VisDrone come una preziosa risorsa per la comunità di ricerca sulla visione artificiale da drone. Per ulteriori informazioni sul set di dati VisDrone e sui suoi creatori, visitare il repository GitHub del set di dati VisDrone.

FAQ

Che cos'è il VisDrone Dataset e quali sono le sue caratteristiche principali?

Il VisDrone Dataset è un benchmark su larga scala creato dal team AISKYEYE dell'Università di Tianjin, in Cina. È stato progettato per vari compiti di computer vision relativi all'analisi di immagini e video da parte di droni. Le caratteristiche principali includono:

  • Composizione: 288 videoclip con 261.908 fotogrammi e 10.209 immagini statiche.
  • Annotazioni: Oltre 2,6 milioni di bounding box per oggetti come pedoni, auto, biciclette e tricicli.
  • Diversità: Raccolta in 14 città, in contesti urbani e rurali, in condizioni climatiche e di illuminazione diverse.
  • Compiti: Divisi in cinque compiti principali: rilevamento di oggetti in immagini e video, tracciamento di singoli oggetti e di più oggetti e conteggio della folla.

Come posso utilizzare il dataset VisDrone per addestrare un modello YOLO11 con Ultralytics?

Per addestrare un modello YOLO11 sul dataset VisDrone per 100 epoch con una dimensione dell'immagine di 640, si possono seguire i seguenti passi:

Esempio di treno

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

Per ulteriori opzioni di configurazione, consultare la pagina di formazione del modello.

Quali sono i principali sottoinsiemi del dataset VisDrone e le loro applicazioni?

Il set di dati VisDrone è suddiviso in cinque sottoinsiemi principali, ciascuno dei quali è stato adattato a una specifica attività di computer vision:

  1. Compito 1: Rilevamento di oggetti nelle immagini.
  2. Compito 2: rilevamento di oggetti nei video.
  3. Attività 3: Tracciamento di un singolo oggetto.
  4. Compito 4: Tracciamento di più oggetti.
  5. Compito 5: Conteggio delle folle.

Questi sottoinsiemi sono ampiamente utilizzati per l'addestramento e la valutazione di modelli di deep learning in applicazioni basate su droni come la sorveglianza, il monitoraggio del traffico e la sicurezza pubblica.

Dove posso trovare il file di configurazione per il dataset VisDrone in Ultralytics?

Il file di configurazione per il set di dati VisDrone, VisDrone.yamlè disponibile nel repository Ultralytics al seguente link: VisDrone.yaml.

Come posso citare il dataset VisDrone se lo utilizzo nella mia ricerca?

Se si utilizza il set di dati VisDrone nel proprio lavoro di ricerca o sviluppo, si prega di citare il seguente documento:

@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}
}
📅C reato 1 anno fa ✏️ Aggiornato 2 mesi fa

Commenti