Jeu de données de profondeur SUN RGB-D#
SUN RGB-D est un benchmark de compréhension de scènes intérieures réelles, capturé avec quatre capteurs RGB-D différents : Intel RealSense, Asus Xtion et Microsoft Kinect v1 et v2. Sa conception multisensorielle en fait une source précieuse de diversité réelle en matière de profondeur intérieure pour l'estimation monoculaire de la profondeur.
Explore SUN RGB-D sur la plateforme Ultralytics pour prévisualiser ses paires RGB-profondeur, examiner les statistiques du jeu de données et le cloner pour l'entraînement.
Fonctionnalités clés#
- Capturé avec quatre capteurs RGB-D différents (Intel RealSense, Asus Xtion, Microsoft Kinect v1 et v2), offrant une véritable variété multisensorielle.
- Couvre un large éventail de scènes intérieures réelles pour la recherche sur la compréhension des scènes.
- Plage de profondeurs allant jusqu’à environ 10 m, caractéristique des captures RGB-D intérieures grand public.
- Vérité terrain de profondeur dérivée des capteurs et alignée sur les images RGB.
- Apporte une diversité intérieure réelle et multisensorielle au mélange de préentraînement en profondeur d'Ultralytics.
Structure du jeu de données#
Le jeu de données de profondeur SUN RGB-D est divisé en deux sous-ensembles :
- Train : 9 245 images accompagnées de cartes de profondeur pour l'entraînement.
- Val : 1 090 images accompagnées de cartes de profondeur pour la validation pendant l'entraînement du modèle.
Chaque échantillon se compose d'une image RGB et d'un fichier PNG de profondeur uint16 mis à l'échelle correspondant, conformément au format des jeux de données de profondeur d'Ultralytics. La conversion intégrée écrit les valeurs en millimètres ; la valeur par défaut depth_scale: 1000 s'applique donc.
Rôle dans YOLO26-Depth#
SUN RGB-D est une source d'entraînement du mélange de préentraînement multidataset Ultralytics YOLO26-Depth, qui contient environ 2,19 millions de paires image-profondeur. Il apporte une diversité intérieure réelle et multisensorielle, en exposant le modèle à des profondeurs capturées avec plusieurs appareils RGB-D grand public différents. Les modèles obtenus sont évalués sur les benchmarks standard NYU, KITTI, Make3D, ETH3D et iBims-1.
YAML du jeu de données#
Un fichier YAML est utilisé pour définir la configuration du jeu de données. Il contient des informations sur les chemins du jeu de données, les classes et d'autres informations pertinentes.
# 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")Utilisation#
Pour entraîner un modèle YOLO26n-depth sur le jeu de données SUN RGB-D avec une taille d'image de 640, tu peux utiliser les extraits de code suivants. Pour obtenir la liste complète des arguments disponibles, consulte la page Entraînement du modèle.
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)Modèles préentraînés#
La famille de modèles de profondeur YOLO26 est entraînée sur le vaste mélange de préentraînement multidataset en profondeur dont SUN RGB-D fait partie. Ces modèles se téléchargent automatiquement depuis la dernière version d'Ultralytics, par exemple YOLO26x-depth depuis la version v8.4.0, et couvrent différentes tailles pour répondre à divers besoins en matière de précision et de ressources.
Citations et remerciements#
Si tu utilises le jeu de données SUN RGB-D dans le cadre de tes travaux de recherche ou de développement, cite l'article suivant :
@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}
}Nous souhaitons remercier les auteurs d'avoir créé et maintenu cette ressource précieuse pour la communauté de la vision par ordinateur.
FAQ#
SUN RGB-D est un banc d'essai de compréhension de scènes d'intérieur réelles capturé avec quatre capteurs RGB-D : Intel RealSense, Asus Xtion, et Microsoft Kinect v1 et v2. La configuration Ultralytics fournit 9 245 paires d'images et de profondeurs d'entraînement et 1 090 paires de validation avec des profondeurs atteignant approximativement 10 m.
Exécute
yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640, ou utilise l'exemple Python dans la section Utilisation. Tu peux également parcourir et cloner le jeu de données sur la Plateforme Ultralytics.




Chaque image RGB est associée à un fichier PNG uint16 en millimètres, de sorte que le paramètre par défaut
depth_scale: 1000s'applique, en suivant le format du jeu de données de profondeur Ultralytics. Le jeu de données de test compact Depth8 est échantillonné à partir de SUN RGB-D et utilise le même format.