YOLO Vision 2026:

深度推定データセットの概要#

単眼深度推定では、画像内のすべてのピクセルにメートル単位の浮動小数点深度値が割り当てられます。トレーニングのターゲットは、.npy の float32 配列として格納される高密度のピクセルごとの深度マップです。各値は、カメラから対応するシーンポイントまでの距離を表します。

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

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

NPY 深度マップ形式#

各トレーニングサンプルは、1枚の RGB 画像と1つのペアとなる .npy 深度ファイルで構成されます。深度ファイルには、形状が (H, W) の 2D float32 NumPy 配列が格納され、値はメートル単位の深度です。

  • 深度ファイルには .npy 拡張子を使用し、float32 配列を含める必要があります。
  • 各深度ファイルは、対応する画像ファイルと同じファイル名(ステム)を持つ必要があります(例:scene_001.npyscene_001.jpg とペアになります)。
  • データセットローダーは、ファイルパス内の images ディレクトリコンポーネントを depth に置き換え、画像の拡張子を .npy にスワップすることで深度ファイルを検索します。
  • 深度が ≤ 0 のピクセルは無効として扱われ、損失およびメトリックの計算から除外されます。

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

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

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

データセット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

使用方法#

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)

サポートされているデータセット#

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 — 屋外、OOD(分布外)
  • iBims-1 — 高品質な屋内(エッジおよび平面サーフェス)

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

独自のデータセットを追加する#

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

nc: 1
names:
    0: depth

よくある質問 (FAQ)#

  • 深度マップは、形状 (H, W) の float32 配列を含む NumPy .npy ファイルとして保存する必要があります。各要素には、対応する画像ピクセルの深度がメートル単位で格納されます。PNG や 16 ビット整数形式は使用しないでください。ローダーは生の float 配列を想定しています。

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

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

    • delta1 / delta2 / delta3 — 1.25倍、1.25²倍、1.25³倍のしきい値内にあるピクセルの割合。値が大きいほど良好です。
    • abs_rel — 平均絶対相対誤差です。値が低いほど良好です。
    • rmse — 二乗平均平方根誤差(メートル単位)です。値が低いほど良好です。
    • silog — スケール不変対数誤差です。値が低いほど良好です。
  • はい。各深度 .npy ファイルは、対応する画像と同じファイル名を持つ必要があります。ローダーは、images ディレクトリコンポーネントを depth に置き換え、画像の拡張子を .npy に差し替えることで深度パスを導出します。深度ファイルが行方不明または読み取り不能である画像は、破損した画像と同様に、(キャッシュされた)データセットスキャン中に警告を出して破棄されます。有効な画像と深度のペアがまったく見つからない場合は、エラーが発生します。

コントリビューター

コメント