SUN RGB-D-Tiefendatensatz#
SUN RGB-D ist ein Benchmark zur Analyse realer Innenraumszenen, der mit vier verschiedenen RGB-D-Sensoren erfasst wurde: Intel RealSense, Asus Xtion sowie Microsoft Kinect v1 und v2. Sein Multi-Sensor-Design macht ihn zu einer wertvollen Quelle für die reale Tiefenvielfalt in Innenräumen zur monokularen Tiefenschätzung.
Erkunde SUN RGB-D auf der Ultralytics Platform, um die RGB-Tiefen-Paare in der Vorschau anzuzeigen, Datensatzstatistiken zu prüfen und den Datensatz für das Training zu klonen.
Wichtige Funktionen#
- Mit vier verschiedenen RGB-D-Sensoren erfasst (Intel RealSense, Asus Xtion sowie Microsoft Kinect v1 und v2), wodurch eine reale Vielfalt über mehrere Sensoren hinweg entsteht.
- Deckt ein breites Spektrum realer Innenraum-Szenen für die Forschung zur Szenenanalyse ab.
- Tiefenbereich bis ungefähr 10 m, typisch für die RGB-D-Aufzeichnung in Innenräumen mit Geräten für den Verbraucherbereich.
- Aus den Sensoren abgeleitete Tiefenreferenzdaten, die an den RGB-Bildern ausgerichtet sind.
- Bringt reale Vielfalt von Innenraumszenen über mehrere Sensoren hinweg in den Tiefen-Vortrainingsmix von Ultralytics ein.
Datensatzstruktur#
Der SUN RGB-D-Tiefendatensatz ist in zwei Teilmengen aufgeteilt:
- Training: 9.245 Bilder mit zugehörigen Tiefenkarten für das Training.
- Validierung: 1.090 Bilder mit zugehörigen Tiefenkarten zur Validierung während des Modelltrainings.
Jedes Beispiel besteht aus einem RGB-Bild und einer zugehörigen skalierten uint16-Tiefen-PNG-Datei gemäß dem Ultralytics-Format für Tiefendatensätze. Die integrierte Konvertierung schreibt Millimeterwerte, daher gilt standardmäßig depth_scale: 1000.
Rolle in YOLO26-Depth#
SUN RGB-D ist eine Trainingsquelle im Multi-Datensatz-Tiefen-Vortrainingsmix YOLO26-Depth von Ultralytics, der ungefähr 2,19 Millionen Bild-Tiefen-Paare umfasst. Der Datensatz bringt reale Vielfalt von Innenraumszenen über mehrere Sensoren hinweg ein und setzt das Modell Tiefen aus, die mit mehreren verschiedenen RGB-D-Geräten für Verbraucher erfasst wurden. Die resultierenden Modelle werden auf den Standard-Benchmarks NYU, KITTI, Make3D, ETH3D und iBims-1 evaluiert.
Dataset-YAML#
Eine YAML-Datei wird verwendet, um die Dataset-Konfiguration zu definieren. Sie enthält Informationen über die Pfade des Datasets, die Klassen und andere relevante Informationen.
# 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 auf dem SUN RGB-D-Datensatz mit einer Bildgröße von 640 zu trainieren, kannst du die folgenden Codebeispiele verwenden. Eine umfassende Liste der verfügbaren Argumente findest du auf der Seite Training des Modells.
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-sunrgbd.yaml", epochs=100, imgsz=640)Vortrainierte Modelle#
Die YOLO26-Tiefenmodellfamilie wird mit dem umfassenden Multi-Datensatz-Tiefen-Vortrainingsmix trainiert, zu dem auch SUN RGB-D gehört. Diese Modelle werden automatisch aus der neuesten Ultralytics-Version heruntergeladen, beispielsweise YOLO26x-depth aus v8.4.0, und decken verschiedene Größen für unterschiedliche Anforderungen an Genauigkeit und Ressourcen ab.
Zitate und Danksagungen#
Wenn du das SUN RGB-D-Dataset in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte die folgende Publikation:
@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 Autoren für die Erstellung und Pflege dieser wertvollen Ressource für die Computer-Vision-Community danken.
FAQ#
SUN RGB-D ist ein realer Indoor-Szeneverstehens-Benchmark, der mit vier RGB-D-Sensoren aufgenommen wurde: Intel RealSense, Asus Xtion sowie Microsoft Kinect v1 und v2. Die Ultralytics-Konfiguration stellt 9.245 Trainings- und 1.090 Validierungs-Bild-Tiefenpaare mit Tiefen von bis zu etwa 10 m zur Verfügung.
Jedes RGB-Bild ist mit einer uint16-PNG-Datei in Millimetern gepaart, sodass das Standardformat
depth_scale: 1000gemäß dem Ultralytics depth dataset format angewendet wird. Der kompakte Testdatensatz Depth8 wird aus SUN RGB-D abgetastet und verwendet dasselbe Format.Führe
yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640aus oder verwende das Python-Beispiel im Abschnitt Usage. Du kannst den Datensatz auch auf der Ultralytics Platform durchsuchen und klonen.



