Meet YOLO26: next-gen vision AI.

Link to this sectionمجموعة بيانات VisDrone#

مجموعة بيانات VisDrone عبارة عن معيار مرجعي واسع النطاق أنشأه فريق AISKYEYE في مختبر تعلم الآلة واستخراج البيانات، بجامعة تيانجين، الصين. وهي تحتوي على بيانات حقيقية تم توضيحها بعناية لمهام مختلفة في الرؤية الحاسوبية تتعلق بتحليل الصور ومقاطع الفيديو الملتقطة بواسطة الطائرات بدون طيار.



Watch: How to Train Ultralytics YOLO26 on the VisDrone Dataset | Aerial Detection | Complete Tutorial 🚀

تتكون VisDrone من 288 مقطع فيديو تضم 261,908 إطاراً و10,209 صورة ثابتة، تم التقاطها بواسطة كاميرات متنوعة مثبتة على طائرات بدون طيار. تغطي مجموعة البيانات مجموعة واسعة من الجوانب، بما في ذلك الموقع (14 مدينة مختلفة في أنحاء الصين)، والبيئة (حضرية وريفية)، والأشياء (المشاة، والمركبات، والدراجات، وما إلى ذلك)، والكثافة (مشاهد متفرقة ومزدحمة). تم جمع مجموعة البيانات باستخدام منصات طائرات بدون طيار متنوعة في سيناريوهات وظروف جوية وإضاءة مختلفة. تم توضيح هذه الإطارات يدوياً بأكثر من 2.6 مليون مربع إحاطة لأهداف مثل المشاة، والسيارات، والدراجات، والدراجات ثلاثية العجلات. كما يتم توفير سمات مثل رؤية المشهد، وفئة الكائن، والحجب لتحقيق استفادة أفضل من البيانات.

Link to this sectionهيكل مجموعة البيانات#

تم تنظيم مجموعة بيانات VisDrone في خمس مجموعات فرعية رئيسية، يركز كل منها على مهمة محددة:

  1. المهمة 1: اكتشاف الكائنات في الصور
  2. المهمة 2: اكتشاف الكائنات في مقاطع الفيديو
  3. المهمة 3: تتبع كائن واحد
  4. المهمة 4: تتبع كائنات متعددة
  5. المهمة 5: عد الحشود

Link to this sectionالتطبيقات#

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

Link to this sectionYAML مجموعة البيانات#

يتم استخدام ملف YAML (لغة توصيف أخرى) لتحديد إعدادات مجموعة البيانات. يحتوي على معلومات حول مسارات مجموعة البيانات، والفئات، وغيرها من المعلومات ذات الصلة. في حالة مجموعة بيانات VisDrone، يتم الاحتفاظ بملف VisDrone.yaml في https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml.

ultralytics/cfg/datasets/VisDrone.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
# Documentation: https://docs.ultralytics.com/datasets/detect/visdrone
# Example usage: yolo train data=VisDrone.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── VisDrone ← downloads here (2.3 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: VisDrone # dataset root dir
train: images/train # train images (relative to 'path') 6471 images
val: images/val # val images (relative to 'path') 548 images
test: images/test # test-dev images (optional) 1610 images

# Classes
names:
  0: pedestrian
  1: people
  2: bicycle
  3: car
  4: van
  5: truck
  6: tricycle
  7: awning-tricycle
  8: bus
  9: motor

# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
  import os
  from pathlib import Path
  import shutil

  from ultralytics.utils.downloads import download
  from ultralytics.utils import ASSETS_URL, TQDM

  def visdrone2yolo(dir, split, source_name=None):
      """Convert VisDrone annotations to YOLO format with images/{split} and labels/{split} structure."""
      from PIL import Image

      source_dir = dir / (source_name or f"VisDrone2019-DET-{split}")
      images_dir = dir / "images" / split
      labels_dir = dir / "labels" / split
      labels_dir.mkdir(parents=True, exist_ok=True)

      # Move images to new structure
      if (source_images_dir := source_dir / "images").exists():
          images_dir.mkdir(parents=True, exist_ok=True)
          for img in source_images_dir.glob("*.jpg"):
              img.rename(images_dir / img.name)

      for f in TQDM((source_dir / "annotations").glob("*.txt"), desc=f"Converting {split}"):
          img_size = Image.open(images_dir / f.with_suffix(".jpg").name).size
          dw, dh = 1.0 / img_size[0], 1.0 / img_size[1]
          lines = []

          with open(f, encoding="utf-8") as file:
              for row in [x.split(",") for x in file.read().strip().splitlines()]:
                  if row[4] != "0":  # Skip ignored regions
                      x, y, w, h = map(int, row[:4])
                      cls = int(row[5]) - 1
                      # Convert to YOLO format
                      x_center, y_center = (x + w / 2) * dw, (y + h / 2) * dh
                      w_norm, h_norm = w * dw, h * dh
                      lines.append(f"{cls} {x_center:.6f} {y_center:.6f} {w_norm:.6f} {h_norm:.6f}\n")

          (labels_dir / f.name).write_text("".join(lines), encoding="utf-8")

  # Download (ignores test-challenge split)
  dir = Path(yaml["path"])  # dataset root dir
  urls = [
      f"{ASSETS_URL}/VisDrone2019-DET-train.zip",
      f"{ASSETS_URL}/VisDrone2019-DET-val.zip",
      f"{ASSETS_URL}/VisDrone2019-DET-test-dev.zip",
      # f"{ASSETS_URL}/VisDrone2019-DET-test-challenge.zip",
  ]
  download(urls, dir=dir, threads=4)

  # Convert
  splits = {"VisDrone2019-DET-train": "train", "VisDrone2019-DET-val": "val", "VisDrone2019-DET-test-dev": "test"}
  for folder, split in splits.items():
      visdrone2yolo(dir, split, folder)  # convert VisDrone annotations to YOLO labels
      shutil.rmtree(dir / folder)  # cleanup original directory

