Ultralytics YOLO27:
No license

Dataset de Profundidade SUN RGB-D#

SUN RGB-D é um benchmark de compreensão de cenas interiores do mundo real, capturado com quatro sensores RGB-D diferentes: Intel RealSense, Asus Xtion e Microsoft Kinect v1 e v2. O seu design multissensorial torna-o uma fonte valiosa de diversidade de profundidade interior real para a estimativa monocular de profundidade.

Explore o SUN RGB-D na Ultralytics Platform para pré-visualizar os seus pares RGB-profundidade, analisar as estatísticas do dataset e cloná-lo para treino.

Principais funcionalidades#

  • Capturado com quatro sensores RGB-D diferentes (Intel RealSense, Asus Xtion, Microsoft Kinect v1 e v2), proporcionando uma variedade multissensorial real.
  • Abrange uma ampla variedade de cenas interiores reais para investigação sobre compreensão de cenas.
  • Alcance de profundidade até aproximadamente 10 m, típico da captura RGB-D interior para consumidores.
  • Ground truth de profundidade derivado dos sensores e alinhado com os frames RGB.
  • Contribui com diversidade interior multissensorial real para a mistura de pré-treino de profundidade da Ultralytics.

Estrutura do Conjunto de Dados#

O dataset de profundidade SUN RGB-D está dividido em dois subconjuntos:

  1. Train: 9.245 imagens com mapas de profundidade emparelhados para treino.
  2. Val: 1.090 imagens com mapas de profundidade emparelhados para validação durante o treino do modelo.

Cada amostra consiste numa imagem RGB e num PNG de profundidade uint16 escalado emparelhado, seguindo o formato de dataset de profundidade da Ultralytics. A conversão integrada escreve os valores em milímetros, pelo que o valor predefinido depth_scale: 1000 é aplicável.

Função no YOLO26-Depth#

O SUN RGB-D é uma fonte de treino na mistura de pré-treino multidataset Ultralytics YOLO26-Depth, com aproximadamente 2,19 milhões de pares imagem–profundidade. Contribui com diversidade interior multissensorial real, expondo o modelo a profundidade capturada por vários dispositivos RGB-D de consumo diferentes. Os modelos resultantes são avaliados nos benchmarks padrão NYU, KITTI, Make3D, ETH3D e iBims-1.

YAML do Conjunto de Dados#

Um arquivo YAML é usado para definir a configuração do dataset. Ele contém informações sobre os caminhos, as classes e outras informações relevantes do dataset.

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

Utilização#

Para treinar um modelo YOLO26n-depth no dataset SUN RGB-D com um tamanho de imagem de 640, pode usar os seguintes snippets de código. Para consultar uma lista completa dos argumentos disponíveis, consulte a página de Treino do modelo.

Exemplo de treino
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 pré-treinados#

A família de modelos de profundidade YOLO26 é treinada na ampla mistura de pré-treino de profundidade multidataset da qual o SUN RGB-D faz parte. Estes modelos são transferidos automaticamente a partir da versão mais recente da Ultralytics, por exemplo YOLO26x-depth a partir da v8.4.0, e abrangem vários tamanhos para diferentes requisitos de precisão e recursos.

Citações e agradecimentos#

Se usares o conjunto de dados SUN RGB-D no teu trabalho de investigação ou desenvolvimento, cita o artigo seguinte:

Citação
@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}
}

Gostaríamos de agradecer aos autores por criarem e manterem este recurso valioso para a comunidade de visão computacional.

Perguntas frequentes#

  • O SUN RGB-D é uma referência de compreensão de cenas de interiores do mundo real capturada com quatro sensores RGB-D: Intel RealSense, Asus Xtion e Microsoft Kinect v1 e v2. A configuração do Ultralytics fornece 9.245 pares de imagens e profundidade para treinamento e 1.090 para validação, com profundidades de até aproximadamente 10 m.

  • Cada imagem RGB é emparelhada com um PNG uint16 em milímetros, de modo que o padrão depth_scale: 1000 se aplica, seguindo o formato de conjunto de dados de profundidade do Ultralytics. O conjunto de dados de teste compacto Depth8 é amostrado a partir do SUN RGB-D e usa o mesmo formato.

  • Execute yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640 ou use o exemplo em Python na seção Uso. Também podes navegar e clonar o conjunto de dados na Plataforma Ultralytics.

Comentários