مقارنة بين YOLOX و YOLOv6-3.0#
لقد تم تحديد تطور computer vision إلى حد كبير من خلال التقدم السريع في سلسلة YOLO. غالباً ما يتلخص اختيار العمارة المناسبة لنشرك في موازنة الإنتاجية الخام، والبساطة المعمارية، وكفاءة التدريب. وتتمثل علامتان بارزتان في هذه الرحلة في التركيز البحثي الخالي من المرابط لـ YOLOX والإنتاجية الصناعية المُحسّنة للغاية لـ YOLOv6-3.0.
تستعرض هذه المقارنة التقنية فروقها المعمارية، ومقاييس أَدائها، وحالات الاستخدام المثالية لها، مع تقديم إمكانيات الجيل التالي من Ultralytics YOLO26 للمطورين الباحثين عن الحل الأمثل لنشر النماذج على الحافة والسحابة.
YOLOX: الجسر بين البحث والصناعة#
تم تطوير YOLOX بواسطة باحثين في Megvii، وتم تقديمه كتحول كبير نحو تبسيط عمارة YOLO من خلال جعلها خالية تماماً من المرابط.
- المؤلفون: Zheng Ge، Songtao Liu، Feng Wang، Zeming Li، Jian Sun
- المؤسسة: Megvii
- التاريخ: 2021-07-18
- Arxiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
أبرز ميزات البنية#
نجحت YOLox في دمج تصميم خالٍ من المرابط في عائلة YOLO. ومن خلال القضاء على anchor boxes المُحددة مسبقاً، يُقلل النموذج بشكل كبير من عدد معاملات التصميم والضبط التجريبي المطلوب أثناء التدريب. وهذا يجعل YOLOX قابلة للتكيف بشكل كبير مع مجموعات البيانات المخصصة والمتنوعة دون إعادة حساب يدوية للمرابط.
علاوة على ذلك، قدمت YOLOX عمارة رأس مفصولة. ومن خلال فصل مهام التصنيف والانحدار إلى فرعين مختلفين، يَحل النماذج التضارب المتأصل بين تحديد ما هو الكائن وأين يوجد. ومقترنة باستراتيجية تعيين التسميات SimOTA، تحقق YOLOX تقارباً أسرع وتحسناً في mean average precision (mAP).
غالباً ما يكون أداء الكاشفات الخالية من المربعات المرجعية مثل YOLOX أفضل في مجموعات البيانات المخصصة ذات نسب العرض إلى الارتفاع غير المعتادة للكائنات، لأنها لا تعتمد على مسبقات مربعات الإحاطة الثابتة التي قد لا تتوافق مع البيانات الجديدة.
YOLOv6-3.0: الثقل الصناعي#
تم تطوير YOLOv6-3.0 بواسطة قسم الذكاء الاصطناعي للرؤية في Meituan، وقد تم تصميمه هندسياً دون اعتذار لتحقيق أقصى إنتاجية صناعية، لا سيما على وحدات معالجة الرسومات من NVIDIA باستخدام مسرعات الأجهزة مثل TensorRT.
- المؤلفون: Chuyi Li, Lulu Li, Yifei Geng، وآخرون.
- المنظمة: Meituan
- التاريخ: 2023-01-13
- Arxiv: 2301.05586
- GitHub: meituan/YOLOv6
التحسين من أجل النشر#
تركز YOLOv6-3.0 على تعظيم استخدام GPU. وهي تقدم وحدة ربط ثنائي الاتجاه (BiC) في العنق لتحسين دمج الميزات مع الحفاظ على سرعات استدلال عالية. وبينما تكون مرحلة الاستدلال خالية تماماً من المرابط، تستخدم YOLOv6-3.0 استراتيجية تدريب مساعدة بالمرابط (AAT) للاستفادة من الثبات القائم على المرابط أثناء مرحلة التدريب.
تم بناء العمود الفقري للنموذج باستخدام بنية EfficientRep الملائمة للأجهزة، والتي صُممت عمداً لتقليل تكاليف الوصول إلى الذاكرة وزيادة الكثافة الحسابية على المسرعات الحديثة. وهذا يجعل YOLOv6 مرشحاً قوياً بشكل استثنائي لتحليلات الفيديو من جانب الخادم.
مقارنة الأداء#
عند مقارنة هذه النماذج، يجب على المطورين الموازنة بين الدقة الخام وسرعة الاستنتاج وعدد المعاملات. يبرز الجدول التالي أداء كلتا عائلتي النماذج عبر أحجام مختلفة.
| النموذج | الحجم (بكسل) | mAPval 50-95 | السرعة CPU ONNX (ms) | السرعة T4 TensorRT10 (ms) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
بينما يُظهر YOLOv6-3.0 دقة mAP فائقة وسرعات TensorRT ممتازة للإصدارات الأكبر، تظل YOLOX تنافسية للغاية بسبب بساطتها وأدائها القوي على الأجهزة القديمة.
حالات الاستخدام والتوصيات#
يعتمد الاختيار بين YOLOX و YOLOv6 على متطلبات مشروعك المحددة، وقيود النشر، وتفضيلات النظام البيئي.
متى تختار YOLOX#
يعد YOLOX خياراً قوياً لـ:
- أبحاث الكشف بدون نقاط ارتكاز: البحث الأكاديمي الذي يستخدم بنية YOLOX النظيفة والخالية من نقاط الارتكاز كخط أساس لتجربة رؤوس كشف جديدة أو دوال خسارة مبتكرة.
- أجهزة الحافة خفيفة الوزن للغاية: النشر على وحدات التحكم الدقيقة أو أجهزة الجوال القديمة حيث يكون البصمة الصغيرة جداً لمتغير YOLOX-Nano (0.91 مليون معلمة) أمراً بالغ الأهمية.
- دراسات تخصيص التصنيفات SimOTA: المشاريع البحثية التي تبحث في استراتيجيات تخصيص التصنيفات القائمة على النقل الأمثل وتأثيرها على تقارب التدريب.
متى تختار YOLOv6#
يوصى بـ YOLOv6 لـ:
- النشر المدرك للأجهزة الصناعية: السيناريوهات التي يوفر فيها التصميم المدرك للأجهزة وإعادة تحديد المعلمات الفعال للنموذج أداءً محسناً على أجهزة مستهدفة محددة.
- الكشف السريع في مرحلة واحدة: التطبيقات التي تعطي الأولوية لسرعة الاستدلال الخام على GPU لمعالجة الفيديو الفوري في بيئات خاضعة للتحكم.
- تكامل النظام البيئي لـ Meituan: الفرق التي تعمل بالفعل ضمن حزمة التكنولوجيا والبنية التحتية للنشر الخاصة بـ Meituan.
متى تختار Ultralytics (YOLO26)#
بالنسبة لمعظم المشاريع الجديدة، يقدم Ultralytics YOLO26 أفضل مزيج من الأداء وتجربة المطورين:
- نشر الحافة الخالي من NMS: التطبيقات التي تتطلب استنتاجاً متسقاً ومنخفض زمن الانتقال دون تعقيدات معالجة ما بعد المعالجة باستخدام كبت غير الأقصى.
- بيئات وحدة المعالجة المركزية (CPU) فقط: الأجهزة التي لا تحتوي على تسريع مخصص بوحدة معالجة الرسوميات (GPU)، حيث توفر سرعة استنتاج CPU أسرع بنسبة تصل إلى 43% في YOLO26 ميزة حاسمة.
- الكشف عن الأشياء الصغيرة: السيناريوهات الصعبة مثل صور الطائرات بدون طيار الجوية أو تحليل مستشعرات إنترنت الأشياء (IoT) حيث تعمل ProgLoss و STAL على تعزيز الدقة بشكل كبير على الأشياء الدقيقة.
ميزة Ultralytics#
بينما توفر كل من Megvii وMeituan مستودعات بحثية قوية، فإن نشر هذه النماذج في الإنتاج غالباً ما يتطلب عبئاً هندسياً كبيرًا. ويزيل Ultralytics ecosystem المدمج هذه العقبات من خلال توفير واجهة برمجة تطبيقات موحدة وموثقة بشكل شامل.
من خلال الاستفادة من حزمة Ultralytics، يحصل المطورون على تجربة مستخدم لا مثيل لها. يتضمن ذلك auto-augmentation المدمج، وإدارة الذاكرة بكفاءة عالية أثناء التدريب (مما يقلل بشكل كبير من متطلبات ذاكرة الفيديو مقارنة بنماذج المُحوِّلات مثل RTDETR)، وخطوط أنابيب تصدير سلسة إلى تنسيقات مثل ONNX وOpenVINO.
على عكس النماذج المتخصصة، فإن معماريات Ultralytics متعددة الاستخدامات بطبيعتها، حيث تدعم Object Detection وInstance Segmentation وPose Estimation وتصنيف الصور وOriented Bounding Boxes (OBB) بشكل جاهز للاستخدام.
تقديم YOLO26: الحل الأمثل للحافة (Edge)#
بالنسبة للفرق التي تبدأ مشاريع رؤية حاسوبية جديدة، نوصي بشدة بالترقية إلى Ultralytics YOLO26 المُصدر حديثاً. بناءً على نجاحات YOLO11 وYOLOv8، تقدم YOLO26 ابتكارات تُغير قواعد اللعبة:
- تصميم نهائي خالٍ من NMS: تم استكشافه لأول مرة في YOLOv10، وتزيل YOLO26 أصلاً الحاجة إلى معالجة ما بعد Non-Maximum Suppression (NMS). يضمن هذا استدلالاً حتمياً ومنخفض الكمون للغاية وهو أمر بالغ الأهمية لعوبتيات الزمن الحقيقي.
- محسن MuSGD: مستوحى من تقنيات تدريب النماذج اللغوية الكبيرة (LLM) مثل Kimi K2 من Moonshot AI، يستخدم YOLO26 محسن MuSGD (هجين من SGD و Muon) لتحقيق ديناميكيات تدريب مستقرة بشكل لا يصدق وتقارب أسرع.
- استدلال أسرع على وحدة المعالجة المركزية بنسبة تصل إلى 43%: من خلال إزالة فقد توزيع البؤرة (DFL) وتبسيط رأس الشبكة، تم تحسين YOLO26 بشكل كبير للأجهزة الطرفية التي تعتمد على CPU execution، متفوقة بشكل كبير على YOLOv6 في سيناريوهات الحافة.
- ProgLoss + STAL: تقدم صياغات الفقد المتقدمة هذه تحسينات ملحوظة في small object detection، مما يجعل YOLO26 مثالية للتصوير الجوي وفحص العيوب المجهرية.
مثال على التدريب الموحد#
باستخدام واجهة برمجة تطبيقات Python الخاصة بـ Ultralytics، يتطلب تدريب أحدث النماذج بضعة أسطر فقط من التعليمات البرمجية. تنطبق نفس الواجهة النظيفة سواء كنت تختبر نموذج YOLO قديماً أو تنشر إطار عمل YOLO26 المتطور.
from ultralytics import YOLO
# Load the next-generation YOLO26 model (NMS-free, optimized for edge)
model = YOLO("yolo26n.pt")
# Train the model on the COCO8 dataset
# The ecosystem handles downloading, caching, and auto-batching natively
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model and print mAP metrics
metrics = model.val()
print(f"Validation mAP50-95: {metrics.box.map}")
# Export the model for edge deployment
model.export(format="onnx")للحصول على تجربة أكثر سلاسة، قم بإدارة مجموعات البيانات الخاصة بك، وتتبع التجارب، وتدريب النماذج في السحابة باستخدام Ultralytics Platform الخالي من التعليمات البرمجية.
توصيات حالة الاستخدام#
عند اتخاذ قرار بشأن هذه البنى، ضع في اعتبارك قيود الأجهزة ومتطلبات مشروعك المحددة:
- اختر YOLOX إذا كنت تجري بحثاً أكاديمياً حول استراتيجيات تعيين التسميات أو تحتاج إلى أساس نقي وسهل الفهم وخالٍ من المربعات المرجعية لإجراء تعديلات معمارية مخصصة.
- اختر YOLOv6-3.0 إذا كنت تقوم بالنشر على خادم صناعي مزود بوحدات معالجة رسومات NVIDIA متطورة (مثل A100 أو T4) حيث يمكنك استخدام أحجام دفعات (batch sizes) كبيرة وتحسينات TensorRT لمعالجة مئات تدفقات الفيديو في وقت واحد.
- اختر YOLO26 للغالبية العظمى من التطبيقات الحديثة. إذا كنت تبني تطبيقات Edge AI لأجهزة إنترنت الأشياء أو الطائرات بدون طيار أو الهواتف المحمولة، فإن تصميم YOLO26 الخالي من NMS، وتحسينات وحدة المعالجة المركزية، ودعم النظام البيئي الشامل يجعلها الخيار الأفضل بلا منازع لسد الفجوة بين التدريب والإنتاج.