Vai al contenuto

Set di dati Argoverse

Il dataset Argoverse è una raccolta di dati pensata per supportare la ricerca sulle attività di guida autonoma, come il tracciamento 3D, la previsione del movimento e la stima della profondità stereo. Sviluppato da Argo AI, il dataset fornisce un'ampia gamma di dati di sensori di alta qualità, tra cui immagini ad alta risoluzione, nuvole di punti LiDAR e dati cartografici.

Nota

Il set di dati Argoverse *.zip Il file necessario per la formazione è stato rimosso da Amazon S3 dopo la chiusura di Argo AI da parte di Ford, ma lo abbiamo reso disponibile per il download manuale su Google Drive.

Caratteristiche principali

  • Argoverse contiene oltre 290K tracce di oggetti 3D etichettati e 5 milioni di istanze di oggetti in 1.263 scene distinte.
  • Il set di dati comprende immagini di telecamere ad alta risoluzione, nuvole di punti LiDAR e mappe HD riccamente commentate.
  • Le annotazioni includono caselle di delimitazione 3D per gli oggetti, tracce di oggetti e informazioni sulla traiettoria.
  • Argoverse offre diversi sottoinsiemi per compiti diversi, come il tracciamento 3D, la previsione del movimento e la stima della profondità stereo.

Struttura del set di dati

Il set di dati Argoverse è organizzato in tre sottoinsiemi principali:

  1. Tracciamento 3D Argoverse: Questo sottoinsieme contiene 113 scene con più di 290K tracce di oggetti 3D etichettati, incentrate su compiti di tracciamento di oggetti 3D. Include nuvole di punti LiDAR, immagini della telecamera e informazioni sulla calibrazione del sensore.
  2. Argoverse Motion Forecasting: Questo sottoinsieme consiste in 324K traiettorie di veicoli raccolte da 60 ore di dati di guida, adatte a compiti di previsione del movimento.
  3. Argoverse Stereo Depth Estimation: Questo sottoinsieme è stato progettato per le attività di stima della profondità stereo e include oltre 10K coppie di immagini stereo con le corrispondenti nuvole di punti LiDAR per la stima della profondità a terra.

Applicazioni

Il dataset Argoverse è ampiamente utilizzato per l'addestramento e la valutazione di modelli di deep learning in attività di guida autonoma come il tracciamento di oggetti 3D, la previsione del movimento e la stima della profondità stereo. La varietà di dati dei sensori, le annotazioni sugli oggetti e le informazioni sulle mappe rendono il dataset una risorsa preziosa per i ricercatori e i professionisti nel campo della guida autonoma.

Set di dati YAML

Un file YAML (Yet Another Markup Language) viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, sulle classi e altre informazioni rilevanti. Nel caso del dataset Argoverse, il file Argoverse.yaml Il file viene mantenuto all'indirizzo https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/Argoverse.yaml.

ultralytics/cfg/datasets/Argoverse.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# Argoverse-HD dataset (ring-front-center camera) https://www.cs.cmu.edu/~mengtial/proj/streaming/ by Argo AI
# Documentation: https://docs.ultralytics.com/datasets/detect/argoverse/
# Example usage: yolo train data=Argoverse.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── Argoverse  ← downloads here (31.5 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/Argoverse # dataset root dir
train: Argoverse-1.1/images/train/ # train images (relative to 'path') 39384 images
val: Argoverse-1.1/images/val/ # val images (relative to 'path') 15062 images
test: Argoverse-1.1/images/test/ # test images (optional) https://eval.ai/web/challenges/challenge-page/800/overview

# Classes
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: bus
  5: truck
  6: traffic_light
  7: stop_sign

# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
  import json
  from tqdm import tqdm
  from ultralytics.utils.downloads import download
  from pathlib import Path

  def argoverse2yolo(set):
      labels = {}
      a = json.load(open(set, "rb"))
      for annot in tqdm(a['annotations'], desc=f"Converting {set} to YOLOv5 format..."):
          img_id = annot['image_id']
          img_name = a['images'][img_id]['name']
          img_label_name = f'{img_name[:-3]}txt'

          cls = annot['category_id']  # instance class id
          x_center, y_center, width, height = annot['bbox']
          x_center = (x_center + width / 2) / 1920.0  # offset and scale
          y_center = (y_center + height / 2) / 1200.0  # offset and scale
          width /= 1920.0  # scale
          height /= 1200.0  # scale

          img_dir = set.parents[2] / 'Argoverse-1.1' / 'labels' / a['seq_dirs'][a['images'][annot['image_id']]['sid']]
          if not img_dir.exists():
              img_dir.mkdir(parents=True, exist_ok=True)

          k = str(img_dir / img_label_name)
          if k not in labels:
              labels[k] = []
          labels[k].append(f"{cls} {x_center} {y_center} {width} {height}\n")

      for k in labels:
          with open(k, "w") as f:
              f.writelines(labels[k])


  # Download 'https://argoverse-hd.s3.us-east-2.amazonaws.com/Argoverse-HD-Full.zip' (deprecated S3 link)
  dir = Path(yaml['path'])  # dataset root dir
  urls = ['https://drive.google.com/file/d/1st9qW3BeIwQsnR0t8mRpvbsSWIo16ACi/view?usp=drive_link']
  print("\n\nWARNING: Argoverse dataset MUST be downloaded manually, autodownload will NOT work.")
  print(f"WARNING: Manually download Argoverse dataset '{urls[0]}' to '{dir}' and re-run your command.\n\n")
  # download(urls, dir=dir)

  # Convert
  annotations_dir = 'Argoverse-HD/annotations/'
  (dir / 'Argoverse-1.1' / 'tracking').rename(dir / 'Argoverse-1.1' / 'images')  # rename 'tracking' to 'images'
  for d in "train.json", "val.json":
      argoverse2yolo(dir / annotations_dir / d)  # convert Argoverse annotations to YOLO labels

Utilizzo

Per addestrare un modello YOLOv8n sul dataset Argoverse per 100 epoch con una dimensione dell'immagine di 640, puoi utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consulta la pagina di addestramento del modello.

Esempio di treno

from ultralytics import YOLO

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

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

Dati di esempio e annotazioni

Il set di dati Argoverse contiene una serie di dati di sensori diversi, tra cui immagini di telecamere, nuvole di punti LiDAR e informazioni cartografiche HD, che forniscono un contesto ricco per le attività di guida autonoma. Ecco alcuni esempi di dati del dataset, insieme alle relative annotazioni:

Immagine campione del set di dati

  • Tracciamento 3D di Argoverse: Questa immagine mostra un esempio di tracciamento di oggetti 3D, in cui gli oggetti sono annotati con caselle di delimitazione 3D. Il set di dati fornisce nuvole di punti LiDAR e immagini di telecamere per facilitare lo sviluppo di modelli per questo compito.

L'esempio mostra la varietà e la complessità dei dati del set di dati Argoverse e sottolinea l'importanza dei dati dei sensori di alta qualità per le attività di guida autonoma.

Citazioni e ringraziamenti

Se utilizzi il set di dati Argoverse nel tuo lavoro di ricerca o sviluppo, cita il seguente documento:

@inproceedings{chang2019argoverse,
  title={Argoverse: 3D Tracking and Forecasting with Rich Maps},
  author={Chang, Ming-Fang and Lambert, John and Sangkloy, Patsorn and Singh, Jagjeet and Bak, Slawomir and Hartnett, Andrew and Wang, Dequan and Carr, Peter and Lucey, Simon and Ramanan, Deva and others},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={8748--8757},
  year={2019}
}

Desideriamo ringraziare Argo AI per aver creato e mantenuto il dataset Argoverse come risorsa preziosa per la comunità di ricerca sulla guida autonoma. Per maggiori informazioni sul dataset Argoverse e sui suoi creatori, visita il sito web del dataset Argoverse.



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (6), Laughing-q (1)

Commenti