Zum Inhalt springen

Argoverse-Datensatz

Der Argoverse-Datensatz ist eine Sammlung von Daten, die die Forschung im Bereich des autonomen Fahrens unterstützen soll, z. B. 3D-Tracking, Bewegungsvorhersage und Stereo-Tiefenschätzung. Der Datensatz wurde von Argo AI entwickelt und enthält eine Vielzahl hochwertiger Sensordaten, darunter hochauflösende Bilder, LiDAR-Punktwolken und Kartendaten.

Hinweis

Der Argoverse-Datensatz *.zip Datei, die für das Training benötigt wird, wurde nach der Abschaltung von Argo AI durch Ford von Amazon S3 entfernt, aber wir haben sie zum manuellen Download auf Google Antrieb.

Hauptmerkmale

  • Argoverse enthält über 290.000 beschriftete 3D-Objektspuren und 5 Millionen Objektinstanzen in 1.263 verschiedenen Szenen.
  • Der Datensatz umfasst hochauflösende Kamerabilder, LiDAR-Punktwolken und reichhaltig kommentierte HD-Karten.
  • Zu den Anmerkungen gehören 3D Bounding Boxes für Objekte, Objektspuren und Informationen zur Flugbahn.
  • Argoverse bietet mehrere Untergruppen für verschiedene Aufgaben, wie z.B. 3D-Tracking, Bewegungsvorhersage und Stereo-Tiefenschätzung.

Struktur des Datensatzes

Der Argoverse-Datensatz ist in drei große Teilmengen unterteilt:

  1. Argoverse 3D Tracking: Diese Untergruppe enthält 113 Szenen mit über 290.000 beschrifteten 3D-Objektspuren und konzentriert sich auf Aufgaben der 3D-Objektverfolgung. Sie enthält LiDAR-Punktwolken, Kamerabilder und Informationen zur Sensorkalibrierung.
  2. Argoverse Motion Forecasting: Dieses Subset besteht aus 324K Fahrzeugtrajektorien, die aus 60 Stunden Fahrdaten gesammelt wurden und sich für Bewegungsprognosen eignen.
  3. Argoverse Stereo-Tiefenschätzung: Dieses Subset wurde für Aufgaben der Stereotiefenschätzung entwickelt und enthält über 10.000 Stereobildpaare mit entsprechenden LiDAR-Punktwolken für die Tiefenschätzung der Bodenwahrheit.

Anwendungen

The Argoverse dataset is widely used for training and evaluating deep learning models in autonomous driving tasks such as 3D object tracking, motion forecasting, and stereo depth estimation. The dataset's diverse set of sensor data, object annotations, and map information make it a valuable resource for researchers and practitioners in the field of autonomous driving.

Datensatz YAML

Eine YAML-Datei (Yet Another Markup Language) wird verwendet, um die Konfiguration des Datensatzes zu definieren. Sie enthält Informationen über die Pfade des Datasets, die Klassen und andere wichtige Informationen. Im Fall des Argoverse-Datensatzes ist die Argoverse.yaml Datei wird verwaltet unter 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

Verwendung

To train a YOLO11n model on the Argoverse dataset for 100 epochs with an image size of 640, you can use the following code snippets. For a comprehensive list of available arguments, refer to the model Training page.

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="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

Beispieldaten und Anmerkungen

Der Argoverse-Datensatz enthält eine Vielzahl von Sensordaten, darunter Kamerabilder, LiDAR-Punktwolken und HD-Karteninformationen, die einen reichhaltigen Kontext für autonome Fahraufgaben bieten. Hier sind einige Beispiele für Daten aus dem Datensatz mit den entsprechenden Kommentaren:

Datensatz Beispielbild

  • Argoverse 3D Tracking: Dieses Bild zeigt ein Beispiel für die 3D-Objektverfolgung, bei der Objekte mit 3D-Bounding Boxes versehen werden. Der Datensatz enthält LiDAR-Punktwolken und Kamerabilder, um die Entwicklung von Modellen für diese Aufgabe zu erleichtern.

