Link to this sectionARKitScenes Depth Dataset#
ARKitScenesは、LiDARスキャナを搭載したiPad Proデバイス上のAppleのARKitでキャプチャされた、大規模な実世界の屋内RGB-Dデータセットです。これは同種のデータセットとして最大の実世界屋内RGB-Dデータセットであり、単眼深度推定のための正確な深度グラウンドトゥルースを備えた、多様で自然にキャプチャされた屋内シーンを提供します。
Link to this section主な特徴#
- iPad Pro上のAppleのARKitのLiDARスキャナとRGBカメラでキャプチャされており、現実の(合成ではない)センサーデータを生成します。
- 3D屋内シーン理解のための多様な屋内シーンをカバーしています。
- 手持ちの屋内キャプチャによく見られる、約0.5〜6m(中央値の最大深度は約2.4m)の短い深度範囲です。
- RGBフレームにアライメントされた、LiDAR由来の高密度な深度グラウンドトゥルース。
- Ultralytics深度事前学習ミックスにおける単一のデータソースとして最大です。
Link to this sectionデータセットの構造#
ARKitScenes深度データセットは、以下の2つのサブセットに分割されています。
- Train: 学習用のペア深度マップを持つ676,080枚の画像。
- Val: モデル学習中の検証用のペア深度マップを持つ21,559枚の画像。
Each sample consists of one RGB image and one paired .npy float32 depth map storing per-pixel distances in meters, following the Ultralytics depth dataset format.
Link to this sectionデータの取得#
ARKitScenesには自動ダウンロード機能はありません。データはAppleによって配布されており、ダウンロードするにはARKitScenesリポジトリのライセンス条項に同意する必要があります。リポジトリをクローンし、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深度フレームはミリメートル単位(0は無効)のuint16 PNG形式であり、RGBと深度のファイル名は正確に一致しないキャプチャタイムスタンプであるため、各深度フレームを最も近いタイムスタンプのRGBフレームとペアにする必要があります。Ultralytics深度データセット形式への変換を参照してください。
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)))Link to this sectionYOLO26-Depthにおける役割#
ARKitScenesは、約219万件の画像と深度のペアを含むUltralytics YOLO26-Depthマルチデータセット事前学習ミックスにおける学習ソースです。このミックスにおける単一の実データソースとして最大であり、モデルの近距離屋内精度を固定する豊富な実世界の屋内LiDAR深度を提供します。その結果生成されるモデルは、標準的なNYU、KITTI、Make3D、ETH3D、およびiBims-1ベンチマークで評価されます。
Link to this sectionデータセット YAML#
YAML(Yet Another Markup Language)ファイルは、データセット構成を定義するために使用されます。これには、データセットのパス、クラス、およびその他の関連情報が含まれています。
# 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: 3Link to this section使用方法#
画像サイズ640でARKitScenesデータセットに対してYOLO26n-depthモデルを学習するには、以下のコードスニペットを使用できます。利用可能な引数の詳細リストについては、モデルトレーニングページを参照してください。
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)Link to this section事前学習済みモデル#
YOLO26深度ファミリーは、ARKitScenesが含まれる幅広いマルチデータセット深度事前学習ミックスで学習されています。これらのモデルは最新のUltralyticsリリースから自動ダウンロードされ(例:v8.4.0のYOLO26x-depth)、異なる精度とリソース要件に対応するさまざまなサイズを取り揃えています。
Link to this section引用と謝辞#
研究や開発作業で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}
}コンピュータビジョンコミュニティのためにこの貴重なリソースを作成・維持してくださった著者に感謝いたします。