Link to this sectionالاستخدام#

لتدريب نموذج YOLO26n على مجموعة بيانات VisDrone لمدة 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="VisDrone.yaml", epochs=100, imgsz=640)

Link to this sectionعينة من البيانات والتعليقات#

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

صور جوية من VisDrone لاكتشاف الكائنات

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

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

Link to this sectionالاقتباسات والشكر#

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

اقتباس
@ARTICLE{9573394,
  author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Detection and Tracking Meet Drones Challenge},
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3119563}}

نود أن نعرب عن تقديرنا لفريق AISKYEYE في مختبر تعلم الآلة واستخراج البيانات، جامعة تيانجين، الصين، لإنشاء والحفاظ على مجموعة بيانات VisDrone كمورد قيم لمجتمع أبحاث الرؤية الحاسوبية القائمة على الطائرات بدون طيار. لمزيد من المعلومات حول مجموعة بيانات VisDrone ومبتكريها، قم بزيارة مستودع GitHub الخاص بمجموعة بيانات VisDrone.

Link to this sectionالأسئلة الشائعة#

Link to this sectionما هي مجموعة بيانات VisDrone وما هي ميزاتها الرئيسية؟#

مجموعة بيانات VisDrone عبارة عن معيار مرجعي واسع النطاق أنشأه فريق AISKYEYE في جامعة تيانجين، الصين. تم تصميمها لمهام الرؤية الحاسوبية المختلفة المتعلقة بتحليل الصور ومقاطع الفيديو الملتقطة بواسطة الطائرات بدون طيار. تشمل الميزات الرئيسية:

  • التكوين: 288 مقطع فيديو تضم 261,908 إطاراً و10,209 صورة ثابتة.
  • التوضيحات: أكثر من 2.6 مليون مربع إحاطة لأشياء مثل المشاة، والسيارات، والدراجات، والدراجات ثلاثية العجلات.
  • التنوع: تم جمعها عبر 14 مدينة، في بيئات حضرية وريفية، وفي ظروف جوية وإضاءة مختلفة.
  • المهام: مقسمة إلى خمس مهام رئيسية — اكتشاف الكائنات في الصور ومقاطع الفيديو، وتتبع كائن واحد وتتبع كائنات متعددة، وعد الحشود.

Link to this sectionكيف يمكنني استخدام مجموعة بيانات VisDrone لتدريب نموذج YOLO26 باستخدام Ultralytics؟#

لتدريب نموذج YOLO26 على مجموعة بيانات VisDrone لمدة 100 حقبة بحجم صورة 640، يمكنك اتباع الخطوات التالية:

مثال على التدريب
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)

للحصول على خيارات تكوين إضافية، يرجى الرجوع إلى صفحة التدريب الخاصة بالنموذج.

Link to this sectionما هي المجموعات الفرعية الرئيسية لمجموعة بيانات VisDrone وتطبيقاتها؟#

تنقسم مجموعة بيانات VisDrone إلى خمس مجموعات فرعية رئيسية، كل منها مصمم لمهمة محددة في الرؤية الحاسوبية:

  1. المهمة 1: اكتشاف الكائنات في الصور.
  2. المهمة 2: اكتشاف الكائنات في مقاطع الفيديو.
  3. المهمة 3: تتبع كائن واحد.
  4. المهمة 4: تتبع كائنات متعددة.
  5. المهمة 5: عد الحشود.

تُستخدم هذه المجموعات الفرعية على نطاق واسع لتدريب وتقييم نماذج التعلم العميق في التطبيقات المعتمدة على الطائرات بدون طيار مثل المراقبة، ومراقبة المرور، والسلامة العامة.

Link to this sectionأين يمكنني العثور على ملف التكوين الخاص بمجموعة بيانات VisDrone في Ultralytics؟#

يمكن العثور على ملف التكوين الخاص بمجموعة بيانات VisDrone، VisDrone.yaml، في مستودع Ultralytics على الرابط التالي: VisDrone.yaml.

Link to this sectionكيف يمكنني الاستشهاد بمجموعة بيانات VisDrone إذا استخدمتها في بحثي؟#

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

اقتباس
@ARTICLE{9573394,
  author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Detection and Tracking Meet Drones Challenge},
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3119563}
}

التعليقات