Conjunto de dados de profundidade SUN RGB-D#
SUN RGB-D é um benchmark de compreensão de cenas internas do mundo real, capturado com quatro sensores RGB-D diferentes: Intel RealSense, Asus Xtion e Microsoft Kinect v1 e v2. Seu projeto multissensor faz dele uma fonte valiosa de diversidade de profundidade em ambientes internos reais para a estimativa monocular de profundidade.
Explore o SUN RGB-D na Ultralytics Platform para visualizar seus pares RGB-profundidade, analisar estatísticas do conjunto de dados e cloná-lo para treinamento.
Principais funcionalidades#
- Capturado com quatro sensores RGB-D diferentes (Intel RealSense, Asus Xtion, Microsoft Kinect v1 e v2), oferecendo variedade multissensor real.
- Abrange uma ampla variedade de cenas internas reais para pesquisa em compreensão de cenas.
- Intervalo de profundidade até aproximadamente 10 m, típico da captura RGB-D em interiores com dispositivos de consumo.
- Ground truth de profundidade derivado dos sensores e alinhado aos quadros RGB.
- Contribui com diversidade interna real multissensor para a combinação de pré-treinamento de profundidade da Ultralytics.
Estrutura do conjunto de dados#
O conjunto de dados de profundidade SUN RGB-D está dividido em dois subconjuntos:
- Treino: 9.245 imagens com mapas de profundidade correspondentes para treinamento.
- Val: 1.090 imagens com mapas de profundidade correspondentes para validação durante o treinamento do modelo.
Cada amostra consiste em uma imagem RGB e um PNG de profundidade uint16 escalado correspondente, seguindo o formato de conjunto de dados de profundidade da Ultralytics. O YAML do conjunto de dados baixa o arquivo de origem (~6,5 GB) e o converte automaticamente no primeiro uso, gravando os valores em milímetros, por isso o depth_scale: 1000 padrão se aplica.
Papel no YOLO26-Depth#
O SUN RGB-D é uma fonte de treinamento na combinação de pré-treinamento multiconjunto de dados do Ultralytics YOLO26-Depth, com cerca de 2,19 milhões de pares imagem-profundidade. Ele contribui com diversidade interna real multissensor, expondo o modelo a profundidades capturadas 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 conjunto de dados. Ele contém informações sobre os caminhos, as classes e outros dados relevantes do 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 treinar um modelo YOLO26n-depth no conjunto de dados SUN RGB-D com tamanho de imagem 640, use os trechos de código a seguir. Para ver uma lista completa dos argumentos disponíveis, consulte a página de Treinamento do modelo.
from ultralytics import YOLO
# Carregar um modelo
model = YOLO("yolo26n-depth.pt") # carrega um modelo de profundidade pré-treinado (recomendado para treinamento)
# Treinar o modelo
results = model.train(data="depth-sunrgbd.yaml", epochs=100, imgsz=640)Modelos pré-treinados#
A família de modelos de profundidade YOLO26 é treinada com a ampla combinação de pré-treinamento de profundidade multiconjunto de dados, da qual o SUN RGB-D faz parte. Esses modelos são baixados automaticamente no primeiro uso a partir do lançamento de recursos v8.4.0 da Ultralytics, por exemplo, o YOLO26x-depth, e abrangem vários tamanhos para diferentes requisitos de precisão e recursos.
Citações e agradecimentos#
Se você usar o conjunto de dados SUN RGB-D em seu trabalho de pesquisa ou desenvolvimento, cite o artigo a seguir:
@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}
}Agradecemos aos autores por criarem e manterem este valioso recurso para a comunidade de visão computacional.
Perguntas frequentes#
O SUN RGB-D é um benchmark de compreensão de cenas internas do mundo real, capturado com quatro sensores RGB-D: Intel RealSense, Asus Xtion e Microsoft Kinect v1 e v2. A configuração da 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 é pareada com um PNG uint16 em milímetros, por isso o
depth_scale: 1000padrão se aplica, seguindo o formato de conjunto de dados de profundidade da Ultralytics. O conjunto de dados de teste compacto Depth8 é amostrado do SUN RGB-D e usa o mesmo formato.Execute
yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640ou use o exemplo em Python na seção Uso. Você também pode explorar e clonar o conjunto de dados na Ultralytics Platform.



