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 Drive.
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:
- 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.
- Argoverse Motion Forecasting: Dieses Subset besteht aus 324K Fahrzeugtrajektorien, die aus 60 Stunden Fahrdaten gesammelt wurden und sich fĂŒr Bewegungsprognosen eignen.
- 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
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, Objektkommentare 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 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
Um ein YOLOv8n Modell auf dem Argoverse-Datensatz fĂŒr 100 Epochen mit einer BildgröĂe von 640 zu trainieren, kannst du die folgenden Codeschnipsel verwenden. Eine umfassende Liste der verfĂŒgbaren Argumente findest du 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 reichhaltigen Kontext fĂŒr autonome Fahraufgaben bieten. Hier sind einige Beispiele fĂŒr Daten aus dem Datensatz mit den entsprechenden Kommentaren:
- 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.