Ultralytics YOLO27:
No license

SUN RGB-D-Tiefendatensatz#

SUN RGB-D ist ein Benchmark zum Verständnis realer Innenraumszenen, der mit vier verschiedenen RGB-D-Sensoren aufgenommen wurde: Intel RealSense, Asus Xtion sowie Microsoft Kinect v1 und v2. Durch sein Multi-Sensor-Design ist er eine wertvolle Quelle für die Vielfalt realer Tiefendaten für die monokulare Tiefenschätzung.

Entdecke SUN RGB-D auf der Ultralytics Platform, um RGB-Tiefen-Paare in der Vorschau anzuzeigen, Datensatzstatistiken einzusehen und den Datensatz für das Training zu klonen.

Wichtige Funktionen#

  • Mit vier verschiedenen RGB-D-Sensoren aufgenommen (Intel RealSense, Asus Xtion, Microsoft Kinect v1 und v2) und bietet dadurch echte Vielfalt mehrerer Sensoren.
  • Umfasst ein breites Spektrum realer Innenraumszenen für die Forschung zum Szenenverständnis.
  • Tiefenbereich bis etwa 10 m, typisch für RGB-D-Aufnahmen in Innenräumen mit Verbrauchergeräten.
  • Aus Sensordaten abgeleitete Tiefen-Grundwahrheit, die auf die RGB-Bilder ausgerichtet ist.
  • Bringt echte Vielfalt bei Innenraumdaten mehrerer Sensoren in den Tiefen-Vortrainingsmix von Ultralytics ein.

Datensatzstruktur#

Der SUN RGB-D-Tiefendatensatz ist in zwei Teilmengen aufgeteilt:

  1. Training: 9.245 Bilder mit zugehörigen Tiefenkarten für das Training.
  2. Validierung: 1.090 Bilder mit zugehörigen Tiefenkarten zur Validierung während des Modelltrainings.

Jedes Beispiel besteht aus einem RGB-Bild und einer dazugehörigen, skalierten uint16-Tiefen-PNG-Datei gemäß dem Ultralytics-Format für Tiefendatensätze. Die YAML-Datei des Datensatzes lädt das Quellarchiv (~6.5 GB) herunter und konvertiert es bei der ersten Verwendung automatisch in Millimeter, sodass die Standardeinstellung depth_scale: 1000 gilt.

Rolle in YOLO26-Depth#

SUN RGB-D ist eine Trainingsquelle im Multi-Datensatz-Vortrainingsmix von Ultralytics YOLO26-Depth, der rund 2,19 Mio. Bild-Tiefen-Paare umfasst. Der Datensatz bringt echte Vielfalt bei Innenraumdaten mehrerer Sensoren ein und setzt das Modell Tiefendaten aus mehreren verschiedenen RGB-D-Geräten für Verbraucher aus. Die resultierenden Modelle werden anhand der Standardbenchmarks NYU, KITTI, Make3D, ETH3D und iBims-1 evaluiert.

YAML-Datei des Datensatzes#

Eine YAML-Datei legt die Dataset-Konfiguration fest. Sie enthält Angaben zu den Pfaden, Klassen und weiteren relevanten Informationen des Datensatzes.

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

# SUN RGB-D dataset for monocular depth estimation — real indoor, multi-sensor RGB-D (RealSense/Xtion/Kinect), up to ~10 m
# Documentation: https://docs.ultralytics.com/datasets/depth/sunrgbd
# Example usage: yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
#     └── depth-sunrgbd  ← downloads here (6.5 GB archive, ~14 GB converted)
#         ├── images/{train,val}  # RGB images
#         └── depth/{train,val}   # paired 16-bit *.png depth maps (images/ -> depth/)
# If an interrupted download leaves a partial dataset, delete the depth-sunrgbd dir and re-run to rebuild it.

path: depth-sunrgbd # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 9245 images
val: images/val # val images (relative to 'path') 1090 images

nc: 1
names:
  0: depth

