Link to this sectionDIODE Derinlik Veri Seti#
DIODE (Yoğun İç/Dış Mekan DErinliği), FARO Focus anket sınıfı lazer tarayıcı ile elde edilen çok yüksek kaliteli yoğun derinlik yer gerçeğine sahip gerçek dünya veri setidir. Benzersiz bir şekilde, aynı sensörle hem iç hem de dış mekan sahnelerini kapsar, bu da onu monoküler derinlik tahmini için kısa menzilli iç mekan ve uzun menzilli dış mekan derinliği arasında yüksek hassasiyetli bir köprü haline getirir.
Link to this sectionTemel Ö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.
Link to this sectionVeri Kümesi Yapısı#
DIODE derinlik veri seti iki alt kümeye ayrılmıştır:
- Train: Eğitim için eşleştirilmiş derinlik haritalarıyla birlikte 25.458 görsel.
- Val: Model eğitimi sırasında doğrulama için eşleştirilmiş derinlik haritalarıyla birlikte 771 görsel.
Each sample consists of one RGB image and one paired .npy float32 depth map storing per-pixel distances in meters, following the Ultralytics depth dataset format.
Link to this sectionYOLO26-Depth içindeki 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.
Link to this sectionVeri Kümesi YAML#
Veri seti yapılandırmasını tanımlamak için bir YAML (Yet Another Markup Language) dosyası kullanılır. Dosya; veri setinin yolları, sınıfları ve diğer ilgili bilgiler hakkında veriler içerir.
# 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")Link to this sectionKullanım#
DIODE veri setinde 640 görsel boyutu ile bir YOLO26n-depth modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Kullanılabilir argümanların kapsamlı bir listesi için Eğitim model sayfasına başvur.
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)Link to this sectionÖnceden Eğitilmiş Modeller#
YOLO26 derinlik ailesi, DIODE'un da parçası olduğu geniş kapsamlı çoklu veri seti derinlik ön eğitim karışımı üzerinde eğitilmiştir. Bu modeller en son Ultralytics sürümünden otomatik olarak indirilir, örneğin v8.4.0'dan YOLO26x-depth ve farklı doğruluk ve kaynak gereksinimleri için çeşitli boyutları kapsar.
Link to this sectionAlı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:
@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şturdukları ve sürdürdükleri için yazarlara teşekkür ederiz.