Ultralytics YOLO27 :
No license

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ées à l’aide de quatre capteurs RGB-D différents : Intel RealSense, Asus Xtion, et Microsoft Kinect v1 et v2. Sa conception multis capteurs en fait une source précieuse de diversité réelle en matière de profondeur pour l’estimation monoculaire de la profondeur.

Explore SUN RGB-D sur Ultralytics Platform 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), ce jeu de données offre une réelle diversité multis capteurs.
  • Couvre un large éventail de scènes réelles d’intérieur pour la recherche sur la compréhension des scènes.
  • Plage de profondeur jusqu’à environ 10 m, typique des captures RGB-D intérieures grand public.
  • Vérité terrain de profondeur issue des capteurs et alignée sur les images RGB.
  • Apporte une diversité réelle de scènes intérieures et de capteurs 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 :

  1. Entraînement : 9 245 images accompagnées de cartes de profondeur pour l’entraînement.
  2. Validation : 1 090 images accompagnées de cartes de profondeur pour la validation pendant l’entraînement du modèle.

Chaque échantillon comprend une image RGB et une image PNG de profondeur uint16 mise à l’échelle, conformément au format de jeu de données de profondeur Ultralytics. Le fichier YAML du jeu de données télécharge l’archive source (~6.5 Go) et la convertit automatiquement lors de la première utilisation, en écrivant les valeurs en millimètres ; le paramètre 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 multis jeux de données YOLO26-Depth d’Ultralytics, qui comprend environ 2,19 M de paires image-profondeur. Il apporte une diversité réelle de scènes intérieures et de capteurs, en exposant le modèle à des profondeurs capturées par plusieurs appareils RGB-D grand public. Les modèles obtenus sont évalués sur les benchmarks standard NYU, KITTI, Make3D, ETH3D et iBims-1.

Fichier YAML du jeu de données#

Un fichier YAML sert à définir la configuration du jeu de données. Il contient des informations sur les chemins d’accès, les classes et d’autres éléments pertinents du jeu de données.

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

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, utilise les extraits de code suivants. Pour consulter la liste complète des arguments disponibles, reporte-toi à la page Entraînement du modèle.

Exemple d’entraînement
from ultralytics import YOLO

# Charger un modèle
model = YOLO("yolo26n-depth.pt")  # charger un modèle de profondeur préentraîné (recommandé pour l’entraînement)

# Entraîner le modèle
results = model.train(data="depth-sunrgbd.yaml", epochs=100, imgsz=640)

Modèles préentraînés#

La famille de modèles YOLO26 de profondeur est entraînée sur le vaste mélange de préentraînement en profondeur multis jeux de données auquel SUN RGB-D contribue. Ces modèles se téléchargent automatiquement lors de leur première utilisation depuis la version des ressources v8.4.0 d’Ultralytics, par exemple YOLO26x-depth, et sont proposés en plusieurs tailles pour répondre à différents besoins de précision et de ressources.

Citations 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 :

Citation
@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 d’avoir créé et maintenu cette précieuse ressource pour la communauté de la vision par ordinateur.

FAQ#

  • SUN RGB-D est un benchmark de compréhension de scènes intérieures réelles, capturées à l’aide de quatre capteurs RGB-D : Intel RealSense, Asus Xtion, et Microsoft Kinect v1 et v2. La configuration Ultralytics fournit 9 245 paires image-profondeur pour l’entraînement et 1 090 pour la validation, avec des profondeurs allant jusqu’à environ 10 m.

  • Chaque image RGB est associée à une image PNG uint16 en millimètres, le paramètre par défaut depth_scale: 1000 s’applique donc, conformément au format de 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.

  • Exécute yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640, ou utilise l’exemple Python de la section Utilisation. Tu peux aussi parcourir et cloner le jeu de données sur Ultralytics Platform.

Commentaires