Безопасность корпоративного уровня: Соответствует ISO 27001 + SOC 2 Type I.

Link to this sectionНабор данных глубины ARKitScenes#

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

Link to this sectionКлючевые особенности#

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

Link to this sectionСтруктура набора данных#

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

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

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

Link to this sectionПолучение данных#

У ARKitScenes нет автозагрузки — данные распространяются Apple, и для их скачивания необходимо принять условия лицензии в репозитории ARKitScenes. Клонируй репозиторий и скачай подмножество depth-upsampling, которое объединяет 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)))

Link to this sectionРоль в YOLO26-Depth#

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

Link to this sectionYAML набора данных#

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

Link to this sectionИспользование#

Чтобы обучить модель 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)

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

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

Link to this sectionЦитирование и благодарности#

Если ты используешь набор данных 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}
}

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

Участники

Комментарии