تخطي إلى المحتوى

YOLOv7 ضد YOLOv10: التطور المعماري وتحليل الأداء

يمثل تطور عائلة YOLO ‏(You Only Look Once) جدولًا زمنيًا رائعًا لتطورات رؤية الكمبيوتر، مع الموازنة بين المفاضلة الأبدية بين سرعة الاستدلال ودقة الاكتشاف. يتعمق هذا التحليل في معلمين بارزين: YOLOv7، وهو نموذج قوي وضع معايير جديدة في عام 2022، و YOLOv10، وهو إصدار 2024 يقدم تحولًا نموذجيًا مع التدريب الخالي من NMS.

في حين أن كلا النموذجين خياران ممتازان لـ الكشف عن الأجسام، إلا أنهما يلبيان فلسفات معمارية مختلفة. تدفع YOLOv7 حدود "حقيبة الهدايا المجانية" القابلة للتدريب وتحسين مسار التدرج، في حين تركز YOLOv10 على التخلص من اختناقات ما بعد المعالجة لتحقيق كفاءة حقيقية في الوقت الفعلي.

YOLOv7: تحسين مسار التدرج

قدم YOLOv7، الذي تم إصداره في يوليو 2022، تغييرات معمارية كبيرة تركز على تحسين عملية التدريب دون زيادة تكاليف الاستدلال. سرعان ما أصبح المفضل لمهام رؤية الكمبيوتر للأغراض العامة نظرًا لدقته العالية في مجموعة بيانات COCO.

المؤلفون: تشين-ياو وانغ، أليكسي بوتشكوفسكي، وهونغ-يوان مارك لياو
المنظمة: معهد علوم المعلومات، أكاديميا سينيكا، تايوان
التاريخ: 2022-07-06
ArXiv:YOLOv7: مجموعة الأدوات المجانية القابلة للتدريب تضع أحدث ما توصلت إليه التكنولوجيا لكاشفات الأجسام في الوقت الفعلي
GitHub:WongKinYiu/yolov7

الميزات المعمارية الرئيسية

قدم YOLOv7 شبكة تجميع الطبقات الفعالة الممتدة (E-ELAN). تسمح هذه البنية للنموذج بتعلم المزيد من الميزات المتنوعة من خلال التحكم في أقصر وأطول مسارات التدرج، مما يضمن تقارب الشبكة بشكل فعال أثناء التدريب.

بالإضافة إلى ذلك، يستخدم YOLOv7 بكثافة "حقيبة المكافآت المجانية" - وهي طرق تعمل على تحسين الدقة أثناء التدريب دون زيادة تكلفة الاستدلال. وتشمل هذه إعادة تحديد معلمات النموذج، حيث يتم تبسيط هيكل التدريب المعقد إلى هيكل استدلال مبسط، مما يقلل زمن الوصول مع الحفاظ على الأداء المتعلم.

تعرف على المزيد حول YOLOv7

YOLOv10: نهاية NMS

يعالج YOLOv10، الذي تم إصداره في مايو 2024 بواسطة باحثين من جامعة تسينغ هوا، عنق الزجاجة الذي طال أمده في الكشف عن الأجسام: Non-Maximum Suppression (NMS). تتوقع نماذج YOLO التقليدية مربعات إحاطة متعددة لكائن واحد وتعتمد على NMS لتصفية التكرارات. تضيف خطوة ما بعد المعالجة هذه زمن انتقال يختلف تبعًا لعدد الكائنات في المشهد.

المؤلفون: آو وانغ، هوي تشن، ليهاو ليو، وآخرون.
المنظمة: جامعة تسينغ هوا
التاريخ: 2024-05-23
ArXiv:YOLOv10: الكشف عن الأجسام في الوقت الفعلي من النهاية إلى النهاية
GitHub:THU-MIG/yolov10

الميزات المعمارية الرئيسية

