Sicherheit auf Unternehmensebene: ISO 27001 + SOC 2 Typ I konform.

Link to this sectionDIODE Tiefendatensatz#

DIODE (Dense Indoor/Outdoor DEpth) ist ein realer Datensatz mit sehr hochwertigen, dichten Tiefen-Ground-Truth-Daten, die mit einem FARO Focus Laserscanner in Vermessungsqualität erfasst wurden. Das Besondere daran ist, dass er sowohl Innen- als auch Außenaufnahmen mit demselben Sensor abdeckt und damit eine hochpräzise Brücke zwischen der Tiefenbestimmung im Nahbereich (Innen) und im Fernbereich (Außen) für die monokulare Tiefenschätzung schlägt.

Link to this sectionHauptfunktionen#

  • Sehr hochwertige dichte Tiefen-Ground-Truth-Daten von einem FARO Focus Laserscanner in Vermessungsqualität.
  • Deckt sowohl Innen- als auch Außenaufnahmen ab, die mit demselben Sensor erfasst wurden.
  • Der Tiefenbereich erstreckt sich von kurzen Innenraumdistanzen bis zu langen Außenraumdistanzen von bis zu etwa 80 m im Ultralytics Mix.
  • Dichte, präzise Pixel-Ground-Truth, die an den RGB-Frames ausgerichtet ist.
  • Bietet hochpräzise, dichte Ground-Truth-Daten, die Innen- und Außenbereiche miteinander verbinden.

Link to this sectionDatensatzstruktur#

Der DIODE Tiefendatensatz ist in zwei Teilmengen unterteilt:

  1. Train: 25.458 Bilder mit zugehörigen Tiefenkarten für das Training.
  2. Val: 771 Bilder mit zugehörigen Tiefenkarten zur Validierung während des Modelltrainings.

Jedes Beispiel besteht aus einem RGB-Bild und einer zugehörigen .npy float32 Tiefenkarte, die per-Pixel-Distanzen in Metern speichert, gemäß dem Ultralytics depth dataset format.

Link to this sectionRolle in YOLO26-Depth#

DIODE ist eine Trainingsquelle im Ultralytics YOLO26-Depth Multi-Datensatz-Pretraining-Mix aus etwa 2,19 Millionen Bild-Tiefen-Paaren. Er liefert hochpräzise, dichte Ground-Truth-Daten, die Innen- und Außenbereiche mit einem einzigen Sensor verbinden und dem Modell helfen, sowohl bei Nahbereichs- als auch bei Fernbereichsszenen zu generalisieren. Die resultierenden Modelle werden auf den Standard-Benchmarks NYU, KITTI, Make3D, ETH3D und iBims-1 evaluiert.

Link to this sectionDatensatz-YAML#

Eine YAML-Datei (Yet Another Markup Language) wird verwendet, um die Dataset-Konfiguration zu definieren. Sie enthält Informationen über die Pfade, Klassen und andere relevante Details des Datensatzes.

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")

Link to this sectionVerwendung#

Um ein YOLO26n-depth Modell auf dem DIODE Datensatz mit einer Bildgröße von 640 zu trainieren, kannst du die folgenden Code-Schnipsel verwenden. Eine vollständige Liste der verfügbaren Argumente findest du auf der Seite Training des Modells.

Trainingsbeispiel
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)

Link to this sectionVortrainierte Modelle#

Die YOLO26 Depth-Familie wird auf dem breiten Multi-Datensatz-Tiefen-Pretraining-Mix trainiert, zu dem auch DIODE gehört. Diese Modelle laden automatisch von der neuesten Ultralytics-Version herunter, zum Beispiel YOLO26x-depth aus v8.4.0, und decken eine Reihe von Größen für unterschiedliche Genauigkeits- und Ressourcenanforderungen ab.

Link to this sectionZitate und Danksagungen#

Wenn du den DIODE Datensatz in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte das folgende Paper:

Zitat
@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}
}

Wir möchten den Autoren für die Erstellung und Pflege dieser wertvollen Ressource für die Computer-Vision-Community danken.

Mitwirkende

Kommentare