مقارنة النماذج: YOLOv7 ضد YOLOv8 لاكتشاف الكائنات
في المشهد المتطور بسرعة لرؤية الحاسوب، وضعت عائلة نماذج "أنت تنظر مرة واحدة فقط" (YOLO) باستمرار معيارًا لاكتشاف الكائنات في الوقت الفعلي. هناك معلمَان مهمان في هذا النسب هما YOLOv7 و Ultralytics YOLOv8. في حين أن كلا النموذجين دفعا حدود الدقة والسرعة عند إصدارهما، إلا أنهما يمثلان فلسفات تصميم مختلفة ونضجًا في النظام البيئي.
يقدم هذا الدليل مقارنة فنية مفصلة لمساعدة المطورين والباحثين على اختيار الأداة المناسبة لاحتياجاتهم الخاصة، بدءًا من البحث الأكاديمي وحتى النشر على مستوى الإنتاج.
مقارنة مقاييس الأداء
يعرض الجدول التالي مقارنة مباشرة لمقاييس الأداء بين نماذج YOLOv7 و YOLOv8 الرئيسية. يُظهر YOLOv8 ميزة كبيرة في سرعة الاستدلال وعدد المعلمات المناسب، خاصة في متغيرات النماذج الأصغر حجمًا والتي تعتبر ضرورية لتطبيقات الذكاء الاصطناعي الطرفي (Edge AI).
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
YOLOv7: تطور "حقيبة التحسينات المجانية"
تم تطوير YOLOv7، الذي تم إصداره في يوليو 2022، بشكل أساسي بواسطة مؤلفي YOLOv4 و YOLOR. قدم العديد من الابتكارات المعمارية التي تهدف إلى تحسين عملية التدريب دون زيادة تكاليف الاستدلال، وهو مفهوم يشار إليه باسم "حقيبة التدريب المجانية".
- المؤلفون: Chien-Yao Wang و Alexey Bochkovskiy و Hong-Yuan Mark Liao
- المنظمة: معهد علوم المعلومات، أكاديميا سينيكا، تايوان
- التاريخ: 2022-07-06
- روابط:ورقة Arxiv | مستودع GitHub
الميزات المعمارية الرئيسية
قدم YOLOv7 شبكة تجميع الطبقات الفعالة الممتدة (E-ELAN). تتحكم هذه البنية في أقصر وأطول مسارات التدرج للسماح للشبكة بتعلم المزيد من الميزات المتنوعة. علاوة على ذلك، استخدمت تقنيات توسيع نطاق النموذج التي تعدل عمق وعرض البنية في وقت واحد، مما يضمن الأداء الأمثل عبر أحجام مختلفة.
على الرغم من المعايير المذهلة التي حققها YOLOv7 عند إطلاقه، إلا أنه يركز بشكل أساسي على الكشف عن العناصر، مع دعم أقل تكاملاً للمهام الأخرى مقارنة بالأطر الأحدث.
Ultralytics YOLOv8: إطار عمل موحد وهندسة معمارية حديثة
تم إطلاق YOLOv8 في أوائل عام 2023 بواسطة Ultralytics، وهو يمثل إصلاحًا شاملاً لهندسة YOLO. لقد تم تصميمه ليس فقط كنموذج، ولكن كإطار عمل موحد قادر على أداء مهام detect و instance segmentation وتقدير الوضعية و classification بسلاسة.
- المؤلفون: Glenn Jocher و Ayush Chaurasia و Jing Qiu
- المنظمة: Ultralytics
- التاريخ: 2023-01-10
- روابط:وثائق Ultralytics | مستودع GitHub
الابتكارات المعمارية
انتقل YOLOv8 بعيدًا عن الـ detect المستند إلى الـ anchor المستخدم في الإصدارات السابقة (بما في ذلك YOLOv7) إلى آلية detect خالية من الـ anchor. يبسط هذا التحول عملية التدريب عن طريق إزالة الحاجة إلى حساب مربعات الـ anchor، مما يجعل النموذج أكثر قوة في مواجهة الاختلافات في شكل الكائن وحجمه.
تمت ترقية backbone لاستخدام وحدات C2f (Cross-Stage Partial Bottleneck مع اثنين من الالتواءات)، والتي تحل محل وحدات C3 الخاصة بـ YOLOv5. يعمل هذا التغيير على تحسين تدفق التدرج ويسمح للنموذج بالبقاء خفيف الوزن مع التقاط معلومات ميزات أكثر ثراءً.
مقارنة فنية تفصيلية
المرساة المستندة إلى مرساة مقابل الخالية من المرساة
أحد الاختلافات الأكثر تحديدًا هو رأس الكشف (detection head). يعتمد YOLOv7 على مربعات الربط (anchor boxes) - وهي أشكال محددة مسبقًا يحاول النموذج مطابقتها مع الكائنات. وعلى الرغم من فعالية ذلك، إلا أنه يتطلب ضبط المعلمات الفائقة لمجموعات البيانات المخصصة.
على النقيض من ذلك، تستخدم YOLOv8 نهجًا خاليًا من المرساة، حيث تتوقع مركز الكائن مباشرةً. يقلل هذا من عدد توقعات المربع، ويسرع Non-Maximum Suppression (NMS) ويجعل النموذج أسهل في التدريب على بيانات متنوعة دون تهيئة يدوية للمرساة.
كفاءة التدريب واستخدام الذاكرة
تشتهر نماذج Ultralytics بكفاءتها الهندسية. يستخدم YOLOv8 إستراتيجية ذكية لزيادة البيانات تعمل على تعطيل زيادة Mosaic خلال الحقب الأخيرة من التدريب. تعمل هذه التقنية على تثبيت فقدان التدريب وتحسين الدقة.
كفاءة الذاكرة
تتمثل إحدى المزايا الهامة لـ Ultralytics YOLOv8 على البنى المعقدة مثل المحولات (مثل RT-DETR) في انخفاض متطلبات ذاكرة CUDA. يتيح ذلك للمستخدمين تدريب أحجام دفعات أكبر على وحدات معالجة الرسومات من الدرجة الاستهلاكية، مما يضفي طابعًا ديمقراطيًا على الوصول إلى تدريب النماذج الحديثة.
النظام البيئي وسهولة الاستخدام
في حين أن YOLOv7 هو مستودع بحثي قوي، إلا أن Ultralytics YOLOv8 يقدم تجربة منتج مصقولة. يوفر النظام البيئي لـ Ultralytics:
- واجهة برمجة تطبيقات مبسطة: واجهة python متناسقة لجميع المهام.
- النشر: تصدير بنقرة واحدة إلى تنسيقات مثل ONNX و TensorRT و CoreML و TFLite عبر وضع التصدير.
- دعم المجتمع: مجتمع Discord نشط وتحديثات متكررة تضمن التوافق مع أحدث إصدارات PyTorch.
مقارنة التعليمات البرمجية
تتضح فجوة سهولة الاستخدام عند مقارنة التعليمات البرمجية المطلوبة لتشغيل الاستدلال. تعطي Ultralytics الأولوية لنهج التعليمات البرمجية المنخفضة، مما يسمح للمطورين بدمج رؤية الذكاء الاصطناعي في التطبيقات بأقل قدر من النفقات العامة.
تشغيل YOLOv8 مع Python
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Display the results
for result in results:
result.show()
تنفيذ CLI
يمكن أيضًا تنفيذ YOLOv8 مباشرةً من سطر الأوامر، وهي ميزة تعمل على تبسيط تكامل خطوط الأنابيب والاختبار السريع.
# Detect objects in an image using the nano model
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg' imgsz=640
حالات الاستخدام المثالية
متى تستخدم YOLOv7
يظل YOLOv7 خيارًا قابلاً للتطبيق للباحثين الذين يقومون بتقييم الأداء وفقًا لمعايير 2022/2023 أو الحفاظ على الأنظمة القديمة المبنية خصيصًا حول بنية Darknet. يقدم نهج "حقيبة الامتيازات المجانية" الخاص به رؤى مثيرة للاهتمام لأولئك الذين يدرسون استراتيجيات تحسين الشبكات العصبية.
متى يجب استخدام YOLOv8
YOLOv8 هو الخيار الموصى به للغالبية العظمى من المشاريع الجديدة، بما في ذلك:
- تطبيقات في الوقت الفعلي: يوفر نموذج YOLOv8n (nano) سرعات مذهلة (حوالي 80 مللي ثانية على CPU)، مما يجعله مثاليًا لتطبيقات الهاتف المحمول و الأنظمة المدمجة.
- خطوط أنابيب المهام المتعددة: يمكن للمشاريع التي تتطلب تقدير الوضع أو segmentation جنبًا إلى جنب مع الـ detection استخدام واجهة برمجة تطبيقات واحدة.
- النشر التجاري: تضمن توافقية التصدير القوية إمكانية نشر النماذج التي تم تدريبها في PyTorch بكفاءة في بيئات الإنتاج باستخدام TensorRT أو OpenVINO.
الخلاصة
في حين أن YOLOv7 قدمت مساهمات كبيرة في مجال رؤية الحاسوب من خلال تحسين المعلمات القابلة للتدريب، إلا أن Ultralytics YOLOv8 تمثل المعيار الحديث لتطوير الذكاء الاصطناعي العملي.
إن التوازن الفائق بين السرعة والدقة في YOLOv8، جنبًا إلى جنب مع التصميم الخالي من المرساة ونظام دعم Ultralytics الشامل، يجعله أكثر سهولة للمبتدئين وأكثر قوة للخبراء. بالنسبة للمطورين الذين يتطلعون إلى بناء تطبيقات رؤية قابلة للتطوير والصيانة وعالية الأداء، فإن YOLOv8 - وخلفائه مثل YOLO11 - يقدمون المسار الأكثر إقناعًا للمضي قدمًا.
مزيد من القراءة
بالنسبة لأولئك المهتمين باستكشاف أحدث التطورات في الكشف عن الكائنات، ضع في اعتبارك مراجعة هذه النماذج ذات الصلة:
- YOLO11: أحدث تكرار من Ultralytics، حيث يعمل على تحسين البنية لتحقيق كفاءة أكبر.
- YOLOv6: نموذج آخر بدون نقاط ارتكاز يركز على التطبيقات الصناعية.
- YOLOv9: يركز على معلومات التدرج القابلة للبرمجة (PGI) لتدريب الشبكات العميقة.