YOLOv10 مقابل YOLOX#
مجال الرؤية الحاسوبية مدفوع بالتطورات السريعة في هندسة كشف الكائنات في الوقت الفعلي. تستكشف هذه المقارنة التقنية التفصيلية نموذجين مؤثرين دفعا حدود الكفاءة ونماذج التصميم: YOLOv10 و YOLOX. من خلال فحص الاختلافات الهندسية ومقاييس الأداء ومنهجيات التدريب، يمكن للمطورين والباحثين اتخاذ قرارات مستنيرة لنشر أنظمة رؤية قوية.
خلفيات ونشأة النماذج#
إن فهم نشأة نماذج التعلم العميق هذه يوفر سياقاً قيماً فيما يتعلق بأهدافها الهندسية وحالات الاستخدام المستهدفة.
YOLOv10: التخلص من NMS للكشف الشامل الحقيقي#
تم تطوير YOLOv10 لحل اختناقات زمن الوصول الطويلة، حيث قدم نهجاً شاملاً أصلياً لعائلة YOLO.
- المؤلفون: Ao Wang و Hui Chen و Lihao Liu، وآخرون.
- المنظمة: Tsinghua University
- التاريخ: 23 مايو 2024
- ArXiv: 2405.14458
- GitHub: THU-MIG/yolov10
- Docs: Ultralytics YOLOv10 Documentation
YOLOX: سد الفجوة بين البحث والصناعة#
برز YOLOX كنسخة خالية من الـ anchor لتصميم YOLO التقليدي، مما يوفر منهجية أبسط مع أداء تنافسي، ويستهدف بشكل خاص تسهيل النشر في المجتمعات الصناعية.
- المؤلفون: Zheng Ge، وSongtao Liu، وFeng Wang، وZeming Li، وJian Sun
- Organization: Megvii
- التاريخ: 18 يوليو 2021
- ArXiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
- المستندات: YOLOX Official Documentation
أبرز المعالم والابتكارات الهندسية#
يختلف كلا الإطارين عن أجهزة الكشف التقليدية القائمة على الـ anchor، لكنهما يحلان مشكلات مختلفة في خط أنابيب كشف الكائنات.
هندسة YOLOX#
قدم YOLOX العديد من التحديثات الحاسمة للنظام البيئي في عام 2021. كانت مساهمته الأساسية هي التحول إلى تصميم كاشف خالٍ من الـ anchor. من خلال القضاء على صناديق الـ anchor المحددة مسبقاً، قلل YOLOX بشكل كبير من عدد معلمات التصميم والضبط الاستدلالي المطلوب لمجموعات البيانات المختلفة.
علاوة على ذلك، توظف YOLOX رأسًا منفصلاً (decoupled head)، مما يفصل بين مهام التحديد والتصنيف. وقد أدى هذا إلى حل التعارض بين الهدفين، مما أدى إلى تسريع التقارب بشكل ملحوظ أثناء التدريب. كما أنها تستخدم SimOTA لتخصيص التسميات بشكل متقدم، مما يحسن التعامل مع المشاهد المزدحمة وحالات التداخل الشائعة في COCO dataset.
التصاميم الخالية من الـ anchor، مثل تلك التي رادها YOLOX، تقلل بشكل كبير من تعقيد ضبط النموذج. لم يعد المطورون بحاجة إلى إجراء k-means clustering على مجموعات بيانات مخصصة لتحديد أحجام صناديق الـ anchor المثالية، مما يوفر وقت إعداد ثميناً.
بنية YOLOv10#
بينما قام YOLOX بتحسين رأس الكشف، إلا أنه لا يزال يعتمد على كبت الحد الأقصى غير (NMS) أثناء الاستدلال، مما يسبب تباين في زمن الوصول. استهدف YOLOv10 هذا الخلل تحديداً من خلال تقديم استراتيجية تخصيص مزدوج ثابت للتدريب الخالي من NMS. أثناء التدريب، يستخدم تخصيصات تسمية من واحد إلى متعدد ومن واحد إلى واحد، ولكن أثناء الاستدلال، يقوم بإسقاط رأس من واحد إلى متعدد تماماً، مما يخرج تنبؤات نظيفة بدون معالجة لاحقة بواسطة NMS.
يتميز YOLOv10 أيضاً بتصميم نموذج شامل يعتمد على كفاءة الدقة. فهو يدمج رؤوس تصنيف خفيفة الوزن وتقليل أخذ العينات المفكك للمساحة والقناة، مما يقلل بشكل كبير من عدد المعلمات و FLOPs دون التضحية بالدقة.
مقارنة الأداء#
يكشف تقييم هذه النماذج على أجهزة مثل NVIDIA T4 GPU عن مزايا مميزة اعتماداً على الحجم. أدناه جدول المقارنة الشامل.
| النموذج | الحجم (بكسل) | mAPval 50-95 | السرعة CPU ONNX (ms) | السرعة T4 TensorRT10 (ms) | المعلمات (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 بقدرة استثنائية على القياس. يحقق متغير YOLOv10x أعلى دقة (54.4 mAP)، بينما يوفر متغير YOLOv10n أسرع استنتاج باستخدام تكامل TensorRT. في المقابل، يتميز نموذج YOLOX nano القديم بأصغر بصمة إجمالية للبيئات المقيدة بشدة.
منهجيات التدريب ومتطلبات الموارد#
عند تنفيذ النماذج للإنتاج، تكون بيئة التدريب ومتطلبات الموارد حاسمة تماماً مثل سرعة الاستدلال الخام.
غالباً ما يعتمد YOLOX على تكوينات بيئة قديمة يمكن أن تكون مرهقة للإدارة. علاوة على ذلك، تتطلب قاعدة الكود القديمة الخاصة به المزيد من الكود المكرر لتحقيق تدريب موزع عبر وحدات معالجة رسومات متعددة أو تحسين الدقة المختلطة.
في المقابل، يتكامل YOLOv10 بسلاسة مع سير عمل PyTorch الحديث، ولكن نظام Ultralytics البيئي هو الذي يغير تجربة المطور حقًا. تتميز نماذج Ultralytics بانخفاض ملحوظ في استخدام ذاكرة CUDA أثناء التدريب مقارنة بالهניות القائمة على المحولات مثل RT-DETR.
مثال برمجي: تدريب مبسط#
باستخدام واجهة برمجة تطبيقات Ultralytics الموحدة، يمكنك تدريب أحدث النماذج بسلاسة في بضعة أسطر فقط من Python. هذا يتجنب التجميع اليدوي لمشغلات C++ أو ملفات التكوين المعقدة.
from ultralytics import YOLO
# Initialize a pre-trained YOLOv10 model
model = YOLO("yolov10s.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model's performance
metrics = model.val()
# Export the optimized model to ONNX format
model.export(format="onnx")يوفر هذا بناء الجملة البسيط وصولاً فوريًا إلى الدقة المختلطة التلقائية، وزيادة البيانات التلقائية، والتكامل مع أدوات مثل Weights & Biases بشكل جاهز.
حالات الاستخدام والتوصيات#
يعتمد الاختيار بين YOLOv10 و YOLOX على متطلبات مشروعك المحددة وقيود النشر وتفضيلات النظام البيئي.
متى تختار YOLOv10#
يعد YOLOv10 خياراً قوياً لـ:
- الكشف الفوري بدون NMS: التطبيقات التي تستفيد من الكشف الشامل (end-to-end) بدون تقنية Non-Maximum Suppression، مما يقلل من تعقيد النشر.
- الموازنة بين السرعة والدقة: المشاريع التي تتطلب توازناً قوياً بين سرعة الاستدلال ودقة الكشف عبر مختلف أحجام النماذج.
- تبيقات ذات زمن استجابة ثابت: سيناريوهات النشر التي تكون فيها أوقات الاستدلال المتوقعة حرجة، مثل robotics أو الأنظمة المستقلة.
متى تختار YOLOX#
يوصى باستخدام YOLOX لـ:
- أبحاث الكشف بدون نقاط ارتكاز: البحث الأكاديمي الذي يستخدم بنية YOLOX النظيفة والخالية من نقاط الارتكاز كخط أساس لتجربة رؤوس كشف جديدة أو دوال خسارة مبتكرة.
- أجهزة الحافة خفيفة الوزن للغاية: النشر على وحدات التحكم الدقيقة أو أجهزة الجوال القديمة حيث يكون البصمة الصغيرة جداً لمتغير YOLOX-Nano (0.91 مليون معلمة) أمراً بالغ الأهمية.
- دراسات تخصيص التصنيفات SimOTA: المشاريع البحثية التي تبحث في استراتيجيات تخصيص التصنيفات القائمة على النقل الأمثل وتأثيرها على تقارب التدريب.
متى تختار Ultralytics (YOLO26)#
بالنسبة لمعظم المشاريع الجديدة، يقدم Ultralytics YOLO26 أفضل مزيج من الأداء وتجربة المطورين:
- نشر الحافة الخالي من NMS: التطبيقات التي تتطلب استنتاجاً متسقاً ومنخفض زمن الانتقال دون تعقيدات معالجة ما بعد المعالجة باستخدام كبت غير الأقصى.
- بيئات وحدة المعالجة المركزية (CPU) فقط: الأجهزة التي لا تحتوي على تسريع مخصص بوحدة معالجة الرسوميات (GPU)، حيث توفر سرعة استنتاج CPU أسرع بنسبة تصل إلى 43% في YOLO26 ميزة حاسمة.
- الكشف عن الأشياء الصغيرة: السيناريوهات الصعبة مثل صور الطائرات بدون طيار الجوية أو تحليل مستشعرات إنترنت الأشياء (IoT) حيث تعمل ProgLoss و STAL على تعزيز الدقة بشكل كبير على الأشياء الدقيقة.
مستقبل رؤية الذكاء الاصطناعي: أدخل YOLO26#
بينما يمثل YOLOv10 و YOLOX معالم رئيسية، فإن مشهد الرؤية الحاسوبية يتحرك بلا هوادة إلى الأمام. بالنسبة للمطورين الذين يبدأون مشاريع جديدة اليوم، فإن Ultralytics YOLO26 هو التوصية النهائية.
تم إطلاق Ultralytics YOLO26 في يناير 2026، وهو يبني على الإنجاز الأساسي المتمثل في التصميم الخالي من NMS الشامل الذي رياده YOLOv10، ليقوم بتحسينه لتحقيق قدر أكبر من الاستقرار والسرعة.
يتميز YOLO26 من خلال تقديم العديد من القفزات الهائلة إلى الأمام:
- أسرع بنسبة تصل إلى 43% في استدلال وحدة المعالجة المركزية (CPU): من خلال إزالة Distribution Focal Loss (DFL) استراتيجياً، يحقق YOLO26 أداءً متفوقاً بشكل كبير على أجهزة الحافة بدون وحدات معالجة رسومات (GPUs).
- مُحسِّن MuSGD: مستوحى من استقرار تدريب نماذج اللغة الكبيرة (LLM)، يضمن هذا الهجين الجديد من SGD و Muon تقارباً أسرع وتشغيل تدريب مستقر للغاية.
- ProgLoss + STAL: تحقق وظائف الخسارة المتقدمة هذه تحسينات ملحوظة في التعرف على الكائنات الصغيرة، وهو عامل حاسم للصور الجوية ومستشعرات IoT.
- تعدد استخدامات لا مثيل له: على عكس YOLOX، الذي يعد كاشف كائنات بشكل صارم، يدعم YOLO26 بشكل أصلي تجزئة المثيلات، وتقدير الوضعية، وتصنيف الصور، واكتشاف OBB ضمن مكتبة واحدة موحدة.
للحصول على أبسط طريق نحو الإنتاج، يمكن للمطورين استخدام منصة Ultralytics لتعليق مجموعات البيانات، وتدريب نماذج YOLO26 في السحابة، والنشر على أي جهاز طرفي دون الحاجة إلى أي إعداد.
تطبيقات العالم الحقيقي#
اختيار النموذج الصحيح يحدد نجاح عمليات النشر في العالم الحقيقي عبر مختلف الصناعات.
تحليلات الفيديو عالية السرعة#
لمعالجة تدفقات الفيديو الكثيفة، مثل إدارة حركة المرور في المدن الذكية، يوفر YOLOv10 ميزة كبيرة بسبب المعالجة اللاحقة الخالية من NMS. يتيح القضاء على عنق الزجاجة لـ NMS زمن الانتقال المنخفض والمتسق، مما يجعله مثاليًا للإقران بخوارزميات التتبع مثل BoT-SORT.
نشر الحافة القديم#
بالنسبة للإعدادات الأكاديمية القديمة أو تطبيقات Android القديمة المحسنة بشدة لنماذج التلافيف البحتة، قد تظل النماذج الأصغر مثل YOLOX-Tiny تجد حالات استخدام متخصصة حيث يكون الحفاظ على بيئات PyTorch القديمة مقايضة مقبولة.
أجهزة الحافة الحديثة و IoT#
لنشر الأجهزة من الجيل التالي، مثل الروبوتات، والطائرات بدون طيار، وتحليل رفوف التجزئة، يعد YOLO26 الحل الأسمى. إن زمن الانتقال المخفض بشكل كبير على وحدة المعالجة المركزية (CPU) والكشف المتفوق عن الكائنات الصغيرة يجعله مؤهلاً بشكل فريد للملاحة الذاتية وإدارة المخزون التفصيلية.
للحصول على مقارنات إضافية لتوسيع مجموعة أدوات التعلم العميق الخاصة بك، يمكنك أيضًا استكشاف كيف تقارن هذه النماذج بالبدائل مثل YOLO11 المرن أو RT-DETR المدعوم بالمحولات.