TartanAir-Tiefendatensatz#
TartanAir ist ein groß angelegter synthetischer Datensatz, der im AirSim-Simulator erzeugt wurde. Er wurde entwickelt, um die Grenzen von visuellem SLAM auszuloten, und umfasst eine große Vielfalt an Umgebungen – Innenräume, Außenbereiche, städtische und natürliche Szenen – sowie Variationen bei Jahreszeiten, Wetter und Beleuchtung und anspruchsvolle Bedingungen.
Da TartanAir in einer Simulation gerendert wird, bietet der Datensatz dichte Tiefenreferenzdaten für diese vielfältige Szenenmenge und ist damit eine ergiebige Quelle für Umweltvielfalt und Geometrie über große Entfernungen zum Trainieren von Modellen zur monokularen Tiefenschätzung.
Wichtige Funktionen#
- Synthetische Daten, die im AirSim-Simulator erzeugt wurden.
- Vielfältige Innen- und Außenbereiche (städtische und natürliche Umgebungen) mit Variationen bei Jahreszeiten, Wetter und Beleuchtung sowie anspruchsvollen Bedingungen.
- Dichte Tiefenreferenzdaten für alle Szenen.
- Tiefenbereich bis zu ~80 m.
- Trägt 61.470 Bilder (55.660 Training / 5.810 Validierung) zum Tiefentrainingsmix von Ultralytics bei.
Datensatzstruktur#
Der TartanAir-Tiefendatensatz ist in zwei Teilmengen aufgeteilt:
- Train: 55.660 Bilder mit zugehörigen dichten Tiefenkarten zum Trainieren.
- Val: 5.810 Bilder mit zugehörigen dichten Tiefenkarten zur Validierung während des Trainings.
Jedes RGB-Bild ist mit einem skalierten uint16-Tiefen-PNG mit 256 Einheiten pro Meter (depth_scale: 256) verknüpft und folgt dem Format des Ultralytics-Tiefendatensatzes. Damit wird der gesamte Bereich von 80 m mit einer Auflösung von 3,90625 mm dargestellt.
Daten abrufen#
TartanAir unterstützt keinen automatischen Download – die Daten werden von CMUs AirLab verteilt (siehe die Datensatzseite für die Nutzungsbedingungen) und mit den Skripten von tartanair_tools heruntergeladen:
git clone https://github.com/castacks/tartanair_tools && cd tartanair_tools
python download_training.py --output-dir ./data --rgb --depth --only-left --unzipDie Tiefe ist bereits als float32 .npy in Metern gespeichert (depth_left/*_left_depth.npy neben image_left/*_left.png). Daher müssen die Daten lediglich neu angeordnet und der Himmel als ungültig markiert werden (er wird als extreme Entfernung gerendert; der veröffentlichte Mix begrenzt die Werte auf 80 m, passend zur Datensatz-YAML-Datei). TartanAir enthält keine offizielle Validierungsaufteilung – halte eine oder mehrere Umgebungen zurück. Referenzkonvertierung in das Format des Ultralytics-Tiefendatensatzes:
import shutil
from pathlib import Path
import numpy as np
from ultralytics.data.utils import save_depth_png
VAL_ENVS = {"neighborhood"} # environments held out for validation
src, dst = Path("data"), Path("datasets/depth-tartanair")
for depth_file in sorted(src.rglob("depth_left/*_left_depth.npy")):
env, traj = depth_file.parts[-5], depth_file.parts[-3]
out = "val" if env.lower() in VAL_ENVS else "train"
(dst / f"images/{out}").mkdir(parents=True, exist_ok=True)
(dst / f"depth/{out}").mkdir(parents=True, exist_ok=True)
depth = np.load(depth_file)
depth[depth > 80.0] = 0.0 # sky/extreme range → 0 = invalid
frame = depth_file.name.replace("_depth.npy", "") # e.g. 000000_left
name = f"{env}_{traj}_{frame}"
save_depth_png(dst / f"depth/{out}/{name}.png", depth, scale=256)
shutil.copy(depth_file.parents[1] / "image_left" / f"{frame}.png", dst / f"images/{out}/{name}.png")Rolle in YOLO26-Depth#
TartanAir ist eine der Trainingsquellen im umfangreichen Multi-Datensatz-Mix (~2,19 Mio. Bilder), der zum Vortrainieren der Ultralytics-YOLO26-Depth-Modelle verwendet wird. In diesem Mix steuert TartanAir synthetische Umweltvielfalt und Geometrie im Außenbereich über große Entfernungen bei und ergänzt Quellen aus Innenräumen und der realen Welt.
In dieser Konfiguration gibt es keinen eigenständigen zurückgehaltenen TartanAir-Benchmark. Stattdessen werden die resultierenden Modelle anhand der standardmäßigen Benchmarks für monokulare Tiefenschätzung evaluiert: NYU Depth V2, KITTI, Make3D, ETH3D und iBims-1.
Dataset-YAML#
Eine YAML-Datei wird verwendet, um die Dataset-Konfiguration zu definieren. Sie enthält Informationen über die Dataset-Pfade, Klassen und andere relevante Informationen. Für TartanAir definiert die Datei depth-tartanair.yaml die Pfade und die einzelne Klasse depth.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# TartanAir dataset for monocular depth estimation — synthetic indoor + outdoor (AirSim), dense depth up to ~80 m
# Documentation: https://docs.ultralytics.com/datasets/depth/tartanair
# Example usage: yolo depth train data=depth-tartanair.yaml model=yolo26n-depth.pt
# No autodownload — obtain the source data (see docs) and arrange it as below.
# parent
# ├── ultralytics
# └── datasets
# └── depth-tartanair
# ├── images/{train,val} # RGB images
# └── depth/{train,val} # paired 16-bit *.png depth maps (images/ -> depth/)
path: depth-tartanair # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 55660 images
val: images/val # val images (relative to 'path') 5810 images
max_depth: 80 # (m) maximum valid depth; GT beyond this is excluded from val metrics
nc: 1
names:
0: depth
channels: 3
depth_scale: 256 # PNG value 256 = 1 meter; represents the 80 m outdoor rangeVerwendung#
Um ein YOLO26n-Depth-Modell mit einer Bildgröße von 640 auf dem TartanAir-Datensatz zu trainieren, kannst du die folgenden Codeausschnitte verwenden. Eine vollständige Liste der verfügbaren Argumente findest du auf der Seite Training des Modells.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-depth.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="depth-tartanair.yaml", epochs=100, imgsz=640)Vortrainierte Modelle#
Die YOLO26-Depth-Familie (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) wird automatisch aus den Ultralytics-Releases heruntergeladen und auf dem umfangreichen Multi-Datensatz-Mix trainiert, zu dem TartanAir gehört. Entdecke YOLO26x-depth auf der Ultralytics Platform.
Zitate und Danksagungen#
Wenn du den TartanAir-Datensatz für deine Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte die folgende Veröffentlichung:
@inproceedings{wang2020tartanair,
title={TartanAir: A Dataset to Push the Limits of Visual SLAM},
author={Wenshan Wang and Delong Zhu and Xiangwei Wang and Yaoyu Hu and Yuheng Qiu and Chen Wang and Yafei Hu and Ashish Kapoor and Sebastian Scherer},
booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
year={2020}
}Wir möchten den Entwicklern von TartanAir dafür danken, dass sie diesen vielfältigen synthetischen Datensatz der Computer-Vision-Community zur Verfügung gestellt haben.
FAQ#
TartanAir ist ein großes synthetisches Dataset, das im AirSim-Simulator gerendert wurde und ursprünglich zur Belastungsprobe für visuelles SLAM entwickelt wurde. Es umfasst Innen-, Außen-, Stadt- und Naturumgebungen unter verschiedenen Jahreszeiten-, Wetter- und Lichtbedingungen und steuert 61.470 Bilder (55.660 Training, 5.810 Validierung) mit dichter Tiefe bis ca. 80 m zum YOLO26-Depth-Training-Mix bei.
Für TartanAir gibt es keinen automatischen Download. Rufe die RGB- und Tiefendaten mit den tartanair_tools-Skripten ab, konvertiere dann die Float32-Tiefe
.npyin Metern mitdepth_scale: 256in uint16-PNGs, wobei Himmels-Pixel jenseits von 80 m auf0abgeschnitten werden. Halte eine oder mehrere Umgebungen für die Validierung zurück, wie in Obtain the Data gezeigt.