Seguridad lista para empresas: Cumplimiento de ISO 27001 + SOC 2 Tipo I.

Link to this sectionConjunto de datos de profundidad Virtual KITTI 2#

Virtual KITTI 2 (vKITTI2) es una recreación sintética fotorrealista de las escenas de conducción de KITTI. Clona 5 secuencias del conjunto de datos original de KITTI y las vuelve a renderizar en condiciones climáticas y de iluminación variadas, proporcionando información veraz densa por píxel.

Como conjunto de datos sintético de conducción en exteriores, vKITTI2 ofrece una contrapartida densa a los retornos dispersos de LiDAR del KITTI real, lo que lo convierte en una fuente útil de geometría de conducción en exteriores limpia para entrenar modelos de estimación de profundidad monocular.

Link to this sectionCaracterísticas clave#

  • Recreación sintética fotorrealista de escenas de conducción de KITTI.
  • 5 secuencias clonadas renderizadas bajo condiciones climáticas y de iluminación variadas.
  • Entornos de conducción en exteriores.
  • Información veraz densa por píxel (una contrapartida densa al LiDAR disperso del KITTI real).
  • Rango de profundidad ~80 m.
  • Aporta 42 520 imágenes (25 780 de entrenamiento / 16 740 de validación) a la mezcla de entrenamiento de profundidad de Ultralytics.

Link to this sectionEstructura del dataset#

El conjunto de datos de profundidad Virtual KITTI 2 se divide en dos subconjuntos:

  1. Train: 25 780 imágenes con mapas de profundidad densos emparejados para entrenamiento.
  2. Val: 16 740 imágenes con mapas de profundidad densos emparejados para validación durante el entrenamiento.

Cada imagen RGB está emparejada con un mapa de profundidad .npy float32 que almacena distancias por píxel en metros, siguiendo el formato de dataset de profundidad de Ultralytics.

Link to this sectionRol en YOLO26-Depth#

Virtual KITTI 2 es una de las fuentes de entrenamiento en la amplia mezcla de múltiples conjuntos de datos (~2,19 millones de imágenes) utilizada para preentrenar los modelos YOLO26-Depth de Ultralytics. Dentro de esta mezcla, vKITTI2 proporciona una contrapartida sintética densa de conducción en exteriores al LiDAR disperso del KITTI real.

No existe un punto de referencia vKITTI2 independiente en esta configuración. En su lugar, los modelos resultantes se evalúan en los puntos de referencia de profundidad monocular estándar: NYU Depth V2, KITTI, Make3D, ETH3D e iBims-1.

Link to this sectionYAML del dataset#

Se utiliza un archivo YAML (Yet Another Markup Language) para definir la configuración del conjunto de datos. Contiene información sobre las rutas, clases y otra información relevante del conjunto de datos. Para Virtual KITTI 2, el archivo depth-vkitti2.yaml define las rutas y la clase depth única.

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 sectionUso#

Para entrenar un modelo YOLO26n-Depth en el conjunto de datos Virtual KITTI 2 con un tamaño de imagen de 640, puedes usar los siguientes fragmentos de código. Para obtener una lista completa de los argumentos disponibles, consulta la página de entrenamiento del modelo.

Ejemplo de entrenamiento
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 sectionModelos preentrenados#

La familia de profundidad YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) se descarga automáticamente desde la versión v8.4.0 y está entrenada en la amplia mezcla de múltiples conjuntos de datos de la que forma parte Virtual KITTI 2.

Link to this sectionCitas y agradecimientos#

Si utilizas el conjunto de datos Virtual KITTI 2 en tu trabajo de investigación o desarrollo, por favor cita el siguiente artículo:

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

Nos gustaría agradecer a los creadores de Virtual KITTI 2 por hacer que este conjunto de datos de conducción sintética esté disponible para la comunidad de visión artificial.

Colaboradores

Comentarios