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

Link to this section深度推定データセットの概要#

単眼深度推定では、画像内のすべてのピクセルに対して、メートル単位の浮動小数点形式の深度値を割り当てます。学習ターゲットは、.npy 形式の float32 配列として保存される、ピクセル単位の密な深度マップです。各値は、カメラから対応するシーンの点までの距離を表します。

本ガイドでは、Ultralytics YOLO 深度推定モデルで使用されるデータセット形式を解説し、学習および検証用に利用可能な組み込みデータセット設定を一覧します。

Link to this sectionサポートされているデータセット形式#

Link to this sectionNPY 深度マップ形式#

各学習サンプルは、RGB 画像 1 枚とペアになった .npy 深度ファイル 1 つで構成されます。深度ファイルには、(H, W) の形状を持つ 2D float32 NumPy 配列が保存されており、値はメートル単位の深度です。

  • 深度ファイルは .npy 拡張子を使用し、float32 配列を含んでいる必要があります。
  • Each depth file should have the same stem as its matching image file (e.g., scene_001.npy pairs with scene_001.jpg).
  • データセットローダーは、ファイルパス内の images ディレクトリ構成要素を depth に置き換え、画像の拡張子を .npy に変更することで深度ファイルを検索します。
  • 深度が ≤ 0 のピクセルは無効として扱われ、損失およびメトリクスの計算から除外されます。

標準的なレイアウトでは、画像と深度マップを並列フォルダに保持します。

dataset/
├── images/
│   ├── train/
│   └── val/
└── depth/
    ├── train/
    └── val/

例えば、images/train/scene_001.jpg にある画像は、depth/train/scene_001.npy にある深度マップとペアになります。

Link to this sectionデータセットYAML形式#

深度推定データセットは YAML ファイルで構成されます。主なフィールドは以下の通りです。

キー説明
pathデータセットのルートディレクトリ。
trainpathからの相対的な学習画像パス、または絶対パス。
valpathからの相対的な検証画像パス、または絶対パス。
testオプションのテスト画像パス。
ncクラス数 — 深度推定では常に 1 です。
namesクラス名のマッピング — 常に {0: depth} です。
ultralytics/cfg/datasets/nyu-depth.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# NYU Depth V2 dataset for monocular depth estimation
# Documentation: https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html
# 795 train + 654 val (Eigen test split) images, 480x640, indoor scenes, depth in meters
# Example usage: yolo depth train data=nyu-depth.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
#     └── nyu-depth  ← downloads here (≈1.5 GB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: nyu-depth # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 795 images
val: images/val # val images (relative to 'path') 654 images

# Depth maps are paired .npy files (float32, meters) under depth/<split>/, resolved by
# swapping '/images/' -> '/depth/' on each image path.

# Classes
nc: 1
names:
  0: depth

channels: 3

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/nyu-depth.zip

Link to this section使用方法#

Python または CLI を使用して YOLO26 深度推定モデルを学習します。

from ultralytics import YOLO

# Load a pretrained depth model
model = YOLO("yolo26n-depth.pt")

# Train on the NYU Depth V2 dataset
results = model.train(data="nyu-depth.yaml", epochs=100, imgsz=640)

Link to this sectionサポートされているデータセット#

YOLO26 深度モデルは、屋内(≤10 m)から屋外(~80 m)の範囲に及ぶ広範なマルチデータセットの混合(~219万枚の画像)で事前学習されており、その後 5 つのベンチマークでゼロショット評価が行われています。各データセットには専用のページがあります。

デバッグ用

  • Depth8 — 高速なパイプラインテスト用に、1.3 MB の自動ダウンロード可能なアーカイブにまとめられた 8 枚の SUN RGB-D 画像

事前学習ソース

  • ARKitScenes — 実世界の屋内、Apple ARKit LiDAR(最大の実世界ソース)
  • SUN RGB-D — 実世界の屋内、マルチセンサー RGB-D
  • DIODE — 実世界の屋内+屋外、高密度レーザースキャナーによるグラウンドトゥルース
  • Hypersim — 合成された写実的な屋内
  • TartanAir — 合成された多様な環境
  • Virtual KITTI 2 — 合成された屋外での運転
  • KITTI — 実世界の屋外での運転、Velodyne LiDAR(評価ベンチマークとしても使用)
  • ImageNet (pseudo-labeled) — 擬似ラベル付けされた蒸留セット、単一ソースとしては最大

評価ベンチマーク

  • NYU Depth V2 — 主要な屋内ベンチマーク
  • KITTI Eigen — 屋外運転ベンチマーク
  • ETH3D — 高精度な屋内+屋外
  • Make3D — 屋外、アウトオブディストリビューション
  • iBims-1 — 高品質な屋内(エッジと平面)

これらのベンチマークにおけるモデルごとの精度とダウンロード可能な事前学習済みウェイトは、Depth Estimation タスクページ に記載されています。train フィールドに複数の画像ディレクトリがリストされているデータセット YAML は、これらのソースを組み合わせて大規模な混合学習を行います。

Link to this section独自のデータセットを追加する#

  1. RGB 画像を images/trainimages/val などの分割フォルダの下に保存してください。
  2. 画像 1 枚につき 1 つの .npy float32 深度配列を、対応する depth/train および depth/val フォルダの下に、画像と同じファイル名(拡張子を除く)で保存してください。
  3. 深度値がメートル単位であることを確認し、無効または欠損しているピクセルには 0 または負の値を使用してください。
  4. pathtrainvalnc: 1names: {0: depth} を含むデータセット YAML を作成してください。
path: path/to/my-depth-dataset
train: images/train
val: images/val

nc: 1
names:
    0: depth

Link to this sectionよくある質問 (FAQ)#

Link to this section深度マップにはどのファイル形式を使用すべきですか?#

Depth maps must be saved as NumPy .npy files containing float32 arrays of shape (H, W). Each element stores the depth in meters for the corresponding image pixel. Do not use PNG or 16-bit integer formats — the loader expects raw float arrays.

Link to this section無効な深度ピクセルはどのように処理されますか?#

深度値が ≤ 0 のピクセルは無効として扱われ、損失計算およびメトリクス評価の両方から除外されます。これは、センサーノイズ、空の領域、および深度が確実に測定できない反射面を対象としています。

Link to this section評価にはどのようなメトリクスが使用されますか?#

深度推定の検証では、標準的な Depth Anything メトリクスセットを報告します。

  • delta1 / delta2 / delta3 — 1.25倍、1.25²倍、1.25³倍のしきい値内にあるピクセルの割合。値が大きいほど良好です。
  • abs_rel — 平均絶対相対誤差。値が小さいほど良好です。
  • rmse — メートル単位の二乗平均平方根誤差。値が小さいほど良好です。
  • silog — スケール不変対数誤差。値が小さいほど良好です。

Link to this section深度ファイル名は画像ファイル名と一致する必要がありますか?#

はい。各深度 .npy ファイルは、対応する画像と同じファイル名(拡張子を除く)を共有する必要があります。ローダーは、images ディレクトリ構成要素を depth に置き換え、画像の拡張子を .npy に変換することで深度パスを導出します。深度ファイルが存在しない、または読み取れない画像は、(キャッシュされた)データセットスキャン中に警告とともに除外されます。これは破損した画像と同様の扱いであり、有効な画像と深度のペアが全く見つからない場合はエラーが発生します。

コントリビューター

コメント