YOLO Vision 2026:

Набор данных глубины ARKitScenes#

ARKitScenes — это крупномасштабный реальный набор данных RGB-D для помещений, записанный с помощью ARKit от Apple на устройствах iPad Pro, оснащенных сканером LiDAR. Это крупнейший в своем роде реальный набор данных RGB-D для помещений, который предоставляет разнообразные естественным образом снятые сцены внутри помещений с точной глубиной в качестве эталона для монокулярной оценки глубины.

Ключевые особенности#

  • Снято с помощью LiDAR-сканера и RGB-камеры Apple ARKit на iPad Pro, что позволило получить реальные (не синтетические) данные с сенсоров.
  • Охватывает разнообразные внутренние сцены для 3D-понимания пространства помещений.
  • Короткий диапазон глубины, примерно 0,5–6 м (медианная максимальная глубина около 2,4 м), типичный для ручной съемки внутри помещений.
  • Плотная разметка глубины, полученная с LiDAR и выровненная по RGB-кадрам.
  • Крупнейший единый источник реальных данных в наборе для предварительного обучения глубины Ultralytics.

Структура набора данных#

Набор данных глубины ARKitScenes разделен на два подмножества:

  1. Train: 676 080 изображений с парными картами глубины для обучения.
  2. Val: 21 559 изображений с парными картами глубины для валидации во время обучения модели.

Каждый образец состоит из одного RGB-изображения и одной парной карты глубины в формате .npy float32, хранящей расстояния для каждого пикселя в метрах, в соответствии с форматом набора данных глубины Ultralytics.

Получение данных#

У ARKitScenes нет автоматической загрузки — данные распространяются Apple, и для их скачивания требуется принять условия лицензии в репозитории ARKitScenes. Клонируй репозиторий и загрузи подмножество для повышения разрешения глубины, которое объединяет кадры RGB с зарегистрированной глубиной:

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

Кадры глубины представляют собой файлы PNG в формате uint16 в миллиметрах (0 = недопустимо), а имена файлов RGB и глубины представляют собой временные метки захвата, которые не совпадают точно — сопоставляй каждый кадр глубины с ближайшим по временной метке кадром RGB. Справочное преобразование в формат набора данных глубины Ultralytics:

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

Роль в YOLO26-Depth#

ARKitScenes является источником для обучения в составе мульти-наборного комплекса для предварительного обучения глубины Ultralytics YOLO26-Depth, насчитывающего около 2,19 млн пар изображение-глубина. Будучи крупнейшим единичным реальным источником в этом наборе, он предоставляет обширные данные реальной LiDAR-глубины для помещений, которые обеспечивают точность модели при работе на коротких дистанциях. Полученные модели оцениваются на стандартных бенчмарках NYU, KITTI, Make3D, ETH3D и iBims-1.

YAML набора данных#

YAML-файл (Yet Another Markup Language) используется для определения конфигурации набора данных. Он содержит информацию о путях к данным, классах и другую соответствующую информацию.

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

Использование#

Чтобы обучить модель YOLO26n-depth на наборе данных ARKitScenes с размером изображения 640, ты можешь использовать следующие фрагменты кода. Полный список доступных аргументов см. на странице модели Обучение.

Пример обучения
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)

Предварительно обученные модели#

Семейство моделей глубины YOLO26 обучается на широкой многонаборной предварительно обученной смеси данных глубины, частью которой является ARKitScenes. Эти модели автоматически загружаются из последнего выпуска Ultralytics, например YOLO26x-depth из версии v8.4.0, и охватывают ряд размеров для различных требований к точности и ресурсам.

Цитирование и благодарности#

Если ты используешь набор данных ARKitScenes в своей исследовательской или проектной работе, пожалуйста, сошлися на следующую статью:

Цитата
@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}
}

Мы хотели бы поблагодарить авторов за создание и поддержку этого ценного ресурса для сообщества компьютерного зрения.

Участники

Комментарии