TartanAir Depth 데이터셋#
TartanAir는 AirSim 시뮬레이터에서 생성된 대규모 합성 데이터셋입니다. 시각적 SLAM의 한계를 뛰어넘기 위해 제작되었으며, 계절, 날씨, 조명의 변화 및 까다로운 조건과 함께 실내, 실외, 도시, 자연 장면 등 매우 다양한 환경을 아우릅니다.
TartanAir는 시뮬레이션에서 렌더링되므로 이러한 다양한 장면에 걸쳐 조밀한 깊이 정답(ground truth)을 제공하며, 단안 depth estimation 모델을 훈련하기 위한 환경적 다양성과 장거리 기하학적 구조의 강력한 소스가 됩니다.
주요 특징#
- AirSim 시뮬레이터에서 생성된 합성 데이터입니다.
- 계절, 날씨, 조명 변화 및 까다로운 조건을 포함하는 다양한 실내외 환경(도시, 자연).
- 모든 장면에 대한 밀도 높은 depth ground truth.
- 최대 ~80 m의 depth 범위.
- Ultralytics depth 학습 조합에 61,470개의 이미지(훈련용 55,660개 / 검증용 5,810개)를 기여합니다.
데이터셋 구조#
TartanAir depth 데이터셋은 두 개의 하위 세트로 나뉩니다:
- Train: 학습을 위한 밀도 높은 depth 맵 쌍이 포함된 55,660개의 이미지.
- Val: 학습 중 검증을 위한 밀도 높은 depth 맵 쌍이 포함된 5,810개의 이미지.
각 RGB 이미지는 미터 단위의 픽셀별 거리를 저장하는 .npy float32 깊이 맵과 쌍을 이루며, Ultralytics depth dataset format을 따릅니다.
데이터 획득#
TartanAir는 자동 다운로드를 지원하지 않습니다. 데이터는 CMU의 AirLab에서 배포하며(약관은 dataset page 참고) 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깊이는 이미 미터 단위의 float32 .npy(depth_left/*_left_depth.npy 및 image_left/*_left.png)로 저장되어 있으므로, 변환은 단순히 재배열하고 하늘을 무효화하는 것만으로 충분합니다(하늘은 극단적인 거리로 렌더링되며, 공개된 믹스는 dataset YAML에 맞추기 위해 80m에서 잘립니다). TartanAir는 공식 검증(val) 분할을 제공하지 않으므로 하나 이상의 환경을 홀드아웃(hold out)하세요. Ultralytics depth dataset format으로의 참조 변환:
import shutil
from pathlib import Path
import numpy as np
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}"
np.save(dst / f"depth/{out}/{name}.npy", depth)
shutil.copy(depth_file.parents[1] / "image_left" / f"{frame}.png", dst / f"images/{out}/{name}.png")YOLO26-Depth에서의 역할#
TartanAir는 Ultralytics YOLO26-Depth 모델을 사전 학습하는 데 사용되는 광범위한 다중 데이터셋 조합(~2.19M 이미지)의 학습 소스 중 하나입니다. 이 조합 내에서 TartanAir는 실내 및 실제 환경 소스를 보완하는 합성 환경의 다양성과 장거리 실외 기하학 정보를 제공합니다.
이 설정에는 별도의 독립된 TartanAir 벤치마크가 없습니다. 대신, 결과 모델은 표준 단안 depth 벤치마크인 NYU Depth V2, KITTI, Make3D, ETH3D 및 iBims-1에서 평가됩니다.
데이터셋 YAML#
데이터셋 구성을 정의하는 데는 YAML(Yet Another Markup Language) 파일이 사용됩니다. 이 파일에는 데이터셋의 경로, 클래스 및 기타 관련 정보가 포함되어 있습니다. TartanAir의 경우 depth-tartanair.yaml 파일이 경로와 단일 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 *.npy, float32 meters (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사용법#
640 이미지 크기로 TartanAir 데이터셋에서 YOLO26n-Depth 모델을 훈련하려면 다음 코드 조각을 사용할 수 있습니다. 사용 가능한 인수에 대한 자세한 내용은 모델 Training 페이지를 참조하십시오.
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)사전 학습된 모델#
YOLO26 depth 패밀리(yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt)는 Ultralytics 릴리스에서 자동으로 다운로드되며 TartanAir가 속한 광범위한 다중 데이터셋 믹스로 훈련됩니다. Ultralytics Platform에서 YOLO26x-depth를 살펴보세요.
인용 및 감사의 글#
연구 또는 개발 작업에 TartanAir 데이터셋을 사용하는 경우 다음 논문을 인용해 주십시오:
@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}
}컴퓨터 비전 커뮤니티가 이 다양한 합성 데이터셋을 사용할 수 있게 해 준 TartanAir 제작자들에게 감사를 표합니다.