Link to this section깊이 추정 데이터셋 개요#
단안 깊이 추정은 이미지의 모든 픽셀에 미터 단위의 부동 소수점 깊이 값을 할당합니다. 학습 대상은 .npy float32 배열로 저장된 밀집된 픽셀별 깊이 맵입니다. 각 값은 카메라에서 해당 장면 지점까지의 거리를 나타냅니다.
이 가이드는 Ultralytics YOLO 깊이 추정 모델에서 사용하는 데이터셋 형식을 설명하고 학습 및 검증에 사용할 수 있는 내장 데이터셋 구성을 나열합니다.
Link to this section지원되는 데이터셋 형식#
Link to this sectionNPY 깊이 맵 형식#
각 학습 샘플은 하나의 RGB 이미지와 한 쌍의 .npy 깊이 파일로 구성됩니다. 깊이 파일은 미터 단위의 깊이 값을 포함하는 (H, W) 형태의 2D float32 NumPy 배열을 저장합니다.
- 깊이 파일은
.npy확장자를 사용해야 하며 float32 배열을 포함해야 합니다. - 각 깊이 파일은 일치하는 이미지 파일과 동일한 스템(stem)을 가져야 합니다(예:
scene_001.npy는scene_001.jpg와 쌍을 이룸). - 데이터셋 로더는 파일 경로에서
images디렉토리 구성 요소를depth로 대체하고 이미지 확장자를.npy로 교체하여 깊이 파일을 찾습니다. - 깊이가
≤ 0인 픽셀은 유효하지 않은 것으로 간주되며 손실 및 메트릭 계산에서 제외됩니다.
표준 레이아웃은 이미지와 깊이 맵을 병렬 폴더에 유지합니다:
dataset/
├── images/
│ ├── train/
│ └── val/
└── depth/
├── train/
└── val/예를 들어, images/train/scene_001.jpg에 있는 이미지는 depth/train/scene_001.npy에 있는 깊이 맵과 쌍을 이룹니다.
Link to this section데이터셋 YAML 형식#
깊이 추정 데이터셋은 YAML 파일로 구성됩니다. 주요 필드는 다음과 같습니다:
| 키 | 설명 |
|---|---|
path | 데이터셋 루트 디렉토리입니다. |
train | path 기준의 학습 이미지 경로 또는 절대 경로입니다. |
val | path 기준의 검증 이미지 경로 또는 절대 경로입니다. |
test | 선택적인 테스트 이미지 경로입니다. |
nc | 클래스 수 — 깊이 추정의 경우 항상 1입니다. |
names | 클래스 이름 매핑 — 항상 {0: depth}입니다. |
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# NYU Depth V2 dataset for monocular depth estimation
# Documentation: https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html
# 795 train + 654 val (Eigen test split) images, 480x640, indoor scenes, depth in meters
# Example usage: yolo depth train data=nyu-depth.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
# └── nyu-depth ← downloads here (≈1.5 GB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: nyu-depth # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 795 images
val: images/val # val images (relative to 'path') 654 images
# Depth maps are paired .npy files (float32, meters) under depth/<split>/, resolved by
# swapping '/images/' -> '/depth/' on each image path.
# Classes
nc: 1
names:
0: depth
channels: 3
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/nyu-depth.zipLink to this section사용법#
Python 또는 CLI를 사용하여 YOLO26 깊이 추정 모델을 학습합니다:
from ultralytics import YOLO
# Load a pretrained depth model
model = YOLO("yolo26n-depth.pt")
# Train on the NYU Depth V2 dataset
results = model.train(data="nyu-depth.yaml", epochs=100, imgsz=640)Link to this section지원되는 데이터셋#
YOLO26 깊이 모델은 실내(≤10m)에서 실외(~80m) 범위에 걸친 광범위한 다중 데이터셋 혼합(~219만 개 이미지)으로 사전 학습된 후 5개 벤치마크에서 제로샷 방식으로 평가됩니다. 각 데이터셋에는 전용 페이지가 있습니다:
디버깅
- Depth8 — 신속한 파이프라인 테스트를 위한 1.3MB 자동 다운로드 아카이브 내 8개의 SUN RGB-D 이미지
사전 학습 소스
- ARKitScenes — 실제 실내, Apple ARKit LiDAR(가장 큰 실제 소스)
- SUN RGB-D — 실제 실내, 다중 센서 RGB-D
- DIODE — 실제 실내 + 실외, 고밀도 레이저 스캐너 정답 데이터(ground truth)
- Hypersim — 합성된 사실적인 실내
- TartanAir — 합성, 다양한 환경
- Virtual KITTI 2 — 합성된 실외 주행
- KITTI — 실제 실외 주행, Velodyne LiDAR(평가 벤치마크이기도 함)
- ImageNet (pseudo-labeled) — 의사 라벨링된 증류 세트, 가장 큰 단일 소스
평가 벤치마크
- NYU Depth V2 — 주요 실내 벤치마크
- KITTI Eigen — 실외 주행 벤치마크
- ETH3D — 고정밀 실내 + 실외
- Make3D — 실외, 분포 외 데이터(out-of-distribution)
- iBims-1 — 고품질 실내(가장자리 및 평면)
이 벤치마크에서의 모델별 정확도와 다운로드 가능한 사전 학습 가중치는 Depth Estimation 작업 페이지에 나열되어 있습니다. train 필드에 여러 이미지 디렉토리를 나열하는 데이터셋 YAML은 대규모 혼합 학습을 위해 이러한 소스들을 결합합니다.
Link to this section자체 데이터셋 추가#
- RGB 이미지를
images/train및images/val과 같은 분할 폴더 아래에 저장하십시오. - 이미지당 하나의
.npyfloat32 깊이 배열을 일치하는depth/train및depth/val폴더 아래에 이미지와 동일한 파일 스템을 사용하여 저장하십시오. - 깊이 값이 미터 단위인지 확인하고, 유효하지 않거나 누락된 픽셀은
0또는 음수 값을 사용하도록 하십시오. path,train,val,nc: 1,names: {0: depth}를 포함하는 데이터셋 YAML을 생성하십시오.
path: path/to/my-depth-dataset
train: images/train
val: images/val
nc: 1
names:
0: depthLink to this sectionFAQ#
Link to this section깊이 맵은 어떤 파일 형식을 사용해야 합니까?#
Depth maps must be saved as NumPy .npy files containing float32 arrays of shape (H, W). Each element stores the depth in meters for the corresponding image pixel. Do not use PNG or 16-bit integer formats — the loader expects raw float arrays.
Link to this section유효하지 않은 깊이 픽셀은 어떻게 처리됩니까?#
깊이 값이 ≤ 0인 픽셀은 유효하지 않은 것으로 간주되어 손실 계산과 메트릭 평가 모두에서 마스킹 처리됩니다. 이는 센서 노이즈, 하늘 영역 및 깊이를 안정적으로 측정할 수 없는 반사 표면을 포함합니다.
Link to this section평가에는 어떤 메트릭이 사용됩니까?#
깊이 추정 검증은 표준 Depth Anything 메트릭 세트를 보고합니다:
- delta1 / delta2 / delta3 — 1.25×, 1.25²×, 1.25³× 임계값 이내의 픽셀 비율. 높을수록 좋습니다.
- abs_rel — 평균 절대 상대 오차. 낮을수록 좋습니다.
- rmse — 미터 단위의 평균 제곱근 오차. 낮을수록 좋습니다.
- silog — 척도 불변 로그 오차. 낮을수록 좋습니다.
Link to this section깊이 파일 이름이 이미지 파일 이름과 일치해야 합니까?#
예. 각 깊이 .npy 파일은 해당 이미지와 동일한 스템을 공유해야 합니다. 로더는 images 디렉토리 구성 요소를 depth로 대체하고 이미지 확장자를 .npy로 대체하여 깊이 경로를 도출합니다. 깊이 파일이 없거나 읽을 수 없는 이미지는 손상된 이미지와 마찬가지로 경고와 함께 (캐시된) 데이터셋 스캔 중에 삭제됩니다. 유효한 이미지-깊이 쌍을 전혀 찾을 수 없는 경우 오류가 발생합니다.