Dataset de Profundidade ARKitScenes#
ARKitScenes é um conjunto de dados RGB-D interno do mundo real em grande escala, capturado com o ARKit da Apple em dispositivos iPad Pro equipados com um scanner LiDAR. É o maior conjunto de dados RGB-D interno do mundo real do seu tipo, fornecendo cenas internas diversas e capturadas naturalmente com dados reais de profundidade precisos para monocular depth estimation.
Principais recursos#
- Capturado com o scanner LiDAR e a câmara RGB do ARKit da Apple no iPad Pro, produzindo dados de sensor reais (não sintéticos).
- Cobre diversas cenas interiores para a compreensão de cenas 3D interiores.
- Curto alcance de profundidade, aproximadamente 0,5–6 m (mediana da profundidade máxima em torno de 2,4 m), típico de captura manual em interiores.
- Ground truth de profundidade densa derivada de LiDAR alinhada com os frames RGB.
- A maior fonte única do mundo real na combinação de pré-treino de profundidade da Ultralytics.
Estrutura do Dataset#
O dataset de profundidade ARKitScenes está dividido em dois subconjuntos:
- Train: 676.080 imagens com mapas de profundidade emparelhados para treino.
- Val: 21.559 imagens com mapas de profundidade emparelhados para validação durante o treino do modelo.
Cada amostra consiste em uma imagem RGB e um mapa de profundidade float32 .npy emparelhado que armazena distâncias por pixel em metros, seguindo o Ultralytics depth dataset format.
Obter os Dados#
O ARKitScenes não possui download automático — os dados são distribuídos pela Apple, e o download exige a aceitação dos termos de licença no ARKitScenes repository. Clone o repositório e baixe o subconjunto de upsampling de profundidade, que emparelha quadros RGB com a profundidade registrada:
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 ./dataOs quadros de profundidade são arquivos PNG uint16 em milímetros (0 = inválido), e os nomes dos arquivos RGB/profundidade são carimbos de data/hora de captura que não correspondem exatamente — emparelhe cada quadro de profundidade com o quadro RGB de carimbo de data/hora mais próximo. Conversão de referência para o 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)))Papel no YOLO26-Depth#
O ARKitScenes é uma fonte de treino na mistura de pré-treino multi-dataset do Ultralytics YOLO26-Depth de aproximadamente 2,19 milhões de pares imagem-profundidade. Como a maior fonte real única nesta mistura, fornece abundante profundidade LiDAR interior do mundo real que ancora a precisão interior de curto alcance do modelo. Os modelos resultantes são avaliados nos benchmarks padrão NYU, KITTI, Make3D, ETH3D e iBims-1.
YAML do Dataset#
Um ficheiro YAML (Yet Another Markup Language) é usado para definir a configuração do dataset. Contém informações sobre os caminhos, classes e outras informações relevantes do dataset.
# 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: 3Uso#
Para treinar um modelo YOLO26n-depth no conjunto de dados ARKitScenes com um tamanho de imagem de 640, podes usar os seguintes trechos de código. Para obter uma lista abrangente de argumentos disponíveis, consulta a página de Training do modelo.
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)Modelos pré-treinados#
A família de profundidade YOLO26 é treinada na ampla mistura de pré-treinamento de profundidade de múltiplos conjuntos de dados da qual o ARKitScenes faz parte. Esses modelos são baixados automaticamente a partir do lançamento mais recente da Ultralytics, por exemplo, YOLO26x-depth a partir da v8.4.0, e abrangem uma variedade de tamanhos para diferentes requisitos de precisão e recursos.
Citações e Agradecimentos#
Se usares o dataset ARKitScenes na tua investigação ou trabalho de desenvolvimento, por favor cita o seguinte artigo:
@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}
}Gostaríamos de agradecer aos autores pela criação e manutenção deste recurso valioso para a comunidade de visão computacional.