Skip to content

Ensemble de données Argoverse

L'ensemble de données Argoverse est une collection de données conçue pour soutenir la recherche sur les tâches de conduite autonome, telles que le suivi 3D, la prévision des mouvements et l'estimation de la profondeur stéréo. Développé par Argo AI, le jeu de données fournit un large éventail de données de capteurs de haute qualité, notamment des images haute résolution, des nuages de points LiDAR et des données cartographiques.

Note

L'ensemble de données Argoverse *.zip Le fichier nécessaire à la formation a été retiré d'Amazon S3 après l'arrêt d'Argo AI par Ford, mais nous l'avons mis à disposition pour un téléchargement manuel sur Google Conduis.

Caractéristiques principales

  • Argoverse contient plus de 290 000 pistes d'objets 3D étiquetés et 5 millions d'instances d'objets dans 1 263 scènes distinctes.
  • Le jeu de données comprend des images prises par des caméras à haute résolution, des nuages de points LiDAR et des cartes HD richement annotées.
  • Les annotations comprennent des boîtes de délimitation en 3D pour les objets, des traces d'objets et des informations sur la trajectoire.
  • Argoverse propose plusieurs sous-ensembles pour différentes tâches, telles que le suivi 3D, la prévision des mouvements et l'estimation de la profondeur stéréo.

Structure de l'ensemble de données

L'ensemble de données Argoverse est organisé en trois sous-ensembles principaux :

  1. Argoverse 3D Tracking: Ce sous-ensemble contient 113 scènes avec plus de 290 000 traces d'objets 3D étiquetés, en se concentrant sur les tâches de suivi d'objets 3D. Il comprend des nuages de points LiDAR, des images de caméras et des informations sur l'étalonnage des capteurs.
  2. Prévisions de mouvement Argoverse: Ce sous-ensemble se compose de 324K trajectoires de véhicules collectées à partir de 60 heures de données de conduite, adaptées aux tâches de prévision des mouvements.
  3. Argoverse Stereo Depth Estimation: Ce sous-ensemble est conçu pour les tâches d'estimation de la profondeur stéréo et comprend plus de 10 000 paires d'images stéréo avec les nuages de points LiDAR correspondants pour l'estimation de la profondeur de la vérité terrain.

Applications

L'ensemble de données Argoverse est largement utilisé pour la formation et l'évaluation de modèles d'apprentissage profond dans des tâches de conduite autonome telles que le suivi d'objets en 3D, la prévision de mouvement et l'estimation de la profondeur stéréo. L'ensemble diversifié de données de capteurs, d'annotations d'objets et d'informations cartographiques du jeu de données en fait une ressource précieuse pour les chercheurs et les praticiens dans le domaine de la conduite autonome.

Jeu de données YAML

Un fichier YAML (Yet Another Markup Language) est utilisé pour définir la configuration du jeu de données. Il contient des informations sur les chemins d'accès au jeu de données, les classes et d'autres informations pertinentes. Dans le cas du jeu de données Argoverse, le fichier Argoverse.yaml est maintenu à 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

Utilisation

Pour entraîner un modèle YOLOv8n sur l'ensemble de données Argoverse pour 100 époques avec une taille d'image de 640, tu peux utiliser les extraits de code suivants. Pour obtenir une liste complète des arguments disponibles, reporte-toi à la page Entraînement du modèle.

Exemple de train

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

Exemples de données et d'annotations

Le jeu de données Argoverse contient un ensemble varié de données de capteurs, notamment des images de caméras, des nuages de points LiDAR et des informations cartographiques HD, offrant un contexte riche pour les tâches de conduite autonome. Voici quelques exemples de données issues de l'ensemble de données, ainsi que les annotations correspondantes :

Image de l'échantillon du jeu de données

  • Argoverse 3D Tracking: Cette image montre un exemple de suivi d'objet en 3D, où les objets sont annotés avec des boîtes de délimitation en 3D. L'ensemble de données fournit des nuages de points LiDAR et des images de caméras pour faciliter le développement de modèles pour cette tâche.

