Ultralytics YOLO27:
Get Started
No license

SUN RGB-D 깊이 데이터셋#

SUN RGB-D는 Intel RealSense, Asus Xtion, Microsoft Kinect v1 및 v2의 네 가지 RGB-D 센서로 촬영한 실제 실내 장면 이해 벤치마크입니다. 다중 센서로 구성된 이 데이터셋은 실제 환경의 다양한 깊이 정보를 제공하는 귀중한 자료로, 단안 깊이 추정에 활용할 수 있습니다.

Ultralytics Platform의 SUN RGB-D를 살펴보고 RGB-깊이 쌍을 미리 보고, 데이터셋 통계를 확인하고, 학습을 위해 데이터셋을 복제하세요.

주요 기능#

  • Intel RealSense, Asus Xtion, Microsoft Kinect v1 및 v2의 네 가지 RGB-D 센서로 촬영되어 실제 다중 센서의 다양성을 제공합니다.
  • 장면 이해 연구를 위해 다양한 실제 실내 장면을 포함합니다.
  • 일반적인 소비자용 실내 RGB-D 촬영 범위인 약 10m까지의 깊이를 포함합니다.
  • RGB 프레임에 정렬된 센서 기반 깊이 정답 데이터입니다.
  • Ultralytics 깊이 사전 학습 데이터 구성에 실제 다중 센서 실내 장면의 다양성을 더합니다.

데이터셋 구조#

SUN RGB-D 깊이 데이터셋은 다음 두 가지 하위 집합으로 나뉩니다.

  1. Train: 학습을 위한 깊이 맵 쌍이 포함된 이미지 9,245개입니다.
  2. Val: 모델 학습 중 검증을 위한 깊이 맵 쌍이 포함된 이미지 1,090개입니다.

각 샘플은 RGB 이미지 하나와 쌍을 이루는 스케일 조정된 uint16 깊이 PNG 하나로 구성되며, Ultralytics 깊이 데이터셋 형식을 따릅니다. 데이터셋 YAML은 소스 아카이브(~6.5 GB)를 다운로드하고 처음 사용할 때 자동으로 변환하며, 깊이를 밀리미터 단위로 기록하므로 기본 depth_scale: 1000이 적용됩니다.

YOLO26-Depth에서의 역할#

SUN RGB-D는 약 2.19M개의 이미지-깊이 쌍으로 구성된 Ultralytics YOLO26-Depth 다중 데이터셋 사전 학습 데이터의 학습 소스입니다. 이 데이터셋은 여러 소비자용 RGB-D 장치로 촬영한 깊이 정보를 모델에 제공하여 실제 다중 센서 실내 장면의 다양성을 더합니다. 이를 통해 생성된 모델은 표준 NYU, KITTI, Make3D, ETH3D 및 iBims-1 벤치마크에서 평가됩니다.

데이터셋 YAML#

데이터셋 구성을 정의하는 데 YAML 파일을 사용합니다. 이 파일에는 데이터셋 경로, 클래스 및 기타 관련 정보가 포함됩니다.

ultralytics/cfg/datasets/depth-sunrgbd.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")

사용법#

이미지 크기 640으로 SUN RGB-D 데이터셋에서 YOLO26n-depth 모델을 학습하려면 다음 코드 예제를 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 Training 페이지를 참조하세요.

학습 예제
from ultralytics import YOLO

# 모델 로드
model = YOLO("yolo26n-depth.pt")  # 사전 학습된 깊이 모델 로드(학습에 권장)

# 모델 학습
results = model.train(data="depth-sunrgbd.yaml", epochs=100, imgsz=640)

사전 학습 모델#

YOLO26 깊이 모델 제품군은 SUN RGB-D가 포함된 폭넓은 다중 데이터셋 깊이 사전 학습 데이터로 학습됩니다. 이 모델은 처음 사용할 때 Ultralytics v8.4.0 assets release에서 자동으로 다운로드됩니다. 예를 들면 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는 Intel RealSense, Asus Xtion, Microsoft Kinect v1 및 v2의 네 가지 RGB-D 센서로 촬영한 실제 실내 장면 이해 벤치마크입니다. Ultralytics 구성은 학습용 이미지-깊이 쌍 9,245개와 검증용 쌍 1,090개를 제공하며, 깊이 범위는 약 10 m까지입니다.

  • 각 RGB 이미지는 밀리미터 단위의 uint16 PNG와 쌍을 이루므로 기본 depth_scale: 1000이 적용되며, Ultralytics 깊이 데이터셋 형식을 따릅니다. 소형 테스트 데이터셋인 Depth8은 SUN RGB-D에서 샘플링되며 동일한 형식을 사용합니다.

  • yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt epochs=100 imgsz=640을 실행하거나 Usage 섹션의 Python 예제를 사용하세요. Ultralytics Platform에서 데이터셋을 살펴보고 복제할 수도 있습니다.

댓글