Dataset di profondità SUN RGB-D#
SUN RGB-D è un benchmark per la comprensione di scene interne del mondo reale, acquisito con quattro diversi sensori RGB-D: Intel RealSense, Asus Xtion e Microsoft Kinect v1 e v2. La sua progettazione multisensore lo rende una preziosa fonte di diversità di profondità in ambienti interni reali per la stima della profondità monoculare.
Esplora SUN RGB-D su Ultralytics Platform per visualizzare in anteprima le sue coppie RGB-profondità, esaminare le statistiche del dataset e clonarlo per l'addestramento.
Funzionalità principali#
- Acquisito con quattro diversi sensori RGB-D (Intel RealSense, Asus Xtion, Microsoft Kinect v1 e v2), offre una reale varietà multisensore.
- Copre un'ampia gamma di scene interne reali per la ricerca sulla comprensione delle scene.
- Intervallo di profondità fino a circa 10 m, tipico dell'acquisizione RGB-D indoor consumer.
- Ground truth della profondità derivata dai sensori e allineata ai frame RGB.
- Aggiunge diversità reale multisensore in ambienti interni al mix di preaddestramento della profondità di Ultralytics.
Struttura del dataset#
Il dataset di profondità SUN RGB-D è suddiviso in due sottoinsiemi:
- Train: 9.245 immagini con mappe di profondità abbinate per l'addestramento.
- Val: 1.090 immagini con mappe di profondità abbinate per la validazione durante l'addestramento del modello.
Ogni campione è costituito da un'immagine RGB e da un'immagine PNG di profondità uint16 abbinata e scalata, secondo il formato dei dataset di profondità di Ultralytics. La conversione integrata scrive i valori in millimetri, quindi si applica il valore predefinito depth_scale: 1000.
Ruolo in YOLO26-Depth#
SUN RGB-D è una fonte di addestramento nel mix di preaddestramento multi-dataset YOLO26-Depth di Ultralytics, composto da circa 2,19 milioni di coppie immagine-profondità. Contribuisce alla diversità reale multisensore in ambienti interni, esponendo il modello a profondità acquisite con diversi dispositivi RGB-D consumer. I modelli risultanti vengono valutati sui benchmark standard NYU, KITTI, Make3D, ETH3D e iBims-1.
YAML del dataset#
Un file YAML viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, sulle classi e altre informazioni pertinenti.
# 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")Utilizzo#
Per addestrare un modello YOLO26n-depth sul dataset SUN RGB-D con una dimensione delle immagini di 640, puoi usare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consulta la pagina Addestramento del modello.
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)Modelli pre-addestrati#
La famiglia di modelli YOLO26 per la profondità viene addestrata sull'ampio mix di preaddestramento della profondità multi-dataset, di cui SUN RGB-D fa parte. Questi modelli vengono scaricati automaticamente dall'ultima release di Ultralytics, ad esempio YOLO26x-depth dalla v8.4.0, e sono disponibili in diverse dimensioni per soddisfare requisiti differenti in termini di accuratezza e risorse.
Citazioni e ringraziamenti#
Se utilizzi il dataset SUN RGB-D nelle tue attività di ricerca o sviluppo, cita il seguente articolo:
@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}
}Desideriamo ringraziare gli autori per aver creato e mantenuto questa preziosa risorsa per la comunità della computer vision.
FAQ#
SUN RGB-D è un benchmark di comprensione di scene d'interni del mondo reale catturato con quattro sensori RGB-D: Intel RealSense, Asus Xtion e Microsoft Kinect v1 e v2. La configurazione di Ultralytics fornisce 9.245 coppie di immagini e profondità di addestramento e 1.090 di convalida con profondità fino a circa 10 m.
Ogni immagine RGB è associata a un file PNG uint16 in millimetri, quindi si applica il valore predefinito
depth_scale: 1000, seguendo il formato del dataset di profondità di Ultralytics. Il compatto dataset di test Depth8 viene campionato da SUN RGB-D e utilizza lo stesso formato.Esegui
yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640, oppure usa l'esempio Python nella sezione Utilizzo. Puoi anche esplorare e clonare il dataset su Piattaforma Ultralytics.



