Ultralytics YOLO27:
No license

SUN RGB-D 깊이 데이터셋#

SUN RGB-D는 Intel RealSense, Asus Xtion, Microsoft Kinect v1 및 v2라는 네 가지 RGB-D 센서로 캡처된 실제 실내 장면 이해 벤치마크입니다. 다중 센서 설계 덕분에 단안 깊이 추정을 위한 실제 실내 깊이 데이터의 다양성을 제공하는 귀중한 데이터 소스입니다.

Ultralytics Platform에서 SUN RGB-D 탐색하여 RGB-깊이 쌍을 미리 보고, 데이터셋 통계를 검사하고, 학습을 위해 클론할 수 있습니다.

주요 기능#

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

데이터셋 구조#

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

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

각 샘플은 하나의 RGB 이미지와 쌍을 이루는 스케일 조정된 uint16 깊이 PNG로 구성되며, Ultralytics 깊이 데이터셋 형식을 따릅니다. 기본 제공 변환은 밀리미터 단위로 기록하므로 기본 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 모델을 학습하려면 다음 코드 조각을 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 학습 페이지를 참조하십시오.

학습 예제
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-sunrgbd.yaml", epochs=100, imgsz=640)

사전 학습 모델#

YOLO26 깊이 제품군은 SUN RGB-D가 포함된 광범위한 다중 데이터셋 깊이 사전 학습 혼합 데이터로 학습됩니다. 이러한 모델은 최신 Ultralytics 릴리스에서 자동으로 다운로드되며, 예를 들어 v8.4.0의 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}
}

컴퓨터 비전 커뮤니티를 위해 이 귀중한 리소스를 제작하고 유지 관리해 주신 저자분들께 감사드립니다.

FAQ#

  • SUN RGB-D는 Intel RealSense, Asus Xtion, Microsoft Kinect v1 및 v2의 4가지 RGB-D 센서로 캡처한 실제 실내 장면 이해 벤치마크입니다. Ultralytics 구성은 최대 약 10m 깊이의 9,245개의 훈련 및 1,090개의 검증 이미지-깊이 쌍을 제공합니다.

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

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

댓글