Meet YOLO26: next-gen vision AI.

Link to this sectionJeu de données Argoverse#

Le jeu 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 de mouvement et l'estimation de la profondeur stéréo. Développé par Argo AI, le jeu de données fournit une large gamme 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

Le fichier *.zip du jeu de données Argoverse requis pour l'entraînement a été supprimé d'Amazon S3 après la fermeture d'Argo AI par Ford, mais nous l'avons rendu disponible pour un téléchargement manuel sur Google Drive.

Link to this sectionFonctionnalités clés#

  • Argoverse contient plus de 290K 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 comprend des images de caméra haute résolution, des nuages de points LiDAR et des cartes HD richement annotées.
  • Les annotations incluent des boîtes englobantes 3D pour les objets, les pistes d'objets et des 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 la profondeur stéréo.

Link to this sectionStructure du jeu de données#

Le jeu 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 290K 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 de calibration des capteurs.
  2. Argoverse Motion Forecasting : 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 de mouvement.
  3. Argoverse Stereo Depth Estimation : Ce sous-ensemble est conçu pour les tâches d'estimation de profondeur stéréo et comprend plus de 10K paires d'images stéréo avec les nuages de points LiDAR correspondants pour l'estimation de la profondeur de vérité terrain (ground truth).

Link to this sectionApplications#

Le jeu de données Argoverse est largement utilisé pour entraîner et évaluer des modèles de deep learning dans des 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 du jeu de données en fait une ressource précieuse pour les chercheurs et les praticiens dans le domaine de la conduite autonome.

Link to this sectionYAML du jeu de données#

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 du jeu de données, les classes et d'autres informations pertinentes. Pour 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 🚀 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.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

Link to this sectionUtilisation#

Pour entraîner un modèle YOLO26n sur le jeu de données Argoverse pendant 100 epochs avec une taille d'image de 640, tu peux utiliser les extraits de code suivants. Pour une liste complète des arguments disponibles, consulte la page Training du modèle.

Exemple d'entraînement
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)

Link to this sectionExemples de données et d'annotations#

Le jeu de données Argoverse contient un ensemble diversifié de données de capteurs, incluant des images de caméra, 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 issues du jeu de données, accompagnés de leurs annotations correspondantes :

Exemple de suivi 3D du jeu de données Argoverse avec annotations de véhicules

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

L'exemple met en valeur la variété et la complexité des données dans le jeu de données Argoverse et souligne l'importance des données de capteurs de haute qualité pour les tâches de conduite autonome.

Link to this sectionCitations et remerciements#

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

Citation
@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 du jeu de données Argoverse en tant que 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.

Link to this sectionFAQ#

Link to this sectionQu'est-ce que le jeu de données Argoverse et quelles sont ses fonctionnalités clés ?#

Le jeu de données Argoverse, développé par Argo AI, soutient la recherche en conduite autonome. Il comprend plus de 290K pistes d'objets 3D étiquetées et 5 millions d'instances d'objets 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 comme le suivi 3D, la prévision de mouvement et l'estimation de profondeur stéréo.

Link to this sectionComment puis-je entraîner un modèle YOLO d'Ultralytics en utilisant le jeu de données Argoverse ?#

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

Exemple d'entraînement
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)

Pour une explication détaillée des arguments, consulte la page Training du modèle.

Link to this sectionQuels types de données et d'annotations sont disponibles dans le jeu de données Argoverse ?#

Le jeu de données Argoverse inclut 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 incluent des boîtes englobantes 3D, des pistes d'objets et des informations de trajectoire. Ces annotations complètes sont essentielles pour un entraînement de modèle précis dans des tâches comme le suivi d'objets 3D, la prévision de mouvement et l'estimation de profondeur stéréo.

Link to this sectionComment le jeu de données Argoverse est-il structuré ?#

Le jeu de données est divisé en trois sous-ensembles principaux :

  1. Argoverse 3D Tracking : Contient 113 scènes avec plus de 290K pistes d'objets 3D étiquetées, se concentrant sur les tâches de suivi d'objets 3D. Il inclut des nuages de points LiDAR, des images de caméra et des informations de calibration de capteurs.
  2. Argoverse Motion Forecasting : 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 de mouvement.
  3. Argoverse Stereo Depth Estimation : Inclut plus de 10K paires d'images stéréo avec les nuages de points LiDAR correspondants pour l'estimation de profondeur de vérité terrain.

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

Le fichier *.zip du jeu de données Argoverse, précédemment disponible sur Amazon S3, peut désormais être téléchargé manuellement depuis Google Drive.

Link to this sectionÀ quoi sert le fichier de configuration YAML avec le jeu de données Argoverse ?#

Un fichier YAML contient les chemins du jeu de données, les classes et d'autres informations essentielles. Pour le jeu de données Argoverse, le fichier de configuration, Argoverse.yaml, peut être trouvé au lien suivant : Argoverse.yaml.

Pour plus d'informations sur les configurations YAML, consulte notre guide datasets.

Commentaires