Ultralytics YOLO27:
Get Started

TartanAir 深度数据集#

TartanAir 是一个在 AirSim 模拟器中生成的大规模合成数据集。该数据集旨在突破视觉 SLAM 的极限,涵盖室内、室外、城市和自然等多种环境,以及不同季节、天气和光照条件,并包含具有挑战性的场景。

由于 TartanAir 在模拟环境中渲染,因此能为这些多样化场景提供稠密深度真值,为训练单目深度估计模型提供丰富的环境多样性和远距离几何信息。

主要功能#

  • 在 AirSim 模拟器中生成的合成数据。
  • 多样的室内和室外环境(城市、自然),涵盖不同季节、天气和光照条件,以及具有挑战性的场景。
  • 所有场景均提供稠密深度真值。
  • 深度范围约为 ~80 m。
  • 为 Ultralytics 深度训练混合贡献 61,470 张图像(55,660 张训练图像 / 5,810 张验证图像)。

数据集结构#

TartanAir 深度数据集分为两个子集:

  1. Train:55,660 张图像及其配对的稠密深度图,用于训练。
  2. 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/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

用法#

要使用 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。如获取数据所示,留出一个或多个环境用于验证。

  • 运行 yolo depth train data=depth-tartanair.yaml model=yolo26n-depth.pt epochs=100 imgsz=640,或使用用法部分中的 Python 示例。训练页面列出了所有可用参数。

评论