انتقل إلى المحتوى

مجموعة بيانات Argoverse

مجموعة بيانات Argoverse عبارة عن مجموعة من البيانات المصممة لدعم البحث في مهام القيادة الذاتية ، مثل تتبع 3D والتنبؤ بالحركة وتقدير عمق الاستريو. توفر مجموعة البيانات ، التي طورتها Argo الذكاء الاصطناعي ، مجموعة واسعة من بيانات المستشعر عالية الجودة ، بما في ذلك الصور عالية الدقة وسحب نقطة LiDAR وبيانات الخرائط.

ملاحظه

مجموعة بيانات Argoverse *.zip تمت إزالة الملف المطلوب للتدريب من Amazon S3 بعد إغلاق Argo الذكاء الاصطناعي بواسطة Ford ، لكننا جعلناه متاحا للتنزيل اليدوي على جوجل درايف.

الميزات الرئيسية

  • يحتوي Argoverse على أكثر من 290 ألف مسار كائن ثلاثي الأبعاد و 5 ملايين مثيل كائن عبر 1،263 مشهدا متميزا.
  • تتضمن مجموعة البيانات صور كاميرا عالية الدقة وسحب نقطة LiDAR وخرائط عالية الدقة مشروحة بشكل غني.
  • تتضمن التعليقات التوضيحية مربعات إحاطة 3D للكائنات ومسارات الكائنات ومعلومات المسار.
  • يوفر Argoverse مجموعات فرعية متعددة لمهام مختلفة ، مثل تتبع 3D والتنبؤ بالحركة وتقدير عمق الاستريو.

هيكل مجموعة البيانات

يتم تنظيم مجموعة بيانات Argoverse في ثلاث مجموعات فرعية رئيسية:

  1. Argoverse 3D Tracking: تحتوي هذه المجموعة الفرعية على 113 مشهدا مع أكثر من 290 ألف مسار كائن ثلاثي الأبعاد ، مع التركيز على مهام تتبع الكائنات ثلاثية الأبعاد. يتضمن سحب نقطة LiDAR وصور الكاميرا ومعلومات معايرة المستشعر.
  2. Argoverse Motion Predicting: تتكون هذه المجموعة الفرعية من 324 ألف مسار مركبة تم جمعها من 60 ساعة من بيانات القيادة ، وهي مناسبة لمهام التنبؤ بالحركة.
  3. تقدير عمق الاستريو Argoverse: تم تصميم هذه المجموعة الفرعية لمهام تقدير عمق الاستريو وتتضمن أكثر من 10 آلاف زوج من صور الاستريو مع سحب نقطة LiDAR المقابلة لتقدير عمق الحقيقة الأرضية.

التطبيقات

تستخدم مجموعة بيانات Argoverse على نطاق واسع لتدريب وتقييم نماذج التعلم العميق في مهام القيادة الذاتية مثل تتبع كائن 3D والتنبؤ بالحركة وتقدير عمق الاستريو. مجموعة البيانات المتنوعة من بيانات أجهزة الاستشعار والتعليقات التوضيحية للكائنات ومعلومات الخريطة تجعلها موردا قيما للباحثين والممارسين في مجال القيادة الذاتية.

مجموعة البيانات YAML

يتم استخدام ملف YAML (لغة ترميز أخرى) لتحديد تكوين مجموعة البيانات. يحتوي على معلومات حول مسارات مجموعة البيانات والفئات والمعلومات الأخرى ذات الصلة. بالنسبة لحالة مجموعة بيانات Argoverse ، فإن ملف Argoverse.yaml يتم الاحتفاظ بالملف في 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

استخدام

لتدريب أ YOLOv8n نموذج على مجموعة بيانات Argoverse ل 100 حقبة بحجم صورة 640 ، يمكنك استخدام مقتطفات التعليمات البرمجية التالية. للحصول على قائمة شاملة بالوسيطات المتاحة، ارجع إلى صفحة نموذج التدريب .

مثال القطار

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

عينة من البيانات والتعليقات التوضيحية

تحتوي مجموعة بيانات Argoverse على مجموعة متنوعة من بيانات المستشعرات ، بما في ذلك صور الكاميرا وسحب نقطة LiDAR ومعلومات الخريطة عالية الدقة ، مما يوفر سياقا غنيا لمهام القيادة الذاتية. في ما يلي بعض الأمثلة على البيانات من مجموعة البيانات، إلى جانب التعليقات التوضيحية المقابلة لها:

صورة عينة مجموعة البيانات

  • Argoverse 3D Tracking: توضح هذه الصورة مثالا على تتبع الكائنات ثلاثية الأبعاد ، حيث يتم تعليق الكائنات بمربعات محيطة ثلاثية الأبعاد. توفر مجموعة البيانات سحب نقطة LiDAR وصور الكاميرا لتسهيل تطوير نماذج لهذه المهمة.

يعرض المثال تنوع وتعقيد البيانات في مجموعة بيانات Argoverse ويسلط الضوء على أهمية بيانات المستشعر عالية الجودة لمهام القيادة الذاتية.

الاستشهادات والشكر

إذا كنت تستخدم مجموعة بيانات Argoverse في أعمال البحث أو التطوير الخاصة بك، فيرجى الاستشهاد بالورقة التالية:

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

نود أن نعرب عن تقديرنا لشركة Argo الذكاء الاصطناعي لإنشاء مجموعة بيانات Argoverse والحفاظ عليها كمورد قيم لمجتمع أبحاث القيادة الذاتية. لمزيد من المعلومات حول مجموعة بيانات Argoverse ومنشئيها، تفضل بزيارة موقع ويب مجموعة بيانات Argoverse.



تم إنشاؤه في 2023-11-12, اخر تحديث 2024-01-14
المؤلفون: جلين جوشر (4) ، يضحك س (1)

التعليقات