Virtual KITTI 2 Derinlik Veri Kümesi#
Virtual KITTI 2 (vKITTI2), KITTI sürüş sahnelerinin fotogerçekçi sentetik bir yeniden oluşturumudur. Orijinal KITTI veri kümesinden 5 diziyi klonlar ve farklı hava ve ışık koşullarında yeniden işler; böylece yoğun, piksel başına yer gerçeği sağlar.
Sentetik bir dış mekân sürüş veri kümesi olan vKITTI2, gerçek KITTI LiDAR ölçümlerinin seyrekliğini yoğun verilerle tamamlar; bu da onu monoküler derinlik tahmini modellerini eğitmek için temiz dış mekân sürüş geometrisinin yararlı bir kaynağı yapar.
Temel Özellikler#
- KITTI sürüş sahnelerinin fotogerçekçi sentetik yeniden oluşturumu.
- Farklı hava ve ışık koşullarında işlenmiş 5 klonlanmış dizi.
- Dış mekân sürüş ortamları.
- Yoğun piksel başına yer gerçeği (seyrek gerçek KITTI LiDAR verilerinin yoğun karşılığı).
- Derinlik aralığı ~80 m.
- Ultralytics derinlik eğitim karışımına 42.520 görüntü (25.780 eğitim / 16.740 doğrulama) katar.
Veri Kümesi Yapısı#
Virtual KITTI 2 derinlik veri kümesi iki alt kümeye ayrılır:
- Eğitim: Eğitim için eşleştirilmiş yoğun derinlik haritaları içeren 25.780 görüntü.
- Doğrulama: Eğitim sırasında doğrulama için eşleştirilmiş yoğun derinlik haritaları içeren 16.740 görüntü.
Her RGB görüntü, Ultralytics derinlik veri kümesi biçimini izleyen ölçeklenmiş bir uint16 derinlik PNG'siyle eşleştirilir. Kaynak ve dönüştürülmüş PNG'lerde santimetre kullanılır (depth_scale: 100); bu, 80 m'lik eğitim aralığını korur. Veri kümesi YAML dosyası kaynak arşivleri (~15 GB) indirir ve ilk kullanımda otomatik olarak dönüştürür.
YOLO26-Depth'teki rolü#
Virtual KITTI 2, Ultralytics YOLO26-Depth modellerini önceden eğitmek için kullanılan geniş çoklu veri kümesi karışımındaki (~2.19M görüntü) eğitim kaynaklarından biridir. Bu karışımda vKITTI2, seyrek gerçek KITTI LiDAR yer gerçeğini yoğun sentetik dış mekân sürüş verileriyle tamamlar.
Bu kurulumda bağımsız, eğitim dışında tutulmuş bir vKITTI2 kıyaslama veri kümesi yoktur. Bunun yerine ortaya çıkan modeller standart monoküler derinlik kıyaslama veri kümelerinde değerlendirilir: NYU Depth V2, KITTI, Make3D, ETH3D ve iBims-1.
Veri Kümesi YAML Dosyası#
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. Virtual KITTI 2 için depth-vkitti2.yaml dosyası yolları ve tek depth sınıfını tanımlar.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# Virtual KITTI 2 dataset for monocular depth estimation — photorealistic synthetic outdoor driving, dense per-pixel depth
# Documentation: https://docs.ultralytics.com/datasets/depth/vkitti2
# Example usage: yolo depth train data=depth-vkitti2.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
# └── depth-vkitti2 ← downloads here (15 GB archives, ~85 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-vkitti2 dir and re-run to rebuild it.
path: depth-vkitti2 # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 25780 images
val: images/val # val images (relative to 'path') 16740 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: 100 # source PNG value 100 = 1 meter (centimeters)
# Download script/URL (optional)
download: |
import shutil
from pathlib import Path
import cv2
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 RGB + depth tars (~15 GB), then convert: Scene20 -> val, all
# other scenes -> train; depth PNGs are uint16 centimeters (sky = 655.35 m), clipped at 80 m
dir = Path(yaml["path"]) # dataset root dir
urls = [f"https://download.europe.naverlabs.com/virtual_kitti_2.0.3/vkitti_2.0.3_{s}.tar" for s in ("rgb", "depth")]
download(urls, 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").rglob("rgb_*.jpg")), desc="Converting"):
scene, variation, camera = im.parts[-6], im.parts[-5], im.parts[-2] # Scene01/clone/frames/rgb/Camera_0/rgb_00000.jpg
split = "val" if scene == "Scene20" else "train"
name = f"{scene}_{variation}_{camera}_{im.stem[4:]}"
depth = cv2.imread(str(im.parents[2] / "depth" / camera / f"depth_{im.stem[4:]}.png"), cv2.IMREAD_ANYDEPTH)
save_depth_png(dir / "depth" / split / f"{name}.png", (depth.astype(np.float32) / 100.0).clip(max=80), scale=100) # cm -> m -> cm PNG
im.replace(dir / "images" / split / f"{name}.jpg")
shutil.rmtree(dir / "source")Kullanım#
Virtual KITTI 2 veri kümesinde 640 görüntü boyutuyla YOLO26n-Depth modelini 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 bak.
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n-depth.pt") # Önceden eğitilmiş bir model yükle (eğitim için önerilir)
# Modeli eğit
results = model.train(data="depth-vkitti2.yaml", epochs=100, imgsz=640)Önceden Eğitilmiş Modeller#
YOLO26 derinlik ailesi (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) Ultralytics sürümlerinden otomatik indirilir ve Virtual KITTI 2'nin de parçası olduğu geniş çoklu veri kümesi karışımıyla eğitilir. YOLO26x-depth modelini Ultralytics Platform'da keşfet.
Atıflar ve Teşekkürler#
Araştırma veya geliştirme çalışmalarında Virtual KITTI 2 veri kümesini kullanıyorsan lütfen aşağıdaki makaleye atıfta bulun:
@article{cabon2020vkitti2,
title={Virtual KITTI 2},
author={Yohann Cabon and Naila Murray and Martin Humenberger},
journal={arXiv preprint arXiv:2001.10773},
year={2020}
}Bu sentetik sürüş veri kümesini bilgisayarlı görü topluluğunun kullanımına sundukları için Virtual KITTI 2'nin yaratıcılarına teşekkür etmek isteriz.
Sık Sorulan Sorular#
Virtual KITTI 2 (vKITTI2), farklı hava ve ışık koşullarında yeniden işlenmiş beş KITTI sürüş dizisinin fotogerçekçi sentetik bir yeniden oluşturumudur. YOLO26-Depth eğitim karışımına yaklaşık 80 m'ye kadar yoğun, piksel başına derinlik içeren 42.520 görüntü (25.780 eğitim, 16.740 doğrulama) katar.
Gerçek KITTI LiDAR derinlik verisi seyrektir; piksellerin yalnızca yaklaşık %16 ila %20'si etiketlenmiştir. vKITTI2 ise aynı tür sürüş sahnesindeki her piksel için yoğun bir derinlik değeri sağlar. Birlikte modele hem gerçek sensör istatistiklerini hem de eksiksiz dış mekân geometrisini sunarlar.
yolo depth train data=depth-vkitti2.yaml model=yolo26n-depth.pt epochs=100 imgsz=640komutunu çalıştır veya Kullanım bölümündeki Python örneğini kullan. Derinlik PNG'lerinde santimetre kullanılır (depth_scale: 100); birlikte sunulan YAML dosyası bu ayarı zaten belirler.