Meituan YOLOv6
نظرة عامة
Meituan YOLOv6 هو كاشف كائنات متطور يوفر توازنًا ملحوظًا بين السرعة والدقة، مما يجعله خيارًا شائعًا للتطبيقات في الوقت الفعلي. يقدم هذا النموذج العديد من التحسينات الملحوظة على بنيته ونظام التدريب الخاص به، بما في ذلك تطبيق وحدة Bi-directional Concatenation (BiC)، واستراتيجية التدريب المدعومة بالمرساة (AAT)، وتصميم العمود الفقري والرقبة المحسن لتحقيق أحدث دقة على مجموعة بيانات COCO.
نظرة عامة على YOLOv6. رسم تخطيطي لبنية النموذج يوضح مكونات الشبكة المعاد تصميمها واستراتيجيات التدريب التي أدت إلى تحسينات كبيرة في الأداء. (أ) هيكل YOLOv6 (يظهر N و S). ملاحظة لـ M/L، يتم استبدال RepBlocks بـ CSPStackRep. (ب) هيكل وحدة BiC. (ج) كتلة SimCSPSPPF.المصدر).
الميزات الرئيسية
- وحدة Bi-directional Concatenation (BiC): يقدم YOLOv6 وحدة BiC في هيكل الكاشف، مما يعزز إشارات تحديد الموقع ويوفر مكاسب في الأداء مع إهمال تدهور السرعة.
- استراتيجية التدريب المدعوم بالمرساة (AAT): يقترح هذا النموذج AAT للاستمتاع بفوائد كل من النماذج القائمة على المرساة و الخالية من المرساة دون المساس بكفاءة الاستدلال.
- تصميم محسن للهيكل الأساسي والرقبة: من خلال تعميق YOLOv6 ليشمل مرحلة أخرى في الهيكل الأساسي والرقبة، يحقق هذا النموذج أداءً حديثًا على مجموعة بيانات COCO بدقة إدخال عالية.
- استراتيجية التقطير الذاتي: يتم تطبيق استراتيجية تقطير ذاتي جديدة لتعزيز أداء النماذج الأصغر من 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 أيضًا نماذج كمية لدقة مختلفة ونماذج محسّنة لمنصات الأجهزة المحمولة.
أمثلة الاستخدام
يوفر هذا المثال أمثلة بسيطة لتدريب واستنتاج 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")
تتوفر أوامر CLI لتشغيل النماذج مباشرة:
# Build a YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv6n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov6n.yaml source=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 وما الذي يجعله فريدًا؟
Meituan YOLOv6 هو كاشف كائنات حديث يوازن بين السرعة والدقة، وهو مثالي للتطبيقات في الوقت الفعلي. يتميز بتحسينات معمارية ملحوظة مثل وحدة Bi-directional Concatenation (BiC) واستراتيجية Anchor-Aided Training (AAT). توفر هذه الابتكارات مكاسب كبيرة في الأداء مع الحد الأدنى من تدهور السرعة، مما يجعل YOLOv6 خيارًا تنافسيًا لمهام الكشف عن الكائنات.
كيف تعمل وحدة Bi-directional Concatenation (BiC) في YOLOv6 على تحسين الأداء؟
تعزز وحدة Bi-directional Concatenation (BiC) في YOLOv6 إشارات تحديد الموقع في عنق الكاشف، مما يوفر تحسينات في الأداء مع تأثير ضئيل على السرعة. تجمع هذه الوحدة بشكل فعال بين خرائط الميزات المختلفة، مما يزيد من قدرة النموذج على اكتشاف الكائنات بدقة. لمزيد من التفاصيل حول ميزات YOLOv6، راجع قسم الميزات الرئيسية.
كيف يمكنني تدريب نموذج 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)
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
لمزيد من المعلومات، قم بزيارة صفحة التدريب.
ما هي الإصدارات المختلفة من 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 باستخدام NVIDIA T4 GPU. لمزيد من المعلومات حول مقاييس الأداء، راجع قسم مقاييس الأداء.
كيف تفيد استراتيجية Anchor-Aided Training (AAT) نموذج YOLOv6؟
يجمع التدريب المعزز بالمرساة (AAT) في YOLOv6 بين عناصر من الأساليب القائمة على المرساة وغير القائمة على المرساة، مما يعزز قدرات الكشف في النموذج دون المساس بكفاءة الاستدلال. تستفيد هذه الإستراتيجية من المراسي أثناء التدريب لتحسين تنبؤات المربعات المحيطة، مما يجعل YOLOv6 فعالاً في مهام الكشف عن الكائنات المتنوعة.
ما هي أوضاع التشغيل التي تدعمها نماذج YOLOv6 في Ultralytics؟
يدعم YOLOv6 أوضاع التشغيل المختلفة بما في ذلك الاستدلال والتحقق والتدريب والتصدير. تتيح هذه المرونة للمستخدمين الاستفادة الكاملة من قدرات النموذج في سيناريوهات مختلفة. تحقق من قسم المهام والأوضاع المدعومة للحصول على نظرة عامة مفصلة لكل وضع.