YOLO Vision 2026:

Derinlik Tahmini Veri Setlerine Genel Bakış#

Tek gözlü derinlik kestirimi, bir görüntünün her pikseline metre cinsinden bir derinlik değeri atar. Derinlik hedefleri, ölçeklendirilmiş 16 bit gri tonlamalı PNG'ler veya metre cinsinden kayan noktalı NPY dizileri kullanır.

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ı#

Derinlik haritası biçimi#

Her eğitim örneği bir RGB görüntü ve eşleşen bir derinlik dosyasından oluşur. PNG değerleri, metre cinsinden çıktı üretmek için isteğe bağlı veri kümesi düzeyindeki depth_scale değerine bölünür. Varsayılan değer 1000'dir, dolayısıyla 1500 değeri 1.5 metreyi temsil eder. 0 kodu geçersiz anlamına gelir; PNG'lerin gömülü meta verilere ihtiyacı yoktur.

  • Derinlik dosyaları .png (tercih edilen) veya .npy kullanır. PNG haritaları 2B uint16 gri tonlamalı görüntüler olmalıdır. NPY dizileri 2B ve kayan noktalı olmalı, değerler metre cinsinden olmalıdır.
  • depth_scale değerini yalnızca PNG'ler varsayılan milimetre kuralını kullanmadığında ayarlayın. Örneğin, KITTI 256 kullanır ve Virtual KITTI 2 100 kullanır.
  • Her derinlik dosyası, eşleşen görüntü dosyasıyla aynı kök adı (stem) paylaşmalıdır (örneğin, scene_001.png, scene_001.jpg ile eşleşir).
  • En boy oranı eşleştiği sürece derinlik haritaları RGB görüntülerinden daha küçük olabilir; eğitim bunları bellekte yeniden boyutlandırır.
  • Veri kümesi yükleyicisi, images dizin bileşenini depth ile değiştirerek derinlik dosyalarını bulur; .png tercih edilir ve .npy değerine geri dönülür.
  • ≤ 0 derinliğine sahip pikseller geçersiz kabul edilir ve kayıp ile metrik hesaplamasından hariç tutulur.

0 kodu geçersiz pikseller için ayrıldığından, uint16 PNG 65.535 pozitif derinlik değeri sağlar. Ölçek hem hassasiyeti hem de aralığı kontrol eder:

Kuraldepth_scaleÇözünürlükMaksimum derinlik
Varsayılan / ARKitScenes10001 mm65.535 m
KITTI2563.90625 mm255.99609375 m
Virtual KITTI 21001 cm655.35 m

Bunlar depolama sınırlarıdır, önerilen eğitim üst sınırları değildir. Bir veri kümesi, kayıp kalibrasyonu veya değerlendirme için bağımsız olarak daha küçük bir max_depth ayarlayabilir.

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.png 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:

AnahtarAçıklama
pathVeri kümesi kök dizini.
trainpath değerine göreli eğitim görseli yolu veya mutlak bir yol.
valpath değerine göreli doğrulama görseli yolu veya mutlak bir yol.
testİsteğe bağlı test görüntüsü yolu.
ncSınıf sayısı — derinlik tahmini için her zaman 1.
namesSınıf adı eşleme — her zaman {0: depth}.
depth_scaleMetre başına isteğe bağlı PNG birimleri; varsayılan olarak 1000 değerindedir.
ultralytics/cfg/datasets/nyu-depth.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# NYU Depth V2 dataset for monocular depth estimation
# Documentation: https://cs.nyu.edu/~fergus/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-png  ← 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-png # 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 uint16 millimeter PNGs under depth/<split>/, resolved by
# swapping '/images/' -> '/depth/' on each image path.

# Classes
nc: 1
names:
  0: depth

channels: 3
depth_scale: 1000

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/nyu-depth-png.zip

Kullanım#

Python veya CLI ile bir YOLO26 derinlik tahmini modeli eğit:

Örnek
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#

  1. RGB görüntülerini images/train ve images/val gibi bölünmüş klasörler altında kaydedin.
  2. Görüntüyle aynı dosya kökünü kullanarak, eşleşen depth/train ve depth/val klasörleri altında görüntü başına bir derinlik PNG'si veya NPY'si kaydedin. Metre dizilerini kompakt milimetre PNG'lerine dönüştürmek için save_depth_png() kullanın.
  3. Çözülen derinlik değerlerinin metre cinsinden olduğundan ve geçersiz veya eksik piksellerin 0 veya negatif değerler kullandığından emin olun.
  4. path, train, val, nc: 1 ve names: {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: depth

# Optional: PNG integer units per meter (default 1000)
depth_scale: 1000

SSS#

  • Kompakt veri kümeleri için ölçeklendirilmiş 16 bit gri tonlamalı PNG'ler kullanın. Varsayılan olarak her tamsayı adımı bir milimetredir; farklı bir ölçek için veri kümesi YAML dosyasında depth_scale ayarlayın. ultralytics.data.utils.save_depth_png(), metre dizilerini varsayılan biçime dönüştürür. Metre cinsinden kayan noktalı NPY haritaları da doğrudan çalışır.

  • ≤ 0 derinlik 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 .png veya .npy dosyası, ilgili görüntüyle aynı kökü paylaşmalıdır. Yükleyici, images dizin bileşenini depth ile değiştirerek derinlik yolunu türetir; PNG tercih edilir ve NPY'ye geri dönülür. Derinlik dosyası eksik veya okunamaz olan görüntüler, önbelleğe alınmış veri kümesi taraması sırasında bir uyarı ile bırakılır.

Katkıda Bulunanlar

Yorumlar