YOLO Vision 2026:

ARKitScenes Tiefendatensatz#

ARKitScenes ist ein groß angelegter, realer Indoor-RGB-D-Datensatz, der mit Apples ARKit auf iPad Pro-Geräten aufgenommen wurde, die mit einem LiDAR-Scanner ausgestattet sind. Es ist der größte reale Indoor-RGB-D-Datensatz seiner Art und bietet vielfältige, natürlich erfasste Innenszenen mit präzisen Tiefen-Ground-Truth-Daten für die monokulare Tiefenschätzung.

Hauptfunktionen#

  • Erfasst mit dem LiDAR-Scanner und der RGB-Kamera von Apples ARKit auf dem iPad Pro, wodurch echte (nicht synthetische) Sensordaten erzeugt werden.
  • Deckt vielfältige Innenraum-Szenen für das Verständnis von 3D-Innenräumen ab.
  • Kurzer Tiefenbereich, ca. 0,5–6 m (mediane maximale Tiefe bei ca. 2,4 m), typisch für handgeführte Innenaufnahmen.
  • Dichte, von LiDAR abgeleitete Tiefen-Ground-Truth, die an den RGB-Frames ausgerichtet ist.
  • Die mit Abstand größte reale Quelle im Ultralytics-Tiefen-Pretraining-Mix.

Datensatzstruktur#

Der ARKitScenes-Tiefendatensatz ist in zwei Teilmengen unterteilt:

  1. Train: 676.080 Bilder mit gepaarten Tiefenkarten für das Training.
  2. Val: 21.559 Bilder mit gepaarten Tiefenkarten für die Validierung während des Modelltrainings.

Jedes Sample besteht aus einem RGB-Bild und einer gekoppelten .npy float32-Tiefenkarte, die die Abstände pro Pixel in Metern speichert, gemäß dem Ultralytics depth dataset format.

Daten abrufen#

ARKitScenes hat keinen automatischen Download – die Daten werden von Apple bereitgestellt, und der Download erfordert die Annahme der Lizenzbedingungen im ARKitScenes repository. Klone das Repository und lade das Depth-Upsampling-Subset herunter, das RGB-Frames mit registrierten Tiefen verknüpft:

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

Tiefenframes sind uint16 PNGs in Millimetern (0 = ungültig), und RGB-/Tiefendateisnamen sind Aufnahme-Zeitstempel, die nicht exakt übereinstimmen – kopple jeden Tiefenframe mit dem RGB-Frame mit dem nächstgelegenen Zeitstempel. Referenzkonvertierung in das 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)))

Rolle bei YOLO26-Depth#

ARKitScenes ist eine Trainingsquelle im Ultralytics YOLO26-Depth Multi-Datensatz-Pretraining-Mix mit etwa 2,19 Mio. Bild-Tiefen-Paaren. Als größte einzelne reale Quelle in diesem Mix liefert er reichlich reale LiDAR-Tiefendaten aus Innenräumen, die die Genauigkeit des Modells für Innenräume im Nahbereich untermauern. Die resultierenden Modelle werden auf den Standard-Benchmarks NYU, KITTI, Make3D, ETH3D und iBims-1 evaluiert.

Datensatz-YAML#

Eine YAML-Datei (Yet Another Markup Language) wird verwendet, um die Datensatzkonfiguration zu definieren. Sie enthält Informationen über die Pfade des Datensatzes, Klassen und andere relevante Informationen.

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

Verwendung#

Um ein YOLO26n-depth-Modell auf dem ARKitScenes-Datensatz mit einer Bildgröße von 640 zu trainieren, kannst du die folgenden Codeausschnitte verwenden. Eine umfassende Liste der verfügbaren Argumente findest du auf der Modellseite Training.

Trainingsbeispiel
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)

Vortrainierte Modelle#

Die YOLO26-Tiefenfamilie wird auf dem breiten Multi-Dataset-Tiefen-Pretraining-Mix trainiert, zu dem auch ARKitScenes gehört. Diese Modelle werden automatisch aus dem neuesten Ultralytics-Release heruntergeladen, zum Beispiel YOLO26x-depth ab v8.4.0, und decken eine Reihe von Größen für unterschiedliche Genauigkeits- und Ressourcenanforderungen ab.

Zitate und Danksagungen#

Wenn du den ARKitScenes-Datensatz in deiner Forschung oder Entwicklungsarbeit verwendest, zitiere bitte das folgende Paper:

Zitat
@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}
}

Wir möchten den Autoren für die Erstellung und Pflege dieser wertvollen Ressource für die Computer-Vision-Community danken.

Kommentare