Passer au contenu

Jeu de données Argoverse

Le jeu de données Argoverse est une collection de données conçue pour soutenir la recherche dans les tâches de conduite autonome, telles que le suivi 3D, la prévision de mouvement 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.

Remarque

L'ensemble de données Argoverse *.zip le fichier requis pour l'entraînement a été supprimé d'Amazon S3 après la fermeture d'Argo AI par Ford, mais nous l'avons mis à disposition pour téléchargement manuel sur Google Drive.

Principales caractéristiques

  • Argoverse contient plus de 290 000 pistes d'objets 3D étiquetées et 5 millions d'instances d'objets dans 1 263 scènes distinctes.
  • L'ensemble de données comprend des images de caméra haute résolution, des nuages de points LiDAR et des cartes HD richement annotées.
  • Les annotations comprennent des boîtes englobantes 3D pour les objets, les suivis d'objets et les informations de trajectoire.
  • Argoverse fournit plusieurs sous-ensembles pour différentes tâches, telles que le suivi 3D, la prévision de mouvement et l'estimation de profondeur stéréo.

Structure du jeu de données

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

  1. Suivi 3D Argoverse : Ce sous-ensemble contient 113 scènes avec plus de 290 000 pistes d'objets 3D étiquetées, se concentrant sur les tâches de suivi d'objets 3D. Il comprend des nuages de points LiDAR, des images de caméra et des informations d'étalonnage des capteurs.
  2. Prévision de mouvement Argoverse : Ce sous-ensemble comprend 324 000 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 : 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 des 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 des modèles d’apprentissage profond dans les tâches de conduite autonome telles que le suivi d’objets 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 de l’ensemble de données en fait une ressource précieuse pour les chercheurs et les praticiens dans le domaine de la conduite autonome.

YAML du jeu de données

Un fichier YAML (Yet Another Markup Language) est utilisé pour définir la configuration de l’ensemble de données. Il contient des informations sur les chemins d’accès, les classes et d’autres informations pertinentes de l’ensemble de données. Pour le cas de l’ensemble de données Argoverse, le Argoverse.yaml fichier est maintenu à l'adresse 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) 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: 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(set):
      """Convert Argoverse dataset annotations to YOLO format for object detection tasks."""
      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", 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 labels

Utilisation

Pour entraîner un modèle YOLO11n sur l'ensemble de données Argoverse pendant 100 epochs avec une taille d'image de 640, vous pouvez utiliser les extraits de code suivants. Pour une liste complète des arguments disponibles, consultez la page Formation du modèle.

Exemple d'entraînement

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

Exemple de données et d'annotations

L'ensemble de données Argoverse contient un ensemble diversifié de données de capteurs, notamment des images de caméras, des nuages de points LiDAR et des informations de carte HD, fournissant un contexte riche pour les tâches de conduite autonome. Voici quelques exemples de données de l'ensemble de données, ainsi que leurs annotations correspondantes :

Exemple d'image de l'ensemble de données

  • Suivi 3D Argoverse : Cette image montre un exemple de suivi d'objets 3D, où les objets sont annotés avec des boîtes englobantes 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 illustre la variété et la complexité des données dans l'ensemble de données Argoverse et souligne l'importance de données de capteurs de haute qualité pour les tâches de conduite autonome.

Citations et remerciements

Si vous utilisez l'ensemble de données Argoverse dans vos travaux de recherche ou de développement, veuillez citer 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 d'avoir créé et maintenu l'ensemble de données Argoverse en tant que ressource précieuse pour la communauté de recherche sur la conduite autonome. Pour plus d'informations sur l'ensemble de données Argoverse et ses créateurs, visitez le site Web de l'ensemble de données Argoverse.

FAQ

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

Le jeu de données Argoverse, développé par Argo AI, soutient la recherche sur la conduite autonome. Il comprend plus de 290 000 pistes d'objets 3D étiquetées et 5 millions d'instances d'objets réparties sur 1 263 scènes distinctes. Le jeu de données fournit des images de caméra 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 de mouvement et l'estimation de 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 YOLO11 avec le jeu de données Argoverse, utilisez le fichier de configuration YAML fourni et le code suivant :

Exemple d'entraînement

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

Pour une explication détaillée des arguments, reportez-vous à la page Formation du modèle.

Quels types de données et d'annotations sont disponibles dans l'ensemble de données Argoverse ?

L'ensemble de données Argoverse comprend divers types de données de capteurs tels que des images de caméra haute résolution, des nuages de points LiDAR et des données de carte HD. Les annotations comprennent des boîtes englobantes 3D, des suivis d'objets et des informations de trajectoire. Ces annotations complètes sont essentielles pour un entraînement précis du modèle dans des tâches telles que le suivi d'objets 3D, la prévision de mouvement et l'estimation de profondeur stéréo.

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

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

  1. Argoverse 3D Tracking : Contient 113 scènes avec plus de 290 000 pistes d'objets 3D étiquetées, axées sur les tâches de suivi d'objets 3D. Il comprend des nuages de points LiDAR, des images de caméra et des informations d'étalonnage des capteurs.
  2. Prévision de mouvement Argoverse : Comprend 324 000 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. Estimation de la profondeur stéréo Argoverse : Comprend plus de 10 000 paires d'images stéréo avec des nuages de points LiDAR correspondants pour l'estimation de la profondeur de la vérité terrain.

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

L'ensemble de données Argoverse *.zip file, auparavant disponible sur Amazon S3, peut maintenant être téléchargé manuellement depuis Google Drive.

À quoi sert le fichier de configuration YAML avec le jeu de données Argoverse ?

Un fichier YAML contient les chemins, les classes et d'autres informations essentielles de l'ensemble de données. Pour l'ensemble de données Argoverse, le fichier de configuration, Argoverse.yamlest disponible sur le lien suivant : Argoverse.yaml.

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



📅C réé il y a 1 an ✏️ Mis à jour il y a 11 mois

Commentaires