Ultralytics YOLO27 :

Jeu de données de profondeur TartanAir#

TartanAir est un vaste jeu de données synthétique généré dans le simulateur AirSim. Créé pour repousser les limites du SLAM visuel, il couvre une grande variété d’environnements — intérieurs, extérieurs, urbains et naturels — ainsi que des variations saisonnières, météorologiques et d’éclairage, et 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 précieuse de diversité environnementale et de géométrie à longue portée pour entraîner des modèles d’estimation monoculaire de la profondeur.

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 dans toutes les scènes.
  • Portée de profondeur jusqu’à ~80 m.
  • Apporte 61 470 images (55 660 pour l’entraînement / 5 810 pour la validation) au mélange 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 :

  1. Entraînement : 55 660 images accompagnées de cartes de profondeur denses pour l’entraînement.
  2. Validation : 5 810 images accompagnées de cartes de profondeur denses pour la validation pendant l’entraînement.

Chaque image RGB est associée à une image PNG de profondeur uint16 mise à l’échelle à 256 unités par mètre (depth_scale: 256), conformément au format de jeu de données de profondeur Ultralytics. Cela représente toute la portée 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 AirLab de CMU (consulte la page du jeu de données pour connaître les conditions) et se téléchargent à 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 --unzip

La profondeur est déjà stockée au format 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 sous forme de distances extrêmes ; le mélange publié est tronqué à 80 m pour correspondre au fichier YAML du jeu de données). TartanAir ne fournit pas de partition de validation officielle : réserve un ou plusieurs environnements. Voici une 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, level, traj = depth_file.parts[-5:-2]  # e.g. neighborhood, Easy, P000
    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}_{level}_{traj}_{frame}"  # Easy and Hard reuse trajectory names such as P000
    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 multis jeux de données (~2,19 M d’images) utilisé pour préentraîner les modèles YOLO26-Depth d’Ultralytics. 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.

Cette configuration ne comporte pas de benchmark TartanAir autonome avec données réservées. Les modèles obtenus sont plutôt évalués sur les benchmarks standard d’estimation monoculaire de la profondeur : NYU Depth V2, KITTI, Make3D, ETH3D et iBims-1.

Fichier YAML du jeu de données#

Un fichier YAML sert à définir la configuration du jeu de données. Il contient des informations sur les chemins, les classes et d’autres éléments pertinents. Pour TartanAir, le fichier depth-tartanair.yaml définit les chemins et l’unique classe depth.

ultralytics/cfg/datasets/depth-tartanair.yaml
# 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 range

Utilisation#

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.

Exemple d’entraînement
from ultralytics import YOLO

# Charger un modèle
model = YOLO("yolo26n-depth.pt")  # charger un modèle préentraîné (recommandé pour l’entraînement)

# Entraîner le modèle
results = model.train(data="depth-tartanair.yaml", epochs=100, imgsz=640)

Modèles préentraînés#

La famille de modèles YOLO26 de profondeur (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 multis jeux de données auquel TartanAir contribue. 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 :

Citation
@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 remercions les créateurs de TartanAir d’avoir mis ce jeu de données synthétique varié à la disposition de la communauté de la vision par ordinateur.

FAQ#

  • TartanAir est un vaste jeu de données synthétique rendu dans le simulateur AirSim et conçu à l’origine pour mettre à l’épreuve le SLAM visuel. Il couvre des environnements intérieurs, extérieurs, urbains et naturels dans diverses conditions saisonnières, météorologiques et d’éclairage. Il contribue au mélange d’entraînement YOLO26-Depth avec 61 470 images (55 660 pour l’entraînement, 5 810 pour la validation), dotées d’une profondeur dense jusqu’à environ 80 m.

  • TartanAir ne propose pas de téléchargement automatique. Récupère les données RGB et de profondeur à l’aide des scripts tartanair_tools, puis convertis la profondeur float32 .npy en mètres en images PNG uint16 avec depth_scale: 256, en tronquant à 0 les pixels du ciel situés au-delà de 80 m. Réserve un ou plusieurs environnements pour la validation, comme indiqué dans Obtenir les données.

  • Exécute yolo depth train data=depth-tartanair.yaml model=yolo26n-depth.pt epochs=100 imgsz=640 ou utilise l’exemple Python de la section Utilisation. La page Entraînement répertorie tous les arguments disponibles.

Commentaires