Jeu de données de profondeur Hypersim#
Hypersim est un jeu de données synthétique photoréaliste de scènes intérieures, conçu pour une compréhension holistique des scènes intérieures. Ses images sont générées par lancer de rayons à partir d'intérieurs 3D Evermotion créés par des professionnels, ce qui produit des rendus très réalistes associés à une vérité terrain de profondeur dense et parfaite pour chaque pixel.
Comme Hypersim est entièrement synthétique, chaque pixel possède une valeur de profondeur exacte, sans bruit de capteur, retour manquant ni artefact de mesure. Cela en fait une excellente source de géométrie intérieure propre et dense pour entraîner des modèles d'estimation de profondeur monoculaire.
Fonctionnalités clés#
- Scènes intérieures synthétiques photoréalistes, générées par lancer de rayons à partir d'intérieurs 3D Evermotion professionnels.
- Environnements intérieurs uniquement.
- Vérité terrain de profondeur dense et parfaite pour chaque pixel, sans bruit de capteur ni valeur manquante.
- Plage de profondeur principalement ≤10 m (avec quelques distances supérieures).
- Contribue 74,619 images (68,242 pour l'entraînement / 6,377 pour la validation) au mélange de données d'entraînement de profondeur d'Ultralytics.
Structure du jeu de données#
Le jeu de données de profondeur Hypersim est divisé en deux sous-ensembles :
- Entraînement : 68,242 images avec des cartes de profondeur denses appariées pour l'entraînement.
- Validation : 6,377 images avec des cartes de profondeur denses appariées pour la validation pendant l'entraînement.
Chaque image RVB est associée à un fichier PNG de profondeur uint16 mis à l'échelle, conformément au format de jeu de données de profondeur Ultralytics.
Obtenir les données#
Hypersim ne propose 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é avec le 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 RVB sont les aperçus frame.*.tonemap.jpg et la profondeur se trouve dans frame.*.depth_meters.hdf5. Les valeurs stockées sont des distances par lancer de rayons jusqu'au centre de la caméra, et non une profondeur planaire — convertis-les avant l'enregistrement et remappe les pixels NaN (fenêtres, ciel) vers 0 (valide). Utilise la division officielle des scènes metadata_images_split_scene_v1.csv pour l'affectation entraînement/validation. 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
from ultralytics.data.utils import save_depth_png
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}"
save_depth_png(dst / f"depth/{out}/{name}.png", depth)
shutil.copy(rgb, dst / f"images/{out}/{name}.jpg")Rôle dans YOLO26-Depth#
Hypersim est l'une des sources d'entraînement du vaste mélange multi-jeux de données (~2.19M images) utilisé pour le préentraînement des modèles Ultralytics YOLO26-Depth. Dans ce mélange, Hypersim apporte une géométrie intérieure propre et dense qui complète les données plus bruitées issues de capteurs du monde réel.
Il n'existe pas de benchmark Hypersim autonome avec un ensemble de test distinct dans cette configuration. À la place, les modèles obtenus sont évalués sur les benchmarks standards de profondeur monoculaire : NYU Depth V2, 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, 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 16-bit *.png depth maps (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 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 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 modèles de profondeur YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) se télécharge automatiquement depuis les versions d'Ultralytics et est entraînée sur le vaste mélange multi-jeux de données dont Hypersim fait partie. Découvre 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 souhaitons remercier les créateurs d'Hypersim d'avoir mis ce jeu de données synthétique photoréaliste de scènes intérieures à la disposition de la communauté de la vision par ordinateur.
FAQ#
Hypersim est un jeu de données d'intérieur synthétique photoréaliste d'Apple, tracé par rayons à partir d'intérieurs 3D professionnels Evermotion. Comme chaque pixel possède une valeur de profondeur exacte sans bruit de capteur ni retours manquants, ses 74 619 images (68 242 pour l'entraînement, 6 377 pour la validation) fournissent une géométrie d'intérieur dense et propre qui complète les données de capteur du monde réel plus bruyantes dans le mélange d'entraînement YOLO26-Depth.
Hypersim ne dispose pas de téléchargement automatique. Récupère les scènes (~1,9 To) avec le script officiel du dépôt ml-hypersim repository, puis convertis les distances de rayons de
depth_meters.hdf5en profondeur planaire et écris des fichiers PNG en millimètres avec le script de la section Obtain the Data. Mappe les pixels NaN tels que les fenêtres et le ciel sur0afin qu'ils soient traités comme invalides.