DIODE 깊이 데이터셋#
DIODE(조밀한 실내/실외 깊이)는 FARO Focus 측량용 레이저 스캐너로 캡처한 매우 높은 품질의 조밀한 깊이 GT를 제공하는 실제 환경 데이터셋입니다. 동일한 센서로 실내 및 실외 장면을 모두 다루는 독특한 데이터셋으로, 단안 깊이 추정을 위한 근거리 실내 깊이와 장거리 실외 깊이 사이의 고정밀 연결고리 역할을 합니다.
주요 기능#
- FARO Focus 측량용 레이저 스캐너로 캡처한 매우 높은 품질의 조밀한 깊이 GT입니다.
- 동일한 센서로 캡처한 실내 및 실외 장면을 모두 다룹니다.
- 깊이 범위는 짧은 실내 거리부터 장거리 실외 거리까지이며, Ultralytics 혼합에서는 약 80 m까지 포함합니다.
- RGB 프레임에 정렬된 픽셀 단위의 조밀하고 정확한 GT입니다.
- 실내 및 실외 도메인을 연결하는 고정밀 조밀 GT를 제공합니다.
데이터셋 구조#
DIODE 깊이 데이터셋은 다음 두 개의 하위 집합으로 나뉩니다.
- Train: 학습용으로 깊이 맵이 쌍을 이루는 이미지 25,458개입니다.
- Val: 모델 학습 중 검증에 사용할 깊이 맵이 쌍을 이루는 이미지 771개입니다.
각 샘플은 RGB 이미지 1개와 미터당 256단위(depth_scale: 256)인 uint16 깊이 PNG 1개로 구성되며, Ultralytics 깊이 데이터셋 형식을 따릅니다. 이를 통해 전체 80 m 실외 범위를 표현하면서 3.90625 mm 해상도를 제공합니다. 데이터셋 YAML은 공식 DIODE 아카이브(약 84 GB)를 다운로드하고 처음 사용할 때 이 레이아웃으로 자동 변환합니다.
YOLO26-Depth에서의 역할#
DIODE는 약 219만 개의 이미지-깊이 쌍으로 구성된 Ultralytics YOLO26-Depth 멀티 데이터셋 사전 학습 혼합의 학습 데이터 소스입니다. 단일 센서를 사용해 실내 및 실외 도메인을 연결하는 고정밀 조밀 GT를 제공하며, 모델이 근거리와 장거리 장면 모두에 일반화되도록 지원합니다. 이를 통해 생성된 모델은 표준 NYU, KITTI, Make3D, ETH3D 및 iBims-1 벤치마크에서 평가됩니다.
데이터셋 YAML#
데이터셋 구성을 정의하는 데 YAML 파일을 사용합니다. 이 파일에는 데이터셋 경로, 클래스 및 기타 관련 정보가 포함됩니다.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# DIODE dataset for monocular depth estimation — real indoor + outdoor, FARO Focus survey-grade laser, depth up to ~80 m
# Documentation: https://docs.ultralytics.com/datasets/depth/diode
# Example usage: yolo depth train data=depth-diode.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
# └── depth-diode ← downloads here (84 GB archives, ~90 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-diode dir and re-run to rebuild it.
path: depth-diode # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 25458 images
val: images/val # val images (relative to 'path') 771 images
max_depth: 80 # (m) maximum valid depth; GT beyond this is excluded from val metrics
nc: 1
names:
0: depth
channels: 3
depth_scale: 256 # PNG value 256 = 1 meter; represents the 80 m outdoor range
# Download script/URL (optional)
download: |
import shutil
from pathlib import Path
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 archives (train ~81 GB, val ~2.6 GB), then convert:
# flatten <split>/<scene>/<scan>/*.png into images/<split>/ and save the paired *_depth.npy
# (masked invalid -> 0, clipped at 80 m) as depth/<split>/*.png
dir = Path(yaml["path"]) # dataset root dir
download([f"https://diode-dataset.s3.amazonaws.com/{s}.tar.gz" for s in ("train", "val")], dir=dir / "source", delete=True)
for split in ("train", "val"):
(dir / "images" / split).mkdir(parents=True, exist_ok=True)
(dir / "depth" / split).mkdir(parents=True, exist_ok=True)
for im in TQDM(sorted((dir / "source" / split).rglob("*.png")), desc=f"Converting {split}"):
name = "_".join(im.relative_to(dir / "source").parts) # train/indoors/scene/scan/x.png -> train_indoors_scene_scan_x.png
depth = np.load(im.with_name(f"{im.stem}_depth.npy")).squeeze().astype(np.float32)
depth[np.load(im.with_name(f"{im.stem}_depth_mask.npy")) == 0] = 0.0 # zero out invalid pixels
save_depth_png(dir / "depth" / split / f"{name[:-4]}.png", depth.clip(max=80), scale=256)
im.replace(dir / "images" / split / name)
shutil.rmtree(dir / "source")사용법#
DIODE 데이터셋으로 이미지 크기 640의 YOLO26n-depth 모델을 학습하려면 다음 코드 예제를 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 학습 페이지를 참조하세요.
from ultralytics import YOLO
# 모델 로드
model = YOLO("yolo26n-depth.pt") # 사전 학습된 깊이 모델 로드(학습에 권장)
# 모델 학습
results = model.train(data="depth-diode.yaml", epochs=100, imgsz=640)사전 학습 모델#
YOLO26 깊이 모델 제품군은 DIODE가 포함된 광범위한 멀티 데이터셋 깊이 사전 학습 혼합으로 학습됩니다. 이 모델은 처음 사용할 때 Ultralytics v8.4.0 에셋 릴리스에서 자동 다운로드됩니다. 예를 들어 YOLO26x-depth와 같이 정확도 및 리소스 요구 사항에 따라 다양한 크기의 모델을 제공합니다.
인용 및 감사의 글#
연구 또는 개발 작업에서 DIODE 데이터셋을 사용하는 경우 다음 논문을 인용하세요.
@article{vasiljevic2019diode,
title={DIODE: A Dense Indoor and Outdoor DEpth Dataset},
author={Vasiljevic, Igor and Kolkin, Nick and Zhang, Shanyi and Luo, Ruotian and Wang, Haochen and Dai, Falcon Z. and Daniele, Andrea F. and Mostajabi, Mohammadreza and Basart, Steven and Walter, Matthew R. and Shakhnarovich, Gregory},
journal={arXiv preprint arXiv:1908.00463},
year={2019}
}컴퓨터 비전 커뮤니티에 이처럼 유용한 리소스를 만들고 유지 관리해 주신 저자분들께 감사드립니다.
자주 묻는 질문#
DIODE는 동일한 FARO Focus 측량용 레이저 스캐너로 실내 및 실외 장면을 캡처하여, 짧은 실내 거리와 긴 실외 거리에 걸쳐 매우 조밀하고 정확한 깊이 GT를 생성합니다. 이러한 단일 센서 기반 데이터 범위는 YOLO26-Depth 학습 혼합에서 실내 및 실외 도메인을 연결하는 고정밀 가교 역할을 합니다.
Ultralytics 구성은 학습 이미지-깊이 쌍 25,458개와 검증 이미지-깊이 쌍 771개를 제공합니다. 깊이는 미터당 256단위(
depth_scale: 256)의 uint16 PNG로 저장되며, Ultralytics 깊이 데이터셋 형식에 설명된 전체 80 m 실외 범위를 다루면서 3.9 mm 해상도를 유지합니다.