Link to this sectionJeu de données de profondeur SUN RGB-D#
SUN RGB-D est un benchmark de compréhension de scènes d'intérieur réelles capturé avec quatre capteurs RGB-D différents : Intel RealSense, Asus Xtion, et Microsoft Kinect v1 et v2. Sa conception multi-capteurs en fait une source précieuse de diversité de profondeur réelle en intérieur pour l'estimation de profondeur monoculaire.
Link to this sectionFonctionnalité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é multi-capteurs.
- Couvre une large gamme de scènes d'intérieur réelles pour la recherche en compréhension de scènes.
- Portée de profondeur jusqu'à environ 10 m, typique de la capture RGB-D grand public en intérieur.
- Vérité terrain de profondeur dérivée du capteur et alignée sur les images RGB.
- Apporte une réelle diversité multi-capteurs en intérieur au mix de pré-entraînement de profondeur d'Ultralytics.
Link to this sectionStructure 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 avec des cartes de profondeur appariées pour l'entraînement.
- Val : 1 090 images avec des cartes de profondeur appariées pour la validation lors de l'entraînement du modèle.
Chaque échantillon se compose d'une image RGB et d'une carte de profondeur .npy float32 appariée stockant les distances par pixel en mètres, en suivant le format de jeu de données de profondeur Ultralytics.
Link to this sectionRôle dans YOLO26-Depth#
SUN RGB-D est une source d'entraînement dans le mix de pré-entraînement multi-datasets de YOLO26-Depth d'Ultralytics, composé d'environ 2,19 millions de paires image-profondeur. Il apporte une véritable diversité multi-capteurs en intérieur, exposant le modèle à une profondeur capturée à travers plusieurs appareils RGB-D grand public différents. Les modèles résultants sont évalués sur les benchmarks standards NYU, KITTI, Make3D, ETH3D, et iBims-1.
Link to this sectionYAML du jeu de données#
Un fichier YAML (Yet Another Markup Language) est utilisé pour définir la configuration du jeu de données. Il contient des informations sur les chemins, les classes et d'autres informations pertinentes du jeu de données.
# 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 *.npy, float32 meters (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.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
np.save(dir / "depth" / split / f"{name}.npy", d)
next((scene / "image").glob("*.jpg")).replace(dir / "images" / split / f"{name}.jpg")
shutil.rmtree(dir / "source")Link to this sectionUtilisation#
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 une 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)Link to this sectionModèles pré-entraînés#
La famille de profondeur YOLO26 est entraînée sur le large mix de pré-entraînement multi-datasets de profondeur dont fait partie SUN RGB-D. Ces modèles se téléchargent automatiquement à partir de la dernière version d'Ultralytics, par exemple YOLO26x-depth depuis la v8.4.0, et couvrent une gamme de tailles pour différentes exigences de précision et de ressources.
Link to this sectionCitations et remerciements#
Si tu utilises le jeu de données SUN RGB-D dans 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 tenons à remercier les auteurs pour la création et la maintenance de cette ressource précieuse pour la communauté de la vision par ordinateur.