Ultralytics YOLO27:

Conjunto de dados de profundidade Hypersim#

Hypersim é um conjunto de dados sintético fotorrealista de ambientes internos, concebido para a compreensão holística de cenas internas. As imagens são renderizadas com traçado de raios a partir de interiores 3D da Evermotion criados por profissionais, produzindo imagens altamente realistas acompanhadas de valores de referência de profundidade densos e perfeitos em cada píxel.

Como o Hypersim é totalmente sintético, cada píxel tem um valor de profundidade exato, sem ruído do sensor, retornos ausentes ou artefactos de medição. Isso torna o Hypersim uma excelente fonte de geometria interna limpa e densa para treinar modelos de estimativa de profundidade monocular.

Principais funcionalidades#

  • Cenas internas sintéticas fotorrealistas, renderizadas com traçado de raios a partir de interiores 3D profissionais da Evermotion.
  • Apenas ambientes internos.
  • Valores de referência de profundidade por píxel densos e perfeitos, sem ruído do sensor nem valores em falta.
  • Intervalo de profundidade geralmente ≤10 m (com algumas distâncias maiores).
  • Contribui com 74,619 imagens (68,242 para treinamento / 6,377 para validação) para a combinação de dados de treinamento de profundidade do Ultralytics.

Estrutura do conjunto de dados#

O conjunto de dados de profundidade Hypersim está dividido em dois subconjuntos:

  1. Treinamento: 68,242 imagens acompanhadas de mapas de profundidade densos para treinamento.
  2. Validação: 6,377 imagens acompanhadas de mapas de profundidade densos para validação durante o treinamento.

Cada imagem RGB é acompanhada por um PNG de profundidade uint16 escalado, de acordo com o formato de conjunto de dados de profundidade do Ultralytics.

Obter os dados#

O Hypersim não tem transferência automática — o conjunto de dados (~1.9 TB de ficheiros ZIP 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 (há um descarregador 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 ./scenes

Os fotogramas 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 píxeis NaN (janelas, céu) para 0 (inválido). Usa a divisão oficial de cenas metadata_images_split_scene_v1.csv para atribuir os conjuntos de treinamento e validação. Conversão de referência para o formato de conjunto de dados de profundidade do 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")

Papel no YOLO26-Depth#

O Hypersim é uma das fontes de treinamento da ampla combinação de vários conjuntos de dados (~2.19M imagens) usada para pré-treinar os modelos YOLO26-Depth do Ultralytics. Nesta combinação, o Hypersim fornece geometria interna limpa e densa, que complementa os dados mais ruidosos de sensores do mundo real.

Nesta configuração, não há um benchmark Hypersim independente com dados reservados. 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 ficheiro YAML é usado para definir a configuração do conjunto de dados. Contém informações sobre os caminhos, as classes e outros dados relevantes do conjunto de dados. Para o Hypersim, o ficheiro depth-hypersim.yaml define os caminhos e a única classe depth.

ultralytics/cfg/datasets/depth-hypersim.yaml
# 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: 3

Uso#

Para treinar um modelo YOLO26n-Depth no conjunto de dados Hypersim com um tamanho de imagem de 640, podes usar os seguintes exemplos de código. Para consultar a lista completa de argumentos disponíveis, visita a página de Treinamento do modelo.

Exemplo de treino
from ultralytics import YOLO

# Carregar um modelo
model = YOLO("yolo26n-depth.pt")  # carregue um modelo pré-treinado (recomendado para treinamento)

# Treinar o modelo
results = model.train(data="depth-hypersim.yaml", epochs=100, imgsz=640)

Modelos pré-treinados#

A família de modelos de profundidade YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) é transferida automaticamente das versões do Ultralytics e treinada com a ampla combinação de vários conjuntos de dados da qual o Hypersim faz parte. Explora o YOLO26x-depth na plataforma Ultralytics.

Citações e agradecimentos#

Se usares o conjunto de dados Hypersim na tua pesquisa ou no teu trabalho de desenvolvimento, cita o seguinte artigo:

Citação
@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}
}

Agradecemos aos criadores do Hypersim por disponibilizarem este conjunto de dados sintético fotorrealista de ambientes internos à comunidade de visão computacional.

Perguntas frequentes#

  • Hypersim é um conjunto de dados sintético fotorrealista de ambientes internos da Apple, renderizado com traçado de raios a partir de interiores 3D profissionais da Evermotion. Como cada píxel tem um valor de profundidade exato, sem ruído do sensor nem retornos ausentes, as suas 74,619 imagens (68,242 para treinamento e 6,377 para validação) fornecem geometria interna limpa e densa, que complementa os dados mais ruidosos de sensores do mundo real na combinação 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 e, em seguida, converte as distâncias de raio depth_meters.hdf5 em profundidade planar e grava PNGs em milímetros com o script indicado em Obter os dados. Mapeia os píxeis NaN, como os de janelas e do céu, para 0 para que sejam tratados como inválidos.

  • Executa yolo depth train data=depth-hypersim.yaml model=yolo26n-depth.pt epochs=100 imgsz=640 ou usa o exemplo em Python na secção Utilização. A página de Treinamento apresenta todos os argumentos disponíveis.

Comentários