YOLOv7 vs YOLOv8: تطور الكشف عن الكائنات في الوقت الفعلي
يتميز مجال الرؤية الحاسوبية بالتكرار السريع والابتكارات المعمارية. ومن أهم المعالم في تاريخ هذا المجال ما يلي YOLOv7، الذي تم إصداره في منتصف عام 2022، و YOLOv8، الذي أطلقته Ultralytics أوائل عام 2023. ورغم أن كلا النموذجين قد دفعا بأحدث التقنيات (SOTA) عند إطلاقهما، إلا أنهما يمثلان فلسفتين مختلفتين في تصميم النماذج وتجربة المطورين.
YOLOv7 ذروة في تحسين نهج "bag-of-freebies" للكاشفات القائمة على المراسي، مع التركيز بشكل مكثف على استراتيجيات الهندسة القابلة للتدريب. على العكس من ذلك، YOLOv8 نهجًا بيئيًا يركز على المستخدم، وانتقل إلى هندسة خالية من المراسي تعطي الأولوية لسهولة الاستخدام ونشر النماذج والدعم الموحد لمهام متنوعة مثل التجزئة وتقدير الوضع.
مقارنة الأداء
يوضح الجدول التالي مقاييس أداء YOLOv8 YOLOv7 YOLOv8 . YOLOv8 كفاءة فائقة، لا سيما في عدد المعلمات وعمليات FLOPs، مع الحفاظ على دقة (mAP) النموذج السابق أو تجاوزها.
| النموذج | الحجم (بالبكسل) | 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، YOLOv7 تصميمه لتجاوز حدود سرعة ودقة الكشف عن الكائنات في الوقت الفعلي. وقد أدخل العديد من الابتكارات المعمارية التي تهدف إلى تحسين مسار انتشار التدرج.
- المؤلفون: Chien-Yao Wang و Alexey Bochkovskiy و Hong-Yuan Mark Liao
- المنظمة: معهد علوم المعلومات، أكاديميا سينيكا، تايوان
- التاريخ: 2022-07-06
- ورقة:YOLOv7: مجموعة من الهدايا المجانية القابلة للتدريب تضع معايير جديدة في هذا المجال
- الاسترداد:GitHub
الميزات المعمارية الرئيسية
YOLOv7 شبكة تجميع الطبقات الفعالة الموسعة (E-ELAN). تسمح هذه البنية للنموذج بتعلم ميزات أكثر تنوعًا من خلال التحكم في أقصر وأطول مسارات التدرج، مما يضمن تقارب الشبكة بشكل فعال دون إتلاف تدفق التدرج.
كما استخدمت نموذج التوسع القائم على التسلسل، الذي يضبط عمق الكتلة وعرضها في وقت واحد. ورغم فعالية هذه البنية، إلا أنها تعتمد على مربعات الربط، مما يتطلب حساب نقاط الربط المثلى لمجموعات البيانات المخصصة لتحقيق أقصى أداء. وهذا يضيف طبقة من التعقيد إلى عملية التدريب مقارنة بالأساليب الأحدث التي لا تعتمد على نقاط الربط.
تعقيد التدريب
يتطلب YOLOv7 بنية مستودع محددة موجهة نحو البحث وإدارة يدوية للرؤوس المساعدة أثناء التدريب. غالبًا ما يتعين على المستخدمين ضبط المعلمات الفائقة يدويًا لـ "bag-of-freebies" (مثل MixUp Mosaic) لتعمل بشكل صحيح على مجموعات البيانات الأصغر حجمًا.
YOLOv8: نظام بيئي موحد وتصميم بدون مرساة
YOLOv8 Ultralytics YOLOv8 تحولًا جذريًا من أداة بحثية بحتة إلى إطار عمل على مستوى المؤسسات. فقد ساهم في تبسيط دورة حياة التعلم الآلي بأكملها، بدءًا من تعليق البيانات وحتى النشر.
- المؤلفون: Glenn Jocher و Ayush Chaurasia و Jing Qiu
- المؤسسة:Ultralytics
- التاريخ: 2023-01-10
- الوثائق:وثائق YOLOv8
الابتكارات المعمارية
YOLOv8 نموذج متطور وخالي من المراسي. من خلال التخلص من الحاجة إلى مربعات المراسي المحددة مسبقًا، YOLOv8 رأس الكشف ويحسن التعميم على الكائنات ذات الأشكال أو نسب العرض إلى الارتفاع غير العادية.
- وحدة C2f: تحل وحدة C2f (المستوحاة من ELAN) محل وحدة C3 من الأجيال السابقة، وتجمع بين الميزات عالية المستوى والمعلومات السياقية لتحسين تدفق التدرج مع الحفاظ على خفة الوزن.
- رأس منفصل: YOLOv8 مهام تحديد الكائنات والتصنيف والانحدار إلى فروع مختلفة. يتيح هذا الفصل للنموذج التلاقي بشكل أسرع وأكثر دقة.
- تنوع المهام: على عكس YOLOv7 الذي هو في الأساس نموذج للكشف، يدعم YOLOv8 تصنيف الصور وتقدير الوضع ومربعات الحدود الموجهة (OBB) وتجزئة الحالات.
مقارنة مفصلة: لماذا يختار المطورون Ultralytics
في حين أن YOLOv7 نموذجًا قادرًا، فإن Ultralytics المحيط بـ YOLOv8 و YOLO26 الأحدث) يوفر مزايا واضحة للمطورين والباحثين.
1. سهولة الاستخدام والنظام البيئي
YOLOv7 توزيع YOLOv7 بشكل أساسي كمستودع أبحاث. غالبًا ما يتطلب تدريبه استنساخ مستودع GitHub محدد، وتنظيم المجلدات في هيكل صارم، وتشغيل CLI معقدة.
في المقابل، تتوفر Ultralytics Python قياسية (pip install ultralytics). The منصة Ultralytics يبسط هذا الأمر أكثر من خلال توفير واجهة رسومية لإدارة مجموعات البيانات ومراقبة التدريب. هذه التجربة التي تبدأ من الصفر إلى القمة تقلل بشكل كبير من عوائق دخول مجال تطوير الذكاء الاصطناعي.
2. كفاءة التدريب والذاكرة
أحد أهم العوامل في الذكاء الاصطناعي الحديث هو استخدام الموارد. غالبًا ما تتطلب النماذج القائمة على المحولات كميات هائلة من CUDA وتستغرق أيامًا للتدريب. تم تحسينYOLO Ultralytics YOLO لتحقيق كفاءة التدريب.
YOLOv8 تقنية زيادة الموزاييك ديناميكيًا، ويقوم بإيقاف تشغيلها في المراحل النهائية لزيادة الدقة. هذا، إلى جانب محمل البيانات المحسّن، يتيح للمستخدمين تشغيل أحجام دفعات أكبر على وحدات معالجة الرسومات (GPU) المخصصة للمستهلكين مقارنةً بـ YOLOv7 البدائل القائمة على المحولات مثل RT-DETR.
3. النشر والتصدير
غالبًا ما يكون نقل نموذج من PyTorch إلى جهاز إنتاج هو أصعب جزء في خط الإنتاج. YOLOv8 هذه العملية من خلال وضع تصدير موحد.
بسطر واحد من التعليمات البرمجية، يمكن للمطورين تصدير YOLOv8 :
- ONNX لتحقيق التوافق العام بين الأنظمة الأساسية.
- TensorRT للحصول على أقصى سرعة استدلال على NVIDIA .
- CoreML للتكامل مع تطبيقات iOS macOS.
- TFLite للنشر على الأجهزة المحمولة والأجهزة الطرفية Android تعمل Android Raspberry Pi.
مثال للتصدير
يمكن تصدير YOLOv8 بسلاسة عبر Python :
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
model.export(format="onnx", opset=12)
مثال على الكود: واجهة برمجة التطبيقات الموحدة
تتيح لكPython Ultralytics Python التبديل بين بنى النماذج بسهولة. يمكنك تحميل YOLOv8 أو YOLOv7 (مدعوم للتوافق مع الإصدارات القديمة) باستخدام نفس الواجهة.
from ultralytics import YOLO
# Load the latest YOLOv8 Nano model for efficiency
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
# The API handles dataset downloading and configuration automatically
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference on a sample image
# Returns a list of Results objects containing boxes, masks, or keypoints
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()
# NOTE: You can also load YOLOv7 weights using the same API
# model_v7 = YOLO("yolov7.pt")
حالات الاستخدام المثالية
متى تستخدم YOLOv7
- مقارنة الأداء القديم: إذا كنت تعيد إنتاج أوراق أكاديمية من عام 2022/2023 تقارن بشكل خاص مع بنية E-ELAN.
- مدخلات عالية الدقة محددة: في
yolov7-w6تم ضبط المتغيرات خصيصًا لإدخالات 1280px، على الرغم من أن Ultralytics الحديثة تتعامل الآن مع قرارات P6/1280 بشكل أصلي.
متى يجب استخدام YOLOv8
- الحوسبة الطرفية: نماذج مثل
yolov8nمثالية لـ يعمل على Raspberry Pi أو Jetson Nano نظرًا لعدد معلماتها المنخفض وسرعتها العالية. - التطبيقات متعددة المهام: إذا كان تطبيقك يتطلب تتبع الأشخاص مع تحديد وضعهم (الهيكل العظمي) في الوقت نفسه، فإن تقدير الوضع الأصلي YOLOv8 هو الخيار المثالي.
- الأتمتة الصناعية: بالنسبة لخطوط الإنتاج عالية الإنتاجية حيث يكون زمن الاستجابة عاملاً حاسماً، فإن سهولة التصدير إلى TensorRT تجعل YOLOv8 .
- النماذج الأولية السريعة: تتيح Ultralytics للفرق تكرار مجموعات البيانات والنماذج بسرعة دون الحاجة إلى إدارة بنية تحتية معقدة.
التطلع إلى المستقبل: قوة YOLO26
في حين أن المقارنة مع YOLOv7 نقاط قوة YOLOv8 إلا أن هذا المجال استمر في التطور. بالنسبة للمطورين الذين يبدؤون مشاريع جديدة اليوم، يمثل YOLO26 ذروة هذا التطور.
يعتمد YOLO26 على سهولة استخدام YOLOv8 يقدم تصميمًا شاملاً NMS. من خلال التخلص من المعالجة اللاحقة لـ Non-Maximum Suppression (NMS)، يحقق YOLO26 منطق نشر أبسط بكثير ووقت استجابة أقل في المشاهد المعقدة. كما يتميز بمحسن MuSGD، المستوحى من تقنيات تدريب Large Language Model (LLM)، مما يضمن تقاربًا أكثر استقرارًا أثناء التدريب.
علاوة على ذلك، مع إزالة Distribution Focal Loss (DFL)، أصبح YOLO26 أسرع بنسبة تصل إلى 43٪ في استنتاج CPU ، مما يجعله الخيار الأمثل لتطبيقات الذكاء الاصطناعي المتطورة حيث لا تتوفر وحدات معالجة الرسومات (GPU). بالنسبة للمهام المتخصصة، يقدم تحسينات خاصة بالمهام مثل Residual Log-Likelihood Estimation (RLE) لـ Pose وفقدان الزاوية المتخصصة لـ OBB.
للحصول على الحل الأكثر ملاءمة للمستقبل والأكثر كفاءة ودقة، نوصي بالاطلاع على YOLO26.