يقدم YOLOv10 استراتيجية تعيين مزدوج متسق. أثناء التدريب، يستخدم النموذج رأسًا واحدًا إلى متعدد (للإشراف الغني) ورأسًا واحدًا إلى واحد (للتنبؤ من طرف إلى طرف). أثناء الاستدلال، يتم استخدام الرأس واحد إلى واحد فقط، مما يلغي الحاجة إلى NMS تمامًا. ينتج عن هذا استدلال يمكن التنبؤ به بزمن وصول منخفض، مما يجعله مناسبًا جدًا لتطبيقات الذكاء الاصطناعي الطرفي حيث يجب أن يكون وقت المعالجة ثابتًا.

تعرف على المزيد حول YOLOv10

مقارنة فنية: الهيكل والأداء

يكمن التمييز الأساسي بين هذه النماذج في نهجها تجاه كفاءة الاستدلال. يعتمد YOLOv7 على العمود الفقري المحسّن للغاية (E-ELAN) لاستخراج الميزات بكفاءة ولكنه لا يزال يتطلب معالجة لاحقة تقليدية. يقوم YOLOv10 بتعديل رأس الكشف الأساسي لإزالة خطوات المعالجة اللاحقة، وتحقيق زمن انتقال أقل لمستويات دقة مماثلة.

مقاييس الأداء

كما هو موضح في الجدول أدناه، تُظهر YOLOv10 كفاءة فائقة. على سبيل المثال، تحقق YOLOv10b mAP أعلى (52.7٪) من YOLOv7l (51.4٪) مع استخدام عدد أقل بكثير من المعلمات (24.4 مليون مقابل 36.9 مليون) وعمليات الفاصلة العائمة (FLOPs).

فهم الكمون

تسلط مقاييس "السرعة" الضوء على تأثير تصميم YOLOv10 الخالي من NMS. من خلال إزالة خطوة NMS، يقلل YOLOv10 من النفقات الحسابية العامة أثناء الاستدلال، وهو أمر مفيد بشكل خاص على مسرّعات الأجهزة مثل TensorRT حيث يمكن أن تصبح المعالجة اللاحقة عنق زجاجة.

النموذجالحجم
(بالبكسل)
mAPval
50-95
السرعة
وحدة المعالجة المركزية CPU ONNX
(بالمللي ثانية)
السرعة
T4 TensorRT10
(بالمللي ثانية)
المعلمات
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

نقاط القوة والضعف

نقاط قوة YOLOv7:

  • متانة مثبتة: تم اختباره على نطاق واسع في مختلف البيئات الأكاديمية والصناعية منذ عام 2022.
  • دعم الدقة العالية: أداء ممتاز على مدخلات الدقة الأعلى (مثل 1280 بكسل) عبر متغيرات W6/E6 محددة.
  • مصادر المجتمع: يوجد حجم كبير من البرامج التعليمية وعمليات التنفيذ الخاصة بأطراف ثالثة نظرًا لقدمه.

نقاط ضعف YOLOv7:

  • التعقيد: يمكن أن يؤدي هيكل إعادة التهيئة والرأس الإضافي إلى تعقيد مسار التدريب مقارنةً بنماذج Ultralytics الحديثة.
  • اعتمادية NMS: تعتمد سرعة الاستدلال جزئيًا على كثافة المشهد بسبب NMS.

نقاط قوة YOLOv10:

  • أقل زمن انتقال: تتيح بنية NMS-free استدلالًا سريعًا للغاية، وهو مثالي لـ الاستدلال في الوقت الفعلي.
  • الكفاءة: تحقق دقة متطورة مع عدد أقل من المعلمات واستخدام أقل للذاكرة.
  • سهولة النشر: تؤدي إزالة خطوة NMS إلى تبسيط عملية التصدير إلى تنسيقات مثل ONNX و TensorRT.

نقاط ضعف YOLOv10:

  • تحديد المهمة: يركز بشكل أساسي على اكتشاف الأجسام، في حين أن النماذج الأخرى في نظام Ultralytics البيئي (مثل YOLO11) تدعم أصلاً التجزئة وتقدير الوضع و OBB في إطار موحد.

حالات الاستخدام المثالية

