Salta para o conteúdo

Conjunto de dados Argoverse

O conjunto de dados Argoverse é uma coleção de dados concebida para apoiar a investigação em tarefas de condução autónoma, como o seguimento 3D, a previsão de movimentos e a estimativa de profundidade estéreo. Desenvolvido pela Argo AI, o conjunto de dados fornece uma vasta gama de dados de sensores de alta qualidade, incluindo imagens de alta resolução, nuvens de pontos LiDAR e dados de mapas.

Nota

O conjunto de dados Argoverse *.zip O ficheiro necessário para a formação foi removido do Amazon S3 após o encerramento do Argo AI pela Ford, mas disponibilizámo-lo para transferência manual em Google Conduzir.

Características principais

  • O Argoverse contém mais de 290 mil rastos de objectos 3D etiquetados e 5 milhões de instâncias de objectos em 1.263 cenas distintas.
  • O conjunto de dados inclui imagens de câmaras de alta resolução, nuvens de pontos LiDAR e mapas HD ricamente anotados.
  • As anotações incluem caixas delimitadoras 3D para objectos, rastos de objectos e informações de trajetória.
  • O Argoverse fornece vários subconjuntos para diferentes tarefas, como rastreamento 3D, previsão de movimento e estimativa de profundidade estéreo.

Estrutura do conjunto de dados

O conjunto de dados Argoverse está organizado em três subconjuntos principais:

  1. Argoverse 3D Tracking: Este subconjunto contém 113 cenas com mais de 290 mil trajectos de objectos 3D etiquetados, centrando-se em tarefas de seguimento de objectos 3D. Inclui nuvens de pontos LiDAR, imagens de câmaras e informações de calibração de sensores.
  2. Previsão de movimentos Argoverse: Este subconjunto é composto por 324K trajectórias de veículos recolhidas a partir de 60 horas de dados de condução, adequadas para tarefas de previsão de movimentos.
  3. Estimativa de profundidade estéreo Argoverse: Este subconjunto foi concebido para tarefas de estimativa de profundidade estéreo e inclui mais de 10 mil pares de imagens estéreo com nuvens de pontos LiDAR correspondentes para a estimativa de profundidade da verdade terrestre.

Aplicações

O conjunto de dados Argoverse é amplamente utilizado para treinar e avaliar modelos de aprendizagem profunda em tarefas de condução autónoma, como o seguimento de objectos 3D, a previsão de movimentos e a estimativa de profundidade estéreo. O conjunto diversificado de dados de sensores, anotações de objectos e informações de mapas do conjunto de dados torna-o um recurso valioso para investigadores e profissionais na área da condução autónoma.

Conjunto de dados YAML

Um ficheiro YAML (Yet Another Markup Language) é utilizado para definir a configuração do conjunto de dados. Contém informações sobre os caminhos do conjunto de dados, classes e outras informações relevantes. No caso do conjunto de dados Argoverse, o ficheiro Argoverse.yaml é mantido em https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/Argoverse.yaml.

ultralytics/cfg/datasets/Argoverse.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# Argoverse-HD dataset (ring-front-center camera) https://www.cs.cmu.edu/~mengtial/proj/streaming/ by Argo AI
# Documentation: https://docs.ultralytics.com/datasets/detect/argoverse/
# Example usage: yolo train data=Argoverse.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── Argoverse  ← downloads here (31.5 GB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/Argoverse # dataset root dir
train: Argoverse-1.1/images/train/ # train images (relative to 'path') 39384 images
val: Argoverse-1.1/images/val/ # val images (relative to 'path') 15062 images
test: Argoverse-1.1/images/test/ # test images (optional) https://eval.ai/web/challenges/challenge-page/800/overview

# Classes
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: bus
  5: truck
  6: traffic_light
  7: stop_sign

# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
  import json
  from tqdm import tqdm
  from ultralytics.utils.downloads import download
  from pathlib import Path

  def argoverse2yolo(set):
      labels = {}
      a = json.load(open(set, "rb"))
      for annot in tqdm(a['annotations'], desc=f"Converting {set} to YOLOv5 format..."):
          img_id = annot['image_id']
          img_name = a['images'][img_id]['name']
          img_label_name = f'{img_name[:-3]}txt'

          cls = annot['category_id']  # instance class id
          x_center, y_center, width, height = annot['bbox']
          x_center = (x_center + width / 2) / 1920.0  # offset and scale
          y_center = (y_center + height / 2) / 1200.0  # offset and scale
          width /= 1920.0  # scale
          height /= 1200.0  # scale

          img_dir = set.parents[2] / 'Argoverse-1.1' / 'labels' / a['seq_dirs'][a['images'][annot['image_id']]['sid']]
          if not img_dir.exists():
              img_dir.mkdir(parents=True, exist_ok=True)

          k = str(img_dir / img_label_name)
          if k not in labels:
              labels[k] = []
          labels[k].append(f"{cls} {x_center} {y_center} {width} {height}\n")

      for k in labels:
          with open(k, "w") as f:
              f.writelines(labels[k])


  # Download 'https://argoverse-hd.s3.us-east-2.amazonaws.com/Argoverse-HD-Full.zip' (deprecated S3 link)
  dir = Path(yaml['path'])  # dataset root dir
  urls = ['https://drive.google.com/file/d/1st9qW3BeIwQsnR0t8mRpvbsSWIo16ACi/view?usp=drive_link']
  print("\n\nWARNING: Argoverse dataset MUST be downloaded manually, autodownload will NOT work.")
  print(f"WARNING: Manually download Argoverse dataset '{urls[0]}' to '{dir}' and re-run your command.\n\n")
  # download(urls, dir=dir)

  # Convert
  annotations_dir = 'Argoverse-HD/annotations/'
  (dir / 'Argoverse-1.1' / 'tracking').rename(dir / 'Argoverse-1.1' / 'images')  # rename 'tracking' to 'images'
  for d in "train.json", "val.json":
      argoverse2yolo(dir / annotations_dir / d)  # convert Argoverse annotations to YOLO labels

