Meituan YOLOv6

نظرة عامة

يوفر Meituan YOLOv6، الذي تم إصداره في عام 2022، توازناً قوياً بين السرعة والدقة، مما يجعله خياراً شائعاً للتطبيقات ذات الزمن الحقيقي. يقدم هذا النموذج العديد من التحسينات الملحوظة في بنيته ونظام التدريب الخاص به، بما في ذلك تنفيذ وحدة الربط ثنائي الاتجاه (BiC)، واستراتيجية التدريب بمساعدة المرساة (AAT)، وتصميم محسّن لـ backbone والعنق لتحقيق دقة عالية على COCO dataset.

نموذج اكتشاف الأجسام بالزمن الحقيقي YOLOv6 من Meituan مخطط بنية نموذج YOLOv6 نظرة عامة على YOLOv6. مخطط بنية النموذج يوضح مكونات الشبكة المعاد تصميمها واستراتيجيات التدريب التي أدت إلى تحسينات كبيرة في الأداء. (أ) عنق YOLOv6 (يتم عرض N و S). ملاحظة بالنسبة لـ M/L، يتم استبدال RepBlocks بـ CSPStackRep. (ب) بنية وحدة BiC. (ج) كتلة SimCSPSPPF. (المصدر).

الميزات الرئيسية

  • وحدة الربط ثنائي الاتجاه (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.

مثال

يمكن تمرير ملفات *.yaml الخاصة بـ YOLOv6 إلى فئة 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-Nyolov6n.yamlاكتشاف الكائنات
YOLOv6-Syolov6s.yamlاكتشاف الكائنات
YOLOv6-Myolov6m.yamlاكتشاف الكائنات
YOLOv6-Lyolov6l.yamlاكتشاف الكائنات
YOLOv6-Xyolov6x.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 وما الذي يجعله فريداً؟

Meituan YOLOv6، الذي تم إصداره في عام 2022، هو كاشف أجسام يوازن بين السرعة والدقة، ومصمم للتطبيقات ذات الزمن الحقيقي. ويتميز بتحسينات معمارية ملحوظة مثل وحدة الربط ثنائي الاتجاه (BiC) واستراتيجية التدريب بمساعدة المرساة (AAT). توفر هذه الابتكارات مكاسب كبيرة في الأداء مع الحد الأدنى من تدهور السرعة، مما يجعل YOLOv6 خياراً تنافسياً لمهام اكتشاف الأجسام.

كيف تحسن وحدة الربط ثنائي الاتجاه (BiC) في YOLOv6 الأداء؟

تعمل وحدة الربط ثنائي الاتجاه (BiC) في YOLOv6 على تحسين إشارات التوطين في عنق الكاشف، مما يحقق تحسينات في الأداء مع تأثير ضئيل على السرعة. تجمع هذه الوحدة بفعالية بين feature maps مختلفة، مما يزيد من قدرة النموذج على اكتشاف الأجسام بدقة. لمزيد من التفاصيل حول ميزات YOLOv6، راجع قسم Key Features.

كيف يمكنني تدريب نموذج YOLOv6 باستخدام Ultralytics؟

يمكنك تدريب نموذج 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 إصدارات متعددة، كل منها محسن لمتطلبات أداء مختلفة:

  • 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؟

يجمع التدريب بمساعدة المرساة (AAT) في YOLOv6 بين عناصر من المناهج القائمة على المرساة (anchor-based) وتلك التي لا تعتمد على المرساة (anchor-free)، مما يعزز قدرات الاكتشاف للنموذج دون المساس بكفاءة الاستدلال. تستفيد هذه الاستراتيجية من المراسي أثناء التدريب لتحسين تنبؤات bounding box، مما يجعل YOLOv6 فعالاً في مهام اكتشاف الأجسام المتنوعة.

ما هي أوضاع التشغيل التي تدعمها نماذج YOLOv6 في Ultralytics؟

يدعم YOLOv6 أوضاع تشغيل مختلفة بما في ذلك الاستدلال، والتحقق، والتدريب، والتصدير. تتيح هذه المرونة للمستخدمين استغلال قدرات النموذج بالكامل في سيناريوهات مختلفة. تحقق من قسم Supported Tasks and Modes للحصول على نظرة عامة مفصلة لكل وضع.

التعليقات