Dataset de profundidade Hypersim#
Hypersim é um dataset sintético fotorrealista de cenas interiores, concebido para a compreensão holística de cenas interiores. As suas imagens são renderizadas com ray tracing a partir de interiores 3D Evermotion criados profissionalmente, produzindo renderizações altamente realistas emparelhadas com ground truth de profundidade denso e perfeito por pixel.
Como o Hypersim é totalmente sintético, cada pixel tem um valor de profundidade exato, sem ruído do sensor, retornos em falta ou artefactos de medição. Isto torna-o uma excelente fonte de geometria interior limpa e densa para treinar modelos de estimativa de profundidade monocular.
Principais funcionalidades#
- Cenas interiores sintéticas fotorrealistas, renderizadas com ray tracing a partir de interiores 3D Evermotion profissionais.
- Apenas ambientes interiores.
- Ground truth de profundidade por pixel denso e perfeito, sem ruído do sensor ou valores em falta.
- Intervalo de profundidade geralmente ≤10 m (com algumas distâncias maiores).
- Contribui com 74,619 imagens (68,242 para treino / 6,377 para validação) para a mistura de treino de profundidade da Ultralytics.
Estrutura do Conjunto de Dados#
O dataset de profundidade Hypersim está dividido em dois subconjuntos:
- Treino: 68,242 imagens com mapas de profundidade densos emparelhados para treino.
- Validação: 6,377 imagens com mapas de profundidade densos emparelhados para validação durante o treino.
Cada imagem RGB é emparelhada com um PNG de profundidade uint16 escalado, seguindo o formato de dataset de profundidade da Ultralytics.
Obter os dados#
O Hypersim não tem download automático — o dataset (~1.9 TB de ZIPs por cena) é distribuído pela Apple sob a licença CC BY-SA 3.0 e transferido com o script oficial do repositório ml-hypersim (está disponível um downloader seletivo em 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 ./scenesOs frames RGB são as pré-visualizações frame.*.tonemap.jpg e a profundidade está em frame.*.depth_meters.hdf5. Os valores armazenados são distâncias de raio até ao centro da câmara, não profundidade planar — converte-os antes de guardar e mapeia os pixels NaN (janelas, céu) para 0 (inválido). Usa a divisão de cenas oficial metadata_images_split_scene_v1.csv para atribuir treino/validação. Conversão de referência para o formato de dataset de profundidade da 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")Função no YOLO26-Depth#
O Hypersim é uma das fontes de treino da ampla mistura de vários datasets (~2.19M de imagens) usada para pré-treinar os modelos Ultralytics YOLO26-Depth. Nesta mistura, o Hypersim contribui com geometria interior limpa e densa que complementa os dados mais ruidosos de sensores do mundo real.
Não existe um benchmark Hypersim independente com dados reservados para teste nesta configuração. Em vez disso, os modelos resultantes são avaliados nos benchmarks padrão de profundidade monocular: NYU Depth V2, KITTI, Make3D, ETH3D e iBims-1.
YAML do Conjunto de Dados#
Um arquivo YAML é usado para definir a configuração do conjunto de dados. Ele contém informações sobre os caminhos, as classes e outras informações relevantes do conjunto de dados. Para o Hypersim, o arquivo depth-hypersim.yaml define os caminhos e a única classe 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: 3Utilização#
Para treinar um modelo YOLO26n-Depth no dataset Hypersim com um tamanho de imagem de 640, podes usar os seguintes excertos de código. Para obteres uma lista completa dos argumentos disponíveis, consulta a página de Treino do 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 pré-treinados#
A família de profundidade YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) é transferida automaticamente a partir das versões da Ultralytics e é treinada na ampla mistura de vários datasets da qual o Hypersim faz parte. Explora o YOLO26x-depth na Ultralytics Platform.
Citações e agradecimentos#
Se utilizares o dataset Hypersim no teu trabalho de investigação ou desenvolvimento, cita o seguinte artigo:
@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}
}Gostaríamos de agradecer aos criadores do Hypersim por disponibilizarem este dataset interior sintético fotorrealista à comunidade de visão computacional.
Perguntas frequentes#
O Hypersim é um conjunto de dados sintético interno fotorrealista da Apple, renderizado por ray tracing a partir de interiores 3D profissionais da Evermotion. Como cada pixel possui um valor de profundidade exato sem ruído de sensor ou retornos ausentes, suas 74.619 imagens (68.242 de treino, 6.377 de validação) fornecem geometria interna limpa e densa que complementa os dados de sensores do mundo real mais ruidosos na mistura de treinamento do YOLO26-Depth.
O Hypersim não tem transferência automática. Obtém as cenas (~1.9 TB) com o script oficial do repositório ml-hypersim, depois converte as distâncias de raios de
depth_meters.hdf5em profundidade planar e escreve PNGs em milímetros com o script em Obter os Dados. Mapeia os pixéis NaN como janelas e céu para0para que sejam tratados como inválidos.