YOLO Vision 2026:

ARKitScenes Depth Dataset#

ARKitScenes は、Apple の LiDAR スキャナを搭載した iPad Pro デバイスを使用してキャプチャされた、大規模な実世界の屋内 RGB-D データセットです。これは同種のものとしては最大規模の実世界の屋内 RGB-D データセットであり、monocular depth estimation 向けの正確な深度の正解データを含む、多様で自然にキャプチャされた屋内シーンを提供します。

主な特徴#

  • iPad Pro上のAppleのARKitのLiDARスキャナとRGBカメラでキャプチャされており、現実の(合成ではない)センサーデータを生成します。
  • 3D屋内シーン理解のための多様な屋内シーンをカバーしています。
  • 手持ちの屋内キャプチャによく見られる、約0.5〜6m(中央値の最大深度は約2.4m)の短い深度範囲です。
  • RGBフレームにアライメントされた、LiDAR由来の高密度な深度グラウンドトゥルース。
  • Ultralytics深度事前学習ミックスにおける単一のデータソースとして最大です。

データセットの構造#

ARKitScenes深度データセットは、以下の2つのサブセットに分割されています。

  1. Train: 学習用のペア深度マップを持つ676,080枚の画像。
  2. Val: モデル学習中の検証用のペア深度マップを持つ21,559枚の画像。

各サンプルは、1 枚の RGB 画像と、1 つのペアになった .npy float32 深度マップで構成されており、ピクセルごとの距離をメートル単位で格納し、Ultralytics depth dataset format に準拠しています。

データの取得#

ARKitScenes には自動ダウンロード機能はありません。データは Apple によって配布されており、ダウンロードするには ARKitScenes repository のライセンス条項に同意する必要があります。リポジトリをクローンし、RGB フレームと位置合わせされた深度をペアにする depth-upsampling サブセットをダウンロードしてください。

git clone https://github.com/apple/ARKitScenes && cd ARKitScenes
python3 download_data.py upsampling --split Training --download_dir ./data
python3 download_data.py upsampling --split Validation --download_dir ./data

深度フレームは millimeters (0 = 無効) の uint16 PNG であり、RGB および深度のファイル名は正確には一致しないキャプチャタイムスタンプです。各深度フレームを最もタイムスタンプが近い RGB フレームとペアにしてください。Ultralytics depth dataset format へのリファレンス変換:

from pathlib import Path

import cv2
import numpy as np

src, dst = Path("data/upsampling"), Path("datasets/depth-arkitscenes")
for split, out in (("Training", "train"), ("Validation", "val")):
    (dst / f"images/{out}").mkdir(parents=True, exist_ok=True)
    (dst / f"depth/{out}").mkdir(parents=True, exist_ok=True)
    for video in sorted((src / split).iterdir()):
        rgbs = {float(p.stem.split("_")[-1]): p for p in (video / "lowres_wide").glob("*.png")}
        if not rgbs:
            continue
        for depth_png in sorted((video / "lowres_depth").glob("*.png")):
            t = float(depth_png.stem.split("_")[-1])
            rgb = rgbs[min(rgbs, key=lambda k: abs(k - t))]  # nearest-timestamp RGB frame
            name = f"{video.name}_{depth_png.stem}"
            depth = cv2.imread(str(depth_png), cv2.IMREAD_UNCHANGED).astype(np.float32) / 1000.0  # mm → m
            np.save(dst / f"depth/{out}/{name}.npy", depth)
            cv2.imwrite(str(dst / f"images/{out}/{name}.png"), cv2.imread(str(rgb)))

YOLO26-Depthにおける役割#

ARKitScenesは、約219万件の画像と深度のペアを含むUltralytics YOLO26-Depthマルチデータセット事前学習ミックスにおける学習ソースです。このミックスにおける単一の実データソースとして最大であり、モデルの近距離屋内精度を固定する豊富な実世界の屋内LiDAR深度を提供します。その結果生成されるモデルは、標準的なNYU、KITTI、Make3D、ETH3D、およびiBims-1ベンチマークで評価されます。

データセット YAML#

YAML(Yet Another Markup Language)ファイルは、データセット構成を定義するために使用されます。これには、データセットのパス、クラス、およびその他の関連情報が含まれています。

ultralytics/cfg/datasets/depth-arkitscenes.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# ARKitScenes dataset for monocular depth estimation — real indoor RGB-D from Apple ARKit (iPad Pro LiDAR), depth ~0.5-6 m
# Documentation: https://docs.ultralytics.com/datasets/depth/arkitscenes
# Example usage: yolo depth train data=depth-arkitscenes.yaml model=yolo26n-depth.pt
# No autodownload — obtain the source data (see docs) and arrange it as below.
# parent
# ├── ultralytics
# └── datasets
#     └── depth-arkitscenes
#         ├── images/{train,val}  # RGB images
#         └── depth/{train,val}   # paired *.npy, float32 meters (images/ -> depth/)

path: depth-arkitscenes # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 676080 images
val: images/val # val images (relative to 'path') 21559 images

nc: 1
names:
  0: depth

channels: 3

使用方法#

画像サイズ 640 で ARKitScenes データセット上で YOLO26n-depth モデルをトレーニングするには、次のコードスニペットを使用できます。利用可能な引数の包括的なリストについては、モデルの Training ページを参照してください。

学習例
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-depth.pt")  # load a pretrained depth model (recommended for training)

# Train the model
results = model.train(data="depth-arkitscenes.yaml", epochs=100, imgsz=640)

事前学習済みモデル#

YOLO26 depth ファミリーは、ARKitScenes がその一部を構成する、幅広いマルチデータセット深度事前学習ミックスでトレーニングされます。これらのモデルは、v8.4.0 の YOLO26x-depth などの最新の Ultralytics リリースから自動ダウンロードされ、さまざまな精度とリソースの要件に合わせてさまざまなサイズを網羅しています。

引用と謝辞#

研究や開発作業でARKitScenesデータセットを使用する場合は、以下の論文を引用してください。

引用
@inproceedings{baruch2021arkitscenes,
      title={ARKitScenes: A Diverse Real-World Dataset for 3D Indoor Scene Understanding Using Mobile RGB-D Data},
      author={Baruch, Gilad and Chen, Zhuoyuan and Dehghan, Afshin and Dimry, Tal and Feigin, Yuri and Fu, Peter and Gebauer, Thomas and Joffe, Brandon and Kurz, Daniel and Schwartz, Arik and Shulman, Elad},
      booktitle={Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
      year={2021}
}

コンピュータビジョンコミュニティにとって貴重なこのリソースを作成・維持してくださった著者の皆様に感謝いたします。

コントリビューター

コメント