كاشف Meituan YOLOv6#
نظرة عامة#
يقدّم Meituan YOLOv6، الذي أُطلق في عام 2022، توازنًا قويًا بين السرعة والدقة، ما يجعله خيارًا شائعًا للتطبيقات في الوقت الفعلي. ويقدّم هذا النموذج تحسينات بارزة عديدة على بنيته ونظام تدريبه، بما في ذلك تطبيق وحدة الوصل ثنائية الاتجاه (BiC)، واستراتيجية التدريب المدعوم بالمراسي (AAT)، وتصميمًا محسّنًا لـالشبكة الأساسية وطبقة العنق لتحقيق دقة عالية على مجموعة بيانات COCO.
نظرة عامة على YOLOv6. يوضّح مخطط بنية النموذج مكوّنات الشبكة المعاد تصميمها واستراتيجيات التدريب التي أدت إلى تحسينات كبيرة في الأداء. (أ) عنق YOLOv6 (يظهر كل من N وS). ملاحظة: بالنسبة إلى M/L، يُستبدل RepBlocks بـ CSPStackRep. (ب) بنية وحدة BiC. (ج) كتلة SimCSPSPPF. (المصدر).
الميزات الرئيسية#
- وحدة الوصل ثنائية الاتجاه (BiC): يقدّم YOLOv6 وحدة BiC في عنق الكاشف، ما يعزز إشارات تحديد الموقع ويحقق مكاسب في الأداء مع تدهور ضئيل للغاية في السرعة.
- استراتيجية التدريب المدعوم بالمراسي (AAT): يقترح هذا النموذج استراتيجية AAT للاستفادة من مزايا نمطي المعتمد على المراسي والخالي من المراسي دون التأثير في كفاءة الاستدلال.
- تصميم محسّن للشبكة الأساسية وعنق الشبكة: من خلال تعميق YOLOv6 ليشمل مرحلة إضافية في الشبكة الأساسية وعنق الشبكة، حقق هذا النموذج أداءً قويًا على مجموعة بيانات COCO عند استخدام مدخلات عالية الدقة وقت إطلاقه.
- استراتيجية التقطير الذاتي: طُبّقت استراتيجية جديدة للتقطير الذاتي لتعزيز أداء النماذج الأصغر من YOLOv6، إذ تعمل على تحسين فرع الانحدار المساعد أثناء التدريب وإزالته أثناء الاستدلال لتجنب انخفاض ملحوظ في السرعة.
مقاييس الأداء#
يوفّر YOLOv6 نماذج مدرّبة مسبقًا متعددة بأحجام مختلفة:
- YOLOv6-N: 37.5% AP على COCO val2017 بسرعة 1187 FPS باستخدام وحدة معالجة الرسومات 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
# 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 مجموعة من النماذج، كل منها مُحسّن لـاكتشاف الأجسام عالي الأداء. وتلبي هذه النماذج الاحتياجات الحاسوبية ومتطلبات الدقة المتفاوتة، ما يجعلها متعددة الاستخدامات لمجموعة واسعة من التطبيقات.
| النموذج | أسماء الملفات | المهام | التدريب | التحقق | الاستدلال | التصدير |
|---|---|---|---|---|---|---|
| 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 # 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)لمزيد من المعلومات، تفضل بزيارة صفحة التدريب.
يوفّر 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 باستخدام وحدة معالجة الرسومات NVIDIA T4. لمزيد من المعلومات حول مقاييس الأداء، راجع قسم مقاييس الأداء.
تجمع استراتيجية التدريب المدعوم بالمراسي (AAT) في YOLOv6 بين عناصر النهجين المعتمد على المراسي والخالي من المراسي، ما يعزز قدرات النموذج على الاكتشاف دون التأثير في كفاءة الاستدلال. وتستفيد هذه الاستراتيجية من المراسي أثناء التدريب لتحسين تنبؤات المربعات المحيطة، ما يجعل YOLOv6 فعالًا في مهام اكتشاف الأجسام المتنوعة.
يدعم YOLOv6 أوضاع تشغيل متنوعة، تشمل الاستدلال والتحقق والتدريب والتصدير. وتتيح هذه المرونة للمستخدمين الاستفادة الكاملة من إمكانات النموذج في سيناريوهات مختلفة. راجع قسم المهام والأوضاع المدعومة للاطلاع على نظرة عامة مفصلة على كل وضع.