Ultralytics YOLO27:

Dataset Argoverse#

O dataset Argoverse da Ultralytics (Argoverse-HD) é um dataset de deteção de objetos 2D com 54.446 imagens de condução autónoma anotadas — 39.384 para treino e 15.062 para validação — distribuídas por 8 classes: pessoa, bicicleta, carro, motociclo, autocarro, camião, semáforo e sinal de stop. As imagens são captadas pela câmara frontal central em anel de um veículo, e as anotações provêm do projeto de perceção em fluxo da Carnegie Mellon University, desenvolvido com base nos dados de condução Argoverse 1.1 da Argo AI. É um benchmark grande e realista para treinar modelos de visão computacional para detetar objetos rodoviários em cenários de condução autónoma.

Explora o Argoverse-HD na Ultralytics Platform para pré-visualizar amostras anotadas, consultar as estatísticas do dataset e cloná-lo para treino.

Transferência manual necessária

O ficheiro *.zip do Argoverse-HD (~31.5 GB) necessário para o treino foi removido do Amazon S3 após o encerramento da Argo AI pela Ford. Está disponível para transferência manual a partir do Google Drive — a transferência automática não funcionará, por isso transfere o arquivo antes do treino.

Principais funcionalidades#

  • 8 classes de deteção de objetos: pessoa, bicicleta, carro, motociclo, autocarro, camião, semáforo e sinal de stop.
  • 54.446 imagens anotadas — 39.384 para treino e 15.062 para validação — além de uma divisão de teste sem anotações reservada para o desafio eval.ai.
  • ~31.5 GB de imagens de alta resolução captadas pela câmara frontal central em anel em cenários urbanos de condução autónoma.
  • As anotações são convertidas automaticamente para o formato YOLO na primeira utilização, pelo que o dataset pode ser treinado diretamente com os modelos de deteção YOLO da Ultralytics.

Estrutura do Conjunto de Dados#

O dataset Argoverse-HD está dividido em três subconjuntos predefinidos, definidos pela configuração Argoverse.yaml:

DivisãoImagensEtiquetas
Treinar39,384Sim
Validação15,062Sim
TesteSem anotações (desafio eval.ai)

Todas as imagens partilham as mesmas 8 classes de objetos (índices 0–7): pessoa, bicicleta, carro, motociclo, autocarro, camião, semáforo e sinal de stop.

Conversão automática para YOLO

Após a transferência manual, a Ultralytics converte automaticamente as anotações originais do Argoverse-HD em etiquetas de deteção YOLO na primeira vez que treinas, pelo que não é necessário qualquer pré-processamento manual.

Aplicações#

O dataset Argoverse-HD suporta várias aplicações de deteção de objetos na condução autónoma:

  • Perceção para condução autónoma — deteta veículos, peões e ciclistas a partir de uma câmara orientada para a frente para apoiar a navegação de veículos autónomos.
  • Sistemas avançados de assistência ao condutor (ADAS) — reconhece semáforos e sinais de stop para emitir alertas ao condutor em tempo real.
  • Monitorização do trânsito — conta e acompanha os utilizadores da estrada em cenários urbanos para análises de cidades inteligentes.
  • Investigação e prototipagem — um benchmark grande e realista para aprender treino de modelos e predição com dados de condução.

YAML do Conjunto de Dados#

Um ficheiro YAML define a configuração do dataset, incluindo caminhos, classes e outros detalhes relevantes. Para o 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

Utilização#

Para treinares um modelo YOLO26n no dataset Argoverse durante 100 épocas, com um tamanho de imagem de 640, utiliza as seguintes amostras de código. Para obteres uma lista completa dos argumentos disponíveis, consulta a página de Treino do modelo.

Exemplo de treino
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)

Depois do treino, executa a inferência com o modelo ajustado em novas imagens ou vídeos de condução:

Exemplo de inferência
from ultralytics import YOLO

# Load a model
model = YOLO("path/to/best.pt")  # load an Argoverse fine-tuned model

# Inference using the model
results = model.predict("path/to/driving-scene.jpg")

Dados e anotações de exemplo#

O dataset Argoverse-HD contém imagens de condução de alta resolução captadas por uma câmara frontal central em anel, anotadas com caixas delimitadoras 2D para as 8 classes de objetos. Abaixo encontra-se um exemplo de imagem do dataset com as respetivas anotações:

Cenário de condução autónoma do Argoverse-HD com objetos rodoviários anotados

  • Cenário de condução anotado: esta imagem mostra objetos rodoviários — como veículos e peões — identificados com caixas delimitadoras 2D, o formato que os modelos YOLO aprendem a prever durante o treino.

Citações e agradecimentos#

As anotações de deteção 2D do Argoverse-HD utilizadas neste dataset provêm do trabalho de perceção em fluxo da Carnegie Mellon University. Se utilizares o dataset na tua investigação ou desenvolvimento, cita:

Citação
@inproceedings{li2020towards,
  title={Towards Streaming Perception},
  author={Li, Mengtian and Wang, Yu-Xiong and Ramanan, Deva},
  booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
  pages={473--488},
  year={2020}
}

@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 reconhecer a Carnegie Mellon University pelas anotações de deteção do Argoverse-HD e a Argo AI pela criação do dataset Argoverse original, um recurso valioso para a comunidade de investigação em condução autónoma.

Perguntas frequentes#

  • O dataset Argoverse da Ultralytics (Argoverse-HD) é um dataset de deteção de objetos 2D com 54.446 imagens de condução autónoma distribuídas por 8 classes — pessoa, bicicleta, carro, motociclo, autocarro, camião, semáforo e sinal de stop. É utilizado para treinar e avaliar modelos que detetam objetos rodoviários a partir da câmara frontal de um veículo, apoiando a perceção para condução autónoma, ADAS e a investigação de monitorização do trânsito.

  • O dataset Argoverse-HD tem 8 classes (pessoa, bicicleta, carro, motociclo, autocarro, camião, semáforo e sinal de stop) e 54.446 imagens anotadas — 39.384 para treino e 15.062 para validação — além de uma divisão de teste sem anotações reservada para o desafio eval.ai.

  • Na Ultralytics, é um dataset de deteção de objetos 2D (imagens de câmara do Argoverse-HD com caixas delimitadoras 2D), não o conjunto de investigação de seguimento 3D, previsão de movimento ou LiDAR do programa Argoverse mais abrangente. Treina-o com um modelo de deteção padrão, como yolo26n.pt.

  • Transfere primeiro o dataset manualmente (consulta abaixo) e, em seguida, treina com o ficheiro de configuração Argoverse.yaml:

    Exemplo
    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 obteres uma explicação detalhada dos argumentos, consulta a página de Treino do modelo.

  • O ficheiro *.zip do Argoverse-HD (~31.5 GB), anteriormente alojado no Amazon S3, pode agora ser transferido manualmente a partir do Google Drive. A transferência automática não funcionará, por isso obtém o arquivo antes de executares o comando de treino.

  • Sim. A Ultralytics Platform permite-te carregar e versionar datasets grandes, como o Argoverse-HD, e depois treinar e implementar modelos de deteção de objetos na cloud sem uma configuração local complexa. Também podes consultar datasets relacionados na visão geral dos datasets de deteção.

Comentários