Sécurité prête pour l'entreprise : Conforme ISO 27001 + SOC 2 Type I.

Link to this sectionJeu de données de profondeur Virtual KITTI 2#

Virtual KITTI 2 (vKITTI2) est une recréation synthétique photoréaliste des scènes de conduite de KITTI. Il clone 5 séquences du jeu de données KITTI original et les rend de nouveau sous diverses conditions météorologiques et d'éclairage, fournissant ainsi une vérité terrain dense par pixel.

En tant que jeu de données synthétiques pour la conduite en extérieur, vKITTI2 offre un pendant dense aux retours LiDAR épars du KITTI réel, ce qui en fait une source utile de géométrie de conduite en extérieur propre pour entraîner des modèles d'estimation de profondeur monoculaire.

Link to this sectionFonctionnalités clés#

  • Recréation synthétique photoréaliste des scènes de conduite de KITTI.
  • 5 séquences clonées rendues sous diverses conditions météorologiques et d'éclairage.
  • Environnements de conduite en extérieur.
  • Vérité terrain par pixel dense (un pendant dense aux données LiDAR éparses du KITTI réel).
  • Plage de profondeur ~80 m.
  • Contribue à hauteur de 42 520 images (25 780 pour l'entraînement / 16 740 pour la validation) au mix d'entraînement de profondeur Ultralytics.

Link to this sectionStructure du jeu de données#

Le jeu de données de profondeur Virtual KITTI 2 est divisé en deux sous-ensembles :

  1. Train : 25 780 images avec cartes de profondeur denses appariées pour l'entraînement.
  2. Val : 16 740 images avec cartes de profondeur denses appariées pour la validation pendant l'entraînement.

Chaque image RVB est associée à une carte de profondeur .npy en float32 stockant les distances par pixel en mètres, conformément au format de jeu de données de profondeur Ultralytics.

Link to this sectionRôle dans YOLO26-Depth#

Virtual KITTI 2 est l'une des sources d'entraînement au sein du vaste mélange de jeux de données (~2,19 millions d'images) utilisé pour pré-entraîner les modèles Ultralytics YOLO26-Depth. Au sein de ce mélange, vKITTI2 fournit un pendant de conduite en extérieur synthétique et dense à la vérité terrain LiDAR du KITTI réel, qui est, elle, éparse.

Il n'existe pas de benchmark vKITTI2 autonome dans cette configuration. Au lieu de cela, les modèles obtenus sont évalués sur les benchmarks de profondeur monoculaire standards : NYU Depth V2, KITTI, Make3D, ETH3D et iBims-1.

Link to this sectionYAML du jeu de données#

Un fichier YAML (Yet Another Markup Language) est utilisé pour définir la configuration du jeu de données. Il contient des informations sur les chemins du jeu de données, les classes et d'autres informations pertinentes. Pour Virtual KITTI 2, le fichier depth-vkitti2.yaml définit les chemins et la classe unique 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 sectionUtilisation#

Pour entraîner un modèle YOLO26n-Depth sur le jeu de données Virtual KITTI 2 avec une taille d'image de 640, tu peux utiliser les extraits de code suivants. Pour une liste complète des arguments disponibles, consulte la page Entraînement du modèle.

Exemple d'entraînement
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 sectionModèles pré-entraînés#

La famille de profondeur YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) est téléchargée automatiquement depuis la version v8.4.0 et est entraînée sur le vaste mélange multi-jeux de données dont Virtual KITTI 2 fait partie.

Link to this sectionCitations et remerciements#

Si tu utilises le jeu de données Virtual KITTI 2 dans tes travaux de recherche ou de développement, merci de citer l'article suivant :

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

Nous tenons à remercier les créateurs de Virtual KITTI 2 pour avoir mis ce jeu de données de conduite synthétique à la disposition de la communauté de la vision par ordinateur.

Contributeurs

Commentaires