Meituan YOLOv6#
نظرة عامة#
يقدم نموذج Meituan YOLOv6، الذي تم إصداره في عام 2022، توازناً قوياً بين السرعة والدقة، مما يجعله خياراً شائعاً للتطبيقات في الوقت الفعلي. يقدم هذا النموذج عدة تحسينات بارزة على بنيته ونمط تدريبه، بما في ذلك تنفيذ وحدة الدمج ثنائي الاتجاه (BiC)، واستراتيجية التدريب المدعومة بالمرساة (AAT)، وتصميم محسّن للـ backbone والرقبة (neck) لتحقيق دقة عالية على COCO dataset.
نظرة عامة على YOLOv6. مخطط بنية النموذج يوضح مكونات الشبكة المعاد تصميمها واستراتيجيات التدريب التي أدت إلى تحسينات كبيرة في الأداء. (أ) رقبة YOLOv6 (يتم عرض N و S). ملاحظة بالنسبة لـ M/L، يتم استبدال RepBlocks بـ CSPStackRep. (ب) بنية وحدة BiC. (ج) كتلة SimCSPSPPF. (source).
الميزات الرئيسية#
- وحدة التسلسل ثنائي الاتجاه (BiC): يقدم YOLOv6 وحدة BiC في عنق الكاشف، مما يعزز إشارات التوطين ويحقق مكاسب في الأداء مع تدهور لا يذكر في السرعة.
- استراتيجية التدريب المدعومة بالمرساة (AAT): يقترح هذا النموذج تقنية AAT للاستفادة من مزايا النموذجين المعتمد على المراسي anchor-based وغير المعتمد على المراسي anchor-free دون المساس بكفاءة الاستدلال.
- تصميم محسن للعمود الفقري والعنق: من خلال تعميق YOLOv6 ليشمل مرحلة إضافية في العمود الفقري والعنق، حقق هذا النموذج أداءً قوياً على COCO dataset عند مدخلات عالية الدقة وقت صدوره.
- استراتيجية التقطير الذاتي: تم تنفيذ استراتيجية جديدة للتقطير الذاتي لتعزيز أداء النماذج الأصغر من YOLOv6، مما يعزز فرع الانحدار المساعد أثناء التدريب وإزالته عند الاستدلال لتجنب انخفاض ملحوظ في السرعة.
مقاييس الأداء#
يوفر YOLOv6 العديد من النماذج المدربة مسبقاً بمقاييس مختلفة:
- YOLOv6-N: دقة 37.5% AP على COCO val2017 عند 1187 إطاراً في الثانية باستخدام NVIDIA T4 GPU.
- YOLOv6-S: دقة 45.0% AP عند 484 إطاراً في الثانية.
- YOLOv6-M: دقة 50.0% AP عند 226 إطاراً في الثانية.
- YOLOv6-L: دقة 52.8% AP عند 116 إطاراً في الثانية.
- YOLOv6-L6: دقة متطورة في الوقت الحقيقي.
يوفر YOLOv6 أيضاً نماذج مسماة الكمية لمختلف precisions ونماذج محسنة للأجهزة المحمولة.
أمثلة الاستخدام#
يقدم هذا المثال أمثلة بسيطة للتدريب والاستدلال باستخدام YOLOv6. للحصول على الوثائق الكاملة حول هذه الأنماط وغيرها من modes، راجع صفحات وثائق Predict وTrain وVal وExport.
يمكن تمرير ملفات YOLOv6 *.yaml إلى الفئة YOLO() لإنشاء النموذج المقابل في Python:
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv6n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")المهام والأوضاع المدعومة#
تقدم سلسلة YOLOv6 مجموعة من النماذج، كل منها محسّن لـ Object Detection عالية الأداء. تلبي هذه النماذج الاحتياجات الحاسوبية المتنوعة ومتطلبات accuracy، مما يجعلها مرنة لمجموعة واسعة من التطبيقات.
| النموذج | أسماء الملفات | مهام | التدريب | التحقق | الاستنتاج | التصدير |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | اكتشاف الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | اكتشاف الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | اكتشاف الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | اكتشاف الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | اكتشاف الكائنات | ✅ | ✅ | ✅ | ✅ |
يوفر هذا الجدول نظرة عامة تفصيلية على متغيرات نموذج YOLOv6، مسلطاً الضوء على قدراتها في مهام object detection ومدى توافقها مع مختلف أوضاع التشغيل مثل Inference وValidation وTraining وExport. يضمن هذا الدعم الشامل أن يتمكن المستخدمون من الاستفادة الكاملة من إمكانيات نماذج YOLOv6 في مجموعة واسعة من سيناريوهات كشف الكائنات.
الاقتباسات والشكر#
نود أن نشكر المؤلفين على مساهماتهم الهامة في مجال كشف الكائنات في الوقت الحقيقي:
@misc{li2023yolov6,
title={YOLOv6 v3.0: A Full-Scale Reloading},
author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
year={2023},
eprint={2301.05586},
archivePrefix={arXiv},
primaryClass={cs.CV}
}يمكن العثور على ورقة البحث الأصلية لـ YOLOv6 على arXiv. لقد جعل المؤلفون عملهم متاحاً للعامة، ويمكن الوصول إلى قاعدة الكود على GitHub. نحن نقدر جهودهم في تطوير هذا المجال وجعل عملهم متاحاً للمجتمع الأوسع.
الأسئلة الشائعة#
Meituan YOLOv6، الذي تم إصداره في عام 2022، هو كاشف كائنات يوازن بين السرعة والدقة، ومصمم للتطبيقات في الوقت الحقيقي. يتميز بتحسينات معمارية ملحوظة مثل وحدة التسلسل ثنائي الاتجاه (BiC) واستراتيجية التدريب المعتمد على المرساة (AAT). توفر هذه الابتكارات مكاسب أداء كبيرة مع تدهور طفيف في السرعة، مما يجعل YOLOv6 خياراً تنافسياً لمهام كشف الكائنات.
تعمل وحدة الدمج ثنائي الاتجاه (BiC) في YOLOv6 على تحسين إشارات تحديد الموقع في رقبة الكاشف، مما يوفر تحسينات في الأداء مع تأثير ضئيل للغاية على السرعة. تجمع هذه وحدة بفعالية بين مختلف feature maps، مما يزيد من قدرة النموذج على اكتشاف الكائنات بدقة. لمزيد من التفاصيل حول ميزات YOLOv6، راجع قسم Key Features.
يمكنك تدريب نموذج YOLOv6 باستخدام Ultralytics عبر أوامر Python أو CLI بسيطة. على سبيل المثال:
مثالfrom ultralytics import YOLO # Build a YOLOv6n model from scratch model = YOLO("yolov6n.yaml") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)لمزيد من المعلومات، تفضل بزيارة صفحة Train.
يقدم YOLOv6 إصدارات متعددة، كل منها محسّن لمتطلبات أداء مختلفة:
- YOLOv6-N: دقة 37.5% AP عند 1187 إطاراً في الثانية
- YOLOv6-S: دقة 45.0% AP عند 484 إطاراً في الثانية
- YOLOv6-M: دقة 50.0% AP عند 226 إطاراً في الثانية
- YOLOv6-L: دقة 52.8% AP عند 116 إطاراً في الثانية
- YOLOv6-L6: دقة متطورة في سيناريوهات الوقت الحقيقي
تم تقييم هذه النماذج على COCO dataset باستخدام وحدة معالجة رسوميات NVIDIA T4 GPU. لمزيد من المعلومات حول مقاييس الأداء، راجع قسم Performance Metrics.
يجمع التدريب المدعوم بالمرساة (AAT) في YOLOv6 بين عناصر النهج المعتمد على المراسي والنهج غير المعتمد على المراسي، مما يعزز قدرات الكشف للنموذج دون المساس بكفاءة الاستدلال. تستفيد هذه الاستراتيجية من المراسي أثناء التدريب لتحسين تنبؤات bounding box، مما يجعل YOLOv6 فعالاً في مهام كشف الكائنات المتنوعة.
يدعم YOLOv6 أوضاع تشغيل مختلفة بما في ذلك Inference وValidation وTraining وExport. تتيح هذه المرونة للمستخدمين الاستفادة الكاملة من إمكانيات النموذج في سيناريوهات مختلفة. تحقق من قسم Supported Tasks and Modes للحصول على نظرة عامة تفصيلية على كل وضع.