Das Beispiel zeigt die Vielfalt und Komplexität der Daten im Argoverse-Datensatz und macht deutlich, wie wichtig hochwertige Sensordaten für autonome Fahraufgaben sind.

Zitate und Danksagungen

Wenn du den Argoverse-Datensatz in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte das folgende Papier:

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

Wir danken Argo AI für die Erstellung und Pflege des Argoverse-Datensatzes, der eine wertvolle Ressource für die Forschungsgemeinschaft im Bereich des autonomen Fahrens darstellt. Weitere Informationen über den Argoverse-Datensatz und seine Ersteller findest du auf der Website des Argoverse-Datensatzes.

FAQ

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

Der Argoverse-Datensatz, der von Argo AI entwickelt wurde, unterstützt die Forschung zum autonomen Fahren. Er enthält über 290.000 beschriftete 3D-Objektspuren und 5 Millionen Objektinstanzen in 1.263 verschiedenen Szenen. Der Datensatz enthält hochauflösende Kamerabilder, LiDAR-Punktwolken und beschriftete HD-Karten, was ihn für Aufgaben wie 3D-Tracking, Bewegungsvorhersage und Stereotiefenschätzung wertvoll macht.

Wie kann ich ein Ultralytics YOLO Modell mit dem Argoverse-Datensatz trainieren?

To train a YOLO11 model with the Argoverse dataset, use the provided YAML configuration file and the following code:

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="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

Eine ausführliche Erklärung der Argumente findest du auf der Seite zum Modell Training.

Welche Arten von Daten und Kommentaren sind im Argoverse-Datensatz verfügbar?

Der Argoverse-Datensatz umfasst verschiedene Sensordatentypen wie hochauflösende Kamerabilder, LiDAR-Punktwolken und HD-Kartendaten. Zu den Annotationen gehören 3D Bounding Boxes, Objektspuren und Trajektorieninformationen. Diese umfassenden Annotationen sind für ein genaues Modelltraining bei Aufgaben wie 3D-Objektverfolgung, Bewegungsvorhersage und Stereotiefenschätzung unerlässlich.

Wie ist der Argoverse-Datensatz aufgebaut?

Der Datensatz ist in drei große Teilmengen unterteilt:

  1. Argoverse 3D Tracking: Enthält 113 Szenen mit über 290.000 beschrifteten 3D-Objektspuren und konzentriert sich auf Aufgaben der 3D-Objektverfolgung. Sie enthält LiDAR-Punktwolken, Kamerabilder und Informationen zur Sensorkalibrierung.
  2. Argoverse Motion Forecasting: Besteht aus 324K Fahrzeugtrajektorien, die aus 60 Stunden Fahrdaten gesammelt wurden und für Bewegungsvorhersagen geeignet sind.
  3. Argoverse Stereo-Tiefenschätzung: Enthält über 10.000 Stereobildpaare mit den entsprechenden LiDAR-Punktwolken für die Tiefenschätzung der Bodenwahrheit.

Wo kann ich den Argoverse-Datensatz herunterladen, nachdem er von Amazon S3 entfernt wurde?

Der Argoverse-Datensatz *.zip Datei, die zuvor auf Amazon S3 verfügbar war, kann nun manuell von Google Antrieb.

Wofür wird die YAML-Konfigurationsdatei mit dem Argoverse-Datensatz verwendet?

Eine YAML-Datei enthält die Pfade, Klassen und andere wichtige Informationen des Datasets. Für den Argoverse-Datensatz ist das die Konfigurationsdatei, Argoverse.yamlkannst du unter folgendem Link finden: Argoverse.yaml.

Weitere Informationen zu YAML-Konfigurationen findest du in unserem Leitfaden zu Datensätzen.

📅 Created 11 months ago ✏️ Updated 22 days ago

Kommentare