L'exemple présente la variété et la complexité des données de l'ensemble de données Argoverse et souligne l'importance des données de capteurs de haute qualité pour les tâches de conduite autonome.

Citations et remerciements

Si tu utilises le jeu de données Argoverse dans tes travaux de recherche ou de développement, cite l'article suivant :

@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}
}

Nous tenons à remercier Argo AI pour la création et la maintenance de l'ensemble de données Argoverse, qui constitue une ressource précieuse pour la communauté de recherche sur la conduite autonome. Pour plus d'informations sur le jeu de données Argoverse et ses créateurs, visite le site web du jeu de données Argoverse.

FAQ

Qu'est-ce que le jeu de données Argoverse et quelles sont ses principales caractéristiques ?

L'ensemble de données Argoverse, développé par Argo AI, soutient la recherche sur la conduite autonome. Il comprend plus de 290K traces d'objets 3D étiquetés et 5 millions d'instances d'objets à travers 1263 scènes distinctes. L'ensemble de données fournit des images de caméras haute résolution, des nuages de points LiDAR et des cartes HD annotées, ce qui le rend précieux pour des tâches telles que le suivi 3D, la prévision des mouvements et l'estimation de la profondeur stéréo.

Comment puis-je entraîner un modèle Ultralytics YOLO en utilisant l'ensemble de données Argoverse ?

Pour entraîner un modèle YOLOv8 avec l'ensemble de données Argoverse, utilise le fichier de configuration YAML fourni et le code suivant :

Exemple de train

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

Pour une explication détaillée des arguments, reporte-toi à la page Formation au modèle.

Quels types de données et d'annotations sont disponibles dans le jeu de données Argoverse ?

L'ensemble de données Argoverse comprend divers types de données de capteurs tels que des images de caméras haute résolution, des nuages de points LiDAR et des données cartographiques HD. Les annotations comprennent des boîtes de délimitation en 3D, des traces d'objets et des informations sur les trajectoires. Ces annotations complètes sont essentielles pour un apprentissage précis des modèles dans des tâches telles que le suivi d'objets en 3D, la prévision des mouvements et l'estimation de la profondeur stéréo.

Comment l'ensemble des données d'Argoverse est-il structuré ?

L'ensemble de données est divisé en trois sous-ensembles principaux :

  1. Argoverse 3D Tracking: Contient 113 scènes avec plus de 290 000 traces d'objets 3D étiquetés, se concentrant sur les tâches de suivi d'objets 3D. Il comprend des nuages de points LiDAR, des images de caméras et des informations sur l'étalonnage des capteurs.
  2. Argoverse Motion Forecasting: Consiste en 324K trajectoires de véhicules collectées à partir de 60 heures de données de conduite, adaptées aux tâches de prévision de mouvement.
  3. Argoverse Stereo Depth Estimation: Comprend plus de 10 000 paires d'images stéréo avec les nuages de points LiDAR correspondants pour l'estimation de la profondeur de la vérité au sol.

Où puis-je télécharger le jeu de données Argoverse maintenant qu'il a été retiré d'Amazon S3 ?

L'ensemble de données Argoverse *.zip auparavant disponible sur Amazon S3, peut désormais être téléchargé manuellement à partir de Google Conduis.

À quoi sert le fichier de configuration YAML avec l'ensemble de données Argoverse ?

Un fichier YAML contient les chemins, les classes et d'autres informations essentielles du jeu de données. Pour le jeu de données Argoverse, le fichier de configuration, Argoverse.yamlTu trouveras des informations à ce sujet en cliquant sur le lien suivant : Argoverse.yaml.

Pour plus d'informations sur les configurations YAML, consulte notre guide sur les ensembles de données.



Créé le 2023-11-12, Mis à jour le 2024-07-04
Auteurs : glenn-jocher (7), Laughing-q (1)

Commentaires