Saltar al contenido

Conjunto de datos Argoverse

El conjunto de datos Argoverse es una colecci贸n de datos dise帽ada para apoyar la investigaci贸n en tareas de conducci贸n aut贸noma, como el seguimiento 3D, la previsi贸n del movimiento y la estimaci贸n de la profundidad estereosc贸pica. Desarrollado por Argo AI, el conjunto de datos proporciona una amplia gama de datos de sensores de alta calidad, como im谩genes de alta resoluci贸n, nubes de puntos LiDAR y datos cartogr谩ficos.

Nota

El conjunto de datos Argoverse *.zip necesario para el entrenamiento fue retirado de Amazon S3 tras el cierre de Argo AI por Ford, pero lo hemos puesto a disposici贸n para su descarga manual en Google Drive.

Caracter铆sticas principales

  • Argoverse contiene m谩s de 290.000 pistas de objetos 3D etiquetados y 5 millones de instancias de objetos en 1.263 escenas distintas.
  • El conjunto de datos incluye im谩genes de c谩mara de alta resoluci贸n, nubes de puntos LiDAR y mapas HD ricamente anotados.
  • Las anotaciones incluyen cuadros delimitadores 3D de los objetos, huellas de objetos e informaci贸n sobre la trayectoria.
  • Argoverse proporciona varios subconjuntos para diferentes tareas, como el seguimiento 3D, la previsi贸n del movimiento y la estimaci贸n de la profundidad estereosc贸pica.

Estructura del conjunto de datos

El conjunto de datos Argoverse est谩 organizado en tres subconjuntos principales:

  1. Seguimiento 3D Argoverse: Este subconjunto contiene 113 escenas con m谩s de 290.000 pistas de objetos 3D etiquetadas, centradas en tareas de seguimiento de objetos 3D. Incluye nubes de puntos LiDAR, im谩genes de c谩mara e informaci贸n de calibraci贸n del sensor.
  2. Previsi贸n de Movimiento Argoverse: Este subconjunto consta de 324.000 trayectorias de veh铆culos recogidas a partir de 60 horas de datos de conducci贸n, adecuadas para tareas de previsi贸n de movimiento.
  3. Estimaci贸n de la Profundidad Est茅reo Argoverse: Este subconjunto est谩 dise帽ado para tareas de estimaci贸n de profundidad estereosc贸pica e incluye m谩s de 10.000 pares de im谩genes estereosc贸picas con sus correspondientes nubes de puntos LiDAR para la estimaci贸n de profundidad de la verdad del terreno.

Aplicaciones

El conjunto de datos Argoverse se utiliza ampliamente para entrenar y evaluar modelos de aprendizaje profundo en tareas de conducci贸n aut贸noma como el seguimiento de objetos 3D, la previsi贸n de movimiento y la estimaci贸n de profundidad estereosc贸pica. El variado conjunto de datos de sensores, anotaciones de objetos e informaci贸n cartogr谩fica del conjunto de datos lo convierten en un valioso recurso para investigadores y profesionales del campo de la conducci贸n aut贸noma.

Conjunto de datos YAML

Se utiliza un archivo YAML (Yet Another Markup Language) para definir la configuraci贸n del conjunto de datos. Contiene informaci贸n sobre las rutas del conjunto de datos, las clases y otra informaci贸n relevante. En el caso del conjunto de datos Argoverse, el archivo Argoverse.yaml se mantiene en 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

Utilizaci贸n

Para entrenar un modelo YOLOv8n en el conjunto de datos Argoverse durante 100 茅pocas con un tama帽o de imagen de 640, puedes utilizar los siguientes fragmentos de c贸digo. Para obtener una lista completa de los argumentos disponibles, consulta la p谩gina Entrenamiento del modelo.

Ejemplo de tren

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

Muestra de datos y anotaciones

El conjunto de datos Argoverse contiene un variado conjunto de datos de sensores, como im谩genes de c谩mara, nubes de puntos LiDAR e informaci贸n cartogr谩fica HD, que proporcionan un rico contexto para las tareas de conducci贸n aut贸noma. He aqu铆 algunos ejemplos de datos del conjunto de datos, junto con sus correspondientes anotaciones:

Imagen de muestra del conjunto de datos

  • Seguimiento 3D Argoverse: Esta imagen muestra un ejemplo de seguimiento de objetos 3D, en el que los objetos se anotan con cajas delimitadoras 3D. El conjunto de datos proporciona nubes de puntos LiDAR e im谩genes de c谩mara para facilitar el desarrollo de modelos para esta tarea.

El ejemplo muestra la variedad y complejidad de los datos del conjunto de datos Argoverse y destaca la importancia de los datos de sensores de alta calidad para las tareas de conducci贸n aut贸noma.

Citas y agradecimientos

Si utilizas el conjunto de datos Argoverse en tu trabajo de investigaci贸n o desarrollo, cita el siguiente 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}
}

Queremos dar las gracias a Argo AI por crear y mantener el conjunto de datos Argoverse como un valioso recurso para la comunidad investigadora de la conducci贸n aut贸noma. Para m谩s informaci贸n sobre el conjunto de datos Argoverse y sus creadores, visita el sitio web del conjunto de datos Argoverse.



Creado 2023-11-12, Actualizado 2024-05-18
Autores: glenn-jocher (5), Laughing-q (1)

Comentarios