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, tais como rastreio 3D, previsão de movimento e 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.
O ficheiro *.zip do conjunto de dados 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.
Principais 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 conjunto de dados 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.
Estrutura do Dataset
O conjunto de dados Argoverse está organizado em três subconjuntos principais:
- 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.
- 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.
- 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 referência.
Aplicações
O conjunto de dados 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 conjunto de dados torna-o um recurso valioso para investigadores e profissionais na área da condução autónoma.
YAML do Dataset
Um ficheiro YAML (Yet Another Markup Language) é utilizado para definir a configuração do conjunto de dados. Contém informações sobre os caminhos, classes e outras informações relevantes do conjunto de dados. Para o 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 🚀 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.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 labelsUtilização
Para treinar um modelo YOLO26n no conjunto de dados Argoverse durante 100 épocas com um tamanho de imagem de 640, podes usar os seguintes fragmentos de código. Para uma lista completa de argumentos disponíveis, consulta a página de Treino do modelo.
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)Amostra de dados e anotações
O conjunto de dados 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, proporcionando um contexto rico para tarefas de condução autónoma. Aqui tens alguns exemplos de dados do conjunto de dados, juntamente com as suas anotações correspondentes:
![]()
- Argoverse 3D Tracking: Esta imagem demonstra um exemplo de rastreio de objetos 3D, onde os objetos são anotados com caixas delimitadoras 3D. O conjunto de dados 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 conjunto de dados Argoverse e destaca 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, por favor cita o seguinte artigo:
@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 pela criação e manutenção do conjunto de dados Argoverse como um recurso valioso para a comunidade de investigação em condução autónoma. Para mais informações sobre o conjunto de dados Argoverse e os seus criadores, visita o site do conjunto de dados Argoverse.
FAQ
O que é o conjunto de dados Argoverse e quais são as suas principais funcionalidades?
O conjunto de dados 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 conjunto de dados 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.
Como posso treinar um modelo Ultralytics YOLO utilizando o conjunto de dados Argoverse?
Para treinar um modelo YOLO26 com o conjunto de dados Argoverse, utiliza o ficheiro de configuração YAML fornecido e o seguinte código:
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.
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, 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 do modelo em tarefas como rastreio de objetos 3D, previsão de movimento 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:
- 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.
- 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.
- 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 referência.
Onde posso transferir o conjunto de dados Argoverse agora que foi removido da Amazon S3?
O ficheiro *.zip do conjunto de dados Argoverse, anteriormente disponível na Amazon S3, pode agora ser transferido manualmente a partir do Google Drive.
Para que serve o ficheiro de configuração YAML com o conjunto de dados Argoverse?
Um ficheiro YAML contém os caminhos, classes e outras informações essenciais do conjunto de dados. Para o conjunto de dados 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.