Ultralytics YOLO27:

Hypersim 깊이 데이터셋#

Hypersim은 실내 장면을 전체적으로 이해할 수 있도록 설계된 사실적인 합성 실내 장면 데이터셋입니다. 이 데이터셋의 이미지는 전문적으로 제작된 Evermotion 3D 인테리어에서 레이 트레이싱으로 생성되며, 매우 사실적인 렌더링과 픽셀별로 완벽하고 조밀한 깊이 정답 데이터를 함께 제공합니다.

Hypersim은 완전한 합성 데이터셋이므로 모든 픽셀에 센서 노이즈, 누락된 반환값 또는 측정 아티팩트가 없는 정확한 깊이 값이 있습니다. 따라서 단안 깊이 추정 모델을 학습하기 위한 깨끗하고 조밀한 실내 기하 정보의 훌륭한 소스입니다.

주요 기능#

  • 전문적으로 제작된 Evermotion 3D 인테리어에서 레이 트레이싱으로 생성된 사실적인 합성 실내 장면입니다.
  • 실내 환경만 포함합니다.
  • 센서 노이즈나 누락된 값이 없는 조밀하고 완벽한 픽셀별 깊이 정답 데이터입니다.
  • 깊이 범위는 대부분 ≤10 m입니다(일부 더 먼 거리도 포함됩니다).
  • Ultralytics 깊이 학습 데이터 혼합 구성에 74,619개의 이미지(학습 68,242개 / 검증 6,377개)를 제공합니다.

데이터셋 구조#

Hypersim 깊이 데이터셋은 다음 두 하위 집합으로 나뉩니다.

  1. 학습: 학습에 사용되는 조밀한 깊이 맵이 쌍으로 제공되는 이미지 68,242개입니다.
  2. 검증: 학습 중 검증에 사용되는 조밀한 깊이 맵이 쌍으로 제공되는 이미지 6,377개입니다.

각 RGB 이미지는 스케일이 조정된 uint16 깊이 PNG와 쌍을 이루며, Ultralytics 깊이 데이터셋 형식을 따릅니다.

데이터 가져오기#

Hypersim은 자동 다운로드를 지원하지 않습니다. 데이터셋(장면별 ZIP 파일로 약 ~1.9 TB)은 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

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")

YOLO26-Depth에서의 역할#

Hypersim은 Ultralytics YOLO26-Depth 모델의 사전 학습에 사용되는 광범위한 다중 데이터셋 혼합 구성(약 ~2.19M 이미지)의 학습 소스 중 하나입니다. 이 혼합 구성에서 Hypersim은 노이즈가 더 많은 실제 센서 데이터와 상호 보완되는 깨끗하고 조밀한 실내 기하 정보를 제공합니다.

이 설정에는 별도로 분리된 Hypersim 벤치마크가 없습니다. 대신 생성된 모델은 표준 단안 깊이 벤치마크인 NYU Depth V2, KITTI, Make3D, ETH3D 및 iBims-1에서 평가됩니다.

데이터셋 YAML#

YAML 파일은 데이터셋 구성을 정의하는 데 사용됩니다. 이 파일에는 데이터셋의 경로, 클래스 및 기타 관련 정보가 포함되어 있습니다. 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 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

사용법#

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

학습 예제
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이 포함된 광범위한 다중 데이터셋 혼합 구성으로 학습됩니다. 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 제작자들에게 감사의 뜻을 전합니다.

FAQ#

  • Hypersim은 Apple의 포토리얼리스틱한 실내 합성 데이터셋으로, 전문 Evermotion 3D 인테리어를 기반으로 레이 트레이싱되었습니다. 모든 픽셀이 센서 노이즈나 누락된 반사 없이 정확한 깊이 값을 가지므로, 74,619개의 이미지(학습용 68,242개, 검증용 6,377개)는 YOLO26-Depth 학습 믹스에서 노이즈가 있는 실제 센서 데이터를 보완하는 깨끗하고 조밀한 실내 지오메트리를 제공합니다.

  • Hypersim은 자동 다운로드를 지원하지 않습니다. ml-hypersim repository의 공식 스크립트로 장면(~1.9 TB)을 가져온 다음, Obtain the Data의 스크립트를 사용하여 depth_meters.hdf5 광선 거리를 평면 깊이로 변환하고 밀리미터 단위의 PNG를 작성합니다. 창문 및 하늘과 같은 NaN 픽셀을 0(으)로 매핑하여 유효하지 않은 것으로 처리되도록 합니다.

  • yolo depth train data=depth-hypersim.yaml model=yolo26n-depth.pt epochs=100 imgsz=640을(를) 실행하거나 Usage 섹션의 Python 예제를 사용하세요. Training 페이지에는 사용 가능한 모든 인수가 나열되어 있습니다.

댓글