Ultralytics YOLO27:

Conjunto de dados Argoverse#

O conjunto de dados Argoverse da Ultralytics (Argoverse-HD) é um conjunto de dados 2D de deteção de objetos com 54.446 imagens rotuladas de condução autónoma — 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 são provenientes 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 de grande dimensão e do mundo real para treinar modelos de visão computacional que detetam objetos na estrada em cenários de condução autónoma.

Explore Argoverse-HD na Ultralytics Platform para pré-visualizar amostras anotadas, consultar as estatísticas do conjunto de dados e cloná-lo para treino.

É necessária transferência manual

O ficheiro *.zip do Argoverse-HD (~31,5 GB), necessário para o treino, foi removido do Amazon S3 após a Ford encerrar a Argo AI. Está disponível para transferência manual no Google Drive — a transferência automática não funcionará, por isso descarregue o arquivo e extraia-o para a pasta Argoverse do seu diretório de conjuntos de dados antes de treinar.

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 rotuladas — 39.384 para treino e 15.062 para validação — além de uma divisão de teste sem rótulos, 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, para que o conjunto de dados possa ser usado diretamente no treino de modelos de deteção Ultralytics YOLO.

Estrutura do conjunto de dados#

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

DivisãoImagensRótulos
Treinar39,384Sim
Validação15,062Sim
Teste—Sem rótulos (desafio eval.ai)

Todas as imagens compartilham as mesmas 8 classes de objetos (índices de 0 a 7): pessoa, bicicleta, carro, motocicleta, ônibus, caminhão, semáforo e placa de pare.

Conversão automática para YOLO

Após o download manual, a Ultralytics converte automaticamente as anotações originais do Argoverse-HD em rótulos de detecção YOLO na primeira vez que você treina, portanto não é necessário fazer o pré-processamento manual.

Aplicações#

O conjunto de dados Argoverse-HD é compatível com diversas aplicações de detecção de objetos na condução autônoma:

  • Percepção para veículos autônomos — detecte veículos, pedestres e ciclistas com uma câmera voltada para a frente para dar suporte à navegação de veículos autônomos.
  • Sistemas avançados de assistência ao condutor (ADAS) — reconheça semáforos e placas de pare para emitir alertas ao condutor em tempo real.
  • Monitoramento de tráfego — conte e acompanhe usuários das vias em cenários urbanos para análises de cidades inteligentes.
  • Pesquisa e prototipagem — um benchmark amplo e do mundo real para aprender treinamento de modelos e predição com dados de condução.

YAML do conjunto de dados#

Um arquivo YAML define a configuração do conjunto de dados, incluindo caminhos, classes e outros detalhes relevantes. Para o conjunto de dados Argoverse, o arquivo 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

Uso#

Para treinar um modelo YOLO26n no conjunto de dados Argoverse por 100 épocas, com tamanho de imagem 640, use os exemplos de código a seguir. Para ver uma lista completa dos argumentos disponíveis, consulte a página de treinamento do modelo.

Exemplo de treino
from ultralytics import YOLO

# Carregar um modelo
model = YOLO("yolo26n.pt")  # carregue um modelo pré-treinado (recomendado para treinamento)

# Treinar o modelo
results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)

Após o treinamento, execute a inferência com o modelo ajustado em novas imagens ou vídeos de condução:

Exemplo de inferência
from ultralytics import YOLO

# Carregar um modelo
model = YOLO("path/to/best.pt")  # carregar um modelo Argoverse ajustado

# Inferência usando o modelo
results = model.predict("path/to/driving-scene.jpg")

Dados de exemplo e anotações#

O conjunto de dados Argoverse-HD contém imagens de condução em alta resolução capturadas por uma câmera frontal central do conjunto de câmeras, anotadas com caixas delimitadoras 2D para as 8 classes de objetos. Abaixo está uma imagem de exemplo do conjunto de dados com as respectivas anotações:

Cena de condução autônoma do Argoverse-HD com objetos da via anotados

  • Cena de condução anotada: esta imagem mostra objetos da via — como veículos e pedestres — rotulados com caixas delimitadoras 2D, o formato que os modelos YOLO aprendem a prever durante o treinamento.

Citações e agradecimentos#

As anotações de detecção 2D do Argoverse-HD usadas neste conjunto de dados vêm do trabalho de percepção em fluxo da Carnegie Mellon University. Se você usar o conjunto de dados em sua pesquisa ou desenvolvimento, cite:

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 agradecer à Carnegie Mellon University pelas anotações de detecção do Argoverse-HD e à Argo AI pela criação do conjunto de dados original Argoverse, um recurso valioso para a comunidade de pesquisa em condução autônoma.

Perguntas frequentes#

  • O conjunto de dados Argoverse da Ultralytics (Argoverse-HD) é um conjunto de dados de detecção de objetos 2D com 54.446 imagens de condução autônoma distribuídas por 8 classes — pessoa, bicicleta, carro, motocicleta, ônibus, caminhão, semáforo e placa de pare. Ele é usado para treinar e avaliar modelos que detectam objetos da via com uma câmera veicular voltada para a frente, dando suporte à pesquisa em percepção para veículos autônomos, ADAS e monitoramento de tráfego.

  • O conjunto de dados Argoverse-HD tem 8 classes (pessoa, bicicleta, carro, motocicleta, ônibus, caminhão, semáforo e placa de pare) e 54.446 imagens rotuladas — 39.384 para treinamento e 15.062 para validação — além de uma divisão de teste sem rótulos reservada para o desafio eval.ai.

  • Na Ultralytics, ele é um conjunto de dados de detecção de objetos 2D (quadros de câmera do Argoverse-HD com caixas delimitadoras 2D), e não o conjunto de pesquisa mais amplo do programa Argoverse para rastreamento 3D, previsão de movimento ou LiDAR. Você pode treiná-lo com um modelo de detecção padrão, como yolo26n.pt.

  • Primeiro, baixe o conjunto de dados manualmente (veja abaixo) e, em seguida, treine usando o arquivo de configuração Argoverse.yaml:

    Exemplo
    from ultralytics import YOLO
    
    # Carregar um modelo
    model = YOLO("yolo26n.pt")  # carregue um modelo pré-treinado (recomendado para treinamento)
    
    # Treinar o modelo
    results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)

    Para obter uma explicação detalhada dos argumentos, consulte a página de treinamento do modelo.

  • O arquivo *.zip do Argoverse-HD (~31.5 GB), hospedado anteriormente no Amazon S3, agora pode ser baixado manualmente pelo Google Drive. O download automático não funcionará; portanto, baixe o arquivo compactado e extraia-o para a pasta Argoverse do seu diretório de conjuntos de dados antes de executar o comando de treinamento.

  • Sim. A Ultralytics Platform permite carregar e versionar grandes conjuntos de dados, como o Argoverse-HD, e depois treinar e implantar modelos de detecção de objetos na nuvem sem uma configuração local pesada. Você também pode explorar conjuntos de dados relacionados na visão geral dos conjuntos de dados de detecção.

Comentários