Tiefendatensatz ARKitScenes#
ARKitScenes ist ein groß angelegter RGB-D-Datensatz für reale Innenräume, der mit Apples ARKit auf iPad Pro-Geräten mit LiDAR-Scanner erfasst wurde. Er ist der größte reale RGB-D-Datensatz für Innenräume seiner Art und bietet vielfältige, natürlich erfasste Innenraumszenen mit präzisen Tiefengrundwahrheiten für die monokulare Tiefenschätzung.
Wichtige Funktionen#
- Erfasst mit dem LiDAR-Scanner und der RGB-Kamera von Apples ARKit auf dem iPad Pro, wodurch reale (nicht synthetische) Sensordaten entstehen.
- Deckt vielfältige Innenraumszenen für das 3D-Verständnis von Innenraumszenen ab.
- Kurze Tiefenreichweite von etwa 0,5–6 m (mediane maximale Tiefe etwa 2,4 m), typisch für die Erfassung von Innenräumen mit tragbaren Geräten.
- Dichte, aus LiDAR abgeleitete Tiefengrundwahrheiten, die an den RGB-Bildern ausgerichtet sind.
- Die mit Abstand größte reale Quelle im Tiefen-Vortrainingsmix von Ultralytics.
Datensatzstruktur#
Der ARKitScenes-Tiefendatensatz ist in zwei Teilmengen aufgeteilt:
- Training: 676.080 Bilder mit zugehörigen Tiefenkarten für das Training.
- Validierung: 21.559 Bilder mit zugehörigen Tiefenkarten zur Validierung während des Modelltrainings.
Jedes Beispiel besteht aus einem RGB-Bild und einer zugehörigen uint16-Tiefen-PNG-Datei in Millimetern (depth_scale: 1000), entsprechend dem Format für Tiefendatensätze von Ultralytics.
Daten abrufen#
Für ARKitScenes gibt es keinen automatischen Download – die Daten werden von Apple bereitgestellt, und für den Download musst du die Lizenzbedingungen im ARKitScenes-Repository akzeptieren. Klone das Repository und lade die Teilmenge zur Tiefen-Upsampling-Verarbeitung herunter, die RGB-Bilder mit registrierten Tiefendaten 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 ./dataTiefenbilder sind uint16-PNGs in Millimetern (0 = ungültig), und die Dateinamen von RGB- und Tiefenbildern entsprechen den Aufnahmezeitstempeln, stimmen jedoch nicht exakt überein – ordne daher jedes Tiefenbild dem RGB-Bild mit dem nächstgelegenen Zeitstempel zu. Referenzkonvertierung in das Format für Tiefendatensätze von Ultralytics:
import shutil
from pathlib import Path
import cv2
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}"
shutil.copy2(depth_png, dst / f"depth/{out}/{name}.png")
cv2.imwrite(str(dst / f"images/{out}/{name}.png"), cv2.imread(str(rgb)))Rolle in YOLO26-Depth#
ARKitScenes ist eine Trainingsquelle im Multi-Datensatz-Tiefen-Vortrainingsmix von Ultralytics für YOLO26-Depth, der ungefähr 2,19 Millionen Bild-Tiefen-Paare umfasst. Als mit Abstand größte reale Quelle in diesem Mix liefert der Datensatz umfangreiche reale LiDAR-Tiefendaten aus Innenräumen und bildet damit die Grundlage für die Genauigkeit des Modells bei kurzen Entfernungen in Innenräumen. Die resultierenden Modelle werden anhand der Standard-Benchmarks NYU, KITTI, Make3D, ETH3D und iBims-1 ausgewertet.
Dataset-YAML#
Eine YAML-Datei wird verwendet, um die Dataset-Konfiguration zu definieren. Sie enthält Informationen über die Pfade des Datasets, die Klassen und andere relevante Informationen.
# 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 16-bit *.png depth maps (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: 3Verwendung#
Um ein YOLO26n-depth-Modell mit einer Bildgröße von 640 auf dem ARKitScenes-Datensatz zu trainieren, kannst du die folgenden Codeausschnitte verwenden. Eine umfassende Liste der verfügbaren Argumente findest du auf der Seite zum Training des Modells.
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-Tiefenmodellfamilie wird mit dem umfangreichen Multi-Datensatz-Tiefen-Vortrainingsmix trainiert, zu dem auch ARKitScenes gehört. Diese Modelle werden automatisch aus der neuesten Ultralytics-Version heruntergeladen, beispielsweise YOLO26x-depth aus v8.4.0, und decken verschiedene Größen für unterschiedliche Anforderungen an Genauigkeit und Ressourcen ab.
Zitate und Danksagungen#
Wenn du den ARKitScenes-Datensatz für deine Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte die folgende Veröffentlichung:
@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.
FAQ#
ARKitScenes ist die absolut größte reale Quelle im etwa 2,19 Millionen Bilder umfassenden YOLO26-Depth-Pretraining-Mix und steuert 676.080 Trainings- und 21.559 Validierungsbilder bei, die mit dem LiDAR-Scanner von Apple iPad Pro-Geräten aufgenommen wurden. Die dichte Innentiefe von ARKitScenes verankert die Nahbereichsgenauigkeit der veröffentlichten Modelle, die anschließend auf NYU Depth V2, KITTI, ETH3D, Make3D und iBims-1 evaluiert werden.
ARKitScenes verfügt über keinen automatischen Download. Akzeptiere die Lizenzbedingungen im ARKitScenes repository, lade den Depth-Upsampling-Datensatz mit dem offiziellen
download_data.py-Skript herunter und kopple jeden Tiefenframe mit dem RGB-Frame des nächstgelegenen Zeitstempels mithilfe des Konvertierungsskripts unter Obtain the Data. Das Ergebnis folgt dem Standard-Ultralytics depth layout mit uint16-Millimeter-PNGs.