Dataset de profundidade TartanAir#
TartanAir é um conjunto de dados sintético de grande escala gerado no simulador AirSim. Foi criado para expandir os limites do SLAM visual e abrange uma grande variedade de ambientes — interiores, exteriores, cenários urbanos e naturais — além de variações sazonais, meteorológicas e de iluminação, bem como condições desafiantes.
Como o TartanAir é renderizado em simulação, fornece dados de referência densos de profundidade para este conjunto diversificado de cenários, sendo uma fonte sólida de diversidade ambiental e geometria de longo alcance para treinar modelos de estimativa de profundidade monocular.
Principais funcionalidades#
- Dados sintéticos gerados no simulador AirSim.
- Ambientes interiores e exteriores diversificados (urbanos e naturais), com variações sazonais, meteorológicas e de iluminação, além de condições desafiantes.
- Dados de referência de profundidade densos em todos os cenários.
- Alcance de profundidade de ~80 m.
- Contribui com 61 470 imagens (55 660 para treino / 5 810 para validação) para a mistura de treino de profundidade da Ultralytics.
Estrutura do Conjunto de Dados#
O conjunto de dados de profundidade TartanAir está dividido em dois subconjuntos:
- Treino: 55 660 imagens com mapas de profundidade densos emparelhados para treino.
- Validação: 5 810 imagens com mapas de profundidade densos emparelhados para validação durante o treino.
Cada imagem RGB é emparelhada com um PNG de profundidade uint16 escalado, com 256 unidades por metro (depth_scale: 256), seguindo o formato de conjunto de dados de profundidade da Ultralytics. Isto representa o alcance total de 80 m com uma resolução de 3,90625 mm.
Obter os dados#
O TartanAir não tem download automático — os dados são distribuídos pelo AirLab da CMU (consulta a página do conjunto de dados para conhecer os termos) e descarregados com os 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 --unzipA profundidade já está armazenada como float32 .npy em metros (depth_left/*_left_depth.npy junto a image_left/*_left.png), pelo que a conversão consiste apenas em reorganizar os dados e invalidar o céu (renderizado como distâncias extremas; a mistura publicada limita os valores a 80 m para corresponder ao YAML do conjunto de dados). O TartanAir não fornece uma divisão oficial de validação — reserva um ou mais ambientes. Conversão de referência para o formato de conjunto de dados de profundidade da 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")Função no YOLO26-Depth#
O TartanAir é uma das fontes de treino da ampla mistura de vários conjuntos de dados (~2.19M de imagens) utilizada para pré-treinar os modelos Ultralytics YOLO26-Depth. Nesta mistura, o TartanAir contribui com diversidade ambiental sintética e geometria exterior de longo alcance, complementando fontes interiores e do mundo real.
Não existe uma referência TartanAir autónoma com dados reservados para teste nesta configuração. Em vez disso, os modelos resultantes são avaliados nos benchmarks padrão de profundidade monocular: NYU Depth V2, KITTI, Make3D, ETH3D e iBims-1.
YAML do Conjunto de Dados#
Um arquivo YAML é usado para definir a configuração do conjunto de dados. Ele contém informações sobre os caminhos, as classes e outras informações relevantes do conjunto de dados. Para o TartanAir, o arquivo depth-tartanair.yaml define os caminhos e a classe única 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 rangeUtilização#
Para treinar um modelo YOLO26n-Depth no conjunto de dados TartanAir com um tamanho de imagem de 640, podes utilizar os seguintes trechos de código. Para obter uma lista abrangente dos argumentos disponíveis, consulta a página de Treino do 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 pré-treinados#
A família de profundidade YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) é descarregada automaticamente a partir das versões da Ultralytics e é treinada na ampla mistura de vários conjuntos de dados da qual o TartanAir faz parte. Explora o YOLO26x-depth na Ultralytics Platform.
Citações e agradecimentos#
Se utilizares o conjunto de dados TartanAir no teu trabalho de investigação ou desenvolvimento, cita o seguinte artigo:
@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}
}Gostaríamos de agradecer aos criadores do TartanAir por disponibilizarem este conjunto de dados sintético e diversificado à comunidade de visão computacional.
Perguntas frequentes#
O TartanAir é um grande conjunto de dados sintético renderizado no simulador AirSim, construído originalmente para testar o SLAM visual. Ele abrange ambientes internos, externos, urbanos e naturais sob condições variadas de estação, clima e iluminação, e contribui com 61.470 imagens (55.660 de treino, 5.810 de validação) com profundidade densa de até aproximadamente 80 m para a composição de treinamento do YOLO26-Depth.
O TartanAir não possui download automático. Obtenha os dados RGB e de profundidade com os scripts de tartanair_tools e, em seguida, converta a profundidade float32 de
.npyem metros para PNGs uint16 comdepth_scale: 256, cortando os pixels do céu além de 80 m para0. Separe um ou mais ambientes para validação, conforme mostrado em Obobtain the Data.