Argoverse-Datensatz
Der Argoverse-Datensatz ist eine Datensammlung, die die Forschung im Bereich des autonomen Fahrens unterstützen soll, z. B. 3D-Tracking, Bewegungsvorhersage und Stereotiefenschätzung. Der von Argo AI entwickelte Datensatz bietet eine breite Palette an hochwertigen 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.
Wesentliche Merkmale
- 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 beschriftete HD-Karten.
- Zu den Anmerkungen gehören 3D-Begrenzungsrahmen für Objekte, Objektspuren und Trajektorieninformationen.
- Argoverse bietet mehrere Untergruppen für verschiedene Aufgaben, wie 3D-Tracking, Bewegungsvorhersage und Stereotiefenschätzung.
Struktur des Datensatzes
Der Argoverse-Datensatz ist in drei Hauptgruppen unterteilt:
- Argoverse 3D-Verfolgung: Diese Teilmenge enthält 113 Szenen mit über 290.000 beschrifteten 3D-Objektspuren und konzentriert sich auf Aufgaben der 3D-Objektverfolgung. Es enthält LiDAR-Punktwolken, Kamerabilder und Informationen zur Sensorkalibrierung.
- Argoverse Bewegungsprognose: Diese Teilmenge besteht aus 324K Fahrzeugtrajektorien, die aus 60 Stunden Fahrdaten gesammelt wurden und sich für Bewegungsvorhersagen eignen.
- Argoverse Stereo-Tiefenabschätzung: Dieser Teilsatz 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
Der Argoverse-Datensatz wird häufig zum Trainieren und Evaluieren von Deep-Learning-Modellen für Aufgaben des autonomen Fahrens wie 3D-Objektverfolgung, Bewegungsvorhersage und Stereotiefenschätzung verwendet. Die vielfältigen Sensordaten, Objektannotationen und Karteninformationen des Datensatzes machen ihn zu einer wertvollen Ressource für Forscher und Praktiker im Bereich des autonomen Fahrens.
Datensatz YAML
Eine YAML-Datei (Yet Another Markup Language) wird zur Definition der Dataset-Konfiguration verwendet. Sie enthält Informationen über die Pfade, Klassen und andere relevante Informationen des Datasets. Im Fall des Argoverse-Datensatzes wird die Datei 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: ../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 pathlib import Path
from tqdm 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
Verwendung
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 Codeschnipsel verwenden. Eine umfassende Liste der verfügbaren Argumente finden Sie auf der Seite Modelltraining.
Beispiel für einen Zug
Beispieldaten und Anmerkungen
Der Argoverse-Datensatz enthält eine Vielzahl von Sensordaten, darunter Kamerabilder, LiDAR-Punktwolken und HD-Karteninformationen, die einen umfassenden Kontext für autonome Fahraufgaben bieten. Hier sind einige Beispiele von Daten aus dem Datensatz mit den entsprechenden Anmerkungen:
- Argoverse 3D-Verfolgung: 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 verdeutlicht, wie wichtig hochwertige Sensordaten für autonome Fahraufgaben sind.
Zitate und Danksagungen
Wenn Sie den Argoverse-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das folgende Dokument:
@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 danken, der eine wertvolle Ressource für die Forschungsgemeinschaft im Bereich des autonomen Fahrens darstellt. Weitere Informationen über den Argoverse-Datensatz und seine Ersteller finden Sie 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 umfasst ü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 kommentierte 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?
Um ein YOLO11 -Modell mit dem Argoverse-Datensatz zu trainieren, verwenden Sie die mitgelieferte YAML-Konfigurationsdatei und den folgenden Code:
Beispiel für einen Zug
Eine ausführliche Erläuterung der Argumente finden Sie auf der Seite Modellschulung.
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:
- Argoverse 3D-Verfolgung: Enthält 113 Szenen mit über 290.000 beschrifteten 3D-Objektspuren und konzentriert sich auf Aufgaben der 3D-Objektverfolgung. Es enthält LiDAR-Punktwolken, Kamerabilder und Informationen zur Sensorkalibrierung.
- Argoverse Bewegungsprognose: Besteht aus 324K Fahrzeugtrajektorien, die aus 60 Stunden Fahrdaten gesammelt wurden und für Bewegungsprognosen geeignet sind.
- 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 heruntergeladen werden von Google Antrieb.
Wozu dient die YAML-Konfigurationsdatei für den Argoverse-Datensatz?
Eine YAML-Datei enthält die Pfade, Klassen und andere wichtige Informationen des Datasets. Für den Argoverse-Datensatz ist dies die Konfigurationsdatei, Argoverse.yaml
können Sie unter dem folgenden Link abrufen: Argoverse.yaml.
Weitere Informationen zu YAML-Konfigurationen finden Sie in unserem Leitfaden zu Datensätzen.