Jeu de données de profondeur TartanAir#
TartanAir est un vaste jeu de données synthétiques généré dans le simulateur AirSim. Il a été créé pour repousser les limites du SLAM visuel et couvre une grande variété d'environnements — scènes intérieures, extérieures, urbaines et naturelles — ainsi que des variations saisonnières, météorologiques et d'éclairage, avec des conditions difficiles.
Comme TartanAir est rendu par simulation, il fournit une vérité terrain de profondeur dense pour cet ensemble varié de scènes, ce qui en fait une source riche en diversité environnementale et en géométrie à longue portée pour l'entraînement de modèles d'estimation de profondeur monoculaire.
Fonctionnalités clés#
- Données synthétiques générées dans le simulateur AirSim.
- Environnements intérieurs et extérieurs variés (urbains, naturels), avec des variations saisonnières, météorologiques et d'éclairage, ainsi que des conditions difficiles.
- Vérité terrain de profondeur dense pour toutes les scènes.
- Plage de profondeur allant jusqu'à ~80 m.
- Contribue à hauteur de 61,470 images (55,660 pour l'entraînement / 5,810 pour la validation) au mélange de données d'entraînement en profondeur d'Ultralytics.
Structure du jeu de données#
Le jeu de données de profondeur TartanAir est divisé en deux sous-ensembles :
- Train : 55,660 images avec des cartes de profondeur denses appariées pour l'entraînement.
- Val : 5,810 images avec des cartes de profondeur denses appariées pour la validation pendant l'entraînement.
Chaque image RGB est associée à un PNG de profondeur uint16 mis à l'échelle, avec 256 unités par mètre (depth_scale: 256), conformément au format de jeu de données de profondeur Ultralytics. Cela représente la plage complète de 80 m avec une résolution de 3,90625 mm.
Obtenir les données#
TartanAir ne propose pas de téléchargement automatique — les données sont distribuées par l'AirLab de la CMU (consulte la page du jeu de données pour connaître les conditions) et téléchargées à l'aide des scripts tartanair_tools :
git clone https://github.com/castacks/tartanair_tools && cd tartanair_tools
python download_training.py --output-dir ./data --rgb --depth --only-left --unzipLa profondeur est déjà stockée en float32 .npy, en mètres (depth_left/*_left_depth.npy à côté de image_left/*_left.png), la conversion consiste donc simplement à réorganiser les données et à invalider le ciel (rendu comme des distances extrêmes ; le mélange publié est limité à 80 m pour correspondre au fichier YAML du jeu de données). TartanAir ne fournit aucun découpage val officiel — mets de côté un ou plusieurs environnements. Conversion de référence vers le format de jeu de données de profondeur Ultralytics :
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")Rôle dans YOLO26-Depth#
TartanAir est l'une des sources d'entraînement du vaste mélange multi-jeux de données (~2,19 M d'images) utilisé pour le préentraînement des modèles Ultralytics YOLO26-Depth. Dans ce mélange, TartanAir apporte une diversité environnementale synthétique et une géométrie extérieure à longue portée qui complètent les sources intérieures et réelles.
Il n'existe pas de benchmark TartanAir autonome avec un ensemble de test séparé dans cette configuration. Les modèles obtenus sont plutôt évalués sur les benchmarks standards de profondeur monoculaire : NYU Depth V2, KITTI, Make3D, ETH3D et iBims-1.
YAML du jeu de données#
Un fichier YAML est utilisé pour définir la configuration du jeu de données. Il contient des informations sur les chemins, les classes et d'autres informations pertinentes du jeu de données. Pour TartanAir, le fichier depth-tartanair.yaml définit les chemins et la seule classe 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 rangeUtilisation#
Pour entraîner un modèle YOLO26n-Depth sur le jeu de données TartanAir avec une taille d'image de 640, tu peux utiliser les extraits de code suivants. Pour consulter la liste complète des arguments disponibles, reporte-toi à la page Entraînement du modèle.
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)Modèles préentraînés#
La famille de modèles de profondeur YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) se télécharge automatiquement depuis les versions d'Ultralytics et est entraînée sur le vaste mélange multi-jeux de données dont TartanAir fait partie. Découvre YOLO26x-depth sur Ultralytics Platform.
Citations et remerciements#
Si tu utilises le jeu de données TartanAir dans tes travaux de recherche ou de développement, cite l'article suivant :
@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}
}Nous souhaitons remercier les créateurs de TartanAir d'avoir mis ce vaste jeu de données synthétiques à la disposition de la communauté de la vision par ordinateur.
FAQ#
TartanAir est un grand jeu de données synthétique rendu dans le simulateur AirSim, conçu à l'origine pour mettre à l'épreuve le SLAM visuel. Il couvre des environnements intérieurs, extérieurs, urbains et naturels dans des conditions variées de saison, de météo et d'éclairage, et apporte 61 470 images (55 660 pour l'entraînement, 5 810 pour la validation) avec une profondeur dense jusqu'à environ 80 m au mélange d'entraînement YOLO26-Depth.
TartanAir ne dispose pas de téléchargement automatique. Récupère les données RVB et de profondeur avec les scripts tartanair_tools, puis convertis la profondeur float32
.npyen mètres en PNG uint16 avecdepth_scale: 256, en rognant les pixels du ciel au-delà de 80 m sur0. Mets de côté un ou plusieurs environnements pour la validation, comme indiqué dans Obtain the Data.