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

YOLOv10 ضد YOLOv9: مقارنة فنية شاملة

لقد تطور مشهد اكتشاف الأجسام بسرعة، مع دفع التكرارات المتتالية لتصميم YOLO (You Only Look Once) حدود السرعة والدقة. من أهم المساهمات الحديثة في هذا المجال YOLOv10 و YOLOv9. في حين أن كلا النموذجين يحققان أداءً حديثًا على مجموعة بيانات COCO، إلا أنهما يختلفان اختلافًا كبيرًا في فلسفات التصميم والأهداف المعمارية.

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

YOLOv10: الكاشف الشامل في الوقت الفعلي

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

تفاصيل فنية:

الهندسة المعمارية والابتكارات الرئيسية

تحقق YOLOv10 كفاءتها من خلال الجمع بين تعيينات مزدوجة متسقة و تصميم نموذج شامل مدفوع بالكفاءة والدقة.

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

ميزة الكفاءة

تعتبر إزالة NMS في YOLOv10 مفيدة بشكل خاص للنشر على الحافة. على الأجهزة التي تكون فيها موارد وحدة المعالجة المركزية نادرة، يمكن أن يؤدي تجنب التكلفة الحسابية لفرز وتصفية آلاف مربعات المرشحين إلى تسريع كبير.

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

YOLOv9: إتقان الاحتفاظ بالمعلومات

تم تقديم YOLOv9 في فبراير 2024 بواسطة Chien-Yao Wang و Hong-Yuan Mark Liao، ويستهدف مشكلة "عنق الزجاجة المعلوماتي" المتأصلة في الشبكات العصبية العميقة. عندما تمر البيانات عبر الطبقات المتتالية (استخراج الميزات)، يمكن فقدان المعلومات الهامة، مما يؤدي إلى تدهور الدقة، خاصة بالنسبة للكائنات الصغيرة أو التي يصعب اكتشافها.

تفاصيل فنية:

الهندسة المعمارية والابتكارات الرئيسية

يقدم YOLOv9 مفاهيم جديدة لضمان احتفاظ الشبكة بأكبر قدر ممكن من معلومات الإدخال واستخدامها.

  1. معلومات التدرج القابلة للبرمجة (PGI): يوفر PGI إطار إشراف مساعد يولد تدرجات موثوقة لتحديث أوزان الشبكة. هذا يضمن حصول الطبقات العميقة على معلومات إدخال كاملة، مما يخفف من مشكلة التدرج المتلاشي ويحسن التقارب.
  2. شبكة تجميع الطبقات الفعالة المعممة (GELAN): تحل هذه البنية الجديدة محل ELAN التقليدية المستخدمة في الإصدارات السابقة. تعمل GELAN على تحسين استخدام البارامترات والكفاءة الحسابية (FLOPs)، مما يسمح لـ YOLOv9 بتحقيق دقة أعلى مع حجم نموذج مماثل للإصدارات السابقة.

نظرة معمقة في التعلم العميق

إن تركيز YOLOv9 على الاحتفاظ بالمعلومات يجعله قويًا بشكل استثنائي في detect الأجسام في المشاهد المعقدة حيث قد تضيع تفاصيل الميزات أثناء عمليات downsampling في العمود الفقري.

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

مقاييس الأداء: السرعة مقابل الدقة

غالبًا ما يعتمد الاختيار بين هذين النموذجين على المفاضلة بين سرعة الاستدلال الخام ودقة الـ detect. يسلط الجدول أدناه الضوء على اختلافات الأداء عبر مقاييس النماذج المختلفة.

التحليل:

  • زمن الوصول: يتفوق YOLOv10 باستمرار على YOLOv9 في زمن الوصول، خاصة في أحجام النماذج الأصغر (N و S). على سبيل المثال، يحقق YOLOv10n سرعة استدلال تبلغ 1.56 مللي ثانية على TensorRT، وهي أسرع بكثير من النماذج المماثلة.
  • الدقة: يتفوق YOLOv9 في الدقة في الطرف الأعلى من الطيف. يحقق نموذج YOLOv9e نسبة 55.6% mAP ملحوظة، مما يجعله الخيار الأفضل للتطبيقات التي تكون فيها الدقة ذات أهمية قصوى.
  • الكفاءة: يوفر YOLOv10 دقة ممتازة لكل معلمة. يحقق YOLOv10b نسبة 52.7٪ mAP مع زمن وصول أقل من YOLOv9c، مما يدل على فعالية تصميمه الشامل.
