Derinlik Tahmini Veri Setlerine Genel Bakış#
Tek kameralı derinlik tahmini, bir görüntünün her pikseline metre cinsinden kayan noktalı bir derinlik değeri atar. Eğitim hedefi, bir .npy float32 dizisi olarak saklanan yoğun bir piksel başına derinlik haritasıdır. Her değer, kameradan ilgili sahne noktasına olan mesafeyi temsil eder.
Bu kılavuz, Ultralytics YOLO derinlik tahmini modelleri tarafından kullanılan veri seti formatını açıklar ve eğitim ve doğrulama için mevcut olan yerleşik veri seti yapılandırmalarını listeler.
Desteklenen Veri Seti Formatı#
NPY derinlik haritası formatı#
Her eğitim örneği bir RGB görüntüden ve eşleşen bir .npy derinlik dosyasından oluşur. Derinlik dosyası, değerlerin metre cinsinden derinlikler olduğu (H, W) boyutuna sahip 2 boyutlu bir float32 NumPy dizisi depolar.
- Derinlik dosyaları
.npyuzantısını kullanmalı ve bir float32 dizisi içermelidir. - Her derinlik dosyası, eşleşen görüntü dosyasıyla aynı kök adı (stem) paylaşmalıdır (örneğin,
scene_001.npy,scene_001.jpgile eşleşir). - Veri kümesi yükleyicisi, dosya yolundaki
imagesdizin bileşeninidepthile değiştirerek ve görüntü uzantısını.npyile takas ederek derinlik dosyalarını bulur. ≤ 0derinliğine sahip pikseller geçersiz kabul edilir ve kayıp ile metrik hesaplamasından hariç tutulur.
Standart düzen, görüntüleri ve derinlik haritalarını paralel klasörlerde tutar:
dataset/
├── images/
│ ├── train/
│ └── val/
└── depth/
├── train/
└── val/Örneğin, images/train/scene_001.jpg konumundaki bir görüntü, depth/train/scene_001.npy konumundaki bir derinlik haritası ile eşleştirilir.
Veri kümesi YAML formatı#
Derinlik tahmini veri setleri YAML dosyalarıyla yapılandırılır. Ana alanlar şunlardır:
| Anahtar | Açıklama |
|---|---|
path | Veri kümesi kök dizini. |
train | path değerine göreli eğitim görseli yolu veya mutlak bir yol. |
val | path değerine göreli doğrulama görseli yolu veya mutlak bir yol. |
test | İsteğe bağlı test görüntüsü yolu. |
nc | Sınıf sayısı — derinlik tahmini için her zaman 1. |
names | Sınıf adı eşleme — her zaman {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.zipKullanım#
Python veya CLI ile bir YOLO26 derinlik tahmini modeli eğit:
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)Desteklenen Veri Kümeleri#
YOLO26 derinlik modelleri, iç mekan (≤10 m) ile dış mekan (~80 m) aralıklarını kapsayan geniş bir çoklu veri seti karışımı (~2.19M görüntü) üzerinde önceden eğitilmiş ve ardından beş farklı kıyaslama üzerinde sıfır vuruşlu (zero-shot) olarak değerlendirilmiştir. Her veri setinin kendine ait bir sayfası vardır:
Hata ayıklama
- Depth8 — hızlı boru hattı testi için 1.3 MB'lık otomatik indirilen bir arşivde 8 adet SUN RGB-D görüntüsü
Ön eğitim kaynakları
- ARKitScenes — gerçek iç mekan, Apple ARKit LiDAR (en büyük gerçek kaynak)
- SUN RGB-D — gerçek iç mekan, çok sensörlü RGB-D
- DIODE — gerçek iç + dış mekan, yoğun lazer tarayıcı yer gerçeği
- Hypersim — sentetik fotogerçekçi iç mekan
- TartanAir — sentetik, çeşitli ortamlarda
- Virtual KITTI 2 — sentetik dış mekan sürüşü
- KITTI — gerçek dış mekan sürüşü, Velodyne LiDAR (aynı zamanda bir değerlendirme kıyaslaması)
- ImageNet (pseudo-labeled) — sözde etiketlenmiş damıtma seti, en büyük tek kaynak
Değerlendirme kıyaslamaları
- NYU Depth V2 — birincil iç mekan kıyaslaması
- KITTI Eigen — dış mekan sürüş kıyaslaması
- ETH3D — yüksek hassasiyetli iç + dış mekan
- Make3D — dış mekan, dağılım dışı (out-of-distribution)
- iBims-1 — yüksek kaliteli iç mekan (kenarlar ve düzlemsel yüzeyler)
Bu kıyaslamalardaki model bazında doğruluk ve indirilebilir önceden eğitilmiş ağırlıklar Depth Estimation task page adresinde listelenmiştir. train alanı birden fazla görüntü dizinini listeleyen bir veri kümesi YAML dosyası, büyük ölçekli karma eğitim için bu kaynakları birleştirir.
Kendi Veri Kümeni Ekleme#
- RGB görüntülerini
images/trainveimages/valgibi bölünmüş klasörler altında kaydedin. - Görüntüyle aynı dosya kök adını kullanarak eşleşen
depth/trainvedepth/valklasörleri altına görüntü başına bir.npyfloat32 derinlik dizisi kaydet. - Derinlik değerlerinin metre cinsinden olduğundan ve geçersiz veya eksik piksellerin
0veya negatif değerler kullandığından emin olun. path,train,val,nc: 1venames: {0: depth}içeren bir veri seti YAML dosyası oluşturun.
path: path/to/my-depth-dataset
train: images/train
val: images/val
nc: 1
names:
0: depthSSS#
Derinlik haritaları,
(H, W)şekline sahip float32 dizileri içeren NumPy.npydosyaları olarak kaydedilmelidir. Her öğe, karşılık gelen görüntü pikseli için derinliği metre cinsinden depolar. PNG veya 16 bit tamsayı formatları kullanma; yükleyici ham float dizileri bekler.≤ 0derinlik değerlerine sahip pikseller geçersiz kabul edilir ve hem kayıp hesaplamasından hem de metrik değerlendirmesinden maskelenerek çıkarılır. Bu durum; sensör gürültüsünü, gökyüzü bölgelerini ve derinliğin güvenilir bir şekilde ölçülemediği yansıtıcı yüzeyleri kapsar.Derinlik tahmini doğrulaması, standart Depth Anything metrik setini raporlar:
- delta1 / delta2 / delta3 — 1.25×, 1.25²×, 1.25³× eşik değerleri içindeki piksellerin yüzdesi. Daha yüksek olması daha iyidir.
- abs_rel — ortalama mutlak bağıl hata. Daha düşük olması daha iyidir.
- rmse — metre cinsinden kök ortalama kare hata. Daha düşük olması daha iyidir.
- silog — ölçekten bağımsız logaritmik hata. Daha düşük olması daha iyidir.
Evet. Her derinlik
.npydosyası, ilgili görüntüyle aynı kök adı paylaşmalıdır. Yükleyici,imagesdizin bileşeninidepthile değiştirerek ve görüntü uzantısının yerine.npykoyarak derinlik yolunu türetir. Derinlik dosyası eksik veya okunamaz olan görüntüler, tıpkı bozuk görüntüler gibi, bir uyarı ile (önbelleğe alınmış) veri kümesi taraması sırasında elenir; hiç geçerli görüntü-derinlik çifti bulunamazsa bir hata fırlatılır.