Utilização

Para treinar um modelo YOLOv8n no conjunto de dados Argoverse para 100 épocas com um tamanho de imagem de 640, podes utilizar os seguintes snippets de código. Para obter uma lista abrangente dos argumentos disponíveis, consulta a página de treino do modelo.

Exemplo de comboio

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=Argoverse.yaml model=yolov8n.pt epochs=100 imgsz=640

Dados de amostra e anotações

O conjunto de dados Argoverse contém um conjunto diversificado de dados de sensores, incluindo imagens de câmaras, nuvens de pontos LiDAR e informações de mapas HD, fornecendo um contexto rico para tarefas de condução autónoma. Aqui estão alguns exemplos de dados do conjunto de dados, juntamente com as anotações correspondentes:

Imagem de amostra do conjunto de dados

  • Argoverse 3D Tracking: Esta imagem demonstra um exemplo de seguimento de objectos 3D, em que os objectos são anotados com caixas delimitadoras 3D. O conjunto de dados fornece nuvens de pontos LiDAR e imagens de câmaras para facilitar o desenvolvimento de modelos para esta tarefa.

O exemplo mostra a variedade e a complexidade dos dados no conjunto de dados Argoverse e realça a importância de dados de sensores de alta qualidade para tarefas de condução autónoma.

Citações e agradecimentos

Se utilizares o conjunto de dados Argoverse no teu trabalho de investigação ou desenvolvimento, cita o seguinte documento:

@inproceedings{chang2019argoverse,
  title={Argoverse: 3D Tracking and Forecasting with Rich Maps},
  author={Chang, Ming-Fang and Lambert, John and Sangkloy, Patsorn and Singh, Jagjeet and Bak, Slawomir and Hartnett, Andrew and Wang, Dequan and Carr, Peter and Lucey, Simon and Ramanan, Deva and others},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={8748--8757},
  year={2019}
}

Gostaríamos de agradecer à Argo AI por criar e manter o conjunto de dados Argoverse como um recurso valioso para a comunidade de investigação da condução autónoma. Para mais informações sobre o conjunto de dados Argoverse e os seus criadores, visita o sítio Web do conjunto de dados Argoverse.

FAQ

O que é o conjunto de dados Argoverse e as suas principais características?

O conjunto de dados Argoverse, desenvolvido pela Argo AI, apoia a investigação sobre condução autónoma. Inclui mais de 290 mil trajectos de objectos 3D etiquetados e 5 milhões de instâncias de objectos em 1.263 cenas distintas. O conjunto de dados fornece imagens de câmara de alta resolução, nuvens de pontos LiDAR e mapas HD anotados, o que o torna valioso para tarefas como o seguimento 3D, a previsão de movimentos e a estimativa de profundidade estéreo.

Como posso treinar um modelo Ultralytics YOLO utilizando o conjunto de dados Argoverse?

Para treinar um modelo YOLOv8 com o conjunto de dados Argoverse, utiliza o ficheiro de configuração YAML fornecido e o seguinte código:

Exemplo de comboio

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=Argoverse.yaml model=yolov8n.pt epochs=100 imgsz=640

Para uma explicação detalhada dos argumentos, consulta a página de formação do modelo.

Que tipos de dados e anotações estão disponíveis no conjunto de dados Argoverse?

O conjunto de dados Argoverse inclui vários tipos de dados de sensores, como imagens de câmaras de alta resolução, nuvens de pontos LiDAR e dados de mapas HD. As anotações incluem caixas delimitadoras 3D, rastos de objectos e informações sobre trajectórias. Estas anotações abrangentes são essenciais para o treino preciso de modelos em tarefas como o seguimento de objectos 3D, previsão de movimentos e estimativa de profundidade estéreo.

Como está estruturado o conjunto de dados Argoverse?

O conjunto de dados está dividido em três subconjuntos principais:

  1. Argoverse 3D Tracking: Contém 113 cenas com mais de 290 mil trajectos de objectos 3D etiquetados, centrando-se em tarefas de seguimento de objectos 3D. Inclui nuvens de pontos LiDAR, imagens de câmaras e informações de calibração de sensores.
  2. Previsão de movimentos Argoverse: Consiste em 324K trajectórias de veículos recolhidas a partir de 60 horas de dados de condução, adequadas para tarefas de previsão de movimento.
  3. Estimativa de profundidade estéreo Argoverse: Inclui mais de 10 mil pares de imagens estéreo com as nuvens de pontos LiDAR correspondentes para a estimativa da profundidade da verdade terrestre.

Onde posso descarregar o conjunto de dados do Argoverse, agora que foi removido do Amazon S3?

O conjunto de dados Argoverse *.zip anteriormente disponível no Amazon S3, pode agora ser descarregado manualmente a partir de Google Conduzir.

Para que serve o ficheiro de configuração YAML utilizado com o conjunto de dados Argoverse?

Um ficheiro YAML contém os caminhos, as classes e outras informações essenciais do conjunto de dados. Para o conjunto de dados Argoverse, o ficheiro de configuração, Argoverse.yamlPodes consultar a lista de candidatos a emprego no seguinte link: Argoverse.yaml.

Para mais informações sobre as configurações YAML, consulta o nosso guia de conjuntos de dados.



Criado em 2023-11-12, Atualizado em 2024-07-04
Autores: glenn-jocher (7), Laughing-q (1)

Comentários