غالبًا ما يعتمد الاختيار بين YOLOv7 و YOLOv10 على القيود المحددة لبيئة النشر.

  • استخدم YOLOv7 إذا: كنت تعمل على مشروع قديم يدمج بالفعل بنية v7، أو إذا كنت تحتاج إلى متغيرات محددة عالية الدقة (مثل YOLOv7-w6) للكشف عن الأجسام الصغيرة في الصور الكبيرة حيث تكون سرعة الاستدلال ثانوية للدقة precision الخام.
  • استخدم YOLOv10 إذا: كنت تقوم بالنشر على أجهزة طرفية محدودة الموارد (Raspberry Pi، Jetson Nano، الهواتف المحمولة) أو تتطلب الحد الأدنى المطلق من الكمون لتطبيقات مثل القيادة الذاتية أو الروبوتات عالية السرعة. كما أن انخفاض حجم الذاكرة يجعل تشغيلها أرخص في البيئات السحابية.

ميزة Ultralytics

سواء اخترت YOLOv7 أو YOLOv10، فإن استخدامها عبر Ultralytics Python API يوفر مزايا كبيرة مقارنة باستخدام كود المستودع الخام. قامت Ultralytics بدمج هذه النماذج في نظام بيئي موحد يعطي الأولوية لسهولة الاستخدام و كفاءة التدريب و التنوع.

تجربة مستخدم مبسطة

تاريخيًا، تطلب تدريب نماذج التعلم العميق المعقدة إدارة ملفات التكوين والتبعيات المعقدة. يعمل إطار Ultralytics على توحيد هذه العملية. يمكن للمطورين التبديل بين architectures (مثلًا، من YOLOv10n إلى YOLOv10s أو حتى إلى YOLO11) عن طريق تغيير وسيطة سلسلة واحدة، دون إعادة كتابة أدوات تحميل البيانات أو نصوص التحقق.

مثال على التعليمات البرمجية

يوضح المثال التالي كيفية التحميل والتنبؤ بهذه النماذج باستخدام حزمة Ultralytics. لاحظ كيف يظل API ثابتًا بغض النظر عن بنية النموذج الأساسية.

from ultralytics import YOLO

# Load a pre-trained YOLOv10 model (NMS-free)
model_v10 = YOLO("yolov10n.pt")

# Load a pre-trained YOLOv7 model
model_v7 = YOLO("yolov7.pt")

# Run inference on an image
# The API handles underlying differences automatically
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v7 = model_v7("https://ultralytics.com/images/bus.jpg")

# Print results
for result in results_v10:
    result.show()  # Display predictions

النظام الإيكولوجي والتجهيز للمستقبل

في حين أن YOLOv7 و YOLOv10 قويان، فإن النظام البيئي لـ Ultralytics يتطور باستمرار. يعتمد أحدث نموذج YOLO11 على الدروس المستفادة من كل من v7 (تجميع الميزات) و v10 (الكفاءة).

  • مُدار بشكل جيد: تضمن التحديثات المتكررة التوافق مع أحدث إصدارات PyTorch و CUDA وتنسيقات التصدير (CoreML و ONNX و TensorRT).
  • كفاءة الذاكرة: تم تصميم نماذج Ultralytics لتقليل استخدام GPU VRAM أثناء التدريب، مما يسمح بأحجام دفعات أكبر على أجهزة المستهلك مقارنة بالعديد من البدائل القائمة على المحولات (مثل RT-DETR).
  • كفاءة التدريب: مع المعلمات الفائقة المضبوطة مسبقًا والمسح الضوئي "الذكي" لمجموعة البيانات، غالبًا ما يكون تقارب التدريب أسرع، مما يوفر تكاليف الحوسبة.

بالنسبة للمطورين الذين يبدأون مشاريع جديدة اليوم، يوصى بشدة باستكشاف YOLO11 لأنه يوفر توازنًا دقيقًا بين السرعة التي تظهر في YOLOv10 والاستخراج القوي للميزات من النماذج السابقة، جنبًا إلى جنب مع الدعم الأصلي للمهام التي تتجاوز detect البسيط، مثل segmentation المثيل و تقدير الوضعية.

استكشف نماذج أخرى

إذا كنت مهتمًا بإجراء المزيد من المقارنات أو استكشاف بنى مختلفة، فضع في اعتبارك هذه الموارد:


تعليقات