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

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

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

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

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

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

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

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

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

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

اعرف المزيد عن YOLOv7

YOLOv10: نهاية NMS

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

المؤلفون: Ao Wang, Hui Chen, Lihao Liu, et al.
منظمة جامعة تسينغهوا
التاريخ: 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 حيث يمكن أن تصبح المعالجة اللاحقة عنق الزجاجة.

النموذجالحجم
(بالبكسل)
mAPفال
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 بالاستدلال بسرعة فائقة، وهي مثالية للاستدلال في الوقت الحقيقي.
  • الكفاءة: يحقق دقة فائقة مع عدد أقل من المعلمات واستخدام أقل للذاكرة.
  • سهولة النشر: تؤدي إزالة خطوة NMS إلى تبسيط عملية التصدير إلى تنسيقات مثل ONNX و TensorRT.

نقاط ضعف YOLOv10 :

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

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

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

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

ميزة Ultralytics

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

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

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

مثال على الكود

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

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 يعتمد على الدروس المستفادة من كل من الإصدار 7 (تجميع الميزات) والإصدار 10 (الكفاءة).

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

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

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

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


تعليقات