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

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

ملاحظة

تمت إزالة ملف *.zip الخاص بمجموعة بيانات Argoverse المطلوب للتدريب من Amazon S3 بعد إغلاق شركة Argo AI من قبل Ford، ولكننا قمنا بتوفيره للتنزيل اليدوي على Google Drive.

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

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

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

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

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

التطبيقات

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

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

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

الاستخدام

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

مثال على التدريب
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)

عينة البيانات والشروحات

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

عينة تتبع ثلاثي الأبعاد لمجموعة بيانات Argoverse مع شروحات المركبات

  • تتبع Argoverse ثلاثي الأبعاد: توضح هذه الصورة مثالاً على تتبع الكائنات ثلاثي الأبعاد، حيث يتم شرح الكائنات بمربعات إحاطة ثلاثية الأبعاد. توفر مجموعة البيانات سحب نقاط 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 AI على إنشاء وصيانة مجموعة بيانات Argoverse كمورد قيم لمجتمع أبحاث القيادة الذاتية. لمزيد من المعلومات حول مجموعة بيانات Argoverse ومبتكريها، قم بزيارة موقع مجموعة بيانات Argoverse.

الأسئلة الشائعة

ما هي مجموعة بيانات Argoverse وما هي ميزاتها الرئيسية؟

تدعم مجموعة بيانات Argoverse، التي طورتها شركة Argo AI، أبحاث القيادة الذاتية. وهي تتضمن أكثر من 290 ألف مسار كائن ثلاثي الأبعاد مصنف و5 ملايين حالة كائن عبر 1,263 مشهداً متميزاً. توفر مجموعة البيانات صور كاميرا عالية الدقة، وسحب نقاط LiDAR، وخرائط عالية الدقة مشروحة، مما يجعلها قيمة لمهام مثل التتبع ثلاثي الأبعاد، والتنبؤ بالحركة، وتقدير العمق بالرؤية المزدوجة.

كيف يمكنني تدريب نموذج Ultralytics YOLO باستخدام مجموعة بيانات Argoverse؟

لتدريب نموذج YOLO26 باستخدام مجموعة بيانات Argoverse، استخدم ملف تكوين YAML المقدم والتعليمات البرمجية التالية:

مثال على التدريب
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)

للحصول على شرح مفصل للوسائط، راجع صفحة التدريب الخاصة بالنموذج.

ما هي أنواع البيانات والشروحات المتاحة في مجموعة بيانات Argoverse؟

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

كيف يتم تنظيم مجموعة بيانات Argoverse؟

يتم تقسيم مجموعة البيانات إلى ثلاث مجموعات فرعية رئيسية:

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

أين يمكنني تنزيل مجموعة بيانات Argoverse الآن بعد إزالتها من Amazon S3؟

يمكن الآن تنزيل ملف *.zip الخاص بمجموعة بيانات Argoverse، الذي كان متاحاً سابقاً على Amazon S3، يدوياً من Google Drive.

لماذا يُستخدم ملف تكوين YAML مع مجموعة بيانات Argoverse؟

يحتوي ملف YAML على مسارات مجموعة البيانات، والفئات، ومعلومات أساسية أخرى. بالنسبة لمجموعة بيانات Argoverse، يمكن العثور على ملف التكوين، Argoverse.yaml، على الرابط التالي: Argoverse.yaml.

لمزيد من المعلومات حول تكوينات YAML، راجع دليل مجموعات البيانات الخاص بنا.

تعليقات