Link to this sectionDataset de profundidade Hypersim#
Hypersim é um dataset sintético fotorrealista de cenas internas projetado para o entendimento holístico de cenas internas. Suas imagens são geradas via ray-tracing a partir de interiores Evermotion 3D criados profissionalmente, produzindo renderizações altamente realistas combinadas com ground truth de profundidade por pixel densa e perfeita.
Como o Hypersim é totalmente sintético, cada pixel possui um valor de profundidade exato sem ruído de sensor, retornos perdidos ou artefatos de medição. Isso o torna uma excelente fonte de geometria interna limpa e densa para treinar modelos de estimativa de profundidade monocular.
Link to this sectionPrincipais recursos#
- Cenas internas sintéticas fotorrealistas, geradas por ray-tracing a partir de interiores Evermotion 3D profissionais.
- Apenas ambientes internos.
- Ground truth de profundidade por pixel densa e perfeita, sem ruído de sensor ou valores ausentes.
- Alcance de profundidade geralmente ≤10 m (com algumas distâncias maiores).
- Contribui com 74.619 imagens (68.242 treino / 6.377 val) para a mistura de treinamento de profundidade da Ultralytics.
Link to this sectionEstrutura do Dataset#
O dataset de profundidade Hypersim é dividido em dois subconjuntos:
- Train: 68.242 imagens com mapas de profundidade densos pareados para treinamento.
- Val: 6.377 imagens com mapas de profundidade densos pareados para validação durante o treinamento.
Cada imagem RGB é pareada com um mapa de profundidade .npy float32 armazenando distâncias por pixel em metros, seguindo o formato de dataset de profundidade Ultralytics.
Link to this sectionObter os Dados#
O Hypersim não possui 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 baixado com o script oficial do repositório ml-hypersim (um downloader seletivo está disponível 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 os previews frame.*.tonemap.jpg e a profundidade reside em frame.*.depth_meters.hdf5. Os valores armazenados são distâncias de raio até o centro da câmera, não profundidade planar — converta antes de salvar e mapeie os pixels NaN (janelas, céu) para 0 (inválido). Use a divisão de cena oficial metadata_images_split_scene_v1.csv para atribuição de treino/val. Referência de conversão para o formato de dataset de profundidade 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")Link to this sectionPapel no YOLO26-Depth#
O Hypersim é uma das fontes de treinamento na ampla mistura de vários datasets (~2,19M de imagens) usada para pré-treinar os modelos Ultralytics YOLO26-Depth. Dentro desta mistura, o Hypersim contribui com geometria interna densa e limpa que complementa dados de sensores do mundo real mais ruidosos.
Não há um benchmark Hypersim isolado 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.
Link to this sectionYAML do Dataset#
Um arquivo YAML (Yet Another Markup Language) é usado para definir a configuração do dataset. Ele contém informações sobre os caminhos do dataset, classes e outras informações relevantes. 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 *.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: 3Link to this sectionUso#
Para treinar um modelo YOLO26n-Depth no dataset Hypersim com um tamanho de imagem de 640, você pode usar os seguintes trechos de código. Para uma lista abrangente de argumentos disponíveis, consulte a página de Treinamento 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)Link to this sectionModelos pré-treinados#
A família de profundidade YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) faz download automático a partir do lançamento v8.4.0 e é treinada na ampla mistura de vários datasets da qual o Hypersim faz parte.
Link to this sectionCitações e Agradecimentos#
Se você usar o dataset Hypersim em sua pesquisa ou trabalho de desenvolvimento, por favor, cite 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 disponibilizar este dataset interno sintético fotorrealista para a comunidade de visão computacional.