النموذجالحجم
(بالبكسل)
mAPval
50-95
السرعة
وحدة المعالجة المركزية CPU ONNX
(بالمللي ثانية)
السرعة
T4 TensorRT10
(بالمللي ثانية)
المعلمات
(M)
FLOPs
(B)
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
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0

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

يساعد فهم نقاط قوة كل نموذج في اختيار الأداة المناسبة لأهداف مشروعك المحددة.

متى تختار YOLOv10

  • نشر الذكاء الاصطناعي المتطور: تستفيد التطبيقات التي تعمل على أجهزة مثل NVIDIA Jetson أو Raspberry Pi من تصميم NMS الخالي، مما يقلل من حمل CPU.
  • تحليل الفيديو عالي التردد: السيناريوهات التي تتطلب معالجة تدفقات الفيديو عالية FPS، مثل مراقبة حركة المرور أو تحليلات الرياضة.
  • الروبوتات في الوقت الفعلي: الأنظمة المستقلة التي تعتمد على حلقات التغذية الراجعة منخفضة زمن الوصول للملاحة و تجنب العوائق.

متى تختار YOLOv9

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

الاستخدام مع Ultralytics

تتمثل إحدى المزايا الهامة لاستخدام هذه النماذج في دمجها في نظام Ultralytics البيئي. يمكن استخدام كل من YOLOv10 و YOLOv9 عبر نفس واجهة برمجة تطبيقات Python الموحدة وواجهة سطر الأوامر (CLI)، مما يبسط سير العمل من التدريب إلى النشر.

مثال python

يوضح الكود التالي كيفية تحميل وتشغيل الاستدلال مع كلا النموذجين باستخدام ultralytics .

from ultralytics import YOLO

# Load a YOLOv10 model (NMS-free, high speed)
model_v10 = YOLO("yolov10n.pt")

# Load a YOLOv9 model (High accuracy)
model_v9 = YOLO("yolov9c.pt")

# Run inference on an image
# The API remains consistent regardless of the underlying architecture
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v9 = model_v9("https://ultralytics.com/images/bus.jpg")

# Print results
for r in results_v10:
    print(f"YOLOv10 Detections: {r.boxes.shape[0]}")

for r in results_v9:
    print(f"YOLOv9 Detections: {r.boxes.shape[0]}")

ميزة Ultralytics

يوفر اختيار Ultralytics لمشاريع رؤية الكمبيوتر الخاصة بك العديد من المزايا تتجاوز مجرد بنية النموذج:

  • سهولة الاستخدام: تتيح لك API سهلة الاستخدام التبديل بين YOLOv9 و YOLOv10 ونماذج أخرى مثل YOLO11 ببساطة عن طريق تغيير اسم ملف الأوزان.
  • موازنة الأداء: تم تحسين تطبيقات Ultralytics للأداء الواقعي، مع تحقيق التوازن بين السرعة والدقة.
  • كفاءة التدريب: يدعم الإطار ميزات مثل الدقة المختلطة التلقائية (AMP) والتدريب متعدد وحدات معالجة الرسوميات (multi-GPU)، مما يسهل تدريب النماذج المخصصة على مجموعات البيانات الخاصة بك.
  • متطلبات الذاكرة: تُظهر نماذج Ultralytics عادةً استخدامًا أقل للذاكرة مقارنةً بالبدائل القائمة على المحولات، مما يسهل التدريب على وحدات معالجة الرسومات GPUs الاستهلاكية.

الخلاصة

يمثل كل من YOLOv10 و YOLOv9 علامات بارزة في اكتشاف الكائنات. YOLOv10 هو الفائز الواضح للتطبيقات التي تعطي الأولوية للسرعة والكفاءة، وذلك بفضل بنيته المبتكرة الخالية من NMS. في المقابل، يظل YOLOv9 خيارًا قويًا للسيناريوهات التي تتطلب أعلى دقة ممكنة والاحتفاظ بالمعلومات.

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

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

  • Ultralytics YOLO11 - أحدث نموذج على أحدث طراز.
  • Ultralytics YOLOv8 - نموذج متعدد الاستخدامات وناضج لمهام الرؤية المختلفة.
  • RT-DETR - كاشف قائم على المحولات للتطبيقات عالية الدقة.

تعليقات