YOLOOv7: حقيبة مجانية قابلة للتدريب
YOLOv7 هو أحدث كاشف للأجسام في الوقت الحقيقي يتفوق على جميع أجهزة الكشف عن الأجسام المعروفة من حيث السرعة والدقة في النطاق من 5 إطارات في الثانية إلى 160 إطارًا في الثانية. فهو يتمتع بأعلى دقة (56.8% في الثانية) من بين جميع أجهزة الكشف عن الأجسام المعروفة في الوقت الحقيقي بمعدل 30 إطارًا في الثانية أو أعلى على GPU V100. وعلاوةً على ذلك، يتفوق YOLOv7 على أجهزة كشف الأجسام الأخرى مثل YOLOR و YOLOX و Scaled-YOLOv4 و YOLOv5 وغيرها الكثير من حيث السرعة والدقة. تم تدريب النموذج على مجموعة بيانات MS COCO من الصفر دون استخدام أي مجموعات بيانات أخرى أو أوزان مدربة مسبقًا. الكود المصدري لنموذج YOLOv7 متاح على GitHub.
مقارنة بين كاشفات الأجسام SOTA
من النتائج الواردة في جدول المقارنة YOLO ، نعلم أن الطريقة المقترحة لديها أفضل مفاضلة بين السرعة والدقة بشكل شامل. إذا قارنا YOLOv7-tiny-SiLU مع YOLOv5-N (r6.1)، فإن طريقتنا أسرع بمعدل 127 إطارًا في الثانية وأكثر دقة بنسبة 10.7% في معدل الإطارات AP. بالإضافة إلى ذلك، تتمتع YOLOv7 بـ 51.4% من نقاط الوصول بمعدل إطارات يبلغ 161 إطارًا في الثانية، بينما تتمتع PPYOLOOE-L بنفس نقاط الوصول بمعدل إطارات يبلغ 78 إطارًا في الثانية فقط. من حيث استخدام البارامترات، فإن YOLOv7 أقل بنسبة 41% من PPYOLOOE-L. إذا قارنا YOLOv7-X بسرعة استنتاج 114 إطارًا في الثانية بـ YOLOv5-L (r6.1) بسرعة استنتاج 99 إطارًا في الثانية، يمكن لـ YOLOv7-X تحسين معدل الوصول إلى نقطة الوصول بنسبة 3.9%. إذا قورنت YOLOv7-X مع YOLOv5-X (r6.1) ذات المقياس المماثل، فإن سرعة الاستدلال في YOLOv7-X أسرع بمقدار 31 إطارًا في الثانية. وبالإضافة إلى ذلك، من حيث كمية المعلمات والعمليات الحسابية، يقلل YOLOv7-X من 22% من المعلمات و8% من العمليات الحسابية مقارنةً بـ YOLOv5-X (r6.1)، ولكنه يحسن من سرعة الاستنتاج بنسبة 2.2%(المصدر).
الطراز | بارامز (م) |
(G) |
الحجم (بالبكسل) |
FPS | اختبار APtest/ فال 50-95 |
اختبار APtest 50 |
اختبار APtest 75 |
APtest S |
APtest M |
APtest L |
---|---|---|---|---|---|---|---|---|---|---|
يولوكس-إس | 9.0M | 26.8G | 640 | 102 | 40.5% / 40.5% | - | - | - | - | - |
يولوكس-إم | 25.3M | 73.8G | 640 | 81 | 47.2% / 46.9% | - | - | - | - | - |
يولوكس-إل | 54.2M | 155.6G | 640 | 69 | 50.1% / 49.7% | - | - | - | - | - |
يولوكس-X | 99.1M | 281.9G | 640 | 58 | 51.5% / 51.1% | - | - | - | - | - |
PPYOLOE-S | 7.9M | 17.4G | 640 | 208 | 43.1% / 42.7% | 60.5% | 46.6% | 23.2% | 46.4% | 56.9% |
PPYOLOE-M | 23.4M | 49.9G | 640 | 123 | 48.9% / 48.6% | 66.5% | 53.0% | 28.6% | 52.9% | 63.8% |
PPYOLOE-L | 52.2M | 110.1G | 640 | 78 | 51.4% / 50.9% | 68.9% | 55.6% | 31.4% | 55.3% | 66.1% |
PPYOLOE-X | 98.4M | 206.6G | 640 | 45 | 52.2% / 51.9% | 69.9% | 56.5% | 33.3% | 56.3% | 66.4% |
YOLOv5-ن (ص6.1) | 1.9M | 4.5G | 640 | 159 | - / 28.0% | - | - | - | - | - |
YOLOv5-S (ص6.1) | 7.2M | 16.5G | 640 | 156 | - / 37.4% | - | - | - | - | - |
YOLOv5-م (ص6.1) | 21.2M | 49.0G | 640 | 122 | - / 45.4% | - | - | - | - | - |
YOLOv5-ل (ص6.1) | 46.5M | 109.1G | 640 | 99 | - / 49.0% | - | - | - | - | - |
YOLOv5-X (r6.1) | 86.7M | 205.7G | 640 | 83 | - / 50.7% | - | - | - | - | - |
YOLOR-CSP | 52.9M | 120.4G | 640 | 106 | 51.1% / 50.8% | 69.6% | 55.7% | 31.7% | 55.3% | 64.7% |
YOLOR-CSP-X | 96.9M | 226.8G | 640 | 87 | 53.0% / 52.7% | 71.4% | 57.9% | 33.7% | 57.1% | 66.8% |
YOLOV7-tiny-SiLU | 6.2M | 13.8G | 640 | 286 | 38.7% / 38.7% | 56.7% | 41.7% | 18.8% | 42.4% | 51.9% |
يولوف 7 | 36.9M | 104.7G | 640 | 161 | 51.4% / 51.2% | 69.7% | 55.9% | 31.8% | 55.5% | 65.0% |
YOLOV7-X | 71.3M | 189.9G | 640 | 114 | 53.1% / 52.9% | 71.2% | 57.8% | 33.8% | 57.1% | 67.4% |
YOLOv5-N6 (r6.1) | 3.2M | 18.4G | 1280 | 123 | - / 36.0% | - | - | - | - | - |
YOLOv5-S6 (R6.1) | 12.6M | 67.2G | 1280 | 122 | - / 44.8% | - | - | - | - | - |
YOLOv5-M6 (r6.1) | 35.7M | 200.0G | 1280 | 90 | - / 51.3% | - | - | - | - | - |
YOLOv5-L6 (r6.1) | 76.8M | 445.6G | 1280 | 63 | - / 53.7% | - | - | - | - | - |
YOLOv5-X6 (r6.1) | 140.7M | 839.2G | 1280 | 38 | - / 55.0% | - | - | - | - | - |
YOLOR-P6 | 37.2M | 325.6G | 1280 | 76 | 53.9% / 53.5% | 71.4% | 58.9% | 36.1% | 57.7% | 65.6% |
YOLOR-W6 | 79.8G | 453.2G | 1280 | 66 | 55.2% / 54.8% | 72.7% | 60.5% | 37.7% | 59.1% | 67.1% |
YOLOR-E6 | 115.8M | 683.2G | 1280 | 45 | 55.8% / 55.7% | 73.4% | 61.1% | 38.4% | 59.7% | 67.7% |
YOLOR-D6 | 151.7M | 935.6G | 1280 | 34 | 56.5% / 56.1% | 74.1% | 61.9% | 38.9% | 60.4% | 68.7% |
YOLOv7-W6 | 70.4M | 360.0G | 1280 | 84 | 54.9% / 54.6% | 72.6% | 60.1% | 37.3% | 58.7% | 67.1% |
YOLOv7-E6 | 97.2M | 515.2G | 1280 | 56 | 56.0% / 55.9% | 73.5% | 61.2% | 38.0% | 59.9% | 68.4% |
YOLOV7-D6 | 154.7M | 806.8G | 1280 | 44 | 56.6% / 56.3% | 74.0% | 61.8% | 38.8% | 60.1% | 69.5% |
YOLOv7-E6E | 151.7M | 843.2G | 1280 | 36 | 56.8% / 56.8% | 74.4% | 62.1% | 39.3% | 60.5% | 69.0% |
لمحة عامة
يعد الكشف عن الأجسام في الوقت الحقيقي مكونًا مهمًا في العديد من أنظمة الرؤية الحاسوبية، بما في ذلك تتبع الأجسام المتعددة والقيادة الذاتية والروبوتات وتحليل الصور الطبية. في السنوات الأخيرة، ركز تطوير الكشف عن الأجسام في الوقت الحقيقي على تصميم بنيات فعالة وتحسين سرعة الاستدلال لمختلف وحدات المعالجة المركزية ووحدات معالجة الرسومات ووحدات المعالجة العصبية (NPUs). يدعم YOLOv7 كلاً من الأجهزة المحمولة GPU وأجهزة GPU ، من الحافة إلى السحابة.
على عكس كاشفات الأجسام التقليدية في الوقت الحقيقي التي تركز على تحسين البنية، يقدم YOLOv7 التركيز على تحسين عملية التدريب. يتضمن ذلك وحدات وأساليب تحسين مصممة لتحسين دقة اكتشاف الأجسام دون زيادة تكلفة الاستدلال، وهو مفهوم يُعرف باسم "حقيبة الأجسام المجانية القابلة للتدريب".
الميزات الرئيسية
يقدم YOLOv7 العديد من الميزات الرئيسية:
-
إعادة تحديد النموذج: يقترح YOLOv7 نموذجًا مخططًا لإعادة المعايرة، وهي استراتيجية قابلة للتطبيق على طبقات في شبكات مختلفة بمفهوم مسار الانتشار المتدرج.
-
تعيين التسمية الديناميكية: يمثل تدريب النموذج مع طبقات مخرجات متعددة مشكلة جديدة: "كيف يمكن تعيين أهداف ديناميكية لمخرجات الفروع المختلفة؟ لحل هذه المشكلة، يقدم YOLOv7 طريقة جديدة لتعيين التسميات تُدعى تعيين التسمية الموجّهة من الخشن إلى الدقيق.
-
القياس الموسع والمركب: يقترح YOLOv7 طرق "التوسيع" و"القياس المركب" لكاشف الأجسام في الوقت الحقيقي التي يمكن أن تستخدم المعلمات والحساب بفعالية.
-
الكفاءة: يمكن للطريقة المقترحة من قبل YOLOv7 أن تقلل بشكل فعال حوالي 40% من المعلمات و50% من العمليات الحسابية لأحدث كاشف للأجسام في الوقت الحقيقي، وتتميز بسرعة استدلال أسرع ودقة كشف أعلى.
أمثلة على الاستخدام
حتى وقت كتابة هذا التقرير، لا يدعم Ultralytics حاليًا نماذج YOLOv7. ولذلك، سيحتاج أي مستخدم مهتم باستخدام YOLOv7 إلى الرجوع مباشرةً إلى مستودع YOLOv7 GitHub للحصول على تعليمات التثبيت والاستخدام.
فيما يلي لمحة موجزة عن الخطوات النموذجية التي قد تتخذها لاستخدام YOLOv7:
-
قم بزيارة مستودع YOLOv7 GitHub: https://github.com/WongKinYiu/yolov7.
-
اتبع التعليمات الواردة في ملف README للتثبيت. يتضمن هذا عادةً استنساخ المستودع وتثبيت التبعيات الضرورية وإعداد أي متغيرات بيئة ضرورية.
-
بمجرد اكتمال التثبيت، يمكنك تدريب النموذج واستخدامه وفقًا لتعليمات الاستخدام المتوفرة في المستودع. يتضمن هذا عادةً إعداد مجموعة البيانات الخاصة بك، وتهيئة معلمات النموذج، وتدريب النموذج، ثم استخدام النموذج المُدرَّب لإجراء عملية الكشف عن الكائنات.
يُرجى ملاحظة أن الخطوات المحددة قد تختلف بناءً على حالة الاستخدام الخاصة بك والحالة الحالية لمستودع YOLOv7. ولذلك، يوصى بشدة بالرجوع مباشرةً إلى الإرشادات المتوفرة في مستودع YOLOv7 GitHub.
نأسف لأي إزعاج قد يسببه هذا الأمر وسنسعى جاهدين لتحديث هذا المستند بأمثلة استخدام Ultralytics بمجرد تنفيذ دعم YOLOv7.
الاستشهادات والشكر والتقدير
نود أن نشكر مؤلفي YOLOv7 على مساهماتهم الكبيرة في مجال الكشف عن الأجسام في الوقت الحقيقي:
يمكن الاطلاع على ورقة YOLOv7 الأصلية على arXiv. وقد أتاح المؤلفان عملهما للجمهور، ويمكن الوصول إلى قاعدة الرموز على GitHub. نحن نقدر جهودهم في تطوير المجال وإتاحة عملهم للمجتمع الأوسع.
الأسئلة الشائعة
ما هو YOLOv7 ولماذا يعتبر طفرة في اكتشاف الأجسام في الوقت الحقيقي؟
YOLOv7 هو نموذج متطور للكشف عن الأجسام في الوقت الحقيقي يحقق سرعة ودقة لا مثيل لهما. وهو يتفوق على النماذج الأخرى، مثل YOLOX و YOLOv5 و PPYOLOE، من حيث استخدام المعلمات وسرعة الاستدلال. تشمل الميزات المميزة لنموذج YOLOv7 إعادة تحديد معلمات النموذج وتعيين التسمية الديناميكية، والتي تعمل على تحسين أدائه دون زيادة تكاليف الاستدلال. للمزيد من التفاصيل الفنية حول بنيته ومقاييس المقارنة مع أحدث أجهزة الكشف عن الكائنات الأخرى، راجع ورقة YOLOv7.
كيف يتحسن YOLOv7 عن الطرازات السابقة YOLO مثل YOLOv4 و YOLOv5 ؟
يُقدم YOLOv7 العديد من الابتكارات، بما في ذلك إعادة تحديد النموذج وتعيين التسمية الديناميكي، مما يعزز عملية التدريب ويحسن دقة الاستدلال. بالمقارنة مع YOLOv5 ، يعزز YOLOv7 بشكل كبير من السرعة والدقة. على سبيل المثال، يحسّن YOLOv7-X الدقة بنسبة 2.2% ويقلل من المعلمات بنسبة 22% مقارنةً بـ YOLOv5-X. يمكن الاطلاع على المقارنات التفصيلية في جدول الأداء مقارنة YOLOv7 مع كاشفات الأجسام SOTA.
هل يمكنني استخدام YOLOv7 مع أدوات ومنصات Ultralytics ؟
اعتبارًا من الآن، لا يدعم Ultralytics بشكل مباشر YOLOv7 في أدواته ومنصاته. يحتاج المستخدمون المهتمون باستخدام YOLOv7 إلى اتباع تعليمات التثبيت والاستخدام المتوفرة في مستودع YOLOv7 GitHub. أما بالنسبة للنماذج الحديثة الأخرى، فيمكنك استكشافها والتدريب عليها باستخدام أدوات Ultralytics مثل Ultralytics HUB.
كيف أقوم بتثبيت YOLOv7 وتشغيله لمشروع اكتشاف كائن مخصص؟
لتثبيت YOLOv7 وتشغيله، اتبع الخطوات التالية:
- استنساخ مستودع YOLOv7:
- انتقل إلى الدليل المستنسخ وقم بتثبيت التبعيات:
- قم بإعداد مجموعة البيانات وتهيئة معلمات النموذج وفقًا لإرشادات الاستخدام المتوفرة في المستودع. لمزيد من الإرشادات، قم بزيارة مستودع YOLOv7 GitHub للحصول على آخر المعلومات والتحديثات.
ما هي الميزات والتحسينات الرئيسية التي تم إدخالها في YOLOv7؟
يوفر YOLOv7 العديد من الميزات الرئيسية التي تُحدث ثورة في اكتشاف الأجسام في الوقت الحقيقي:
- إعادة تحديد النموذج: تحسين أداء النموذج من خلال تحسين مسارات انتشار التدرج.
- تعيين التسمية الديناميكية: يستخدم طريقة موجهة من الخشنة إلى الدقيقة لتعيين الأهداف الديناميكية للمخرجات عبر الفروع المختلفة، مما يحسن الدقة.
- التحجيم الموسع والمركب: تستخدم المعلمات والحسابات بكفاءة لتوسيع نطاق النموذج لمختلف التطبيقات في الوقت الحقيقي.
- الكفاءة: يقلل من عدد المعلمات بنسبة 40% والحساب بنسبة 50% مقارنةً بالنماذج الحديثة الأخرى مع تحقيق سرعات استدلال أسرع. لمزيد من التفاصيل حول هذه الميزات، راجع قسم نظرة عامة على YOLOv7.