Jeu de données de profondeur Hypersim#
Hypersim est un jeu de données synthétique et photoréaliste de scènes intérieures conçu pour la compréhension globale de scènes d'intérieur. Ses images sont issues de tracés de rayons (ray-traced) d'intérieurs 3D créés par des professionnels d'Evermotion, produisant des rendus hautement réalistes associés à une vérité terrain de profondeur par pixel parfaite et dense.
Puisque Hypersim est entièrement synthétique, chaque pixel possède une valeur de profondeur exacte sans bruit de capteur, retours manquants ou artéfacts de mesure. Cela en fait une excellente source de géométrie d'intérieur propre et dense pour entraîner des modèles monoculaires d'estimation de profondeur.
Fonctionnalités clés#
- Scènes d'intérieur synthétiques photoréalistes, générées par lancer de rayons à partir d'intérieurs 3D professionnels Evermotion.
- Environnements intérieurs uniquement.
- Vérité terrain de profondeur par pixel dense et parfaite, sans bruit de capteur ni valeurs manquantes.
- Plage de profondeur majoritairement ≤10 m (avec quelques distances plus grandes).
- Contribue à hauteur de 74 619 images (68 242 pour l'entraînement / 6 377 pour la validation) au mélange d'entraînement de profondeur Ultralytics.
Structure du jeu de données#
Le jeu de données de profondeur Hypersim est divisé en deux sous-ensembles :
- Train : 68 242 images avec cartes de profondeur denses associées pour l'entraînement.
- Val : 6 377 images avec cartes de profondeur denses associées pour la validation pendant l'entraînement.
Chaque image RGB est associée à une carte de profondeur float32 .npy stockant les distances par pixel en mètres, conformément au format de jeu de données de profondeur Ultralytics.
Obtenir les données#
Hypersim ne dispose pas de téléchargement automatique — le jeu de données (~1,9 To de fichiers ZIP par scène) est distribué par Apple sous la licence CC BY-SA 3.0 et téléchargé à l'aide du script officiel du dépôt ml-hypersim (un téléchargeur sélectif est disponible dans contrib/99991) :
git clone https://github.com/apple/ml-hypersim && cd ml-hypersim
python code/python/tools/dataset_download_images.py --downloads_dir ./downloads --decompress_dir ./scenesLes images RGB sont les aperçus frame.*.tonemap.jpg et la profondeur réside dans frame.*.depth_meters.hdf5. Les valeurs stockées sont des distances par rayon par rapport au centre de la caméra, et non une profondeur planaire — convertis avant d'enregistrer, et mappe les pixels NaN (fenêtres, ciel) à 0 (invalide). Utilise la division de scènes officielle metadata_images_split_scene_v1.csv pour l'attribution train/val. Conversion de référence vers le format de jeu de données de profondeur Ultralytics :
import shutil
from pathlib import Path
import h5py
import numpy as np
W, H, FOCAL = 1024, 768, 886.81 # Hypersim camera intrinsics
x, y = np.meshgrid(np.linspace(-W / 2, W / 2, W), np.linspace(-H / 2, H / 2, H))
ray2plane = (FOCAL / np.sqrt(x**2 + y**2 + FOCAL**2)).astype(np.float32) # distance → planar depth
src, dst = Path("scenes"), Path("datasets/depth-hypersim")
out = "train" # assign per scene from metadata_images_split_scene_v1.csv
(dst / f"images/{out}").mkdir(parents=True, exist_ok=True)
(dst / f"depth/{out}").mkdir(parents=True, exist_ok=True)
for h5 in sorted(src.rglob("*.depth_meters.hdf5")):
scene, cam, frame = h5.parts[-4], h5.parent.name.split("_geometry")[0], h5.name.split(".")[1]
rgb = h5.parents[1] / f"{cam}_final_preview" / f"frame.{frame}.tonemap.jpg"
dist = np.asarray(h5py.File(h5)["dataset"], np.float32)
depth = np.nan_to_num(dist * ray2plane, nan=0.0) # NaN (sky, glass) → 0 = invalid
name = f"{scene}_{cam}_{frame}"
np.save(dst / f"depth/{out}/{name}.npy", depth)
shutil.copy(rgb, dst / f"images/{out}/{name}.jpg")Rôle dans YOLO26-Depth#
Hypersim est l'une des sources d'entraînement dans le vaste mélange multi-jeux de données (~2,19M d'images) utilisé pour pré-entraîner les modèles Ultralytics YOLO26-Depth. Au sein de ce mélange, Hypersim apporte une géométrie intérieure propre et dense qui complète les données de capteurs réelles plus bruitées.
Il n'existe pas de benchmark Hypersim isolé et distinct dans cette configuration. Au lieu de cela, les modèles résultants sont évalués sur les benchmarks standard de profondeur monoculaire : NYU Depth V2, KITTI, Make3D, ETH3D et iBims-1.
YAML 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. Pour Hypersim, le fichier depth-hypersim.yaml définit les chemins et la classe unique depth.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# Hypersim dataset for monocular depth estimation — photorealistic synthetic indoor (ray-traced), dense depth up to ~10 m
# Documentation: https://docs.ultralytics.com/datasets/depth/hypersim
# Example usage: yolo depth train data=depth-hypersim.yaml model=yolo26n-depth.pt
# No autodownload — obtain the source data (see docs) and arrange it as below.
# parent
# ├── ultralytics
# └── datasets
# └── depth-hypersim
# ├── images/{train,val} # RGB images
# └── depth/{train,val} # paired *.npy, float32 meters (images/ -> depth/)
path: depth-hypersim # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 68242 images
val: images/val # val images (relative to 'path') 6377 images
nc: 1
names:
0: depth
channels: 3Utilisation#
Pour entraîner un modèle YOLO26n-Depth sur le jeu de données Hypersim 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 model (recommended for training)
# Train the model
results = model.train(data="depth-hypersim.yaml", epochs=100, imgsz=640)Modèles pré-entraînés#
La famille de profondeurs YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) se télécharge automatiquement depuis les releases Ultralytics et est entraînée sur le vaste mélange multi-jeux de données dont Hypersim fait partie. Explore YOLO26x-depth sur Ultralytics Platform.
Citations et remerciements#
Si tu utilises le jeu de données Hypersim dans tes travaux de recherche ou de développement, merci de citer l'article suivant :
@inproceedings{roberts2021hypersim,
title={Hypersim: A Photorealistic Synthetic Dataset for Holistic Indoor Scene Understanding},
author={Mike Roberts and Jason Ramapuram and Anurag Ranjan and Atulit Kumar and Miguel Angel Bautista and Nathan Paczan and Russ Webb and Joshua M. Susskind},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
year={2021}
}Nous tenons à remercier les créateurs d'Hypersim pour avoir rendu ce jeu de données d'intérieur synthétique photoréaliste disponible pour la communauté de vision par ordinateur.