DIODE 깊이 데이터셋#
DIODE(고밀도 실내/실외 깊이)는 FARO Focus 측량급 레이저 스캐너로 캡처한 매우 높은 품질의 고밀도 깊이 정답 데이터를 포함하는 실제 환경 데이터셋입니다. 동일한 센서로 실내와 실외 장면을 모두 다룬다는 점이 독특하며, 단안 깊이 추정을 위한 근거리 실내 깊이와 원거리 실외 깊이 사이를 연결하는 고정밀 데이터셋입니다.
주요 기능#
- FARO Focus 측량급 레이저 스캐너로 생성한 매우 높은 품질의 고밀도 깊이 정답 데이터입니다.
- 동일한 센서로 캡처한 실내 및 실외 장면을 모두 포함합니다.
- 깊이 범위는 짧은 실내 거리부터 긴 실외 거리까지이며, Ultralytics 혼합 데이터셋에서는 약 80m까지 지원합니다.
- RGB 프레임에 정렬된 조밀하고 정확한 픽셀 단위 정답 데이터를 제공합니다.
- 실내 및 실외 도메인을 연결하는 고정밀 고밀도 정답 데이터를 제공합니다.
데이터셋 구조#
DIODE 깊이 데이터셋은 다음 두 하위 데이터셋으로 분할됩니다:
- Train: 학습을 위한 깊이 맵이 쌍으로 제공되는 이미지 25,458개입니다.
- Val: 모델 학습 중 검증을 위한 깊이 맵이 쌍으로 제공되는 이미지 771개입니다.
각 샘플은 하나의 RGB 이미지와 미터당 256개 단위의 쌍을 이루는 uint16 깊이 PNG 하나로 구성되며(depth_scale: 256), Ultralytics 깊이 데이터셋 형식을 따릅니다. 이를 통해 전체 80m 실외 범위를 표현하면서 3.90625mm의 해상도를 제공합니다.
YOLO26-Depth에서의 역할#
DIODE는 약 219만 개의 이미지–깊이 쌍으로 구성된 Ultralytics YOLO26-Depth 다중 데이터셋 사전 학습 혼합 데이터셋에서 학습 데이터 소스로 사용됩니다. 단일 센서 내에서 실내 및 실외 도메인을 연결하는 고정밀 고밀도 정답 데이터를 제공하여, 모델이 근거리 및 원거리 장면 모두에 걸쳐 일반화하는 데 도움을 줍니다. 이렇게 생성된 모델은 표준 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")사용법#
이미지 크기 640으로 DIODE 데이터셋에서 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-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}
}컴퓨터 비전 커뮤니티를 위해 이 귀중한 리소스를 제작하고 유지 관리해 주신 저자분들께 감사드립니다.
FAQ#
DIODE는 동일한 FARO Focus 측량 등급 레이저 스캐너로 실내와 실외 장면을 모두 포착하여, 실내 단거리와 실외 장거리에 걸쳐 매우 조밀하고 정확한 깊이 정답 데이터를 생성합니다. 이 단일 센서 커버리지 덕분에 DIODE는 YOLO26-Depth 학습 믹스에서 실내 도메인과 실외 도메인 간의 고정밀 가교 역할을 합니다.
Ultralytics 설정은 25,458개의 학습용 및 771개의 검증용 이미지-깊이 쌍을 제공합니다. 깊이는 미터당 256유닛의 uint16 PNG로 저장되며(
depth_scale: 256), Ultralytics depth dataset format에 설명된 전체 80m 실외 범위를 커버하는 동시에 3.9mm 해상도를 유지합니다.