Link to this sectionمجموعة بيانات VisDrone#
مجموعة بيانات VisDrone هي معيار واسع النطاق لصور الطائرات بدون طيار، حيث توفر مجموعة الكشف الفرعية الخاصة بها (VisDrone2019-DET) 8,629 صورة جوية — 6,471 للتدريب، 548 للتحقق، و 1,610 للاختبار (test-dev) — مع تعليقات توضيحية لـ 10 فئات من الكائنات من أجل اكتشاف الكائنات. تم إنشاؤها بواسطة فريق AISKYEYE في مختبر تعلم الآلة وتنقيب البيانات، جامعة تيانجين، الصين.
Watch: How to Train Ultralytics YOLO on the VisDrone Dataset | Aerial Detection | Complete Tutorial 🚀
يضم معيار VisDrone الكامل 288 مقطع فيديو (261,908 إطاراً) و 10,209 صورة ثابتة التقطتها كاميرات مثبتة على طائرات بدون طيار في 14 مدينة مختلفة عبر الصين، وتغطي بيئات حضرية وريفية، ومشاهد متفرقة ومزدحمة، وظروف جوية وإضاءة متنوعة. تحتوي إطاراتها على أكثر من 2.6 مليون صندوق إحاطة مصنف يدوياً، مع سمات إضافية مثل رؤية المشهد، وفئة الكائن، والحجب. يستخدم تكوين VisDrone.yaml في Ultralytics مجموعة فرعية من الصور الثابتة VisDrone2019-DET من هذا المعيار.
Link to this sectionالميزات الرئيسية#
- كائنات صغيرة ومزدحمة: تجعل وجهات النظر الجوية الأهداف صغيرة ومزدحمة — إذ تحتوي صور التحقق الـ 548 وحدها على 38,759 صندوقاً مصنفاً، بمتوسط حوالي 70 كائناً لكل صورة.
- تنوع المشاهد: صور من 14 مدينة صينية تغطي مواقع حضرية وريفية، ليلاً ونهاراً، وظروف جوية مختلفة.
- تعليقات توضيحية غنية: أكثر من 2.6 مليون صندوق عبر المعيار الكامل، مع سمات الحجب والرؤية.
- تقسيمات محددة مسبقاً: تقسيمات ثابتة للتدريب / التحقق / الاختبار (6,471 / 548 / 1,610 صورة) لتقييم متسق.
Link to this sectionهيكل مجموعة البيانات#
يغطي تكوين VisDrone في Ultralytics مجموعة صور VisDrone2019-DET الفرعية، مقسمة إلى ثلاثة أجزاء:
| التقسيم (Split) | الصور | الوصف |
|---|---|---|
| التدريب | 6,471 | صور جوية مصنفة تستخدم لتدريب كاشف الكائنات |
| التحقق | 548 | صور تستخدم لـ التقييم أثناء التطوير |
| Test-dev | 1,610 | صور محجوزة للتقييم النهائي للنموذج المدرب |
يتم حجب تقسيم رابع، وهو test-challenge (1,580 صورة)، لمسابقة VisDrone ولا يتم تنزيله، وهذا هو السبب في أن مجموعة DET الكاملة يبلغ مجموعها 10,209 صورة.
تتضمن مجموعة البيانات 10 فئات كائنات: المشاة (pedestrian)، الأشخاص (people)، الدراجات الهوائية (bicycle)، السيارات (car)، الشاحنات الصغيرة (van)، الشاحنات (truck)، الدراجات ثلاثية العجلات (tricycle)، الدراجات ثلاثية العجلات المغطاة (awning-tricycle)، الحافلات (bus)، والدراجات النارية (motor). تميز VisDrone بين المشاة (شخص يقف أو يمشي) و الأشخاص (شخص في أي وضعية أخرى).
عند الاستخدام الأول، يقوم برنامج التنزيل بتحويل تعليقات VisDrone الأصلية إلى تنسيق YOLO، متجاهلاً المناطق المميزة كغير ضرورية (والتي تستبعد أيضاً فئة "الأخرى" غير المستخدمة).
Link to this sectionالتطبيقات#
تجعل المشاهد المزدحمة والأهداف الصغيرة في VisDrone منها معياراً قياسياً لـ اكتشاف الكائنات الصغيرة من وجهات نظر جوية. تشمل التطبيقات الشائعة:
- مراقبة حركة المرور وعد المركبات من الطائرات بدون طيار (UAVs)
- تحليل الحشود ومراقبة السلامة العامة
- تفتيش البنية التحتية ومواقع البناء
- أبحاث رؤية الحاسوب حول اكتشاف الكائنات الصغيرة في المشاهد المزدحمة
للحصول على معايير أخرى للصور الجوية، انظر مجموعة بيانات xView التي تركز على الأقمار الصناعية أو مجموعة بيانات DOTA-v2 الخاصة بصناديق الإحاطة الموجهة.
Link to this sectionYAML مجموعة البيانات#
يحدد ملف VisDrone.yaml تكوين مجموعة البيانات — مسارات مجموعة البيانات، وأسماء الفئات، وبرنامج التنزيل والتحويل التلقائي. تتم صيانته في مستودع Ultralytics على الرابط https://github.com/ultralytics/ultralytics/blob/main/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 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 directoryLink to this sectionالاستخدام#
يتم تنزيل VisDrone تلقائياً في المرة الأولى التي تقوم فيها بالتدريب — ثلاث أرشيفات يبلغ مجموعها حوالي 2 جيجابايت — وتحتاج إلى حوالي 4 جيجابايت من مساحة القرص الفارغة أثناء الاستخراج والتحويل.
لتدريب نموذج 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 - dataset will auto-download on first run
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)لتصنيف صور جوية إضافية وإدارة عمليات تدريب VisDrone في متصفحك، استخدم منصة Ultralytics.
Link to this sectionعينة من البيانات والتعليقات#
تُظهر العينة أدناه مشهداً نموذجياً لـ 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={2022},
volume={44},
number={11},
pages={7380-7399},
doi={10.1109/TPAMI.2021.3119563}}نود أن نعرب عن تقديرنا لفريق AISKYEYE في مختبر تعلم الآلة و تنقيب البيانات، جامعة تيانجين، الصين، لإنشاء وصيانة مجموعة بيانات VisDrone. لمزيد من المعلومات، قم بزيارة مستودع GitHub لمجموعة بيانات VisDrone.
Link to this sectionالأسئلة الشائعة#
Link to this sectionفيم تُستخدم مجموعة بيانات VisDrone؟#
تُستخدم VisDrone لتدريب وتقييم أداء كاشفات الكائنات على الصور الملتقطة بالطائرات بدون طيار، حيث تكون الكائنات صغيرة ومزدحمة وتظهر من الأعلى. إن دمجها بين وجهات النظر الجوية، والمشاهد المزدحمة، والظروف المتنوعة يجعلها منصة اختبار قياسية لمراقبة حركة المرور عبر الطائرات بدون طيار (UAV)، وتحليل الحشود، وأبحاث اكتشاف الكائنات الصغيرة.
Link to this sectionكم عدد الصور والفئات التي تمتلكها VisDrone؟#
يحتوي تكوين VisDrone في Ultralytics على 8,629 صورة: 6,471 للتدريب، 548 للتحقق، و 1,610 للاختبار (test-dev). تشترك جميع التقسيمات في نفس الفئات العشر: المشاة، الأشخاص، الدراجات الهوائية، السيارات، الشاحنات الصغيرة، الشاحنات، الدراجات ثلاثية العجلات، الدراجات ثلاثية العجلات المغطاة، الحافلات، والدراجات النارية. راجع هيكل مجموعة البيانات للحصول على التفاصيل الكاملة.
Link to this sectionكيف أقوم بتنزيل مجموعة بيانات VisDrone؟#
يتم تنزيل VisDrone تلقائياً في المرة الأولى التي تقوم فيها بالتدريب باستخدام data="VisDrone.yaml" — لا توجد خطوات يدوية مطلوبة. يقوم البرنامج بجلب ثلاثة أرشيفات (حوالي 2 جيجابايت) من أصول إصدار Ultralytics على GitHub ويحول التعليقات التوضيحية إلى تنسيق YOLO. لا يتم تضمين تقسيم test-challenge المحجوب للمسابقة.
Link to this sectionكيف أقوم بتدريب نموذج YOLO26 على مجموعة بيانات VisDrone؟#
قم بتدريب نموذج YOLO26n على VisDrone لمدة 100 حقبة (epochs) بحجم صورة 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)للحصول على إعدادات مفصلة، راجع صفحة Training وmodel training tips.
Link to this sectionلماذا تُعد VisDrone صعبة على كاشفات الكائنات، وكيف يمكنني تحسين الدقة؟#
الكائنات في VisDrone صغيرة جداً بالنسبة للإطار — غالباً ما تكون بضعة عشرات من البكسلات فقط — وتظهر في مجموعات مزدحمة ومحجوبة بشدة، مما يرهق الكاشفات المدربة على صور أرضية. يؤدي التدريب والتنبؤ بدقة أعلى (على سبيل المثال imgsz=1280 مع دفعة أصغر) إلى استعادة الأهداف الصغيرة، كما يقوم استدلال التبليط SAHI بتقسيم الصور الكبيرة بحيث تشغل الكائنات الصغيرة مساحة أكبر من كل نافذة استدلال.
Link to this sectionما الفرق بين VisDrone-DET ومعيار VisDrone الكامل؟#
يغطي معيار VisDrone الكامل خمس مهام — اكتشاف الكائنات في الصور، اكتشاف الكائنات في مقاطع الفيديو، تتبع كائن واحد، تتبع كائنات متعددة، وعد الحشود — عبر 288 مقطع فيديو و 10,209 صورة ثابتة. يغطي تكوين VisDrone.yaml في Ultralytics مهمة اكتشاف الصور فقط (VisDrone2019-DET)، حيث يتم تنزيل 6,471 صورة للتدريب، 548 للتحقق، و 1,610 للاختبار (test-dev).
Link to this sectionكيف أشير (Cite) إلى VisDrone في بحثي؟#
استشهد بالورقة العلمية "Detection and Tracking Meet Drones Challenge" (IEEE TPAMI, vol. 44, no. 11, 2022, DOI 10.1109/TPAMI.2021.3119563)؛ مدخل BibTeX الكامل موجود في قسم الاستشهادات والشكر أعلاه.