Dataset de profundidad Hypersim#
Hypersim es un conjunto de datos sintético fotorrealista de escenas de interiores diseñado para la comprensión integral de escenas de interiores. Sus imágenes se trazan mediante rayos a partir de interiores en 3D de Evermotion creados por profesionales, lo que produce renders de gran realismo combinados con una verdad de terreno de profundidad por píxel perfecta y densa.
Dado que Hypersim es totalmente sintético, cada píxel tiene un valor de profundidad exacto sin ruido de sensor, retornos faltantes ni artefactos de medición. Esto lo convierte en una excelente fuente de geometría de interiores limpia y densa para entrenar modelos de estimación de profundidad monocular.
Características clave#
- Escenas interiores sintéticas fotorrealistas, renderizadas mediante trazado de rayos a partir de interiores 3D profesionales de Evermotion.
- Solo entornos interiores.
- Verdad fundamental de profundidad por píxel densa y perfecta sin ruido de sensor ni valores faltantes.
- Rango de profundidad principalmente ≤10 m (con algunas distancias mayores).
- Aporta 74,619 imágenes (68,242 de entrenamiento / 6,377 de validación) a la mezcla de entrenamiento de profundidad de Ultralytics.
Estructura del dataset#
El dataset de profundidad Hypersim se divide en dos subconjuntos:
- Train: 68,242 imágenes con mapas de profundidad densos emparejados para el entrenamiento.
- Val: 6,377 imágenes con mapas de profundidad densos emparejados para la validación durante el entrenamiento.
Cada imagen RGB se combina con un mapa de profundidad float32 de .npy que almacena las distancias por píxel en metros, siguiendo el formato del conjunto de datos de profundidad de Ultralytics.
Obtén los datos#
Hypersim no cuenta con descarga automática: el conjunto de datos (~1.9 TB de archivos ZIP por escena) es distribuido por Apple bajo la licencia CC BY-SA 3.0 y se descarga con el script oficial del repositorio ml-hypersim (hay un descargador selectivo disponible en 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 ./scenesLos fotogramas RGB son las vistas previas de frame.*.tonemap.jpg y la profundidad se encuentra en frame.*.depth_meters.hdf5. Los valores almacenados son distancias de rayos al centro de la cámara, no profundidad planar; convierte antes de guardar y mapea los píxeles NaN (ventanas, cielo) a 0 (no válido). Utiliza la división de escenas oficial de metadata_images_split_scene_v1.csv para la asignación de entrenamiento/validación. Conversión de referencia al formato del conjunto de datos de profundidad de 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")Rol en YOLO26-Depth#
Hypersim es una de las fuentes de entrenamiento en la amplia mezcla de múltiples datasets (~2.19 millones de imágenes) utilizada para preentrenar los modelos YOLO26-Depth de Ultralytics. Dentro de esta mezcla, Hypersim aporta geometría interior densa y limpia que complementa los datos de sensores del mundo real con mayor ruido.
No existe un benchmark de Hypersim independiente y reservado en esta configuración. En su lugar, los modelos resultantes se evalúan en los benchmarks estándar de profundidad monocular: NYU Depth V2, KITTI, Make3D, ETH3D y iBims-1.
YAML del dataset#
Se utiliza un archivo YAML (Yet Another Markup Language) para definir la configuración del conjunto de datos. Contiene información sobre las rutas, las clases y otros datos relevantes del conjunto de datos. Para Hypersim, el archivo depth-hypersim.yaml define las rutas y la única clase 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: 3Uso#
Para entrenar un modelo YOLO26n-Depth en el conjunto de datos Hypersim con un tamaño de imagen de 640, puedes utilizar los siguientes fragmentos de código. Para obtener una lista completa de los argumentos disponibles, consulta la página de Entrenamiento del modelo.
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)Modelos preentrenados#
La familia de profundidad de YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) se descarga automáticamente desde las versiones de Ultralytics y se entrena en la amplia combinación de múltiples conjuntos de datos de la que forma parte Hypersim. Explora YOLO26x-depth en Ultralytics Platform.
Citas y agradecimientos#
Si utilizas el dataset Hypersim en tu trabajo de investigación o desarrollo, por favor cita el siguiente artículo:
@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}
}Nos gustaría agradecer a los creadores de Hypersim por poner este dataset sintético fotorrealista de interiores a disposición de la comunidad de visión artificial.