Virtual KITTI 2 Derinlik Veri Kümesi#
Virtual KITTI 2 (vKITTI2), KITTI sürüş sahnelerinin fotogerçekçi sentetik bir yeniden oluşturmasıdır. Orijinal KITTI veri kümesindeki 5 diziyi kopyalar ve bunları farklı hava ve aydınlatma koşulları altında yeniden işleyerek piksel başına yoğun gerçek referans verisi sağlar.
Sentetik bir açık hava sürüş veri kümesi olarak vKITTI2, seyrek gerçek KITTI LiDAR dönüşlerinin yoğun bir karşılığını sunar ve monoküler derinlik tahmini modellerini eğitmek için temiz açık hava sürüş geometrisinin yararlı bir kaynağıdır.
Temel Özellikler#
- KITTI sürüş sahnelerinin fotogerçekçi sentetik yeniden oluşturması.
- Farklı hava ve aydınlatma koşullarında işlenmiş 5 kopyalanmış dizi.
- Açık hava sürüşü ortamları.
- Yoğun piksel başına gerçek referans verisi (seyrek gerçek KITTI LiDAR'ın yoğun karşılığı).
- Derinlik aralığı ~80 m.
- Ultralytics derinlik eğitimi karışımına 42.520 görüntü (25.780 eğitim / 16.740 doğrulama) katkısı sağlar.
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ına sahip 25.780 görüntü.
- Doğrulama: Eğitim sırasında doğrulama için eşleştirilmiş yoğun derinlik haritalarına sahip 16.740 görüntü.
Her RGB görüntüsü, Ultralytics derinlik veri kümesi biçimini izleyen, ölçeklendirilmiş bir uint16 derinlik PNG'siyle eşleştirilir. Kaynak ve dönüştürülmüş PNG'ler santimetre (depth_scale: 100) kullanır; bu da 80 m'lik eğitim aralığını korur.
YOLO26-Depth İçindeki Rolü#
Virtual KITTI 2, Ultralytics YOLO26-Depth modellerini önceden eğitmek için kullanılan geniş çoklu veri kümesi karışımındaki (~2,19 milyon görüntü) eğitim kaynaklarından biridir. Bu karışım içinde vKITTI2, seyrek gerçek KITTI LiDAR gerçek referans verisinin yoğun sentetik açık hava sürüşü karşılığını sağlar.
Bu kurulumda bağımsız bir ayrılmış vKITTI2 kıyaslaması yoktur. Bunun yerine ortaya çıkan modeller standart monoküler derinlik kıyaslamalarında değerlendirilir: NYU Depth V2, KITTI, Make3D, ETH3D ve iBims-1.
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ını, sınıflarını ve diğer ilgili bilgileri 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ümesi ü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 başvur.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-depth.pt") # load a pretrained model (recommended for training)
# Train the model
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 olarak indirilir ve Virtual KITTI 2'nin parçası olduğu geniş çoklu veri kümesi karışımı üzerinde eğitilir. Ultralytics Platform'da YOLO26x-depth modelini keşfet.
Atıflar ve Teşekkürler#
Virtual KITTI 2 veri kümesini araştırma veya geliştirme çalışmalarında 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 oluşturucularını anmak isteriz.
SSS#
Virtual KITTI 2 (vKITTI2), çeşitli hava ve aydınlatma 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şı derinliğe sahip 42.520 görüntü (25.780 eğitim, 16.740 doğrulama) katkıda bulunur.
Gerçek KITTI LiDAR derinliği, piksellerin yalnızca %16 ila %20 civarı etiketlenmiş olarak seyrektir; vKITTI2 ise aynı sürüş sahneleri için her piksele yoğun bir derinlik değeri sağlar. İkisi birlikte modele hem gerçek sensör istatistiklerini hem de eksiksiz dış mekan geometrisini kazandırır.
yolo depth train data=depth-vkitti2.yaml model=yolo26n-depth.pt epochs=100 imgsz=640komutunu çalıştır veya Usage bölümündeki Python örneğini kullan. Derinlik PNG'leri, birlikte verilen YAML dosyasının halihazırda ayarladığı santimetre (depth_scale: 100) birimini kullanır.