Ultralytics YOLO27:
No license

Conjunto de datos de profundidad SUN RGB-D#

SUN RGB-D es un benchmark de comprensión de escenas 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 en interiores reales 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 el entrenamiento.

Características principales#

  • Capturado con cuatro sensores RGB-D diferentes (Intel RealSense, Asus Xtion y Microsoft Kinect v1 y v2), lo que proporciona 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, típico de la captura RGB-D en interiores con dispositivos de consumo.
  • Datos de referencia de profundidad derivados del sensor y alineados con los fotogramas RGB.
  • Aporta diversidad real multisensor en interiores a la mezcla de preentrenamiento de profundidad de Ultralytics.

Estructura del dataset#

El conjunto de datos de profundidad SUN RGB-D se divide en dos subconjuntos:

  1. Entrenamiento: 9245 imágenes con mapas de profundidad emparejados para el entrenamiento.
  2. Validación: 1090 imágenes con mapas de profundidad emparejados para la validación durante el entrenamiento del modelo.

Cada muestra consta de una imagen RGB y un PNG de profundidad uint16 escalado emparejado, conforme al formato de conjunto de datos de profundidad de Ultralytics. La conversión integrada escribe los valores en milímetros, por lo que se aplica depth_scale: 1000 de forma predeterminada.

Papel en YOLO26-Depth#

SUN RGB-D es una fuente de entrenamiento en la mezcla de preentrenamiento multiconjunto de YOLO26-Depth de Ultralytics, compuesta por aproximadamente 2,19 millones de pares imagen-profundidad. Aporta diversidad real multisensor en interiores y expone al modelo a profundidades capturadas con varios dispositivos RGB-D de consumo diferentes. Los modelos resultantes se evalúan en los benchmarks estándar NYU, KITTI, Make3D, ETH3D e iBims-1.

YAML del dataset#

Se utiliza un archivo YAML para definir la configuración del conjunto de datos. Contiene información sobre las rutas, las clases y otra información relevante del conjunto de datos.

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

Uso#

Para entrenar un modelo YOLO26n-depth con el conjunto de datos SUN RGB-D y un tamaño de imagen de 640, puedes utilizar los siguientes fragmentos de código. Consulta la página de Entrenamiento del modelo para obtener una lista completa de los argumentos disponibles.

Ejemplo de entrenamiento
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)

Modelos preentrenados#

La familia de profundidad YOLO26 se entrena con la amplia mezcla de preentrenamiento multiconjunto de profundidad de la que forma parte SUN RGB-D. Estos modelos se descargan automáticamente desde la versión más reciente de Ultralytics; por ejemplo, YOLO26x-depth desde la v8.4.0, y abarcan distintos tamaños para adaptarse a diferentes requisitos de precisión y recursos.

Citas y agradecimientos#

Si utilizas el conjunto de datos SUN RGB-D en tu trabajo de investigación o desarrollo, cita el siguiente artículo:

Cita
@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 por computador.

Preguntas frecuentes#

  • SUN RGB-D es una prueba de rendimiento de comprensión de escenas de interiores del mundo real capturada con cuatro sensores RGB-D: Intel RealSense, Asus Xtion y Microsoft Kinect v1 y v2. La configuración de Ultralytics proporciona 9.245 pares de imágenes y profundidad de entrenamiento y 1.090 de validación con profundidades de hasta aproximadamente 10 m.

  • Cada imagen RGB se empareja con un PNG uint16 en milímetros, por lo que se aplica el valor predeterminado depth_scale: 1000, siguiendo el formato del conjunto de datos de profundidad de Ultralytics. El conjunto de datos de prueba compacto Depth8 se muestrea a partir de SUN RGB-D y utiliza el mismo formato.

  • Ejecuta yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640 o usa el ejemplo de Python en la sección Uso. También puedes explorar y clonar el conjunto de datos en Ultralytics Platform.

Comentarios