Conjunto de datos de profundidad SUN RGB-D#
SUN RGB-D es un benchmark de comprensión de escenas de interiores del mundo real, capturado con cuatro sensores RGB-D diferentes: Intel RealSense, Asus Xtion y Microsoft Kinect v1 y v2. Su diseño multisensor lo convierte en una fuente valiosa de diversidad de profundidad real en interiores para la estimación monocular de profundidad.
Explora SUN RGB-D en Ultralytics Platform para previsualizar sus pares RGB-profundidad, consultar las estadísticas del conjunto de datos y clonarlo para entrenar.
Características principales#
- Capturado con cuatro sensores RGB-D diferentes (Intel RealSense, Asus Xtion y Microsoft Kinect v1 y v2), lo que ofrece una variedad multisensor real.
- Abarca una amplia variedad de escenas interiores reales para la investigación sobre comprensión de escenas.
- Rango de profundidad de hasta aproximadamente 10 m, habitual en la captura RGB-D de interiores con dispositivos de consumo.
- Datos de referencia de profundidad derivados de sensores y alineados con los fotogramas RGB.
- Aporta diversidad real de interiores capturados con varios sensores a la combinación de preentrenamiento de profundidad de Ultralytics.
Estructura del conjunto de datos#
El conjunto de datos de profundidad SUN RGB-D se divide en dos subconjuntos:
- Train: 9245 imágenes con mapas de profundidad asociados para el entrenamiento.
- Val: 1090 imágenes con mapas de profundidad asociados para la validación durante el entrenamiento del modelo.
Cada muestra consta de una imagen RGB y un PNG de profundidad uint16 escalado asociado, de acuerdo con el formato de conjuntos de datos de profundidad de Ultralytics. El YAML del conjunto de datos descarga el archivo de origen (~6,5 GB) y lo convierte automáticamente la primera vez que se utiliza, escribiendo los valores en milímetros, por lo que se aplica el valor predeterminado depth_scale: 1000.
Papel de YOLO26-Depth#
SUN RGB-D es una fuente de entrenamiento en la combinación de preentrenamiento multiconjunto de datos de Ultralytics YOLO26-Depth, que contiene aproximadamente 2,19 millones de pares de imagen y profundidad. Aporta diversidad real de interiores capturados con varios sensores y expone el modelo a profundidades capturadas con varios dispositivos RGB-D de consumo. Los modelos resultantes se evalúan con los benchmarks estándar NYU, KITTI, Make3D, ETH3D e iBims-1.
YAML del conjunto de datos#
Se utiliza un archivo YAML para definir la configuración del conjunto de datos. Contiene información sobre las rutas, las clases y otros datos relevantes del conjunto.
# 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")Uso#
Para entrenar un modelo YOLO26n-depth con el conjunto de datos SUN RGB-D y un tamaño de imagen de 640, puedes usar los siguientes fragmentos de código. Consulta la página de Entrenamiento del modelo para ver la lista completa de argumentos disponibles.
from ultralytics import YOLO
# Cargar un modelo
model = YOLO("yolo26n-depth.pt") # carga un modelo de profundidad preentrenado (recomendado para el entrenamiento)
# Entrenar el modelo
results = model.train(data="depth-sunrgbd.yaml", epochs=100, imgsz=640)Modelos preentrenados#
La familia de modelos YOLO26 de profundidad se entrena con la amplia combinación de preentrenamiento de profundidad multiconjunto de datos, de la que forma parte SUN RGB-D. Estos modelos se descargan automáticamente la primera vez que se usan desde la versión de recursos v8.4.0 de Ultralytics; por ejemplo, YOLO26x-depth, y ofrecen distintos tamaños para satisfacer diferentes requisitos de precisión y recursos.
Citas y agradecimientos#
Si utilizas el conjunto de datos SUN RGB-D en tus investigaciones o trabajos de desarrollo, cita el siguiente artículo:
@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}
}Queremos agradecer a los autores la creación y el mantenimiento de este valioso recurso para la comunidad de visión artificial.
Preguntas frecuentes#
SUN RGB-D es un benchmark de comprensión de escenas de interiores del mundo real, capturado con cuatro sensores RGB-D: Intel RealSense, Asus Xtion y Microsoft Kinect v1 y v2. La configuración de Ultralytics proporciona 9245 pares de imagen y profundidad para entrenamiento y 1090 para validación, con profundidades de hasta aproximadamente 10 m.
Cada imagen RGB está asociada a un PNG uint16 con valores en milímetros, por lo que se aplica el valor predeterminado
depth_scale: 1000, de acuerdo con el formato de conjuntos de datos de profundidad de Ultralytics. El conjunto de datos de prueba compacto Depth8 se obtiene mediante muestreo de SUN RGB-D y usa el mismo formato.Ejecuta
yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640o usa el ejemplo de Python de la sección Uso. También puedes consultar y clonar el conjunto de datos en Ultralytics Platform.



