Датасет глубины SUN RGB-D#
SUN RGB-D — бенчмарк для понимания indoor-сцен в реальных условиях, собранный с помощью четырёх разных RGB-D-сенсоров: Intel RealSense, Asus Xtion, а также Microsoft Kinect v1 и v2. Благодаря использованию нескольких сенсоров этот датасет — ценный источник разнообразных данных о глубине реальных сцен для оценки глубины по одному изображению.
Изучи SUN RGB-D на Ultralytics Platform: просматривай пары RGB и глубины, проверяй статистику датасета и клонируй его для обучения.
Основные особенности#
- Собран с помощью четырёх разных RGB-D-сенсоров (Intel RealSense, Asus Xtion, Microsoft Kinect v1 и v2), что обеспечивает разнообразие данных с нескольких сенсоров.
- Охватывает широкий спектр реальных indoor-сцен для исследований в области понимания сцен.
- Диапазон глубины — примерно до 10 м, что типично для съёмки в помещениях потребительскими RGB-D-камерами.
- Эталонные значения глубины, полученные с сенсоров и выровненные по RGB-кадрам.
- Добавляет разнообразие данных с нескольких сенсоров в помещении в набор данных для предобучения Ultralytics по глубине.
Структура набора данных#
Датасет глубины SUN RGB-D разделён на две подвыборки:
- Train: 9 245 изображений с соответствующими картами глубины для обучения.
- Val: 1 090 изображений с соответствующими картами глубины для валидации во время обучения модели.
Каждый пример состоит из одного RGB-изображения и соответствующего PNG-файла глубины в формате uint16 с масштабированными значениями, как предусмотрено в формате датасетов глубины Ultralytics. YAML-файл датасета скачивает исходный архив (~6.5 GB) и автоматически преобразует его при первом использовании, сохраняя значения в миллиметрах, поэтому подходит настройка по умолчанию depth_scale: 1000.
Роль в YOLO26-Depth#
SUN RGB-D — один из источников обучающих данных в составе набора для предобучения YOLO26-Depth от Ultralytics, включающего примерно 2.19M пар изображений и карт глубины. Датасет добавляет разнообразие реальных indoor-данных с нескольких сенсоров, предоставляя модели данные о глубине, снятые разными потребительскими RGB-D-устройствами. Полученные модели оцениваются на стандартных бенчмарках NYU, KITTI, Make3D, ETH3D и iBims-1.
Файл YAML набора данных#
Для задания конфигурации датасета используется YAML-файл. В нём содержится информация о путях к данным, классах и другие важные сведения.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# SUN RGB-D dataset for monocular depth estimation — real indoor, multi-sensor RGB-D (RealSense/Xtion/Kinect), up to ~10 m
# Documentation: https://docs.ultralytics.com/datasets/depth/sunrgbd
# Example usage: yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
# └── depth-sunrgbd ← downloads here (6.5 GB archive, ~14 GB converted)
# ├── images/{train,val} # RGB images
# └── depth/{train,val} # paired 16-bit *.png depth maps (images/ -> depth/)
# If an interrupted download leaves a partial dataset, delete the depth-sunrgbd dir and re-run to rebuild it.
path: depth-sunrgbd # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 9245 images
val: images/val # val images (relative to 'path') 1090 images
nc: 1
names:
0: depth
channels: 3
# Download script/URL (optional)
download: |
import random
import shutil
from pathlib import Path
import cv2
import numpy as np
from ultralytics.data.utils import save_depth_png
from ultralytics.utils import TQDM
from ultralytics.utils.downloads import download
# Download and extract the official archive (~6.5 GB), then convert each of the 10335 scenes:
# refined depth_bfx PNGs decode via the SUN RGB-D bit-rotation (d>>3 | d<<13) to millimeters,
# clipped at 10 m; a deterministic random 1090-scene subset (seed 0) forms the val split
dir = Path(yaml["path"]) # dataset root dir
download(["https://rgbd.cs.princeton.edu/data/SUNRGBD.zip"], dir=dir / "source", delete=True, exist_ok=True)
for split in ("train", "val"):
(dir / "images" / split).mkdir(parents=True, exist_ok=True)
(dir / "depth" / split).mkdir(parents=True, exist_ok=True)
scenes = sorted(p.parent for p in (dir / "source" / "SUNRGBD").rglob("depth_bfx"))
names = ["_".join(s.relative_to(dir / "source" / "SUNRGBD").parts) for s in scenes]
val = set(random.Random(0).sample(names, k=1090))
for scene, name in TQDM(zip(scenes, names), total=len(scenes), desc="Converting"):
split = "val" if name in val else "train"
d = cv2.imread(str(next((scene / "depth_bfx").glob("*.png"))), cv2.IMREAD_ANYDEPTH)
d = (((d >> 3) | (d << 13)) / 1000.0).clip(max=10).astype(np.float32) # bit-rotated mm -> m
save_depth_png(dir / "depth" / split / f"{name}.png", d)
next((scene / "image").glob("*.jpg")).replace(dir / "images" / split / f"{name}.jpg")
shutil.rmtree(dir / "source")Использование#
Чтобы обучить модель YOLO26n-depth на датасете SUN RGB-D с размером изображения 640, воспользуйся следующими фрагментами кода. Полный список доступных аргументов смотри на странице обучения модели.
from ultralytics import YOLO
# Загрузить модель
model = YOLO("yolo26n-depth.pt") # загрузить предварительно обученную модель глубины (рекомендуется для обучения)
# Обучить модель
results = model.train(data="depth-sunrgbd.yaml", epochs=100, imgsz=640)Предварительно обученные модели#
Семейство моделей глубины YOLO26 обучается на обширном наборе данных для предобучения, объединяющем несколько датасетов, в который входит и SUN RGB-D. При первом использовании эти модели автоматически скачиваются из релиза ресурсов v8.4.0 Ultralytics, например YOLO26x-depth, и представлены в разных размерах для различных требований к точности и ресурсам.
Цитирование и благодарности#
Если ты используешь датасет SUN RGB-D в исследовательской или разработческой работе, укажи следующую статью:
@inproceedings{song2015sunrgbd,
title={SUN RGB-D: A RGB-D Scene Understanding Benchmark Suite},
author={Song, Shuran and Lichtenberg, Samuel P. and Xiao, Jianxiong},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2015}
}Благодарим авторов за создание и поддержку этого ценного ресурса для сообщества компьютерного зрения.
Часто задаваемые вопросы#
SUN RGB-D — бенчмарк для понимания indoor-сцен в реальных условиях, собранный с помощью четырёх RGB-D-сенсоров: Intel RealSense, Asus Xtion, а также Microsoft Kinect v1 и v2. Конфигурация Ultralytics включает 9 245 пар изображений и карт глубины для обучения и 1 090 для валидации; максимальная глубина составляет примерно 10 м.
Каждому RGB-изображению соответствует PNG-файл в формате uint16 со значениями глубины в миллиметрах, поэтому подходит настройка по умолчанию
depth_scale: 1000; данные представлены в формате датасетов глубины Ultralytics. Компактный тестовый датасет Depth8 сформирован на основе SUN RGB-D и использует тот же формат.Запусти
yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640или воспользуйся примером на Python в разделе Использование. Также ты можешь просматривать и клонировать датасет на Ultralytics Platform.



