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 llevar al límite el SLAM visual y abarca una gran variedad de entornos —interiores, exteriores, urbanos y naturales—, así como variaciones estacionales, meteorológicas y de iluminación, además de condiciones difíciles.
Como TartanAir se renderiza mediante simulación, proporciona datos de referencia de profundidad densos en esta variada colección de escenas, lo que lo convierte en una fuente excelente de diversidad de entornos y geometría de largo alcance para entrenar modelos de estimación de profundidad monocular.
Características principales#
- Datos sintéticos generados en el simulador AirSim.
- Diversos entornos interiores y exteriores (urbanos y naturales), con variaciones estacionales, meteorológicas y de iluminación, además de condiciones difíciles.
- Datos de referencia de profundidad densos en todas las escenas.
- Alcance de profundidad de ~80 m.
- Aporta 61 470 imágenes (55 660 para entrenamiento y 5810 para validación) a la combinación de entrenamiento de profundidad de Ultralytics.
Estructura del conjunto de datos#
El conjunto de datos de profundidad TartanAir se divide en dos subconjuntos:
- Train: 55 660 imágenes con mapas de profundidad densos asociados para el entrenamiento.
- Val: 5810 imágenes con mapas de profundidad densos asociados para la validación durante el entrenamiento.
Cada imagen RGB está asociada a un PNG de profundidad uint16 escalado con 256 unidades por metro (depth_scale: 256), de acuerdo con el formato de conjuntos de datos de profundidad de Ultralytics. Esto representa el alcance completo de 80 m con una resolución de 3,90625 mm.
Obtén los datos#
TartanAir no ofrece descarga automática: CMU's AirLab distribuye los datos (consulta las condiciones en la página del conjunto de datos) y se descargan mediante los 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 profundidad ya está almacenada como float32 .npy en metros (depth_left/*_left_depth.npy junto a image_left/*_left.png), así que la conversión solo requiere reorganizar los datos e invalidar el cielo (representado como distancias extremas; la combinación publicada limita los valores a 80 m para ajustarse al YAML del conjunto de datos). TartanAir no incluye una partición oficial de validación; reserva uno o varios entornos. Conversión de referencia al formato de conjuntos 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, 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")Papel de YOLO26-Depth#
TartanAir es una de las fuentes de entrenamiento de la amplia combinación multiconjunto de datos (~2,19 millones de imágenes) que se usa para preentrenar los modelos Ultralytics YOLO26-Depth. En esta combinación, TartanAir aporta diversidad de entornos sintéticos y geometría exterior de largo alcance, que complementan las fuentes de interiores y del mundo real.
En esta configuración no hay un benchmark independiente de TartanAir con datos reservados. En su lugar, los modelos resultantes se evalúan con los benchmarks estándar de profundidad monocular: NYU Depth V2, KITTI, Make3D, ETH3D e iBims-1.
YAML del conjunto de datos#
Se usa un archivo YAML para definir la configuración del conjunto de datos. Contiene información sobre las rutas, las clases y otros datos relevantes del conjunto. En el caso de 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 usar los siguientes fragmentos de código. Consulta la página de Entrenamiento del modelo para ver la lista completa de argumentos disponibles.
from ultralytics import YOLO
# Cargar un modelo
model = YOLO("yolo26n-depth.pt") # Carga un modelo preentrenado (recomendado para el entrenamiento)
# Entrenar el modelo
results = model.train(data="depth-tartanair.yaml", epochs=100, imgsz=640)Modelos preentrenados#
La familia de modelos YOLO26 de profundidad (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 multiconjunto 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 tus trabajos 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 dar las gracias a los creadores de TartanAir por poner este diverso conjunto de datos sintético a disposición de la comunidad de visión artificial.
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 interiores, exteriores, urbanos y naturales con distintas condiciones estacionales, meteorológicas y de iluminación, y aporta 61 470 imágenes (55 660 para entrenamiento y 5810 para validación) con profundidad densa de hasta unos 80 m a la combinación de entrenamiento de YOLO26-Depth.
TartanAir no ofrece descarga automática. Descarga los datos RGB y de profundidad con los scripts tartanair_tools y, a continuación, convierte la profundidad float32
.npyen metros a PNG uint16 condepth_scale: 256, limitando los píxeles del cielo que superen los 80 m a0. Reserva uno o varios entornos para la validación, como se muestra en Obtener los datos.Ejecuta
yolo depth train data=depth-tartanair.yaml model=yolo26n-depth.pt epochs=100 imgsz=640o usa el ejemplo de Python de la sección Uso. La página de Entrenamiento enumera todos los argumentos disponibles.