DIODE Derinlik Veri Seti#
DIODE (Yoğun İç Mekân/Dış Mekân Derinliği), FARO Focus ölçüm sınıfı lazer tarayıcıyla yakalanmış çok yüksek kaliteli yoğun derinlik gerçek referans verilerine sahip gerçek dünya veri setidir. Aynı sensörle hem iç hem de dış mekân sahnelerini kapsaması, onu tek gözlü derinlik tahmini için kısa menzilli iç mekân derinliği ile uzun menzilli dış mekân derinliği arasında yüksek hassasiyetli bir köprü hâline getirir.
Temel Özellikler#
- FARO Focus ölçüm sınıfı lazer tarayıcıdan elde edilen çok yüksek kaliteli yoğun derinlik gerçek referans verileri.
- Aynı sensörle yakalanan 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 karışımında yaklaşık 80 m'ye ulaşır.
- RGB kareleriyle hizalanmış yoğun ve doğru piksel başına gerçek referans verileri.
- İç ve dış mekân alanları arasında köprü kuran yüksek hassasiyetli yoğun gerçek referans verileri sağlar.
Veri Kümesi Yapısı#
DIODE derinlik veri seti iki alt kümeye ayrılır:
- Train: Eğitim için eşleştirilmiş derinlik haritalarına sahip 25.458 görüntü.
- Val: Model eğitimi sırasında doğrulama için eşleştirilmiş derinlik haritalarına sahip 771 görüntü.
Her örnek, bir RGB görüntüsünden ve metre başına 256 birim içeren eşleştirilmiş bir uint16 derinlik PNG'sinden (depth_scale: 256) oluşur ve Ultralytics derinlik veri seti biçimini izler. Bu, tam 80 m'lik dış mekân aralığını temsil ederken 3.90625 mm çözünürlük sağlar.
YOLO26-Depth İçindeki Rolü#
DIODE, yaklaşık 2,19 milyon görüntü-derinlik çiftinden oluşan Ultralytics YOLO26-Depth çoklu veri seti ön eğitim karışımında bir eğitim kaynağıdır. Tek bir sensör içinde iç ve dış mekân alanları arasında köprü kuran yüksek hassasiyetli yoğun gerçek referans verileri sunarak modelin hem kısa menzilli hem de uzun menzilli sahnelerde genelleme yapmasına yardımcı olur. Ortaya çıkan modeller standart NYU, KITTI, Make3D, ETH3D ve iBims-1 kıyaslamalarında değerlendirilir.
Veri Kümesi YAML'i#
Veri kümesi yapılandırmasını tanımlamak için bir YAML dosyası kullanılır. Dosya, veri kümesinin yolları, sınıfları ve diğer ilgili bilgiler hakkında bilgi 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 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#
DIODE veri seti üzerinde 640 görüntü boyutuyla bir YOLO26n-depth modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Kullanılabilir bağımsız değişkenlerin kapsamlı listesi için modelin Eğitim sayfasına bakabilirsin.
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 derinlik ailesi, DIODE'nin parçası olduğu geniş çoklu veri seti derinlik ön eğitim karışımı üzerinde eğitilir. Bu modeller en yeni Ultralytics sürümünden otomatik olarak indirilir; örneğin v8.4.0 sürümündeki YOLO26x-depth modeli. Modeller, farklı doğruluk ve kaynak gereksinimleri için çeşitli boyutlar sunar.
Atıflar ve Teşekkürler#
DIODE veri setini araştırma veya geliştirme çalışmalarında kullanıyorsan lütfen aşağıdaki 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şturup sürdürdükleri için yazarlara teşekkür ederiz.
SSS#
DIODE, hem iç mekan hem de dış mekan sahnelerini aynı FARO Focus ölçüm sınıfı lazer tarayıcıyla yakalayarak kısa iç mekan ve uzun dış mekan menzillerinde çok yoğun ve doğru derinlik yer gerçeği üretir. Bu tek sensörlü kapsama alanı, DIODE veri setini YOLO26-Depth eğitim karışımında iç mekan ve dış mekan alanları arasında yüksek hassasiyetli bir köprü haline getirir.
Ultralytics yapılandırması 25.458 eğitim ve 771 doğrulama görüntü-derinlik çifti sağlar. Derinlik, metre başına 256 birim içeren uint16 PNG'ler olarak depolanır (
depth_scale: 256); bu, Ultralytics derinlik veri seti formatı sayfasında açıklanan 80 metrelik tam dış mekan menzilini kapsarken 3,9 mm çözünürlüğü korur.