channels: 3

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

  import cv2
  import numpy as np

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

  # Download and extract the official archive (~6.5 GB), then convert each of the 10335 scenes:
  # refined depth_bfx PNGs decode via the SUN RGB-D bit-rotation (d>>3 | d<<13) to millimeters,
  # clipped at 10 m; a deterministic random 1090-scene subset (seed 0) forms the val split
  dir = Path(yaml["path"])  # dataset root dir
  download(["https://rgbd.cs.princeton.edu/data/SUNRGBD.zip"], dir=dir / "source", delete=True, exist_ok=True)
  for split in ("train", "val"):
      (dir / "images" / split).mkdir(parents=True, exist_ok=True)
      (dir / "depth" / split).mkdir(parents=True, exist_ok=True)
  scenes = sorted(p.parent for p in (dir / "source" / "SUNRGBD").rglob("depth_bfx"))
  names = ["_".join(s.relative_to(dir / "source" / "SUNRGBD").parts) for s in scenes]
  val = set(random.Random(0).sample(names, k=1090))
  for scene, name in TQDM(zip(scenes, names), total=len(scenes), desc="Converting"):
      split = "val" if name in val else "train"
      d = cv2.imread(str(next((scene / "depth_bfx").glob("*.png"))), cv2.IMREAD_ANYDEPTH)
      d = (((d >> 3) | (d << 13)) / 1000.0).clip(max=10).astype(np.float32)  # bit-rotated mm -> m
      save_depth_png(dir / "depth" / split / f"{name}.png", d)
      next((scene / "image").glob("*.jpg")).replace(dir / "images" / split / f"{name}.jpg")
  shutil.rmtree(dir / "source")

Verwendung#

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

Trainingsbeispiel
from ultralytics import YOLO

# Ein Modell laden
model = YOLO("yolo26n-depth.pt")  # Ein vortrainiertes Tiefenmodell laden (für das Training empfohlen)

# Das Modell trainieren
results = model.train(data="depth-sunrgbd.yaml", epochs=100, imgsz=640)

Vortrainierte Modelle#

Die YOLO26-Tiefenmodellfamilie wird mit dem umfangreichen Multi-Datensatz-Tiefen-Vortrainingsmix trainiert, zu dem SUN RGB-D gehört. Diese Modelle werden bei der ersten Verwendung automatisch aus der Veröffentlichung v8.4.0 mit Assets von Ultralytics heruntergeladen, zum Beispiel YOLO26x-depth, und sind in verschiedenen Größen für unterschiedliche Anforderungen an Genauigkeit und Ressourcen verfügbar.

Zitate und Danksagungen#

Wenn du den Datensatz SUN RGB-D für deine Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte die folgende Arbeit:

Zitat
@inproceedings{song2015sunrgbd,
      title={SUN RGB-D: A RGB-D Scene Understanding Benchmark Suite},
      author={Song, Shuran and Lichtenberg, Samuel P. and Xiao, Jianxiong},
      booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
      year={2015}
}

Wir möchten den Autorinnen und Autoren dafür danken, dass sie diese wertvolle Ressource für die Bildverarbeitungsgemeinschaft erstellt haben und pflegen.

Häufig gestellte Fragen#

  • SUN RGB-D ist ein Benchmark zum Verständnis realer Innenraumszenen, der mit vier RGB-D-Sensoren aufgenommen wurde: Intel RealSense, Asus Xtion sowie Microsoft Kinect v1 und v2. Die Ultralytics-Konfiguration umfasst 9.245 Trainings- und 1.090 Validierungs-Bild-Tiefen-Paare mit Tiefenwerten bis zu etwa 10 m.

  • Jedes RGB-Bild ist einer uint16-PNG-Datei mit Werten in Millimetern zugeordnet, sodass die Standardeinstellung depth_scale: 1000 gemäß dem Ultralytics-Format für Tiefendatensätze gilt. Der kompakte Testdatensatz Depth8 ist eine Stichprobe aus SUN RGB-D und verwendet dasselbe Format.

  • Führe yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640 aus oder verwende das Python-Beispiel im Abschnitt Verwendung. Du kannst den Datensatz auch auf der Ultralytics Platform ansehen und klonen.

Kommentare