YOLO Vision 2026:

DIODE Derinlik Veri Seti#

DIODE (Dense Indoor/Outdoor DEpth), bir FARO Focus anket sınıfı lazer tarayıcı ile yakalanan çok yüksek kaliteli yoğun derinlik yer gerçeğine sahip gerçek dünya veri kümesidir. Benzersiz bir şekilde, aynı sensörle hem iç hem de dış mekan sahnelerini kapsar, bu da onu monocular depth estimation için kısa menzilli iç mekan ve uzun menzilli dış mekan derinliği arasında yüksek hassasiyetli bir köprü haline getirir.

Temel Özellikler#

  • FARO Focus anket sınıfı lazer tarayıcıdan elde edilen çok yüksek kaliteli yoğun derinlik yer gerçeği.
  • Aynı sensörle çekilmiş hem iç hem de dış mekan sahnelerini kapsar.
  • Derinlik aralığı, Ultralytics karışımında yaklaşık 80 m'ye kadar olan kısa iç mekan mesafelerinden uzun dış mekan mesafelerine kadar uzanır.
  • RGB kareleri ile hizalanmış yoğun, doğru piksel bazlı yer gerçeği.
  • İç ve dış mekan alanlarını birleştiren yüksek hassasiyetli yoğun yer gerçeği sağlar.

Veri Kümesi Yapısı#

DIODE derinlik veri seti iki alt kümeye ayrılmıştır:

  1. Train: Eğitim için eşleştirilmiş derinlik haritalarıyla birlikte 25.458 görsel.
  2. Val: Model eğitimi sırasında doğrulama için eşleştirilmiş derinlik haritalarıyla birlikte 771 görsel.

Her örnek, bir RGB görüntü ve metre cinsinden piksel başına mesafeleri depolayan eşleştirilmiş bir .npy float32 derinlik haritasından oluşur; bu, Ultralytics depth dataset format standardını takip eder.

YOLO26-Depth'teki Rolü#

DIODE, yaklaşık 2,19 milyon görsel-derinlik çiftinden oluşan Ultralytics YOLO26-Depth çoklu veri seti ön eğitim karışımında bir eğitim kaynağıdır. İç ve dış mekan alanlarını tek bir sensör içinde birleştiren yüksek hassasiyetli yoğun yer gerçeği sağlayarak, modelin hem kısa hem de uzun menzilli sahnelerde genelleme yapmasına yardımcı olur. Elde edilen modeller standart NYU, KITTI, Make3D, ETH3D ve iBims-1 kıyaslamalarında değerlendirilir.

Veri Kümesi YAML#

Veri kümesi yapılandırmasını tanımlamak için bir YAML (Yet Another Markup Language) dosyası kullanılır. Veri kümesinin yolları, sınıfları ve diğer ilgili bilgiler hakkında veriler içerir.

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 *.npy, float32 meters (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

# Download script/URL (optional)
download: |
  import shutil
  from pathlib import Path

  import numpy as np

  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>/*.npy
  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
          np.save(dir / "depth" / split / f"{name[:-4]}.npy", depth.clip(max=80))
          im.replace(dir / "images" / split / name)
  shutil.rmtree(dir / "source")

Kullanım#

DIODE veri kümesinde 640 görüntü boyutuyla bir YOLO26n-depth modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Mevcut argümanların kapsamlı bir listesi için model Training sayfasına göz at.

Eğitim Örneği
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)

Önceden Eğitilmiş Modeller#

YOLO26 depth ailesi, DIODE'un da bir parçası olduğu geniş çoklu veri kümesi derinlik ön eğitimi karışımı üzerinde eğitilir. Bu modeller, en son Ultralytics sürümünden, örneğin v8.4.0 sürümündeki YOLO26x-depth modelinden otomatik olarak indirilir ve farklı doğruluk ile kaynak gereksinimleri için çeşitli boyutları kapsar.

Alıntılar ve Teşekkür#

DIODE veri setini araştırma veya geliştirme çalışmalarında kullanırsan, lütfen şu 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ğı yarattıkları ve korudukları için yazarlara teşekkür ederiz.

Katkıda Bulunanlar

Yorumlar