Ultralytics YOLO27:

Conjunto de dados de profundidade TartanAir#

TartanAir é um conjunto de dados sintético em larga escala, gerado no simulador AirSim. Ele foi criado para levar ao limite o SLAM visual e abrange uma ampla variedade de ambientes — internos, externos, urbanos e naturais —, além de variações sazonais, climáticas e de iluminação e condições desafiadoras.

Como o TartanAir é renderizado em simulação, ele fornece ground truth de profundidade denso em toda essa diversidade de cenas, tornando-o uma fonte valiosa 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 internos e externos variados (urbanos, naturais), com variações sazonais, climáticas e de iluminação, além de condições desafiadoras.
  • Ground truth de profundidade denso em todas as cenas.
  • Alcance de profundidade de ~80 m.
  • Contribui com 61.470 imagens (55.660 para treino / 5.810 para validação) para a combinação de treinamento de profundidade da Ultralytics.

Estrutura do conjunto de dados#

O conjunto de dados de profundidade TartanAir está dividido em dois subconjuntos:

  1. Treino: 55.660 imagens com mapas de profundidade densos correspondentes para treinamento.
  2. Val: 5.810 imagens com mapas de profundidade densos correspondentes para validação durante o treinamento.

Cada imagem RGB é pareada 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. Isso representa todo o alcance de 80 m com resolução de 3,90625 mm.

Obter os dados#

O TartanAir não oferece download automático — os dados são distribuídos pelo AirLab da CMU (consulte a página do conjunto de dados para ver os termos) e baixados 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 --unzip

A profundidade já está armazenada como .npy float32 em metros (depth_left/*_left_depth.npy junto a image_left/*_left.png), então a conversão consiste apenas em reorganizar os dados e invalidar o céu (renderizado como distâncias extremas; a combinação publicada limita os valores a 80 m para corresponder ao YAML do conjunto de dados). O TartanAir não inclui uma divisão oficial de validação — reserve um ou mais ambientes. Veja a 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, 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 no YOLO26-Depth#

O TartanAir é uma das fontes de treinamento na ampla combinação multiconjunto de dados (~2,19 milhões de imagens) usada para pré-treinar os modelos Ultralytics YOLO26-Depth. Nessa combinação, o TartanAir contribui com diversidade ambiental sintética e geometria externa de longo alcance que complementam as fontes internas e do mundo real.

Essa configuração não inclui um benchmark TartanAir independente com dados reservados. 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 outros dados relevantes do conjunto de dados. Para o TartanAir, o arquivo depth-tartanair.yaml define os caminhos e a única 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

Uso#

Para treinar um modelo YOLO26n-Depth no conjunto de dados TartanAir com tamanho de imagem 640, use os trechos de código a seguir. Para ver uma lista completa dos argumentos disponíveis, consulte a página de Treinamento do modelo.

Exemplo de treino
from ultralytics import YOLO

# Carregar um modelo
model = YOLO("yolo26n-depth.pt")  # carregue um modelo pré-treinado (recomendado para treinamento)

# Treinar o modelo
results = model.train(data="depth-tartanair.yaml", epochs=100, imgsz=640)

Modelos pré-treinados#

A família de modelos de profundidade YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) é baixada automaticamente dos lançamentos da Ultralytics e treinada com a ampla combinação multiconjunto de dados da qual o TartanAir faz parte. Explore o YOLO26x-depth na Ultralytics Platform.

Citações e agradecimentos#

Se você usar o conjunto de dados TartanAir em seu trabalho de pesquisa ou desenvolvimento, cite o artigo a seguir:

Citação
@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}
}

Agradecemos 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, originalmente criado para testar os limites do SLAM visual. Ele abrange ambientes internos, externos, urbanos e naturais, sob condições variadas de estação do ano, clima e iluminação, e contribui com 61.470 imagens (55.660 para treino, 5.810 para validação) com profundidade densa de até aproximadamente 80 m para a combinação de treinamento do YOLO26-Depth.

  • O TartanAir não oferece download automático. Obtenha os dados RGB e de profundidade com os scripts tartanair_tools e, em seguida, converta a profundidade float32 .npy em metros para PNGs uint16 com depth_scale: 256, limitando os pixels do céu além de 80 m a 0. Reserve um ou mais ambientes para validação, conforme mostrado em Obter os dados.

  • Executa yolo depth train data=depth-tartanair.yaml model=yolo26n-depth.pt epochs=100 imgsz=640 ou usa o exemplo em Python na secção Utilização. A página de Treinamento apresenta todos os argumentos disponíveis.

Comentários