Meet YOLO26: next-gen vision AI.

Link to this sectionDataset Argoverse#

O dataset Argoverse é uma coleção de dados concebida para apoiar a investigação em tarefas de condução autónoma, tais como rastreio 3D, previsão de movimento e estimativa de profundidade estéreo. Desenvolvido pela Argo AI, o dataset 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 ficheiro *.zip do dataset Argoverse necessário para o treino foi removido da Amazon S3 após o encerramento da Argo AI pela Ford, mas disponibilizámo-lo para transferência manual no Google Drive.

Link to this sectionPrincipais recursos#

  • O Argoverse contém mais de 290 mil rastreios de objetos 3D rotulados e 5 milhões de instâncias de objetos em 1.263 cenas distintas.
  • O dataset inclui imagens de câmara de alta resolução, nuvens de pontos LiDAR e mapas HD ricamente anotados.
  • As anotações incluem caixas delimitadoras 3D para objetos, rastreios de objetos e informações de trajetória.
  • O Argoverse fornece múltiplos subconjuntos para diferentes tarefas, tais como rastreio 3D, previsão de movimento e estimativa de profundidade estéreo.

Link to this sectionEstrutura do Dataset#

O dataset Argoverse está organizado em três subconjuntos principais:

  1. Argoverse 3D Tracking: Este subconjunto contém 113 cenas com mais de 290 mil rastreios de objetos 3D rotulados, centrando-se em tarefas de rastreio de objetos 3D. Inclui nuvens de pontos LiDAR, imagens de câmara e informações de calibração de sensores.
  2. Argoverse Motion Forecasting: Este subconjunto consiste em 324 mil trajetórias de veículos recolhidas a partir de 60 horas de dados de condução, adequadas para tarefas de previsão de movimento.
  3. Argoverse Stereo Depth Estimation: Este subconjunto foi concebido para tarefas de estimativa de profundidade estéreo e inclui mais de 10 mil pares de imagens estéreo com as correspondentes nuvens de pontos LiDAR para estimativa de profundidade de verdade fundamental (ground truth).

Link to this sectionAplicações#

O dataset Argoverse é amplamente utilizado para treinar e avaliar modelos de deep learning em tarefas de condução autónoma, tais como rastreio de objetos 3D, previsão de movimento e estimativa de profundidade estéreo. O conjunto diversificado de dados de sensores, anotações de objetos e informações de mapas do dataset torna-o um recurso valioso para investigadores e profissionais na área da condução autónoma.

Link to this sectionYAML do Dataset#

É utilizado um ficheiro YAML (Yet Another Markup Language) para definir a configuração do dataset. Contém informações sobre os caminhos, classes e outras informações relevantes do dataset. No caso do dataset 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 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Argoverse-HD dataset (ring-front-center camera) by Argo AI: https://www.cs.cmu.edu/~mengtial/proj/streaming/
# 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: 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 pathlib import Path

  from ultralytics.utils import TQDM
  from ultralytics.utils.downloads import download

  def argoverse2yolo(annotation_file):
      """Convert Argoverse dataset annotations to YOLO format for object detection tasks."""
      labels = {}
      with open(annotation_file, encoding="utf-8") as f:
          a = json.load(f)
      for annot in TQDM(a["annotations"], desc=f"Converting {annotation_file} to YOLO format..."):
          img_id = annot["image_id"]
          img_name = a["images"][img_id]["name"]
          img_label_name = f"{Path(img_name).stem}.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 = annotation_file.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", encoding="utf-8") as f:
              f.writelines(labels[k])

  # Download 'https://argoverse-hd.s3.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

Link to this sectionUso#

Para treinar um modelo YOLO26n no dataset Argoverse durante 100 épocas com um tamanho de imagem de 640, podes utilizar os seguintes fragmentos de código. Para uma lista completa de argumentos disponíveis, consulta a página de Treino do modelo.

Exemplo de Treinamento
from ultralytics import YOLO

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

# Train the model
results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)

Link to this sectionDados de Amostra e Anotações#

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

Exemplo de rastreio 3D do dataset Argoverse com anotações de veículos

  • Argoverse 3D Tracking: Esta imagem demonstra um exemplo de rastreio de objetos 3D, onde os objetos são anotados com caixas delimitadoras 3D. O dataset fornece nuvens de pontos LiDAR e imagens de câmara para facilitar o desenvolvimento de modelos para esta tarefa.

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

Link to this sectionCitações e Agradecimentos#

Se utilizares o dataset Argoverse no teu trabalho de investigação ou desenvolvimento, por favor cita o seguinte artigo:

Citação
@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 dataset Argoverse como um recurso valioso para a comunidade de investigação em condução autónoma. Para mais informações sobre o dataset Argoverse e os seus criadores, visita o site do dataset Argoverse.

Link to this sectionFAQ#

Link to this sectionO que é o dataset Argoverse e quais são as suas principais funcionalidades?#

O dataset Argoverse, desenvolvido pela Argo AI, apoia a investigação em condução autónoma. Inclui mais de 290 mil rastreios de objetos 3D rotulados e 5 milhões de instâncias de objetos em 1.263 cenas distintas. O dataset fornece imagens de câmara de alta resolução, nuvens de pontos LiDAR e mapas HD anotados, tornando-o valioso para tarefas como rastreio 3D, previsão de movimento e estimativa de profundidade estéreo.

Link to this sectionComo posso treinar um modelo Ultralytics YOLO utilizando o dataset Argoverse?#

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

Exemplo de Treinamento
from ultralytics import YOLO

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

# Train the model
results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)

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

Link to this sectionQue tipos de dados e anotações estão disponíveis no dataset Argoverse?#

O dataset Argoverse inclui vários tipos de dados de sensores, tais como imagens de câmara de alta resolução, nuvens de pontos LiDAR e dados de mapas HD. As anotações incluem caixas delimitadoras 3D, rastreios de objetos e informações de trajetória. Estas anotações abrangentes são essenciais para um treino preciso de modelos em tarefas como rastreio de objetos 3D, previsão de movimento e estimativa de profundidade estéreo.

Link to this sectionComo está estruturado o dataset Argoverse?#

O dataset está dividido em três subconjuntos principais:

  1. Argoverse 3D Tracking: Contém 113 cenas com mais de 290 mil rastreios de objetos 3D rotulados, centrando-se em tarefas de rastreio de objetos 3D. Inclui nuvens de pontos LiDAR, imagens de câmara e informações de calibração de sensores.
  2. Argoverse Motion Forecasting: Consiste em 324 mil trajetórias de veículos recolhidas a partir de 60 horas de dados de condução, adequadas para tarefas de previsão de movimento.
  3. Argoverse Stereo Depth Estimation: Inclui mais de 10 mil pares de imagens estéreo com as correspondentes nuvens de pontos LiDAR para estimativa de profundidade de verdade fundamental (ground truth).

Link to this sectionOnde posso transferir o dataset Argoverse agora que foi removido da Amazon S3?#

O ficheiro *.zip do dataset Argoverse, anteriormente disponível na Amazon S3, pode agora ser transferido manualmente a partir do Google Drive.

Link to this sectionPara que serve o ficheiro de configuração YAML com o dataset Argoverse?#

Um ficheiro YAML contém os caminhos, classes e outras informações essenciais do dataset. Para o dataset Argoverse, o ficheiro de configuração, Argoverse.yaml, pode ser encontrado na seguinte ligação: Argoverse.yaml.

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

Comentários