Conjunto de datos de profundidad TartanAir#
TartanAir es un conjunto de datos sintético a gran escala generado en el simulador AirSim. Se creó para ampliar los límites del SLAM visual y abarca una gran variedad de entornos —interiores, exteriores, urbanos y naturales—, además de variaciones estacionales, meteorológicas y de iluminación, junto con condiciones exigentes.
Como TartanAir se renderiza mediante simulación, proporciona ground truth de profundidad denso en este conjunto diverso de escenas, lo que lo convierte en una fuente excelente de diversidad ambiental y geometría de largo alcance para entrenar modelos monoculares de estimación de profundidad.
Características principales#
- Datos sintéticos generados en el simulador AirSim.
- Entornos diversos de interior y exterior (urbanos y naturales), con variaciones estacionales, meteorológicas y de iluminación, además de condiciones exigentes.
- Ground truth de profundidad denso en todas las escenas.
- Rango de profundidad de ~80 m.
- Aporta 61,470 imágenes (55,660 para entrenamiento / 5,810 para validación) a la combinación de datos de entrenamiento de profundidad de Ultralytics.
Estructura del dataset#
El conjunto de datos de profundidad TartanAir se divide en dos subconjuntos:
- Train: 55,660 imágenes con mapas de profundidad densos emparejados para el entrenamiento.
- Val: 5,810 imágenes con mapas de profundidad densos emparejados para la validación durante el entrenamiento.
Cada imagen RGB se empareja con un PNG de profundidad uint16 escalado, con 256 unidades por metro (depth_scale: 256), siguiendo el formato de conjunto de datos de profundidad de Ultralytics. Esto representa el rango completo de 80 m con una resolución de 3,90625 mm.
Obtén los datos#
TartanAir no dispone de descarga automática; los datos los distribuye AirLab de CMU (consulta la página del conjunto de datos para conocer las condiciones) y se descargan mediante los scripts de 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 profundidad ya está almacenada como float32 .npy en metros (depth_left/*_left_depth.npy junto a image_left/*_left.png), por lo que la conversión consiste únicamente en reorganizar los datos e invalidar el cielo (renderizado como distancias extremas; la combinación publicada recorta a 80 m para coincidir con el YAML del conjunto de datos). TartanAir no incluye ninguna división oficial de validación; reserva uno o varios entornos. Conversión de referencia al formato de conjunto de datos de profundidad de 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")Papel en YOLO26-Depth#
TartanAir es una de las fuentes de entrenamiento de la amplia combinación de múltiples conjuntos de datos (~2,19 M de imágenes) utilizada para preentrenar los modelos Ultralytics YOLO26-Depth. Dentro de esta combinación, TartanAir aporta diversidad ambiental sintética y geometría exterior de largo alcance, que complementan las fuentes de interiores y del mundo real.
En esta configuración no existe ningún benchmark independiente de TartanAir con datos reservados. En su lugar, los modelos resultantes se evalúan en los benchmarks estándar de profundidad monocular: NYU Depth V2, KITTI, Make3D, ETH3D e iBims-1.
YAML del dataset#
Se utiliza un archivo YAML para definir la configuración del conjunto de datos. Contiene información sobre las rutas, las clases y otra información relevante del conjunto de datos. Para TartanAir, el archivo depth-tartanair.yaml define las rutas y la única clase 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 rangeUso#
Para entrenar un modelo YOLO26n-Depth con el conjunto de datos TartanAir y un tamaño de imagen de 640, puedes utilizar los siguientes fragmentos de código. Para consultar una lista completa de los argumentos disponibles, visita la página de entrenamiento del modelo.
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)Modelos preentrenados#
La familia de profundidad YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) se descarga automáticamente desde las versiones de Ultralytics y se entrena con la amplia combinación de múltiples conjuntos de datos de la que forma parte TartanAir. Explora YOLO26x-depth en Ultralytics Platform.
Citas y agradecimientos#
Si utilizas el conjunto de datos TartanAir en tu trabajo de investigación o desarrollo, cita el siguiente artículo:
@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}
}Queremos agradecer a los creadores de TartanAir que hayan puesto este diverso conjunto de datos sintético a disposición de la comunidad de visión por computador.
Preguntas frecuentes#
TartanAir es un gran conjunto de datos sintético renderizado en el simulador AirSim, creado originalmente para poner a prueba el SLAM visual. Abarca entornos de interior, de exterior, urbanos y naturales bajo diversas condiciones de estación, clima e iluminación, y aporta 61 470 imágenes (55 660 de entrenamiento, 5810 de validación) con profundidad densa de hasta aproximadamente 80 m a la mezcla de entrenamiento de YOLO26-Depth.
TartanAir no dispone de descarga automática. Obtén los datos RGB y de profundidad con los scripts de tartanair_tools, luego convierte la profundidad en metros de tipo float32 de
.npya archivos PNG uint16 condepth_scale: 256, recortando los píxeles del cielo más allá de 80 m a0. Reserva uno o más entornos para la validación, tal como se muestra en Obtain the Data.Ejecuta
yolo depth train data=depth-tartanair.yaml model=yolo26n-depth.pt epochs=100 imgsz=640, o utiliza el ejemplo de Python en la sección Uso. La página Entrenamiento enumera todos los argumentos disponibles.