YOLO Vision 2026:

Набор данных Virtual KITTI 2 Depth#

Virtual KITTI 2 (vKITTI2) — это фотореалистичная синтетическая реконструкция сценариев вождения KITTI. Она дублирует 5 последовательностей из оригинального датасета KITTI и рендерит их заново в различных условиях погоды и освещенности, предоставляя плотные попиксельные истинные метки.

Будучи синтетическим датасетом для вождения на открытом воздухе, vKITTI2 предлагает плотный аналог разреженных данных реального лидара KITTI, что делает его полезным источником чистой геометрии вождения на открытом воздухе для обучения моделей монокулярной оценки глубины.

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

  • Фотореалистичная синтетическая копия сцен вождения KITTI.
  • 5 клонированных последовательностей, отрендеренных в различных погодных условиях и при разном освещении.
  • Среды вождения на открытом воздухе.
  • Плотные данные per-pixel ground truth (плотный аналог разреженных реальных данных LiDAR из KITTI).
  • Диапазон глубины ~80 м.
  • Содержит 42 520 изображений (25 780 для обучения / 16 740 для валидации) в составе общего набора данных для обучения моделей глубины Ultralytics.

Структура набора данных#

Набор данных глубины Virtual KITTI 2 разделен на два подмножества:

  1. Train: 25 780 изображений с парными картами плотной глубины для обучения.
  2. Val: 16 740 изображений с парными картами плотной глубины для валидации во время обучения.

Каждое RGB-изображение сопряжено с картой глубины .npy в формате float32, которая хранит расстояния для каждого пикселя в метрах в соответствии с форматом датасетов глубины Ultralytics.

Роль в YOLO26-Depth#

Virtual KITTI 2 является одним из источников для обучения в широком наборе данных (~2,19 млн изображений), используемом для предварительного обучения моделей Ultralytics YOLO26-Depth. В этом наборе vKITTI2 предоставляет плотный синтетический аналог данных вождения на открытом воздухе для разреженных реальных данных ground truth LiDAR из KITTI.

В этой конфигурации нет отдельного независимого бенчмарка vKITTI2. Вместо этого результирующие модели оцениваются на стандартных бенчмарках монокулярной глубины: NYU Depth V2, KITTI, Make3D, ETH3D и iBims-1.

YAML набора данных#

Файл YAML (Yet Another Markup Language) используется для определения конфигурации датасета. Он содержит информацию о путях датасета, классах и прочие важные данные. Для Virtual KITTI 2 файл depth-vkitti2.yaml определяет пути и единственный класс depth.

ultralytics/cfg/datasets/depth-vkitti2.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Virtual KITTI 2 dataset for monocular depth estimation — photorealistic synthetic outdoor driving, dense per-pixel depth
# Documentation: https://docs.ultralytics.com/datasets/depth/vkitti2
# Example usage: yolo depth train data=depth-vkitti2.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
#     └── depth-vkitti2  ← downloads here (15 GB archives, ~85 GB converted)
#         ├── images/{train,val}  # RGB images
#         └── depth/{train,val}   # paired *.npy, float32 meters (images/ -> depth/)
# If an interrupted download leaves a partial dataset, delete the depth-vkitti2 dir and re-run to rebuild it.

path: depth-vkitti2 # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 25780 images
val: images/val # val images (relative to 'path') 16740 images
max_depth: 80 # (m) maximum valid depth; GT beyond this is excluded from val metrics

nc: 1
names:
  0: depth

channels: 3

# Download script/URL (optional)
download: |
  import shutil
  from pathlib import Path

  import cv2
  import numpy as np

  from ultralytics.utils import TQDM
  from ultralytics.utils.downloads import download

  # Download and extract the official RGB + depth tars (~15 GB), then convert: Scene20 -> val, all
  # other scenes -> train; depth PNGs are uint16 centimeters (sky = 655.35 m), clipped at 80 m
  dir = Path(yaml["path"])  # dataset root dir
  urls = [f"https://download.europe.naverlabs.com/virtual_kitti_2.0.3/vkitti_2.0.3_{s}.tar" for s in ("rgb", "depth")]
  download(urls, dir=dir / "source", delete=True)
  for split in ("train", "val"):
      (dir / "images" / split).mkdir(parents=True, exist_ok=True)
      (dir / "depth" / split).mkdir(parents=True, exist_ok=True)
  for im in TQDM(sorted((dir / "source").rglob("rgb_*.jpg")), desc="Converting"):
      scene, variation, camera = im.parts[-6], im.parts[-5], im.parts[-2]  # Scene01/clone/frames/rgb/Camera_0/rgb_00000.jpg
      split = "val" if scene == "Scene20" else "train"
      name = f"{scene}_{variation}_{camera}_{im.stem[4:]}"
      depth = cv2.imread(str(im.parents[2] / "depth" / camera / f"depth_{im.stem[4:]}.png"), cv2.IMREAD_ANYDEPTH)
      np.save(dir / "depth" / split / f"{name}.npy", (depth.astype(np.float32) / 100.0).clip(max=80))  # cm -> m
      im.replace(dir / "images" / split / f"{name}.jpg")
  shutil.rmtree(dir / "source")

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

Чтобы обучить модель YOLO26n-Depth на датасете Virtual KITTI 2 с размером изображения 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-vkitti2.yaml", epochs=100, imgsz=640)

Предварительно обученные модели#

Семейство моделей глубины YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) автоматически скачивается из релизов Ultralytics и обучено на широком миксе из нескольких датасетов, частью которого является Virtual KITTI 2. Изучи YOLO26x-depth на платформе Ultralytics Platform.

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

Если ты используешь набор данных Virtual KITTI 2 в своих исследованиях или разработках, пожалуйста, сошлися на следующую статью:

Цитата
@article{cabon2020vkitti2,
      title={Virtual KITTI 2},
      author={Yohann Cabon and Naila Murray and Martin Humenberger},
      journal={arXiv preprint arXiv:2001.10773},
      year={2020}
}

Мы хотели бы поблагодарить создателей Virtual KITTI 2 за предоставление этого синтетического набора данных по вождению сообществу компьютерного зрения.

Участники

Комментарии