Segurança pronta para empresas: Em conformidade com ISO 27001 + SOC 2 Tipo I.

Link to this sectionConjunto de dados de profundidade Virtual KITTI 2#

Virtual KITTI 2 (vKITTI2) é uma recriação sintética fotorrealista das cenas de condução do KITTI. Ele clona 5 sequências do conjunto de dados KITTI original e as renderiza novamente sob condições variadas de clima e iluminação, fornecendo um ground truth denso por pixel.

Como um conjunto de dados sintético de condução ao ar livre, o vKITTI2 oferece uma contraparte densa aos retornos esparsos do LiDAR do KITTI real, tornando-o uma fonte útil de geometria limpa de condução ao ar livre para treinar modelos de estimativa de profundidade monocular.

Link to this sectionPrincipais recursos#

  • Recriação sintética fotorrealista de cenas de condução do KITTI.
  • 5 sequências clonadas renderizadas sob clima e iluminação variados.
  • Ambientes de condução ao ar livre.
  • Ground truth denso por pixel (uma contraparte densa para o LiDAR do KITTI real esparso).
  • Alcance de profundidade ~80 m.
  • Contribui com 42.520 imagens (25.780 de treino / 16.740 de validação) para a mistura de treino de profundidade da Ultralytics.

Link to this sectionEstrutura do Dataset#

O conjunto de dados de profundidade Virtual KITTI 2 é dividido em dois subconjuntos:

  1. Train: 25.780 imagens com mapas de profundidade densos pareados para treino.
  2. Val: 16.740 imagens com mapas de profundidade densos pareados para validação durante o treino.

Cada imagem RGB é pareada com um mapa de profundidade .npy float32 armazenando distâncias por pixel em metros, seguindo o formato de dataset de profundidade Ultralytics.

Link to this sectionPapel no YOLO26-Depth#

Virtual KITTI 2 é uma das fontes de treino na ampla mistura de múltiplos conjuntos de dados (~2,19 milhões de imagens) usada para pré-treinar os modelos Ultralytics YOLO26-Depth. Dentro desta mistura, o vKITTI2 fornece uma contraparte sintética densa de condução ao ar livre para o ground truth esparso do LiDAR do KITTI real.

Não existe um benchmark vKITTI2 isolado nesta configuração. Em vez disso, os modelos resultantes são avaliados nos benchmarks padrão de profundidade monocular: NYU Depth V2, KITTI, Make3D, ETH3D e iBims-1.

Link to this sectionYAML do Dataset#

Um arquivo YAML (Yet Another Markup Language) é usado para definir a configuração do conjunto de dados. Ele contém informações sobre os caminhos do conjunto de dados, classes e outras informações relevantes. Para o Virtual KITTI 2, o arquivo depth-vkitti2.yaml define os caminhos e a única 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 sectionUso#

Para treinar um modelo YOLO26n-Depth no conjunto de dados Virtual KITTI 2 com um tamanho de imagem de 640, você pode usar os seguintes trechos de código. Para uma lista abrangente de argumentos disponíveis, consulte a página de Treino do modelo.

Exemplo de Treinamento
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 pré-treinados#

A família YOLO26 depth (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) é baixada automaticamente do lançamento v8.4.0 e é treinada na ampla mistura de múltiplos conjuntos de dados da qual o Virtual KITTI 2 faz parte.

Link to this sectionCitações e Agradecimentos#

Se você usar o conjunto de dados Virtual KITTI 2 em seu trabalho de pesquisa ou desenvolvimento, por favor, cite o seguinte artigo:

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

Gostaríamos de agradecer aos criadores do Virtual KITTI 2 por disponibilizarem este conjunto de dados sintético de condução para a comunidade de visão computacional.

Contribuidores

Comentários