Meituan YOLOv6#
نظرة عامة#
يوفّر YOLOv6 من Meituan، الذي صدر عام 2022، توازناً قوياً بين السرعة والدقة، ما يجعله خياراً شائعاً للتطبيقات في الزمن الفعلي. ويقدّم هذا النموذج تحسينات بارزة في بنيته ونهج تدريبه، بما في ذلك تطبيق وحدة الدمج ثنائية الاتجاه (BiC)، واستراتيجية التدريب بمساعدة المراسي (AAT)، وتحسين تصميم العمود الفقري والعنق لتحقيق دقة عالية على مجموعة بيانات COCO.
نظرة عامة على YOLOv6. مخطط لبنية النموذج يوضّح مكونات الشبكة المعاد تصميمها واستراتيجيات التدريب التي أدت إلى تحسينات كبيرة في الأداء. (a) عنق YOLOv6 (موضحاً الإصداران N وS). ملاحظة: في الإصدارين M وL، يُستبدل RepBlocks بـ CSPStackRep. (b) بنية وحدة BiC. (c) كتلة SimCSPSPPF. (المصدر).
الميزات الرئيسية#
- وحدة الدمج ثنائي الاتجاه (BiC): يقدّم YOLOv6 وحدة BiC في عنق الكاشف، لتعزيز إشارات تحديد المواضع وتحقيق مكاسب في الأداء مع تراجع ضئيل للغاية في السرعة.
- استراتيجية التدريب بمساعدة المراسي (AAT): يقترح هذا النموذج AAT للاستفادة من مزايا نهجَي القائم على المراسي والخالي من المراسي دون المساس بكفاءة الاستدلال.
- تحسين تصميم العمود الفقري والعنق: من خلال تعميق YOLOv6 بإضافة مرحلة أخرى إلى العمود الفقري والعنق، حقق هذا النموذج أداءً قوياً على مجموعة بيانات COCO عند استخدام مدخلات عالية الدقة وقت صدوره.
- استراتيجية التقطير الذاتي: تُطبّق استراتيجية جديدة للتقطير الذاتي لتعزيز أداء نماذج YOLOv6 الأصغر؛ إذ تحسّن فرع الانحدار المساعد أثناء التدريب وتزيله في الاستدلال لتجنب انخفاض ملحوظ في السرعة.
مقاييس الأداء#
يوفّر YOLOv6 نماذج متعددة مدرّبة مسبقاً بمقاييس مختلفة:
- YOLOv6-N: 37.5% AP على COCO val2017 بمعدل 1187 FPS باستخدام وحدة GPU من نوع NVIDIA T4.
- YOLOv6-S: 45.0% AP بمعدل 484 FPS.
- YOLOv6-M: 50.0% AP بمعدل 226 FPS.
- YOLOv6-L: 52.8% AP بمعدل 116 FPS.
- YOLOv6-L6: دقة متطورة في الزمن الفعلي.
يوفّر YOLOv6 أيضًا نماذج مكمّمة لمستويات مختلفة من الدقة، ونماذج محسّنة للمنصات المحمولة.
أمثلة الاستخدام#
يقدّم هذا المثال أمثلة بسيطة على تدريب YOLOv6 والاستدلال به. للاطلاع على الوثائق الكاملة لهذه الأوضاع وغيرها، راجع صفحات وثائق التنبؤ والتدريب والتحقق والتصدير.
يمكن تمرير ملفات YOLOv6 *.yaml إلى الفئة YOLO() لإنشاء النموذج المقابل في Python:
from ultralytics import YOLO
# إنشاء نموذج YOLOv6n من الصفر
model = YOLO("yolov6n.yaml")
# عرض معلومات النموذج (اختياري)
model.info()
# تدريب النموذج على مجموعة بيانات المثال COCO8 لمدة 100 حقبة
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# إجراء الاستدلال باستخدام نموذج YOLOv6n على الصورة 'bus.jpg'
results = model("path/to/bus.jpg")المهام والأوضاع المدعومة#
تقدّم سلسلة YOLOv6 مجموعة من النماذج، حُسّن كل منها لتحقيق أداء عالٍ في اكتشاف الأجسام. وتلبي هذه النماذج احتياجات الحوسبة ومتطلبات الدقة المتفاوتة، ما يجعلها متعددة الاستخدامات في مجموعة واسعة من التطبيقات.
| النموذج | أسماء الملفات | المهام | التدريب | التحقق | الاستدلال | التصدير |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | كشف الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | كشف الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | كشف الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | كشف الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | كشف الكائنات | ✅ | ✅ | ✅ | ✅ |
يقدّم هذا الجدول نظرة تفصيلية على متغيرات نموذج YOLOv6، مع إبراز قدراتها في مهام اكتشاف الأجسام وتوافقها مع أوضاع تشغيل متنوعة مثل الاستدلال والتحقق والتدريب والتصدير. ويضمن هذا الدعم الشامل للمستخدمين الاستفادة الكاملة من إمكانات نماذج 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 إشارات تحديد المواضع في عنق الكاشف، وتحسّن الأداء مع تأثير ضئيل للغاية على السرعة. وتجمع هذه الوحدة بفعالية بين خرائط السمات المختلفة، ما يزيد قدرة النموذج على اكتشاف الأجسام بدقة. لمزيد من التفاصيل حول ميزات YOLOv6، راجع قسم الميزات الأساسية.
يمكنك تدريب نموذج YOLOv6 باستخدام Ultralytics عبر أوامر Python أو CLI بسيطة. على سبيل المثال:
مثالfrom ultralytics import YOLO # إنشاء نموذج YOLOv6n من الصفر model = YOLO("yolov6n.yaml") # تدريب النموذج على مجموعة بيانات المثال COCO8 لمدة 100 حقبة results = model.train(data="coco8.yaml", epochs=100, imgsz=640)لمزيد من المعلومات، تفضّل بزيارة صفحة التدريب.
يوفّر YOLOv6 إصدارات متعددة، صُمّم كل منها لتلبية متطلبات أداء مختلفة:
- YOLOv6-N: 37.5% AP بمعدل 1187 FPS
- YOLOv6-S: 45.0% AP بمعدل 484 FPS
- YOLOv6-M: 50.0% AP بمعدل 226 FPS
- YOLOv6-L: 52.8% AP بمعدل 116 FPS
- YOLOv6-L6: دقة متطورة في سيناريوهات الزمن الفعلي
تُقيّم هذه النماذج على مجموعة بيانات COCO باستخدام وحدة GPU من نوع NVIDIA T4. للاطلاع على مزيد من المعلومات حول مقاييس الأداء، راجع قسم مقاييس الأداء.
يجمع التدريب بمساعدة المراسي (AAT) في YOLOv6 بين عناصر من نهجَي التدريب القائم على المراسي والخالي من المراسي، ما يعزّز قدرات النموذج على الاكتشاف دون المساس بكفاءة الاستدلال. وتستفيد هذه الاستراتيجية من المراسي أثناء التدريب لتحسين تنبؤات مربعات الإحاطة، ما يجعل YOLOv6 فعالاً في مهام متنوعة لاكتشاف الأجسام.
يدعم YOLOv6 أوضاع تشغيل متنوعة، تشمل الاستدلال والتحقق والتدريب والتصدير. وتتيح هذه المرونة للمستخدمين الاستفادة الكاملة من إمكانات النموذج في سيناريوهات مختلفة. راجع قسم المهام والأوضاع المدعومة للاطلاع على نظرة تفصيلية على كل وضع.