YOLOv7: حقيبة مجانية قابلة للتدريب
YOLOv7 is a state-of-the-art real-time object detector that surpasses all known object detectors in both speed and accuracy in the range from 5 FPS to 160 FPS. It has the highest accuracy (56.8% AP) among all known real-time object detectors with 30 FPS or higher on GPU V100. Moreover, YOLOv7 outperforms other object detectors such as YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, and many others in speed and accuracy. The model is trained on the MS COCO dataset from scratch without using any other datasets or pre-trained weights. Source code for YOLOv7 is available on 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) |
الحجم (بالبكسل) |
إطارا في الثانية | اختبار 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% |
يولو v7 | 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% |
نظره عامه
Real-time object detection is an important component in many computer vision systems, including multi-object tracking, autonomous driving, robotics, and medical image analysis. In recent years, real-time object detection development has focused on designing efficient architectures and improving the inference speed of various CPUs, GPUs, and neural processing units (NPUs). YOLOv7 supports both mobile GPU and GPU devices, from the edge to the cloud.
على عكس أجهزة الكشف عن الكائنات التقليدية في الوقت الفعلي التي تركز على تحسين البنية ، يقدم YOLOv7 التركيز على تحسين عملية التدريب. يتضمن ذلك الوحدات وطرق التحسين المصممة لتحسين دقة اكتشاف الأشياء دون زيادة تكلفة الاستدلال ، وهو مفهوم يعرف باسم "حقيبة الهدايا المجانية القابلة للتدريب".
الميزات الرئيسية
يقدم YOLOv7 العديد من الميزات الرئيسية:
-
نموذج إعادة المعلمات: يقترح YOLOv7 نموذجا مخططا لإعادة المعلمات ، وهو استراتيجية قابلة للتطبيق على الطبقات في الشبكات المختلفة مع مفهوم مسار انتشار التدرج.
-
تعيين التسمية الديناميكية: يمثل تدريب النموذج بطبقات إخراج متعددة مشكلة جديدة: "كيفية تعيين أهداف ديناميكية لمخرجات الفروع المختلفة؟" لحل هذه المشكلة ، يقدم YOLOv7 طريقة جديدة لتعيين الملصقات تسمى تعيين الملصق الموجه بالرصاص من الخشن إلى الغرامة.
-
القياس الموسع والمركب: يقترح YOLOv7 طرق "تمديد" و "تحجيم مركب" لكاشف الكائنات في الوقت الفعلي الذي يمكنه استخدام المعلمات والحساب بشكل فعال.
-
الكفاءة: يمكن للطريقة التي اقترحها YOLOv7 أن تقلل بشكل فعال من حوالي 40٪ معلمات و 50٪ من حساب كاشف الكائنات في الوقت الفعلي المتطور ، ولديها سرعة استدلال أسرع ودقة كشف أعلى.
أمثلة الاستخدام
اعتبارا من وقت كتابة هذا التقرير ، Ultralytics لا يدعم حاليا طرازات YOLOv7. لذلك ، سيحتاج أي مستخدم مهتم باستخدام YOLOv7 إلى الرجوع مباشرة إلى مستودع YOLOv7 GitHub للحصول على إرشادات التثبيت والاستخدام.
فيما يلي نظرة عامة موجزة على الخطوات النموذجية التي قد تتخذها لاستخدام YOLOv7:
-
قم بزيارة مستودع YOLOv7 GitHub: https://github.com/WongKinYiu/yolov7.
-
اتبع الإرشادات المتوفرة في الملف التمهيدي للتثبيت. يتضمن هذا عادة استنساخ المستودع وتثبيت التبعيات الضرورية وإعداد أي متغيرات بيئة ضرورية.
-
بمجرد اكتمال التثبيت ، يمكنك تدريب النموذج واستخدامه وفقا لتعليمات الاستخدام الواردة في المستودع. يتضمن هذا عادة إعداد مجموعة البيانات الخاصة بك ، وتكوين معلمات النموذج ، وتدريب النموذج ، ثم استخدام النموذج المدرب لإجراء اكتشاف الكائن.
يرجى ملاحظة أن الخطوات المحددة قد تختلف اعتمادا على حالة الاستخدام المحددة والحالة الحالية لمستودع YOLOv7. لذلك ، يوصى بشدة بالرجوع مباشرة إلى الإرشادات الواردة في مستودع YOLOv7 GitHub.
نأسف لأي إزعاج قد يسببه هذا وسنسعى جاهدين لتحديث هذا المستند بأمثلة استخدام ل Ultralytics بمجرد تنفيذ دعم YOLOv7.
الاستشهادات والشكر
نود أن نعرب عن تقديرنا لمؤلفي YOLOv7 لمساهماتهم الكبيرة في مجال اكتشاف الكائنات في الوقت الفعلي:
يمكن العثور على ورقة YOLOv7 الأصلية على arXiv. جعل المؤلفون أعمالهم متاحة للجمهور ، ويمكن الوصول إلى قاعدة التعليمات البرمجية على GitHub. نحن نقدر جهودهم في النهوض بالمجال وجعل عملهم في متناول المجتمع الأوسع.
الأسئلة المتداولة
What is YOLOv7 and why is it considered a breakthrough in real-time object detection?
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.