Argoverse Datensatz
Der Argoverse-Datensatz ist eine Sammlung von Daten, die die Forschung in Bereichen des autonomen Fahrens unterstützen soll, wie z. B. 3D-Tracking, Bewegungsvorhersage und Stereo-Tiefenschätzung. Der von Argo AI entwickelte Datensatz bietet eine breite Palette hochwertiger Sensordaten, darunter hochauflösende Bilder, LiDAR-Punktwolken und Kartendaten.
Hinweis
Der Argoverse-Datensatz *.zip
Die für das Training erforderliche Datei wurde nach der Schließung von Argo AI durch Ford von Amazon S3 entfernt, wir haben sie jedoch für den manuellen Download auf folgender Seite zur Verfügung gestellt: Google Drive.
Hauptmerkmale
- Argoverse enthält über 290.000 gelabelte 3D-Objekt-Tracks und 5 Millionen Objektinstanzen in 1.263 verschiedenen Szenen.
- Der Datensatz umfasst hochauflösende Kamerabilder, LiDAR-Punktwolken und detailliert annotierte HD-Karten.
- Zu den Annotationen gehören 3D-Begrenzungsrahmen für Objekte, Objekt-Tracks und Trajektorieninformationen.
- Argoverse bietet mehrere Teilmengen für verschiedene Aufgaben, wie z. B. 3D-Tracking, Bewegungsvorhersage und Stereo-Tiefenschätzung.
Dataset-Struktur
Der Argoverse-Datensatz ist in drei Hauptuntergruppen unterteilt:
- Argoverse 3D-Tracking: Diese Untergruppe enthält 113 Szenen mit über 290.000 gelabelten 3D-Objekt-Tracks, wobei der Schwerpunkt auf 3D-Objektverfolgungsaufgaben liegt. Sie umfasst LiDAR-Punktwolken, Kamerabilder und Informationen zur Sensorkalibrierung.
- Argoverse Motion Forecasting: Diese Untergruppe besteht aus 324.000 Fahrzeugtrajektorien, die aus 60 Stunden Fahrdaten gesammelt wurden und sich für Aufgaben der Bewegungsvorhersage eignen.
- Argoverse Stereo Tiefenschätzung: Dieses Subset wurde für Stereo-Tiefenschätzungsaufgaben entwickelt und umfasst über 10.000 Stereo-Bildpaare mit entsprechenden LiDAR-Punktwolken für die Ground-Truth-Tiefenschätzung.
Anwendungen
Der Argoverse-Datensatz wird häufig für das Training und die Evaluierung von Deep-Learning-Modellen in autonomen Fahrfunktionen wie 3D-Objektverfolgung, Bewegungsvorhersage und Stereo-Tiefenschätzung verwendet. Die vielfältigen Sensordaten, Objektannotationen und Karteninformationen des Datensatzes machen ihn zu einer wertvollen Ressource für Forschende und Praktiker im Bereich des autonomen Fahrens.
Datensatz-YAML
Eine YAML-Datei (Yet Another Markup Language) wird verwendet, um die Datensatzkonfiguration zu definieren. Sie enthält Informationen über die Pfade, Klassen und andere relevante Informationen des Datensatzes. Für den Argoverse-Datensatz 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 🚀 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
Nutzung
Um ein YOLO11n-Modell auf dem Argoverse-Datensatz für 100 Epochen mit einer Bildgröße von 640 zu trainieren, können Sie die folgenden Code-Snippets verwenden. Eine umfassende Liste der verfügbaren Argumente finden Sie auf der Seite Training des Modells.
Trainingsbeispiel
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 vielfältige Menge an Sensordaten, darunter Kamerabilder, LiDAR-Punktwolken und HD-Karteninformationen, die einen umfassenden Kontext für autonome Fahraufgaben bieten. Hier sind einige Beispiele für Daten aus dem Datensatz zusammen mit den entsprechenden Anmerkungen:
- Argoverse 3D-Tracking: Dieses Bild zeigt ein Beispiel für 3D-Objektverfolgung, bei dem Objekte mit 3D-Begrenzungsrahmen versehen sind. Der Datensatz stellt LiDAR-Punktwolken und Kamerabilder zur Verfügung, um die Entwicklung von Modellen für diese Aufgabe zu erleichtern.
Das Beispiel veranschaulicht die Vielfalt und Komplexität der Daten im Argoverse-Datensatz und unterstreicht die Bedeutung hochwertiger Sensordaten für autonome Fahraufgaben.
Zitate und Danksagungen
Wenn Sie den Argoverse-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das folgende Paper:
@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 möchten Argo AI für die Erstellung und Pflege des Argoverse-Datensatzes als wertvolle Ressource für die Forschungsgemeinschaft im Bereich des autonomen Fahrens danken. Weitere Informationen über den Argoverse-Datensatz und seine Urheber finden Sie auf der Argoverse-Datensatz-Website.
FAQ
Was ist der Argoverse-Datensatz und was sind seine Hauptmerkmale?
Das von Argo AI entwickelte Argoverse-Dataset unterstützt die Forschung zum autonomen Fahren. Es umfasst über 290.000 gelabelte 3D-Objektpfade und 5 Millionen Objektinstanzen in 1.263 verschiedenen Szenen. Das Dataset bietet hochauflösende Kamerabilder, LiDAR-Punktwolken und annotierte HD-Karten, was es für Aufgaben wie 3D-Tracking, Bewegungsvorhersage und Stereo-Tiefenschätzung wertvoll macht.
Wie kann ich ein Ultralytics YOLO-Modell mit dem Argoverse-Datensatz trainieren?
Um ein YOLO11-Modell mit dem Argoverse-Dataset zu trainieren, verwenden Sie die bereitgestellte YAML-Konfigurationsdatei und den folgenden Code:
Trainingsbeispiel
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 detaillierte Erläuterung der Argumente finden Sie auf der Seite Training des Modells.
Welche Arten von Daten und Annotationen sind im Argoverse-Datensatz verfügbar?
Der Argoverse-Datensatz enthält verschiedene Sensordatentypen wie hochauflösende Kamerabilder, LiDAR-Punktwolken und HD-Kartendaten. Die Annotationen umfassen 3D-Begrenzungsrahmen, Objekt-Tracks und Trajektorieninformationen. Diese umfassenden Annotationen sind für ein genaues Modelltraining bei Aufgaben wie 3D-Objektverfolgung, Bewegungsvorhersage und Stereo-Tiefenschätzung unerlässlich.
Wie ist der Argoverse-Datensatz strukturiert?
Der Datensatz ist in drei Hauptteilmengen unterteilt:
- Argoverse 3D Tracking: Enthält 113 Szenen mit über 290.000 gelabelten 3D-Objekt-Tracks, wobei der Fokus auf 3D-Objektverfolgungsaufgaben liegt. Es beinhaltet LiDAR-Punktwolken, Kamerabilder und Informationen zur Sensorkalibrierung.
- Argoverse Motion Forecasting: Besteht aus 324.000 Fahrzeugtrajektorien, die aus 60 Stunden Fahrdaten gesammelt wurden und für Aufgaben der Bewegungsvorhersage geeignet sind.
- Argoverse Stereo Depth Estimation: Enthält über 10.000 Stereo-Bildpaare mit entsprechenden LiDAR-Punktwolken für die Ground-Truth-Tiefenschätzung.
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 jetzt manuell heruntergeladen werden von Google Drive.
Wozu dient die YAML-Konfigurationsdatei beim Argoverse-Datensatz?
Eine YAML-Datei enthält die Pfade, Klassen und andere wichtige Informationen des Datensatzes. Für den Argoverse-Datensatz ist die Konfigurationsdatei Argoverse.yaml
, kann unter folgendem Link gefunden werden: Argoverse.yaml.
Weitere Informationen zu YAML-Konfigurationen finden Sie in unserem Datensatz-Leitfaden.