YOLOv10 ضد YOLOX: مقارنة فنية
في المشهد سريع التطور في مجال الرؤية الحاسوبية، يعد اختيار النموذج الصحيح لاكتشاف الأجسام أمرًا بالغ الأهمية لتحقيق التوازن بين الأداء والكفاءة وسهولة النشر. تستكشف هذه المقارنة التقنية الاختلافات بين YOLOv10وهو أحدث كاشف شامل في الوقت الحقيقي من جامعة تسينغهوا، و YOLOX، وهو نموذج مرموق خالٍ من الارتكاز من شركة Megvii.
في حين أن YOLOX قدمت ابتكارات كبيرة في عام 2021 فيما يتعلق بآليات detect الخالية من anchor، فإن YOLOv10 يمثل أحدث ما توصلت إليه التكنولوجيا في عام 2024، حيث يقدم استدلالًا خاليًا من NMS وتكاملًا أكثر إحكامًا مع النظام البيئي Ultralytics.
YOLOv10: كشف شامل في الوقت الفعلي
تهدف YOLOv10 إلى سد الفجوة بين كفاءة ما بعد المعالجة وهندسة النموذج. من خلال تقديم إستراتيجية تعيين مزدوجة متسقة للتدريب بدون NMS، فإنه يلغي الحاجة إلى Non-Maximum Suppression (NMS) أثناء الاستدلال، مما يقلل بشكل كبير من زمن الوصول.
تفاصيل فنية:
- المؤلفون: Ao Wang, Hui Chen, Lihao Liu، وآخرون.
- المؤسسة:جامعة تسينغ - هوا
- التاريخ: 2024-05-23
- Arxiv:arXiv:2405.14458
- GitHub:THU-MIG/yolov10
الهيكلة ونقاط القوة
تعتمد YOLOv10 على نقاط القوة في أجيال YOLO السابقة ولكنها تعمل على تحسين الهندسة المعمارية لتحقيق الكفاءة والدقة. وهي تستخدم تصميم نموذج شامل يتضمن رؤوس تصنيف خفيفة الوزن وتقليل أخذ العينات المترابط مكانيًا وقنواتيًا.
- الاستدلال بدون NMS: إن إزالة NMS يغير قواعد اللعبة لتطبيقات الاستدلال في الوقت الفعلي، مما يضمن زمن انتقال يمكن التنبؤ به وتقليل حمل CPU الزائد على الأجهزة الطرفية.
- توازن الكفاءة والدقة: تحقق YOLOv10 أداءً حديثًا مع عدد أقل من المعلمات و FLOPs مقارنة بأسلافها ومنافسيها.
- دمج Ultralytics: بدعم كامل من قبل
ultralyticsالحزمة تعني استفادة المستخدمين من نظام موحد Python API، تصدير سلس إلى تنسيقات مثل TensorRT و OpenVINO، ووثائق شاملة.
ميزة النظام البيئي
يوفر دمج YOLOv10 في نظام Ultralytics البيئي وصولاً فوريًا إلى الميزات المتقدمة مثل الترميز التلقائي و التدريب السحابي ومجتمع قوي للدعم.
نقاط الضعف
- بنية أحدث: باعتباره إصدار 2024، فإن النظام البيئي للبرامج التعليمية الخارجية ينمو بسرعة ولكنه قد لا يضاهي حجم النماذج القديمة.
YOLOX: الرائد الخالي من الـ Anchor
تحول YOLOX، الذي تم إصداره في عام 2021، إلى آلية خالية من المرساة ورؤوس منفصلة، مما أدى إلى الابتعاد عن الأساليب القائمة على المرساة في YOLOv4 و YOLOv5. وهو يستخدم SimOTA (Simplified Optimal Transport Assignment) لتعيين التسميات، والتي كانت خطوة كبيرة إلى الأمام في استراتيجيات تعيين التسميات الديناميكية.
تفاصيل فنية:
- المؤلفون: تشنغ قه، سونغتاو ليو، فنغ وانغ، زيمينغ لي، وجيان صن
- المؤسسة:Megvii
- التاريخ: 2021-07-18
- Arxiv:arXiv:2107.08430
- GitHub:Megvii-BaseDetection/YOLOX
الهيكلة ونقاط القوة
تظل YOLOX خط أساس قوي في مجتمع البحث نظرًا لتصميمها النظيف الخالي من المرساة.
- آلية خالية من المرتكزات (Anchor-Free Mechanism): من خلال إزالة مربعات الارتكاز المحددة مسبقًا، يقلل YOLOX من تعقيد التصميم وعدد المعلمات الفائقة التي تتطلب الضبط.
- رأس غير مقترن: أدى فصل مهام التصنيف والتوطين إلى تحسين سرعة التقارب والدقة مقارنة بتصميمات الرأس المقترنة الأقدم.
- خط أساس قوي: إنه بمثابة معيار موثوق للبحث الأكاديمي في رؤوس الكشف واستراتيجيات التعيين.
نقاط الضعف
- سرعة الاستدلال: على الرغم من كفاءة YOLOX في وقته، إلا أنه يتخلف عمومًا عن النماذج الأحدث مثل YOLOv10 و YOLO11 من حيث سرعة الاستدلال الخام، خاصةً عند احتساب وقت NMS.
- سير عمل مجزأ: على عكس نماذج Ultralytics، غالبًا ما يتطلب YOLOX قاعدة التعليمات البرمجية وإعداد البيئة الخاصة به، ويفتقر إلى الواجهة الموحدة لـ التدريب والتحقق من الصحة والنشر الموجودة في الأطر الحديثة.
- كثافة الموارد: عدد FLOPs والمعلمات أعلى لمستويات دقة مماثلة مقارنة بالهياكل الحديثة الفعالة.
تحليل الأداء
تسلط المقارنة أدناه الضوء على التطورات الكبيرة التي تم إحرازها في الكفاءة والدقة على مدى السنوات الثلاث التي تفصل بين هذه النماذج. تركز المقاييس على حجم النموذج (المعلمات) والتكلفة الحسابية (FLOPs) والدقة (mAP) على مجموعة بيانات COCO.
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
ملاحظات نقدية
- الدقة مقابل الحجم: يقدم YOLOv10 باستمرار mAP أعلى مع عدد أقل من المعلمات. على سبيل المثال، يحقق YOLOv10s قيمة 46.7 mAP مع 7.2 مليون معلمة فقط، في حين أن YOLOXs يحقق 40.5 mAP مع 9.0 مليون معلمة. وهذا يدل على الكفاءة المعمارية الفائقة لـ YOLOv10.
- كفاءة الحوسبة: عدد FLOPs لنماذج YOLOv10 أقل بكثير. يعمل YOLOv10x بسرعة 160.4B FLOPs مقارنة بـ 281.9B FLOPs الضخمة لـ YOLOXx، مع الاستمرار في التفوق عليه في الدقة (54.4 مقابل 51.1 mAP).
- سرعة الاستدلال: يسمح إزالة NMS والهندسة المعمارية المحسّنة لـ YOLOv10 بتحقيق زمن انتقال أقل. تُظهر معايير T4 TensorRT أن YOLOv10x يعمل بسرعة 12.2 مللي ثانية، وهي أسرع بكثير من YOLOXx بسرعة 16.1 مللي ثانية.
حالات الاستخدام المثالية
YOLOv10: المعيار العصري
YOLOv10 هو الخيار المفضل لمعظم مشاريع التطوير الجديدة، وخاصة تلك التي تتطلب:
- نشر الذكاء الاصطناعي المتطور: إن البصمة الصغيرة للذاكرة والكفاءة العالية تجعله مثاليًا للأجهزة مثل Raspberry Pi أو NVIDIA Jetson.
- تطبيقات في الوقت الفعلي: الأنظمة التي تتطلب استجابة فورية، مثل القيادة الذاتية والروبوتات و تحليلات الفيديو، تستفيد من زمن الوصول المنخفض الخالي من NMS.
- تطوير سريع: يتيح النظام البيئي لـ Ultralytics إمكانية التنفيذ السريع إدارة مجموعة البيانات، والتدريب، والنشر عبر
ultralytics.
YOLOX: الإرث والبحث
تظل YOLOX ذات صلة بما يلي:
- البحث الأكاديمي: غالبًا ما يستخدم الباحثون الذين يدرسون تطور الكاشفات الخالية من المرساة أو استراتيجيات تعيين التسميات المحددة مثل SimOTA، YOLOX كخط أساس.
- الأنظمة القديمة: قد تستمر خطوط الإنتاج الحالية المحسّنة بالفعل لـ YOLOX في استخدامها حيث تفوق تكاليف الترقية مكاسب الأداء.
استخدام YOLOv10 مع Ultralytics
تتمثل إحدى أهم مزايا YOLOv10 في سهولة استخدامه. تعمل واجهة Ultralytics Python API على تبسيط سير العمل بأكمله، بدءًا من تحميل الأوزان المدربة مسبقًا وحتى التدريب على البيانات المخصصة.
فيما يلي مثال على كيفية تشغيل التنبؤات وتدريب نموذج YOLOv10:
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg")
# Train the model on a custom dataset (COCO format)
model.train(data="coco8.yaml", epochs=100, imgsz=640)
كفاءة التدريب
تشتهر نماذج Ultralytics YOLO بـ كفاءة التدريب، وغالبًا ما تتطلب ذاكرة CUDA أقل من البنى القديمة أو النماذج القائمة على المحولات. يتيح ذلك تدريب دفعات أكبر على وحدات معالجة الرسومات (GPUs) الاستهلاكية القياسية.
الخلاصة
في حين أن YOLOX لعبت دورًا محوريًا في نشر الكشف الخالي من المرساة، فإن YOLOv10 تمثل القفزة التالية إلى الأمام في تكنولوجيا رؤية الكمبيوتر. بفضل بنيتها الخالية من NMS، ونسبة الدقة إلى الحساب الفائقة، والتكامل السلس في نظام Ultralytics البيئي القوي، تقدم YOLOv10 حزمة مقنعة للمطورين والباحثين على حد سواء.
بالنسبة لأولئك الذين يتطلعون إلى نشر object detection المتطور، يوفر YOLOv10 السرعة والدقة اللازمتين. قد يفكر المطورون المهتمون بقدرات أوسع، مثل تقدير الوضع أو مربعات الإحاطة الموجهة، أيضًا في استكشاف YOLO11 متعدد الاستخدامات أو YOLOv8 المعتمد على نطاق واسع.