YOLO Vision 2026:

Набор данных глубины DIODE#

DIODE (Dense Indoor/Outdoor DEpth) — это реальный набор данных с очень высококачественной плотной глубиной (ground truth), полученной с помощью лазерного сканера геодезического класса FARO Focus. Уникальность в том, что он охватывает как внутренние, так и внешние сцены с помощью одного и того же датчика, создавая высокоточный мост между близкофокусной внутренней и дальнобойной внешней глубиной для оценки монокулярной глубины.

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

  • Очень качественная плотная «истинная» карта глубины (ground truth) с лазерного сканера геодезического класса FARO Focus.
  • Охватывает как внутренние, так и наружные сцены, снятые одним и тем же сенсором.
  • Диапазон глубины охватывает как короткие расстояния в помещении, так и длинные на открытом воздухе, до примерно 80 м в составе Ultralytics mix.
  • Плотная, точная попиксельная «истинная» карта глубины (ground truth), выровненная с кадрами RGB.
  • Предоставляет высокоточную плотную «истинную» карту (ground truth), которая объединяет домены помещений и открытых пространств.

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

Набор данных глубины DIODE разделен на две части:

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

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

Роль в YOLO26-Depth#

DIODE является источником обучения в составе набора данных для предварительного обучения Ultralytics YOLO26-Depth, который включает около 2,19 млн пар изображение–глубина. Он предоставляет высокоточные плотные «истинные» данные (ground truth), которые соединяют домены помещений и открытых пространств в рамках одного сенсора, помогая модели обобщать данные для сцен как на коротких, так и на больших дистанциях. Полученные модели оцениваются по стандартным бенчмаркам NYU, KITTI, Make3D, ETH3D и iBims-1.

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

YAML-файл (Yet Another Markup Language) используется для определения конфигурации набора данных. Он содержит информацию о путях к данным, классах и другую соответствующую информацию.

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

# DIODE dataset for monocular depth estimation — real indoor + outdoor, FARO Focus survey-grade laser, depth up to ~80 m
# Documentation: https://docs.ultralytics.com/datasets/depth/diode
# Example usage: yolo depth train data=depth-diode.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
#     └── depth-diode  ← downloads here (84 GB archives, ~90 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-diode dir and re-run to rebuild it.

path: depth-diode # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 25458 images
val: images/val # val images (relative to 'path') 771 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 numpy as np

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

  # Download and extract the official archives (train ~81 GB, val ~2.6 GB), then convert:
  # flatten <split>/<scene>/<scan>/*.png into images/<split>/ and save the paired *_depth.npy
  # (masked invalid -> 0, clipped at 80 m) as depth/<split>/*.npy
  dir = Path(yaml["path"])  # dataset root dir
  download([f"https://diode-dataset.s3.amazonaws.com/{s}.tar.gz" for s in ("train", "val")], 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" / split).rglob("*.png")), desc=f"Converting {split}"):
          name = "_".join(im.relative_to(dir / "source").parts)  # train/indoors/scene/scan/x.png -> train_indoors_scene_scan_x.png
          depth = np.load(im.with_name(f"{im.stem}_depth.npy")).squeeze().astype(np.float32)
          depth[np.load(im.with_name(f"{im.stem}_depth_mask.npy")) == 0] = 0.0  # zero out invalid pixels
          np.save(dir / "depth" / split / f"{name[:-4]}.npy", depth.clip(max=80))
          im.replace(dir / "images" / split / name)
  shutil.rmtree(dir / "source")

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

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

Пример обучения
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-depth.pt")  # load a pretrained depth model (recommended for training)

# Train the model
results = model.train(data="depth-diode.yaml", epochs=100, imgsz=640)

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

Семейство моделей YOLO26 depth обучается на широком мультидасетном миксе предварительного обучения по глубине, частью которого является DIODE. Эти модели автоматически скачиваются из последнего релиза Ultralytics, например YOLO26x-depth начиная с версии v8.4.0, и охватывают ряд размеров для различных требований к точности и ресурсам.

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

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

Цитата
@article{vasiljevic2019diode,
      title={DIODE: A Dense Indoor and Outdoor DEpth Dataset},
      author={Vasiljevic, Igor and Kolkin, Nick and Zhang, Shanyi and Luo, Ruotian and Wang, Haochen and Dai, Falcon Z. and Daniele, Andrea F. and Mostajabi, Mohammadreza and Basart, Steven and Walter, Matthew R. and Shakhnarovich, Gregory},
      journal={arXiv preprint arXiv:1908.00463},
      year={2019}
}

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

Участники

Комментарии