Link to this sectionHypersim Depth Dataset#
Hypersim은 전체적인 실내 장면 이해를 위해 설계된, 실사 수준의 실내 합성 데이터셋입니다. 이 데이터셋의 이미지는 전문적으로 제작된 Evermotion 3D 인테리어를 레이 트레이싱하여 생성되었으며, 매우 사실적인 렌더링과 함께 완벽하고 밀도 높은 픽셀 단위 깊이 정답(ground truth)을 제공합니다.
Hypersim은 완전히 합성된 데이터셋이므로, 모든 픽셀이 센서 노이즈, 데이터 누락 또는 측정 아티팩트 없이 정확한 깊이 값을 가집니다. 이는 단안 depth estimation 모델 학습을 위한 깨끗하고 밀도 높은 실내 기하학적 데이터의 훌륭한 소스가 됩니다.
Link to this section주요 특징#
- 전문적인 Evermotion 3D 인테리어를 레이 트레이싱하여 만든 실사 수준의 합성 실내 장면.
- 실내 환경 전용.
- 센서 노이즈나 누락된 값 없는 밀도 높고 완벽한 픽셀 단위 깊이(per-pixel depth) 정답.
- 깊이 범위는 대부분 ≤10 m (일부 더 먼 거리 포함).
- Ultralytics 깊이 학습 혼합 데이터셋에 74,619개의 이미지(훈련용 68,242개 / 검증용 6,377개)를 기여합니다.
Link to this section데이터셋 구조#
Hypersim 깊이 데이터셋은 두 개의 하위 집합으로 나뉩니다:
- Train: 학습을 위한 밀도 높은 깊이 맵이 포함된 68,242개의 이미지.
- Val: 학습 중 검증을 위한 밀도 높은 깊이 맵이 포함된 6,377개의 이미지.
Each RGB image is paired with a .npy float32 depth map storing per-pixel distances in meters, following the Ultralytics depth dataset format.
Link to this section데이터 획득#
Hypersim은 자동 다운로드를 지원하지 않습니다. 이 데이터셋(장면당 약 1.9 TB의 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 ./scenesRGB 프레임은 frame.*.tonemap.jpg 미리보기 파일이며, 깊이 정보는 frame.*.depth_meters.hdf5에 저장되어 있습니다. 저장된 값은 **평면 깊이가 아닌 카메라 중심까지의 광선 거리(ray distance)**이므로, 저장 전 변환이 필요하며 NaN 픽셀(창문, 하늘)은 0(유효하지 않음)으로 매핑해야 합니다. 학습/검증 분할은 공식 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")Link to this sectionYOLO26-Depth에서의 역할#
Hypersim은 Ultralytics YOLO26-Depth 모델을 사전 학습하는 데 사용되는 광범위한 다중 데이터셋 혼합(약 2.19M 이미지)의 학습 소스 중 하나입니다. 이 혼합 데이터 내에서 Hypersim은 노이즈가 많은 실제 센서 데이터를 보완하는 깨끗하고 밀도 높은 실내 기하학적 정보를 제공합니다.
이 구성 내에서 별도로 분리된 Hypersim 벤치마크는 없습니다. 대신, 결과 모델은 표준 단안 깊이 벤치마크인 NYU Depth V2, KITTI, Make3D, ETH3D 및 iBims-1에서 평가됩니다.
Link to this section데이터셋 YAML#
YAML(Yet Another Markup Language) 파일은 데이터셋 구성을 정의하는 데 사용됩니다. 여기에는 데이터셋의 경로, 클래스 및 기타 관련 정보가 포함됩니다. Hypersim의 경우 depth-hypersim.yaml 파일이 경로와 단일 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 section사용법#
Hypersim 데이터셋에서 이미지 크기 640으로 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)Link to this section사전 학습된 모델#
YOLO26 깊이 제품군(yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt)은 v8.4.0 릴리스에서 자동 다운로드되며 Hypersim이 포함된 광범위한 다중 데이터셋 혼합으로 학습되었습니다.
Link to this section인용 및 감사의 글#
귀하의 연구 또는 개발 작업에서 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 제작자들에게 감사를 표합니다.