YOLO Vision 2026:

Hypersim Depth Dataset#

Hypersim은(는) 전체적인 실내 장면 이해를 위해 설계된 실내 장면에 대한 포토리얼리스틱 합성 데이터셋입니다. 이 이미지는 전문적으로 제작된 Evermotion 3D 인테리어에서 레이 트레이싱되었으며, 완벽하고 촘촘한 픽셀 단위 깊이 정답 데이터(ground truth)와 결합된 매우 사실적인 렌더링을 생성합니다.

Hypersim은 완전히 합성된 데이터셋이므로 모든 픽셀에 센서 노이즈, 누락된 반환값 또는 측정 아티팩트가 없는 정확한 깊이 값이 존재합니다. 이 덕분에 단안 depth estimation 모델을 학습시키기 위한 깨끗하고 촘촘한 실내 지오메트리의 훌륭한 소스가 됩니다.

주요 특징#

  • 전문적인 Evermotion 3D 인테리어를 레이 트레이싱하여 만든 실사 수준의 합성 실내 장면.
  • 실내 환경 전용.
  • 센서 노이즈나 누락된 값 없는 밀도 높고 완벽한 픽셀 단위 깊이(per-pixel depth) 정답.
  • 깊이 범위는 대부분 ≤10 m (일부 더 먼 거리 포함).
  • Ultralytics 깊이 학습 혼합 데이터셋에 74,619개의 이미지(훈련용 68,242개 / 검증용 6,377개)를 기여합니다.

데이터셋 구조#

Hypersim 깊이 데이터셋은 두 개의 하위 집합으로 나뉩니다:

  1. Train: 학습을 위한 밀도 높은 깊이 맵이 포함된 68,242개의 이미지.
  2. Val: 학습 중 검증을 위한 밀도 높은 깊이 맵이 포함된 6,377개의 이미지.

각 RGB 이미지는 미터 단위의 픽셀별 거리를 저장하는 .npy float32 깊이 맵과 쌍을 이루며, Ultralytics depth dataset format을 따릅니다.

데이터 획득#

Hypersim은 자동 다운로드를 지원하지 않습니다. 이 데이터셋(~1.9 TB 분량의 장면별 ZIP 파일)은 Apple이 CC BY-SA 3.0 license에 따라 배포하며, ml-hypersim repository의 공식 스크립트를 통해 다운로드합니다(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(유효하지 않음)으로 매핑해야 합니다. train/val 할당을 위해 공식 metadata_images_split_scene_v1.csv 장면 분할을 사용하십시오. Ultralytics depth dataset format으로의 변환 참고 자료:

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은 Ultralytics YOLO26-Depth 모델을 사전 학습하는 데 사용되는 광범위한 다중 데이터셋 혼합(약 2.19M 이미지)의 학습 소스 중 하나입니다. 이 혼합 데이터 내에서 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

사용법#

640 이미지 크기로 Hypersim 데이터셋에서 YOLO26n-Depth 모델을 학습시키려면 다음 코드 조각을 사용할 수 있습니다. 사용 가능한 인수 전체 목록은 모델 Training 페이지를 참조하십시오.

훈련 예제
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 depth 패밀리(yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt)는 Ultralytics 릴리스에서 자동으로 다운로드되며 Hypersim이 포함된 광범위한 다중 데이터셋 믹스로 학습됩니다. Ultralytics Platform에서 YOLO26x-depth를 살펴보십시오.

인용 및 감사의 글#

귀하의 연구 또는 개발 작업에서 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 제작자들에게 감사를 표합니다.

댓글