YOLO Vision 2026:

Набор данных глубины Hypersim#

Hypersim — это фотореалистичный синтетический датасет интерьерных сцен, предназначенный для комплексного понимания таких сцен. Его изображения создаются методом трассировки лучей на основе профессионально созданных 3D-интерьеров Evermotion, что позволяет получать высокореалистичные рендеры в сочетании с идеальными плотными попиксельными картами глубины (ground truth).

Поскольку Hypersim является полностью синтетическим, каждый пиксель имеет точное значение глубины без шумов сенсора, пропущенных возвратов или артефактов измерения. Это делает его отличным источником чистой и плотной геометрии помещений для обучения моделей монокулярного оценивания глубины.

Ключевые особенности#

  • Фотореалистичные синтетические сцены помещений, созданные методом трассировки лучей на основе профессиональных 3D-интерьеров Evermotion.
  • Только внутренние (indoor) пространства.
  • Плотные, идеальные данные о глубине для каждого пикселя (per-pixel depth) без шумов сенсора или пропущенных значений.
  • Диапазон глубины преимущественно ≤10 м (с некоторыми большими дистанциями).
  • Добавляет 74 619 изображений (68 242 для обучения / 6 377 для валидации) в набор данных для обучения глубины Ultralytics.

Структура набора данных#

Набор данных глубины Hypersim разделен на два подмножества:

  1. Train: 68 242 изображения с парными плотными картами глубины для обучения.
  2. Val: 6 377 изображений с парными плотными картами глубины для валидации в процессе обучения.

Каждое RGB-изображение сопряжено с картой глубины .npy в формате float32, которая хранит расстояния для каждого пикселя в метрах в соответствии с форматом датасетов глубины Ultralytics.

Получение данных#

У Hypersim нет автоматической загрузки — датасет (~1.9 ТБ ZIP-архивов для каждой сцены) распространяется Apple по лицензии CC BY-SA 3.0 и загружается с помощью официального скрипта из репозитория ml-hypersim (выборочный загрузчик доступен в 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

RGB-кадры представляют собой превью frame.*.tonemap.jpg, а глубина находится в frame.*.depth_meters.hdf5. Сохраненные значения — это лучевые расстояния до центра камеры, а не планарная глубина. Выполни конвертацию перед сохранением и сопоставь пиксели NaN (окна, небо) с 0 (недействительно). Используй официальное разделение сцен metadata_images_split_scene_v1.csv для назначения обучающей и валидационной выборок. Справочная конвертация в формат датасетов глубины 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")

Роль в YOLO26-Depth#

Hypersim является одним из источников обучения в обширной смеси из множества наборов данных (~2,19 млн изображений), используемой для предварительного обучения моделей Ultralytics YOLO26-Depth. В этой смеси Hypersim предоставляет чистую и плотную геометрию помещений, которая дополняет более зашумленные данные из реальных датчиков.

В этой конфигурации нет отдельного изолированного бенчмарка Hypersim. Вместо этого результирующие модели оцениваются по стандартным бенчмаркам монокулярной оценки глубины: NYU Depth V2, KITTI, Make3D, ETH3D и iBims-1.

YAML набора данных#

Файл YAML (Yet Another Markup Language) используется для определения конфигурации датасета. Он содержит информацию о путях к датасету, классах и прочие сопутствующие данные. Для Hypersim файл depth-hypersim.yaml определяет пути и единственный класс 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 *.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: 3

Использование#

Чтобы обучить модель YOLO26n-Depth на датасете Hypersim с размером изображения 640, ты можешь использовать следующие фрагменты кода. Полный список доступных аргументов смотри на странице модели Обучение.

Пример обучения
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)

Предварительно обученные модели#

Семейство глубины YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) автоматически загружается из релизов Ultralytics и обучено на широком миксе из нескольких датасетов, частью которого является Hypersim. Исследуй YOLO26x-depth на платформе Ultralytics Platform.

Цитирование и благодарности#

Если используешь набор данных Hypersim в своих исследованиях или разработках, пожалуйста, процитируй следующую статью:

Цитата
@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}
}

Мы хотели бы поблагодарить создателей Hypersim за предоставление этого фотореалистичного синтетического набора данных интерьеров сообществу компьютерного зрения.

Участники

Комментарии