YOLOv4: كشف كائنات عالي السرعة ودقيق#
مرحباً بك في صفحة وثائق Ultralytics الخاصة بـ YOLOv4، وهو نموذج كشف عن الأجسام في الوقت الفعلي عالي الأداء أُطلق في عام 2020 بواسطة Alexey Bochkovskiy على https://github.com/AlexeyAB/darknet. تم تصميم YOLOv4 لتوفير التوازن الأمثل بين السرعة والدقة، مما يجعله خياراً ممتازاً للعديد من التطبيقات.
مخطط هيكل YOLOv4. يعرض تصميم الشبكة المعقد لـ YOLOv4، بما في ذلك مكونات العمود الفقري، والرقبة، والرأس، وطبقاتها المترابطة من أجل كشف مثالي للأجسام في الوقت الفعلي.
مقدمة#
يرمز YOLOv4 إلى You Only Look Once version 4. وهو نموذج للكشف عن الأجسام في الوقت الفعلي تم تطويره لمعالجة قيود الإصدارات السابقة من YOLO مثل YOLOv3 ونماذج الكشف عن الأجسام الأخرى. على عكس كواشف الأجسام الأخرى القائمة على شبكة عصبية تلافيفية (CNN)، لا يقتصر استخدام YOLOv4 على أنظمة التوصية فحسب، بل يمتد أيضاً ليشمل إدارة العمليات المستقلة وتقليل المدخلات البشرية. تتيح تشغيله على وحدات معالجة الرسومات (GPUs) التقليدية إمكانية الاستخدام الجماعي بتكلفة معقولة، وقد تم تصميمها للعمل في الوقت الفعلي على وحدة معالجة رسومات تقليدية واحدة مع تطلب واحدة فقط للتدريب.
البنية الهندسية#
يستفيد YOLOv4 من عدة ميزات مبتكرة تعمل معاً لتحسين أدائه. وتشمل هذه الميزات: الاتصالات المتبقية المرجحة (WRC)، والاتصالات الجزئية عبر المراحل (CSP)، وتطبيع الدُفعات المصغرة المتقاطعة (CmBN)، والتدريب الذاتي العدائي (SAT), وتنشيط Mish، وزيادة بيانات Mosaic، وتنظيم DropBlock، وفقدان CIoU. يتم الجمع بين هذه الميزات لتحقيق نتائج متطورة.
يتكون كاشف الأجسام النموذجي من عدة أجزاء بما في ذلك الإدخال، والعمود الفقري، والرقبة، والرأس. تم تدريب العمود الفقري لـ YOLOv4 مسبقاً على ImageNet ويُستخدم للتنبؤ بالفئات والصناديق المحيطة للأجسام. يمكن أن يكون العمود الفقري مأخوذًا من عدة نماذج بما في ذلك VGG، أو ResNet، أو ResNeXt، أو DenseNet. يُستخدم جزء الرقبة للكشف لجمع خرائط الميزات من مراحل مختلفة وغالباً ما يتضمن عدة مسارات من الأسفل إلى الأعلى ومن الأعلى إلى الأسفل. جزء الرأس هو ما يُستخدم لإجراء عمليات الكشف النهائي والتصنيفات للأجسام.
مجموعة الهدايا (Bag of Freebies)#
يستخدم YOLOv4 أيضاً طرقاً تُعرف باسم "مجموعة العطايا" (bag of freebies)، وهي تقنيات تحسن دقة النموذج أثناء التدريب دون زيادة تكلفة الاستدلال. تُعد زيادة البيانات تقنية شائعة من مجموعة العطايا تُستخدم في الكشف عن الأجسام، حيث تزيد من تباين الصور المدخلة لتحسين متانة النموذج. تتضمن بعض أمثلة زيادة البيانات التشوهات الضوئية (ضبط السطوع والتباين والصبغة والتشبع والضوضاء في الصورة) والتشوهات الهندسية (إضافة القياس العشوائي، القص، القلب، والتدوير). تساعد هذه التقنيات النموذج على التعميم بشكل أفضل على أنواع مختلفة من الصور.
الميزات والأداء#
تم تصميم YOLOv4 للسرعة والدقة الأمثل في الكشف عن الأجسام. يتضمن هيكل YOLOv4 نموذج CSPDarknet53 كعمود فقري، وPANet كرقبة، وYOLOv3 كـ رأس كشف. يتيح هذا التصميم لـ YOLOv4 إجراء الكشف عن الأجسام بسرعة مذهلة، مما يجعله مناسباً للتطبيقات في الوقت الفعلي. يتفوق YOLOv4 أيضاً في الدقة، محققاً نتائج متطورة في معايير الكشف عن الأجسام مثل COCO.
عند مقارنته بنماذج أخرى في عائلة YOLO، مثل YOLOv5 وYOLOv7، يحتفظ YOLOv4 بمكانة قوية في التوازن بين السرعة والدقة. في حين أن النماذج الأحدث قد توفر مزايا معين، إلا أن الابتكارات الهيكل لـ YOLOv4 تظل تجعله ذا صلة بالعديد من التطبيقات التي تتطلب أداءً في الوقت الفعلي.
أمثلة الاستخدام#
YOLOv4 هو نموذج قائم على Darknet وهو غير مدعوم بشكل أصلي بواسطة حزمة Python الخاصة بـ Ultralytics: لا توجد أوزان مدربة مسبقاً من yolov4.pt منشورة على ultralytics/assets ولا توجد ملفات YAML لـ ultralytics/cfg/models/v4/. يتم الاحتفاظ بهذه الصفحة كمرجع معماري. يجب على المستخدمين المهتمين بتشغيل YOLOv4 الرجوع مباشرة إلى مستودع GitHub الخاص بـ YOLOv4 للحصول على تعليمات التثبيت والاستخدام.
إليك نظرة عامة موجزة على الخطوات النموذجية التي قد تتخذها لاستخدام YOLOv4:
-
تفضل بزيارة مستودع GitHub لـ YOLOv4: https://github.com/AlexeyAB/darknet.
-
اتبع التعليمات الواردة في ملف README للتثبيت. يتضمن هذا عادةً استنساخ المستودع، وتثبيت التبعيات اللازمة، وإعداد أي متغيرات بيئة ضرورية.
-
بمجرد اكتمال التثبيت، يمكنك تدريب النموذج واستخدامه وفقًا لتعليمات الاستخدام الواردة في المستودع. يتضمن هذا عادةً إعداد مجموعة البيانات الخاصة بك، وتكوين معلمات النموذج، وتدريب النموذج، ثم استخدام النموذج المدرب لإجراء كشف الكائنات.
يرجى ملاحظة أن الخطوات المحددة قد تختلف اعتمادًا على حالة الاستخدام الخاصة بك والحالة الحالية لمستودع YOLOv4. لذلك، يوصى بشدة بالرجوع مباشرة إلى التعليمات المقدمة في مستودع GitHub الخاص بـ YOLOv4.
للتدريب والاستدلال ضمن إطار عمل Ultralytics، راجع YOLO11 أو YOLO26.
الخلاصة#
YOLOv4 هو نموذج قوي وفعال للكشف عن الأجسام يحقق توازناً بين السرعة والدقة. إن استخدامه للميزات الفريدة وتقنيات مجموعة العطايا أثناء التدريب يتيح له الأداء بشكل ممتاز في مهام الكشف عن الأجسام في الوقت الفعلي. يمكن تدريب واستخدام YOLOv4 بواسطة أي شخص لديه وحدة معالجة رسومات تقليدية، مما يجعله سهل الوصول وعملياً لمجموعة واسعة من التطبيقات بما في ذلك أنظمة المراقبة، والمركبات ذاتية القيادة، والأتمتة الصناعية.
بالنسبة لأولئك الذين يسعون إلى تنفيذ الكشف عن الأجسام في مشاريعهم، يظل YOLOv4 منافساً قوياً، خاصة عندما يكون الأداء في الوقت الفعلي أولوية. في حين تركز Ultralytics حالياً على دعم إصدارات YOLO الأحدث مثل YOLO11 وYOLO26، فإن الابتكارات المعمارية المقدمة في YOLOv4 قد أثرت على تطوير هذه النماذج اللاحقة.
الاقتباسات والشكر#
نود أن نشكر مؤلفي YOLOv4 على مساهماتهم الكبيرة في مجال كشف الكائنات في الوقت الفعلي:
@misc{bochkovskiy2020yolov4,
title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
year={2020},
eprint={2004.10934},
archivePrefix={arXiv},
primaryClass={cs.CV}
}يمكن العثور على ورقة البحث الأصلية لـ YOLOv4 على arXiv. لقد جعل المؤلفون عملهم متاحاً للعامة، ويمكن الوصول إلى قاعدة الكود على GitHub. نحن نقدر جهودهم في تطوير هذا المجال وجعل عملهم متاحاً للمجتمع الأوسع.
الأسئلة الشائعة#
YOLOv4، الذي يرمز إلى "You Only Look Once version 4"، هو نموذج حديث للكشف عن الأجسام في الوقت الفعلي تم تطويره بواسطة Alexey Bochkovskiy في عام 2020. يحقق توازناً أمثل بين السرعة والدقة، مما يجعله مناسباً للغاية لتطبيقات الوقت الفعلي. يدمج هيكل YOLOv4 العديد من الميزات المبتكرة مثل اتصالات البقايا الموزونة (WRC)، واتصالات المرحلة العابرة الجزئية (CSP)، والتدريب ذاتي الخصومة (SAT)، من بين أمور أخرى، لتحقيق نتائج متطورة. إذا كنت تبحث عن نموذج عالي الأداء يعمل بكفاءة على وحدات معالجة الرسومات التقليدية، فإن YOLOv4 يعد خياراً ممتازاً.
يتضمن هيكل YOLOv4 عدة مكونات رئيسية: العمود الفقري، والرقبة، والرأس. العمود الفقري، والذي يمكن أن يكون نماذج مثل VGG أو ResNet أو CSPDarknet53، مدرب مسبقاً للتنبؤ بالفlasses والصناديق المحيطة. تربط الرقبة، التي تستخدم PANet، خرائط الميزات من مراحل مختلفة لاستخراج البيانات الشاملة. وأخيراً، يقوم الرأس، الذي يستخدم تكوينات من YOLOv3، بإجراء عمليات الكشف النهائي للأجسام. يستخدم YOLOv4 أيضاً تقنيات "مجموعة العطايا" مثل زيادة البيانات الفسيفسائية وتنظيم DropBlock، مما يزيد من تحسين سرعته ودقته.
تشير "مجموعة الهدايا" إلى الطرق التي تحسن دقة تدريب YOLOv4 دون زيادة تكلفة الاستدلال. تتضمن هذه التقنيات أشكالاً مختلفة من زيادة البيانات مثل التشوهات الضوئية (ضبط السطوع، والتباين، وما إلى ذلك) والتشوهات الهندسية (التحجيم، والاقتصاص، والقلب، والتدوير). من خلال زيادة تباين الصور المدخلة، تساعد هذه التحسينات YOLOv4 على التعميم بشكل أفضل على أنواع مختلفة من الصور، مما يحسن متانته ودقته دون المساس بأدائه في الوقت الفعلي.
تم تصميم YOLOv4 لتحسين كل من السرعة والدقة، مما يجعله مثالياً لمهام الكشف عن الأجسام في الوقت الفعلي التي تتطلب أداءً سريعاً وموثوقاً. يعمل بكفاءة على وحدات معالجة الرسومات التقليدية، ولا يحتاج إلا إلى وحدة واحدة لكل من التدريب والاستدلال. هذا يجعلها في متناول اليد وعملية لمختلف التطبيقات التي تتراوح من أنظمة التوصية إلى إدارة العمليات المستقلة، وبالتالي تقليل الحاجة إلى إعدادات الأجهزة المكثفة وجعلها حلاً فعالاً من حيث التكلفة للكشف عن الأجسام في الوقت الفعلي.
للبدء في استخدام YOLOv4، يجب عليك زيارة مستودع GitHub الرسمي لـ YOLOv4. اتبع تعليمات التثبيت الواردة في ملف README، والتي تتضمن عادةً استنساخ المستودع، وتثبيت التبعيات، وإعداد متغيرات البيئة. بمجرد التثبيت، يمكنك تدريب النموذج عن طريق إعداد مجموعة البيانات الخاصة بك، وتكوين معلمات النموذج، واتبار تعليمات الاستخدام المتوفرة. نظراً لأن Ultralytics لا تدعم حالياً YOLOv4، يوصى بالرجوع مباشرة إلى GitHub الخاص بـ YOLOv4 للحصول على الإرشادات الأكثر حداثة وتفصيلاً.