Ir 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 de movimiento y la estimación de profundidad estéreo. Desarrollado por Argo AI, el conjunto de datos proporciona una amplia gama de datos de sensores de alta calidad, incluidas 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 Conducir.

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 con abundantes anotaciones.
  • Las anotaciones incluyen cuadros delimitadores 3D para objetos, huellas de objetos e información sobre trayectorias.
  • Argoverse proporciona múltiples subconjuntos para diferentes tareas, como el seguimiento 3D, la previsión de movimiento y la estimación de 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 290K 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 de sensores.
  2. Previsión de movimiento Argoverse: Este subconjunto consta de 324K 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 profundidad estereoscópica 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 la profundidad real.

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 predicción de movimiento y la estimación de profundidad estéreo. La diversidad de datos de sensores, anotaciones de objetos e información cartográfica del conjunto de datos lo convierten en un recurso valioso para investigadores y profesionales del campo de la conducción autónoma.

Conjunto de datos YAML

Para definir la configuración del conjunto de datos se utiliza un archivo YAML (Yet Another Markup Language). 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 YOLO11n en el conjunto de datos Argoverse durante 100 épocas con un tamaño de imagen de 640, puede utilizar los siguientes fragmentos de código. Para obtener una lista completa de los argumentos disponibles, consulte la página de entrenamiento del modelo.

Ejemplo de tren

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt epochs=100 imgsz=640

Ejemplos 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 en alta definición, que proporcionan un contexto rico para las tareas de conducción autónoma. A continuación se muestran 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 en 3D, en el que los objetos se anotan con cuadros delimitadores en 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 subraya la importancia de disponer de datos de sensores de alta calidad para las tareas de conducción autónoma.

Citas y agradecimientos

Si utiliza el conjunto de datos Argoverse en su trabajo de investigación o desarrollo, cite 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}
}

Nos gustaría agradecer a Argo AI la creación y el mantenimiento del 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, visite el sitio web del conjunto de datos Argoverse.

PREGUNTAS FRECUENTES

¿Qué es el conjunto de datos Argoverse y cuáles son sus principales características?

El conjunto de datos Argoverse, desarrollado por Argo AI, sirve de apoyo a la investigación sobre conducción autónoma. Incluye más de 290 000 rastros de objetos 3D etiquetados y 5 millones de instancias de objetos en 1 263 escenas distintas. El conjunto de datos proporciona imágenes de cámara de alta resolución, nubes de puntos LiDAR y mapas HD con anotaciones, lo que lo hace valioso para tareas como el seguimiento 3D, la previsión del movimiento y la estimación de la profundidad estereoscópica.

¿Cómo puedo entrenar un modelo Ultralytics YOLO utilizando el conjunto de datos Argoverse?

Para entrenar un modelo YOLO11 con el conjunto de datos Argoverse, utilice el archivo de configuración YAML proporcionado y el siguiente código:

Ejemplo de tren

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt epochs=100 imgsz=640

Para una explicación detallada de los argumentos, consulte la página de formación del modelo.

¿Qué tipos de datos y anotaciones están disponibles en el conjunto de datos Argoverse?

El conjunto de datos Argoverse incluye varios tipos de datos de sensores, como imágenes de cámara de alta resolución, nubes de puntos LiDAR y datos cartográficos HD. Las anotaciones incluyen cuadros delimitadores 3D, huellas de objetos e información sobre trayectorias. Estas completas anotaciones son esenciales para un entrenamiento preciso del modelo en tareas como el seguimiento de objetos 3D, la predicción del movimiento y la estimación de la profundidad estereoscópica.

¿Cómo está estructurado el conjunto de datos Argoverse?

El conjunto de datos se divide en tres subconjuntos principales:

  1. Argoverse 3D Tracking: Contiene 113 escenas con más de 290K 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 de sensores.
  2. Previsión de movimiento Argoverse: Consta de 324 000 trayectorias de vehículos recopiladas a partir de 60 horas de datos de conducción, adecuadas para tareas de previsión de movimiento.
  3. Estimación de profundidad estereoscópica Argoverse: Incluye más de 10.000 pares de imágenes estereoscópicas con sus correspondientes nubes de puntos LiDAR para la estimación de la profundidad real.

¿Dónde puedo descargar el conjunto de datos Argoverse ahora que se ha retirado de Amazon S3?

El conjunto de datos Argoverse *.zip anteriormente disponible en Amazon S3, ahora puede descargarse manualmente desde Google Conducir.

¿Para qué se utiliza el fichero de configuración YAML con el conjunto de datos Argoverse?

Un archivo YAML contiene las rutas del conjunto de datos, las clases y otra información esencial. Para el conjunto de datos Argoverse, el archivo de configuración, Argoverse.yamlen el siguiente enlace: Argoverse.yaml.

Para más información sobre las configuraciones YAML, consulte nuestra guía de conjuntos de datos.

Creado hace 1 año ✏️ Actualizado hace 2 meses

Comentarios