エンタープライズレベルのセキュリティ: ISO 27001およびSOC 2 Type I準拠。

Link to this sectionHypersim Depth Dataset#

Hypersim は、室内シーンを包括的に理解するために設計された、フォトリアルな合成室内シーンデータセットです。その画像は、プロが作成したEvermotion 3Dインテリアからレイトレーシングされており、高精度で緻密なピクセル単位のデプス正解データと組み合わされた、極めてリアルなレンダリング結果を提供します。

Hypersimは完全に合成されたデータであるため、各ピクセルは正確なデプス値を持っており、センサーノイズやデータの欠落、測定によるアーティファクトが存在しません。このため、単眼デプス推定モデルを学習させるための、クリーンで高密度な室内幾何情報の優れたソースとなります。

Link to this section主な特徴#

  • プロ仕様のEvermotion 3Dインテリアからレイトレーシングされた、フォトリアルな合成室内シーン。
  • 室内環境のみ。
  • センサーノイズや値の欠落がない、緻密で完璧なピクセル単位のデプス正解データ。
  • デプスの範囲は主に10m以下(一部、より長い距離を含む)。
  • Ultralyticsのデプス学習ミックスに74,619枚の画像(学習用68,242枚 / 検証用6,377枚)を提供します。

Link to this sectionデータセットの構造#

Hypersimデプスデータセットは、以下の2つのサブセットに分かれています。

  1. Train: 学習用の緻密なデプスマップとペアになった68,242枚の画像。
  2. Val: 学習中の検証に使用する、緻密なデプスマップとペアになった6,377枚の画像。

各RGB画像は、メートル単位のピクセル距離を格納した.npy形式のfloat32デプスマップとペアになっており、Ultralyticsデプスデータセットフォーマットに従います。

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

Link to this sectionYOLO26-Depthにおける役割#

Hypersimは、Ultralytics YOLO26-Depthモデルの事前学習に使用される広範なマルチデータセット混合(約219万枚の画像)における学習ソースの一つです。この混合データセットの中で、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/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

Link to this section使用方法#

Hypersimデータセットで画像サイズ640の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)

Link to this section事前学習済みモデル#

YOLO26デプスファミリー(yolo26n-depth.ptyolo26s-depth.ptyolo26m-depth.ptyolo26l-depth.ptyolo26x-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の作成者に感謝いたします。

コントリビューター

コメント