Ultralytics YOLO27:

Dataset de Profundidade ARKitScenes#

ARKitScenes é um dataset RGB-D de interiores do mundo real, de grande escala, capturado com o ARKit da Apple em dispositivos iPad Pro equipados com um scanner LiDAR. É o maior dataset RGB-D de interiores do mundo real do seu género, fornecendo cenas interiores diversas, capturadas naturalmente, com ground truth de profundidade preciso para estimativa de profundidade monocular.

Principais funcionalidades#

  • Capturado com o scanner LiDAR e a câmara RGB do ARKit da Apple num iPad Pro, produzindo dados de sensores reais (não sintéticos).
  • Abrange cenas interiores diversificadas para a compreensão de cenas interiores 3D.
  • Intervalo de profundidade curto, aproximadamente 0,5–6 m (profundidade máxima mediana de cerca de 2,4 m), típico de capturas interiores realizadas com dispositivos portáteis.
  • Ground truth de profundidade denso, derivado de LiDAR e alinhado com os frames RGB.
  • A maior fonte individual do mundo real no conjunto de pré-treino de profundidade da Ultralytics.

Estrutura do Conjunto de Dados#

O dataset de profundidade ARKitScenes está dividido em dois subconjuntos:

  1. Train: 676.080 imagens com mapas de profundidade correspondentes para treino.
  2. Val: 21.559 imagens com mapas de profundidade correspondentes para validação durante o treino do modelo.

Cada amostra é composta por uma imagem RGB e um PNG de profundidade uint16 correspondente, em milímetros (depth_scale: 1000), seguindo o formato de dataset de profundidade da Ultralytics.

Obter os dados#

O ARKitScenes não tem autodescarregamento — os dados são distribuídos pela Apple e o descarregamento requer a aceitação dos termos da licença no repositório do ARKitScenes. Clona o repositório e descarrega o subconjunto de aumento de resolução de profundidade, que associa frames RGB a profundidade registada:

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

Os frames de profundidade são PNGs uint16 em milímetros (0 = inválido), e os nomes de ficheiro RGB/profundidade são timestamps de captura que não coincidem exatamente — associa cada frame de profundidade ao frame RGB com o timestamp mais próximo. Conversão de referência para o formato de dataset de profundidade da 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)))

Função no YOLO26-Depth#

O ARKitScenes é uma fonte de treino no conjunto de pré-treino de profundidade multidataset do YOLO26-Depth da Ultralytics, com cerca de 2,19 milhões de pares imagem–profundidade. Como a maior fonte individual do mundo real neste conjunto, fornece uma grande quantidade de profundidade LiDAR real de interiores, que ancora a precisão do modelo em interiores a curta distância. Os modelos resultantes são avaliados nos benchmarks padrão NYU, KITTI, Make3D, ETH3D e iBims-1.

YAML do Conjunto de Dados#

Um arquivo YAML é usado para definir a configuração do dataset. Ele contém informações sobre os caminhos, as classes e outras informações relevantes do dataset.

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 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: 3

Utilização#

Para treinar um modelo YOLO26n-depth no dataset ARKitScenes com um tamanho de imagem de 640, podes utilizar os seguintes excertos de código. Para obter uma lista completa dos argumentos disponíveis, consulta a página de Treino do modelo.

Exemplo de treino
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 no amplo conjunto multidataset de pré-treino de profundidade do qual o ARKitScenes faz parte. Estes modelos são descarregados automaticamente a partir da versão mais recente da Ultralytics, por exemplo o YOLO26x-depth da v8.4.0, e abrangem vários tamanhos para diferentes requisitos de precisão e recursos.

Citações e agradecimentos#

Se utilizares o dataset ARKitScenes no teu trabalho de investigação ou desenvolvimento, cita o seguinte artigo:

Citação
@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 por criarem e manterem este recurso valioso para a comunidade de visão computacional.

Perguntas frequentes#

  • O ARKitScenes é a maior fonte do mundo real no conjunto de pré-treinamento do YOLO26-Depth com aproximadamente 2,19 milhões de imagens, contribuindo com 676.080 imagens de treinamento e 21.559 imagens de validação capturadas com o scanner LiDAR de dispositivos Apple iPad Pro. A profundidade interna densa do ARKitScenes ancora a precisão de curto alcance dos modelos lançados, que são avaliados no NYU Depth V2, KITTI, ETH3D, Make3D e iBims-1.

  • O ARKitScenes não possui download automático. Aceite os termos de licença no repositório do ARKitScenes, baixe o subconjunto de aumento de resolução de profundidade com o script oficial download_data.py e pareie cada quadro de profundidade com o quadro RGB de carimbo de data/hora mais próximo usando o script de conversão em Obtain the Data. O resultado segue o layout de profundidade padrão do Ultralytics com PNGs uint16 em milímetros.

  • O ARKitScenes é um dataset interno portátil com profundidades de aproximadamente 0,5 a 6 m e uma profundidade máxima mediana em torno de 2,4 m, portanto, o ARKitScenes complementa fontes de maior alcance como KITTI e TartanAir no conjunto de treinamento.

Comentários