Vai al contenuto

Argoverse Dataset

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

Nota

Il dataset Argoverse *.zip il file necessario per l'addestramento è 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 290.000 tracce di oggetti 3D etichettati e 5 milioni di istanze di oggetti in 1.263 scene distinte.
  • Il dataset include immagini ad alta risoluzione acquisite da telecamere, nuvole di punti LiDAR e mappe HD riccamente annotate.
  • Le annotazioni includono bounding box 3D per gli oggetti, tracce degli oggetti e informazioni sulla traiettoria.
  • Argoverse fornisce diversi sottoinsiemi per vari task, come il tracking 3D, la previsione del movimento e la stima della profondità stereo.

Struttura del set di dati

Il dataset Argoverse è organizzato in tre sottoinsiemi principali:

  1. Argoverse 3D Tracking: Questo sottoinsieme contiene 113 scene con oltre 290.000 tracce di oggetti 3D etichettati, focalizzandosi sui task di tracking di oggetti 3D. Include nuvole di punti LiDAR, immagini acquisite da telecamere e informazioni sulla calibrazione dei sensori.
  2. Argoverse Motion Forecasting: Questo sottoinsieme consiste in 324.000 traiettorie di veicoli raccolte da 60 ore di dati di guida, adatte per i task di previsione del movimento.
  3. Argoverse Stereo Depth Estimation: Questo sottoinsieme è progettato per i task di stima della profondità stereo e include oltre 10.000 coppie di immagini stereo con nuvole di punti LiDAR corrispondenti per la stima della profondità ground truth.

Applicazioni

Il dataset Argoverse è ampiamente utilizzato per l'addestramento e la valutazione di modelli di deep learning in task di guida autonoma come il tracking di oggetti 3D, la previsione del movimento e la stima della profondità stereo. L'insieme diversificato di dati dei sensori, annotazioni degli oggetti e informazioni sulle mappe del dataset lo rendono una risorsa preziosa per ricercatori e professionisti nel campo della guida autonoma.

YAML del set di dati

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

ultralytics/cfg/datasets/Argoverse.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/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: 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 pathlib import Path

  from ultralytics.utils import TQDM
  from ultralytics.utils.downloads import download

  def argoverse2yolo(set):
      """Convert Argoverse dataset annotations to YOLO format for object detection tasks."""
      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", encoding="utf-8") 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 YOLO11n sul dataset Argoverse 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 Training del modello.

Esempio di addestramento

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="Argoverse.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=Argoverse.yaml model=yolo11n.pt epochs=100 imgsz=640

Dati di esempio e annotazioni

Il dataset Argoverse contiene un insieme diversificato di dati di sensori, tra cui immagini acquisite da telecamere, nuvole di punti LiDAR e informazioni sulle mappe HD, fornendo un ricco contesto per i task di guida autonoma. Ecco alcuni esempi di dati dal dataset, insieme alle relative annotazioni:

Immagine di esempio del set di dati

  • Argoverse 3D Tracking: Questa immagine mostra un esempio di tracking di oggetti 3D, in cui gli oggetti sono annotati con bounding box 3D. Il dataset fornisce nuvole di punti LiDAR e immagini acquisite da telecamere per facilitare lo sviluppo di modelli per questo task.

L'esempio mostra la varietà e la complessità dei dati nel dataset Argoverse ed evidenzia l'importanza di dati di sensori di alta qualità per i task di guida autonoma.

Citazioni e ringraziamenti

Se utilizzi il dataset Argoverse nel tuo lavoro di ricerca o sviluppo, cita il seguente articolo:

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

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

FAQ

Cos'è il dataset Argoverse e quali sono le sue caratteristiche principali?

Il dataset Argoverse, sviluppato da Argo AI, supporta la ricerca sulla guida autonoma. Include oltre 290.000 tracce di oggetti 3D etichettati e 5 milioni di istanze di oggetti in 1.263 scene distinte. Il dataset fornisce immagini ad alta risoluzione acquisite da telecamere, nuvole di punti LiDAR e mappe HD annotate, rendendolo prezioso per task come il tracking 3D, la previsione del movimento e la stima della profondità stereo.

Come posso addestrare un modello Ultralytics YOLO utilizzando il dataset Argoverse?

Per addestrare un modello YOLO11 con il dataset Argoverse, utilizzare il file di configurazione YAML fornito e il seguente codice:

Esempio di addestramento

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="Argoverse.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=Argoverse.yaml model=yolo11n.pt epochs=100 imgsz=640

Per una spiegazione dettagliata degli argomenti, consultare la pagina Training del modello.

Quali tipi di dati e annotazioni sono disponibili nel dataset Argoverse?

Il set di dati Argoverse include vari tipi di dati di sensori come immagini ad alta risoluzione della telecamera, nuvole di punti LiDAR e dati di mappe HD. Le annotazioni includono bounding box 3D, tracce di oggetti e informazioni sulla traiettoria. Queste annotazioni complete sono essenziali per un addestramento accurato del modello in attività come il tracciamento di oggetti 3D, la previsione del movimento e la stima della profondità stereo.

Com'è strutturato il dataset Argoverse?

Il set di dati è suddiviso in tre sottoinsiemi principali:

  1. Argoverse 3D Tracking: Contiene 113 scene con oltre 290.000 tracce di oggetti 3D etichettati, focalizzandosi sui task di tracking di oggetti 3D. Include nuvole di punti LiDAR, immagini acquisite da telecamere e informazioni sulla calibrazione dei sensori.
  2. Argoverse Motion Forecasting: Consiste in 324.000 traiettorie di veicoli raccolte da 60 ore di dati di guida, adatte per i task di previsione del movimento.
  3. Argoverse Stereo Depth Estimation: Include oltre 10.000 coppie di immagini stereo con corrispondenti nuvole di punti LiDAR per la stima della profondità ground truth.

Dove posso scaricare il dataset Argoverse ora che è stato rimosso da Amazon S3?

Il dataset Argoverse *.zip Il file, precedentemente disponibile su Amazon S3, può ora essere scaricato manualmente da Google Drive.

A cosa serve il file di configurazione YAML con il dataset Argoverse?

Un file YAML contiene i percorsi, le classi e altre informazioni essenziali del dataset. Per il dataset Argoverse, il file di configurazione, Argoverse.yaml, è disponibile al seguente link: Argoverse.yaml.

Per maggiori informazioni sulle configurazioni YAML, consulta la nostra guida sui dataset.



📅C reato 1 anno fa ✏️ Aggiornato 11 mesi fa

Commenti