TartanAir 深度数据集#
TartanAir 是一个在 AirSim 模拟器中生成的大规模合成数据集。该数据集旨在突破视觉 SLAM 的极限,涵盖室内、室外、城市和自然等多种环境,以及不同季节、天气和光照条件,并包含具有挑战性的场景。
由于 TartanAir 在模拟环境中渲染,因此能为这些多样化场景提供稠密深度真值,为训练单目深度估计模型提供丰富的环境多样性和远距离几何信息。
主要功能#
- 在 AirSim 模拟器中生成的合成数据。
- 多样的室内和室外环境(城市、自然),涵盖不同季节、天气和光照条件,以及具有挑战性的场景。
- 所有场景均提供稠密深度真值。
- 深度范围约为 ~80 m。
- 为 Ultralytics 深度训练混合贡献 61,470 张图像(55,660 张训练图像 / 5,810 张验证图像)。
数据集结构#
TartanAir 深度数据集分为两个子集:
- Train:55,660 张图像及其配对的稠密深度图,用于训练。
- Val:5,810 张图像及其配对的稠密深度图,用于训练期间的验证。
每张 RGB 图像都配有一张缩放后的 uint16 深度 PNG,每米 256 个单位(depth_scale: 256),并遵循 Ultralytics 深度数据集格式。该格式以 3.90625 mm 的分辨率表示完整的 80 m 范围。
获取数据#
TartanAir 不支持自动下载——数据由 CMU 的 AirLab 分发(使用条款请参阅数据集页面),可通过 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 旁边),因此只需重新排列数据并将天空区域设为无效值即可转换(天空被渲染为极远距离;发布版混合数据会将其截断为 80 m,以匹配数据集 YAML)。TartanAir 没有官方验证集划分——请留出一个或多个环境作为验证集。转换为 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")在 YOLO26-Depth 中的作用#
TartanAir 是用于预训练 Ultralytics YOLO26-Depth 模型的广泛多数据集混合(约 ~2.19M 张图像)中的一个训练来源。在这一混合数据集中,TartanAir 提供合成环境多样性和远距离室外几何信息,与室内及真实世界数据来源相辅相成。
此配置中没有单独留出的 TartanAir 基准。相反,生成的模型会在 NYU Depth V2、KITTI、Make3D、ETH3D 和 iBims-1 等标准单目深度基准上进行评估。
数据集 YAML#
使用 YAML 文件定义数据集配置,其中包含数据集路径、类别和其他相关信息。对于 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 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用法#
要使用 TartanAir 数据集训练图像尺寸为 640 的 YOLO26n-Depth 模型,可以使用以下代码片段。有关可用参数的完整列表,请参阅模型的训练页面。
from ultralytics import YOLO
# 加载模型
model = YOLO("yolo26n-depth.pt") # 加载预训练模型(推荐用于训练)
# 训练模型
results = model.train(data="depth-tartanair.yaml", epochs=100, imgsz=640)预训练模型#
YOLO26 深度模型系列(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 的创建者向计算机视觉社区提供这个多样化的合成数据集。
常见问题#
TartanAir 是一个在 AirSim 模拟器中渲染的大型合成数据集,最初旨在对视觉 SLAM 进行压力测试。它涵盖室内、室外、城市和自然环境,以及多种季节、天气和光照条件,并为 YOLO26-Depth 训练混合贡献了 61,470 张图像(55,660 张训练图像,5,810 张验证图像),提供稠密深度,范围约为 80 m。
TartanAir 不支持自动下载。使用 tartanair_tools 脚本获取 RGB 和深度数据,然后使用
depth_scale: 256将以米为单位的 float32.npy深度转换为 uint16 PNG,并将超过 80 m 的天空像素截断为0。如获取数据所示,留出一个或多个环境用于验证。