Dataset di profondità ARKitScenes#
ARKitScenes è un dataset RGB-D indoor su larga scala del mondo reale, acquisito con ARKit di Apple su dispositivi iPad Pro dotati di scanner LiDAR. È il più grande dataset RGB-D indoor del mondo reale nel suo genere e offre scene indoor diverse, acquisite naturalmente, con ground truth della profondità accurata per la stima della profondità monoculare.
Funzionalità principali#
- Acquisito con lo scanner LiDAR e la fotocamera RGB di ARKit di Apple su iPad Pro, producendo dati dei sensori reali (non sintetici).
- Copre scene indoor diverse per la comprensione delle scene indoor 3D.
- Intervallo di profondità ridotto, circa 0,5–6 m (profondità massima mediana intorno a 2,4 m), tipico delle acquisizioni indoor effettuate a mano.
- Ground truth della profondità denso, derivato da LiDAR e allineato ai frame RGB.
- La più grande fonte singola del mondo reale nel mix di preaddestramento della profondità di Ultralytics.
Struttura del dataset#
Il dataset di profondità ARKitScenes è suddiviso in due sottoinsiemi:
- Train: 676.080 immagini con mappe di profondità abbinate per l'addestramento.
- Val: 21.559 immagini con mappe di profondità abbinate per la validazione durante l'addestramento del modello.
Ogni campione è costituito da un'immagine RGB e da un PNG di profondità uint16 abbinato in millimetri (depth_scale: 1000), secondo il formato del dataset di profondità Ultralytics.
Ottenere i dati#
ARKitScenes non dispone del download automatico: i dati sono distribuiti da Apple e per scaricarli è necessario accettare i termini di licenza nel repository di ARKitScenes. Clona il repository e scarica il sottoinsieme depth-upsampling, che abbina i frame RGB alla profondità registrata:
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 ./dataI frame di profondità sono PNG uint16 in millimetri (0 = non valido) e i nomi dei file RGB/profondità sono timestamp di acquisizione che non corrispondono esattamente: abbina ogni frame di profondità al frame RGB con il timestamp più vicino. Conversione di riferimento al formato del dataset di profondità 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)))Ruolo in YOLO26-Depth#
ARKitScenes è una fonte di addestramento nel mix di preaddestramento multidataset Ultralytics YOLO26-Depth, composto da circa 2,19 milioni di coppie immagine–profondità. In quanto singola fonte reale più grande di questo mix, fornisce un'ampia quantità di dati reali sulla profondità LiDAR indoor, che costituiscono un punto di riferimento per l'accuratezza del modello negli ambienti indoor a corto raggio. I modelli risultanti vengono valutati sui benchmark standard NYU, KITTI, Make3D, ETH3D e iBims-1.
YAML del dataset#
Un file YAML viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, sulle classi e altre informazioni pertinenti.
# 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: 3Utilizzo#
Per addestrare un modello YOLO26n-depth sul dataset ARKitScenes con una dimensione dell'immagine di 640, puoi utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consulta la pagina Addestramento del modello.
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)Modelli pre-addestrati#
La famiglia di modelli per la profondità YOLO26 viene addestrata sull'ampio mix di preaddestramento multidataset per la profondità, di cui fa parte ARKitScenes. Questi modelli vengono scaricati automaticamente dall'ultima release di Ultralytics, ad esempio YOLO26x-depth dalla v8.4.0, e coprono una gamma di dimensioni per diversi requisiti di accuratezza e risorse.
Citazioni e ringraziamenti#
Se utilizzi il dataset ARKitScenes nella tua attività di ricerca o sviluppo, cita il seguente articolo:
@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}
}Desideriamo ringraziare gli autori per aver creato e mantenuto questa preziosa risorsa per la comunità della computer vision.
FAQ#
ARKitScenes è la singola fonte del mondo reale più grande nel mix di pre-addestramento di YOLO26-Depth di circa 2,19 milioni di immagini, contribuendo con 676.080 immagini di addestramento e 21.559 di convalida catturate con lo scanner LiDAR dei dispositivi Apple iPad Pro. La sua profondità d'interni densa ancora la precisione a corto raggio dei modelli rilasciati, che vengono poi valutati su NYU Depth V2, KITTI, ETH3D, Make3D e iBims-1.
ARKitScenes non prevede il download automatico. Accetta i termini di licenza nel repository di ARKitScenes, scarica il sottoinsieme di sovracampionamento della profondità con lo script ufficiale
download_data.pye associa ogni fotogramma di profondità al suo fotogramma RGB con timestamp più vicino utilizzando lo script di conversione in Ottieni i dati. Il risultato segue il layout di profondità di Ultralytics standard con PNG in millimetri uint16.