Ultralytics YOLO27:

Датасет глубины TartanAir#

TartanAir — это крупномасштабный синтетический датасет, созданный в симуляторе AirSim. Он был создан, чтобы расширить пределы визуального SLAM, и охватывает широкий спектр сред — от помещений и улиц до городских и природных сцен, — а также различные времена года, погодные условия, варианты освещения и сложные условия.

Поскольку TartanAir отрисовывается в симуляции, он предоставляет плотную истинную глубину для этого разнообразного набора сцен, что делает его ценным источником разнообразия окружающей среды и геометрии на больших расстояниях для обучения монокулярных моделей оценки глубины.

Ключевые особенности#

  • Синтетические данные, созданные в симуляторе AirSim.
  • Разнообразные внутренние и внешние среды (городские и природные) с различиями по сезонам, погоде и освещению, а также сложные условия.
  • Плотная истинная глубина для всех сцен.
  • Диапазон глубины до ~80 м.
  • Вносит 61 470 изображений (55 660 для обучения / 5 810 для валидации) в набор данных для обучения глубине Ultralytics.

Структура датасета#

Датасет глубины TartanAir разделён на два поднабора:

  1. Train: 55 660 изображений с соответствующими плотными картами глубины для обучения.
  2. Val: 5 810 изображений с соответствующими плотными картами глубины для валидации во время обучения.

Каждому RGB-изображению соответствует масштабированная карта глубины PNG uint16 с 256 единицами на метр (depth_scale: 256) в соответствии с форматом датасетов глубины Ultralytics. Это представляет полный диапазон 80 м с разрешением 3,90625 мм.

Получение данных#

Для TartanAir нет автоматической загрузки — данные распространяет AirLab при CMU (условия см. на странице датасета), а загружаются они с помощью скриптов 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 м в соответствии с 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, 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")

Роль в YOLO26-Depth#

TartanAir — один из источников обучения в широком мультпдатасетном наборе (~2,19 млн изображений), используемом для предварительного обучения моделей Ultralytics YOLO26-Depth. В этом наборе 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

Использование#

Чтобы обучить модель YOLO26n-Depth на датасете TartanAir с размером изображения 640, можно использовать следующие фрагменты кода. Полный список доступных аргументов см. на странице обучения модели.

Пример обучения
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 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) автоматически загружается из релизов Ultralytics и обучается на широком мультпдатасетном наборе, частью которого является TartanAir. Изучи YOLO26x-depth на платформе Ultralytics.

Цитирование и благодарности#

Если ты используешь датасет 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. Он охватывает закрытые, открытые, городские и природные среды в различных условиях сезона, погоды и освещения, а также добавляет 61 470 изображений (55 660 для обучения, 5 810 для валидации) с плотной глубиной до примерно 80 м в набор для обучения YOLO26-Depth.

  • Для TartanAir нет автоматической загрузки. Загрузи данные RGB и глубины с помощью скриптов tartanair_tools, затем преобразуй глубину float32 .npy в метрах в PNG uint16 с помощью depth_scale: 256, обрезанные пиксели неба за пределами 80 м до 0. Отложи одну или несколько сред для валидации, как показано в Obtain the Data.

  • Запусти yolo depth train data=depth-tartanair.yaml model=yolo26n-depth.pt epochs=100 imgsz=640 или используй пример на Python в разделе Usage. На странице Training перечислены все доступные аргументы.

Участники

Комментарии