Ultralytics YOLO27:

DIODE Derinlik Veri Kümesi#

DIODE (Yoğun İç/Dış Mekân Derinliği), ölçme sınıfı FARO Focus lazer tarayıcıyla çekilmiş, çok yüksek kaliteli ve yoğun derinlik referans verisi içeren gerçek dünya veri kümesidir. Aynı sensörle hem iç hem dış mekân sahnelerini kapsaması, onu tek kameralı derinlik kestirimi için kısa menzilli iç mekân derinliğiyle uzun menzilli dış mekân derinliği arasında yüksek hassasiyetli bir köprü hâline getirir.

Temel Özellikler#

  • Ölçme sınıfı FARO Focus lazer tarayıcıyla elde edilmiş çok yüksek kaliteli yoğun derinlik referans verisi.
  • Aynı sensörle çekilmiş hem iç hem de dış mekân sahnelerini kapsar.
  • Derinlik aralığı, kısa iç mekân mesafelerinden uzun dış mekân mesafelerine kadar uzanır ve Ultralytics karmasında yaklaşık 80 m'ye ulaşır.
  • RGB kareleriyle hizalanmış yoğun ve doğru piksel başına referans verisi.
  • İç ve dış mekân alanları arasında köprü kuran, yüksek hassasiyetli ve yoğun referans verisi sağlar.

Veri Kümesi Yapısı#

DIODE derinlik veri kümesi iki alt kümeye ayrılır:

  1. Train: Eğitim için eşlenmiş derinlik haritaları içeren 25.458 görüntü.
  2. Val: Model eğitimi sırasında doğrulama için eşlenmiş derinlik haritaları içeren 771 görüntü.

Her örnek, metre başına 256 birim içeren eşlenmiş bir uint16 derinlik PNG'si (depth_scale: 256) ve bir RGB görüntüsünden oluşur; Ultralytics derinlik veri kümesi biçimini izler. Böylece 80 m'lik dış mekân aralığının tamamı temsil edilirken 3,90625 mm çözünürlük sağlanır. Veri kümesi YAML dosyası, resmi DIODE arşivlerini (yaklaşık ~84 GB) indirir ve ilk kullanımda otomatik olarak bu düzene dönüştürür.

YOLO26-Depth'teki rolü#

DIODE, yaklaşık 2,19 milyon görüntü-derinlik eşleşmesinden oluşan Ultralytics YOLO26-Depth çoklu veri kümesi ön eğitim karmasında bir eğitim kaynağıdır. Tek bir sensörle iç ve dış mekân alanları arasında köprü kuran yüksek hassasiyetli, yoğun referans verisi sağlayarak modelin hem kısa hem de uzun menzilli sahnelere genelleme yapmasına yardımcı olur. Ortaya çıkan modeller standart NYU, KITTI, Make3D, ETH3D ve iBims-1 kıyaslama testlerinde değerlendirilir.

Veri Kümesi YAML Dosyası#

Veri kümesi yapılandırmasını tanımlamak için bir YAML dosyası kullanılır. Dosyada veri kümesinin yolları, sınıfları ve diğer ilgili bilgiler bulunur.

ultralytics/cfg/datasets/depth-diode.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")

Kullanım#

640 görüntü boyutuyla DIODE veri kümesinde YOLO26n-depth modelini eğitmek için aşağıdaki kod örneklerini kullanabilirsin. Kullanılabilir bağımsız değişkenlerin kapsamlı listesi için modelin Eğitim sayfasına bak.

Eğitim Örneği
from ultralytics import YOLO

# Bir model yükle
model = YOLO("yolo26n-depth.pt")  # Önceden eğitilmiş bir derinlik modeli yükle (eğitim için önerilir)

# Modeli eğit
results = model.train(data="depth-diode.yaml", epochs=100, imgsz=640)

Önceden Eğitilmiş Modeller#

YOLO26 derinlik ailesi, DIODE'nin de parçası olduğu geniş çoklu veri kümesi derinlik ön eğitim karması üzerinde eğitilir. Bu modeller ilk kullanımda Ultralytics'in v8.4.0 varlık sürümünden otomatik olarak indirilir; örneğin YOLO26x-depth ve farklı doğruluk ve kaynak gereksinimlerini karşılamak üzere çeşitli boyutlarda sunulur.

Atıflar ve Teşekkürler#

DIODE veri kümesini araştırma veya geliştirme çalışmalarında kullanıyorsan lütfen aşağıdaki makaleye atıfta bulun:

Alıntı
@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}
}

Bilgisayarlı görü topluluğu için bu değerli kaynağı oluşturup sürdüren yazarlara teşekkür ederiz.

Sık Sorulan Sorular#

  • DIODE, ölçme sınıfı FARO Focus lazer tarayıcıyla hem iç hem dış mekân sahnelerini kaydeder ve kısa iç mekân ile uzun dış mekân mesafelerinde çok yoğun ve doğru derinlik referans verisi üretir. Bu tek sensörlü kapsama, YOLO26-Depth eğitim karmasında iç ve dış mekân alanları arasında yüksek hassasiyetli bir köprü oluşturur.

  • Ultralytics yapılandırması 25.458 eğitim ve 771 doğrulama görüntü-derinlik eşleşmesi sağlar. Derinlik, metre başına 256 birim içeren uint16 PNG'lerde (depth_scale: 256) saklanır; böylece Ultralytics derinlik veri kümesi biçiminde açıklanan 80 m'lik dış mekân aralığının tamamı kapsanırken 3,9 mm çözünürlük korunur.

  • Önceden eğitilmiş bir derinlik kontrol noktası yükle ve data değerini paketlenmiş YAML dosyasını gösterecek şekilde ayarla; örneğin yolo depth train data=depth-diode.yaml model=yolo26n-depth.pt epochs=100 imgsz=640. Python karşılığı için Kullanım bölümüne, tüm bağımsız değişkenler için Eğitim sayfasına bak.

Katkıda Bulunanlar

Yorumlar