Sicurezza pronta per le aziende: Conformità ISO 27001 + SOC 2 Type I.

Link to this sectionDataset di profondità Virtual KITTI 2#

Virtual KITTI 2 (vKITTI2) è una ricreazione sintetica fotorealistica delle scene di guida di KITTI. Clona 5 sequenze dal dataset KITTI originale e le rielabora in condizioni meteorologiche e di illuminazione variabili, fornendo una ground truth densa per singolo pixel.

Come dataset sintetico di guida all'aperto, vKITTI2 offre una controparte densa ai ritorni sparsi del LiDAR reale di KITTI, rendendolo un'utile fonte di geometria di guida all'aperto pulita per l'addestramento di modelli di stima della profondità monoculare.

Link to this sectionCaratteristiche principali#

  • Ricreazione sintetica fotorealistica delle scene di guida di KITTI.
  • 5 sequenze clonate renderizzate in condizioni meteorologiche e di illuminazione variabili.
  • Ambienti di guida all'aperto.
  • Ground truth per singolo pixel densa (una controparte densa del LiDAR reale sparso di KITTI).
  • Intervallo di profondità ~80 m.
  • Contribuisce con 42.520 immagini (25.780 di addestramento / 16.740 di validazione) al mix di addestramento per la profondità di Ultralytics.

Link to this sectionStruttura del dataset#

Il dataset di profondità Virtual KITTI 2 è suddiviso in due sottoinsiemi:

  1. Train: 25.780 immagini con mappe di profondità dense abbinate per l'addestramento.
  2. Val: 16.740 immagini con mappe di profondità dense abbinate per la validazione durante l'addestramento.

Ogni immagine RGB è abbinata a una mappa di profondità .npy in formato float32 che memorizza le distanze per-pixel in metri, seguendo il formato del dataset di profondità Ultralytics.

Link to this sectionRuolo in YOLO26-Depth#

Virtual KITTI 2 è una delle fonti di addestramento nell'ampio mix multi-dataset (~2,19 milioni di immagini) utilizzato per pre-addestrare i modelli Ultralytics YOLO26-Depth. All'interno di questo mix, vKITTI2 fornisce una controparte sintetica densa della guida all'aperto alla ground truth sparsa del LiDAR reale di KITTI.

Non esiste un benchmark vKITTI2 separato in questa configurazione. Invece, i modelli risultanti vengono valutati sui benchmark standard di profondità monoculare: NYU Depth V2, KITTI, Make3D, ETH3D e iBims-1.

Link to this sectionDataset YAML#

Un file YAML (Yet Another Markup Language) viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, le classi e altre informazioni rilevanti. Per Virtual KITTI 2, il file depth-vkitti2.yaml definisce i percorsi e la singola classe depth.

ultralytics/cfg/datasets/depth-vkitti2.yaml
# 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 *.npy, float32 meters (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

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

  import cv2
  import numpy as np

  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)
      np.save(dir / "depth" / split / f"{name}.npy", (depth.astype(np.float32) / 100.0).clip(max=80))  # cm -> m
      im.replace(dir / "images" / split / f"{name}.jpg")
  shutil.rmtree(dir / "source")

Link to this sectionUtilizzo#

Per addestrare un modello YOLO26n-Depth sul dataset Virtual KITTI 2 con una dimensione dell'immagine di 640, puoi utilizzare i seguenti snippet di codice. Per un elenco completo degli argomenti disponibili, fai riferimento alla pagina Addestramento del modello.

Esempio di Addestramento
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)

Link to this sectionModelli pre-addestrati#

La famiglia YOLO26 depth (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) si scarica automaticamente dalla release v8.4.0 ed è addestrata sull'ampio mix multi-dataset di cui Virtual KITTI 2 fa parte.

Link to this sectionCitazioni e riconoscimenti#

Se utilizzi il dataset Virtual KITTI 2 nel tuo lavoro di ricerca o sviluppo, ti preghiamo di citare il seguente documento:

Citazione
@article{cabon2020vkitti2,
      title={Virtual KITTI 2},
      author={Yohann Cabon and Naila Murray and Martin Humenberger},
      journal={arXiv preprint arXiv:2001.10773},
      year={2020}
}

Desideriamo ringraziare i creatori di Virtual KITTI 2 per aver reso disponibile questo dataset di guida sintetica alla comunità della visione artificiale.

Contributori

Commenti