تخطي إلى المحتوى

YOLOv10: الكشف عن الكائنات في الوقت الفعلي من طرف إلى طرف

YOLOv10، المبني على Ultralytics Python package بواسطة باحثين في جامعة تسينغ هوا، يقدم نهجًا جديدًا للكشف عن الأجسام في الزمن الحقيقي، ويعالج أوجه القصور في كل من المعالجة اللاحقة وهندسة النموذج الموجودة في إصدارات YOLO السابقة. من خلال التخلص من Non-Maximum Suppression (NMS) وتحسين مكونات النموذج المختلفة، يحقق YOLOv10 أداءً متطورًا مع تقليل كبير في النفقات الحسابية. تُظهر التجارب المكثفة مقايضات فائقة بين الدقة والكمون عبر نطاقات متعددة للنماذج.

YOLOv10 تعيين مزدوج متسق للتدريب الخالي من NMS



شاهد: كيفية تدريب YOLOv10 على مجموعة بيانات SKU-110k باستخدام Ultralytics | مجموعة بيانات البيع بالتجزئة

نظرة عامة

يهدف الكشف عن الأجسام في الوقت الفعلي إلى التنبؤ بدقة بفئات ومواقع الأجسام في الصور بزمن انتقال منخفض. كانت سلسلة YOLO في طليعة هذا البحث نظرًا لتوازنها بين الأداء والكفاءة. ومع ذلك، فإن الاعتماد على NMS وعدم كفاءة البنية قد أعاق الأداء الأمثل. يعالج YOLOv10 هذه المشكلات من خلال تقديم تعيينات مزدوجة متسقة للتدريب الخالي من NMS واستراتيجية تصميم نموذج شاملة مدفوعة بالكفاءة والدقة.

البنية

يعتمد تصميم YOLOv10 على نقاط القوة في نماذج YOLO السابقة مع تقديم العديد من الابتكارات الرئيسية. يتكون تصميم النموذج من المكونات التالية:

  1. Backbone: المسؤول عن استخراج الميزات، يستخدم Backbone في YOLOv10 نسخة محسنة من CSPNet (شبكة جزئية عبر المراحل) لتحسين تدفق التدرج وتقليل التكرار الحسابي.
  2. الرقبة: تم تصميم الرقبة لتجميع الميزات من مقاييس مختلفة وتمريرها إلى الرأس. وهي تتضمن طبقات PAN (شبكة تجميع المسار) لدمج الميزات متعددة المقاييس بشكل فعال.
  3. رأس واحد إلى متعدد: ينشئ تنبؤات متعددة لكل كائن أثناء التدريب لتوفير إشارات إشرافية غنية وتحسين دقة التعلم.
  4. رأس واحد إلى واحد: ينشئ أفضل تنبؤ واحد لكل كائن أثناء الاستدلال لإزالة الحاجة إلى NMS، وبالتالي تقليل زمن الوصول وتحسين الكفاءة.

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

  1. التدريب بدون NMS: يستخدم تعيينات ثنائية متسقة لإلغاء الحاجة إلى NMS، مما يقلل من زمن الوصول للاستدلال.
  2. تصميم النموذج الشامل: تحسين شامل لمختلف المكونات من وجهتي نظر الكفاءة والدقة، بما في ذلك رؤوس التصنيف خفيفة الوزن، وأخذ العينات المتباعدة مكانيًا وقنواتيًا، وتصميم الكتلة الموجهة بالترتيب.
  3. قدرات نموذج محسّنة: يتضمن التفافات ذات النواة الكبيرة ووحدات الانتباه الذاتي الجزئي لتحسين الأداء دون تكلفة حسابية كبيرة.

متغيرات النموذج

يتوفر YOLOv10 بمقاييس نماذج مختلفة لتلبية احتياجات التطبيقات المختلفة:

  • YOLOv10n: نسخة نانو للبيئات ذات الموارد المحدودة للغاية.
  • YOLOv10s: نسخة صغيرة توازن بين السرعة والدقة.
  • YOLOv10m: نسخة متوسطة للاستخدام للأغراض العامة.
  • YOLOv10b: نسخة متوازنة مع زيادة في العرض لتحقيق دقة أعلى.
  • YOLOv10l: نسخة كبيرة لتحقيق دقة أعلى على حساب زيادة الموارد الحسابية.
  • YOLOv10x: نسخة كبيرة جدًا لتحقيق أقصى قدر من الدقة والأداء.

الأداء

يتفوق YOLOv10 على إصدارات YOLO السابقة والنماذج الحديثة الأخرى من حيث الدقة والكفاءة. على سبيل المثال، YOLOv10s أسرع بـ 1.8 مرة من RT-DETR-R18 مع AP مماثل على مجموعة بيانات COCO، و YOLOv10b لديه زمن وصول أقل بنسبة 46٪ ومعلمات أقل بنسبة 25٪ من YOLOv9-C مع نفس الأداء.

الأداء

تم قياس زمن الوصول باستخدام TensorRT FP16 على T4 GPU.

النموذج حجم الإدخال APval FLOPs (G) زمن الوصول (بالمللي ثانية)
YOLOv10n 640 38.5 6.7 1.84
YOLOv10s 640 46.3 21.6 2.49
YOLOv10m 640 51.1 59.1 4.74
YOLOv10b 640 52.5 92.0 5.74
YOLOv10l 640 53.2 120.3 7.28
YOLOv10x 640 54.4 160.4 10.70

المنهجية

تعيينات مزدوجة متسقة للتدريب الخالي من NMS

يستخدم YOLOv10 تعيينات تسميات مزدوجة، تجمع بين استراتيجيات واحد إلى متعدد وواحد إلى واحد أثناء التدريب لضمان إشراف غني ونشر شامل فعال. يتماشى مقياس المطابقة المتسق مع الإشراف بين كلتا الاستراتيجيتين، مما يعزز جودة التنبؤات أثناء الاستدلال.

تصميم النموذج الشامل المدفوع بالكفاءة-الدقة

تحسينات الكفاءة

  1. رأس تصنيف خفيف الوزن: يقلل من النفقات الحسابية لرأس التصنيف باستخدام الالتواءات المنفصلة حسب العمق.
  2. أخذ العينات المتباعدة مكانيًا وقنواتيًا: يفصل بين تقليل المسافة وتعديل القناة لتقليل فقدان المعلومات والتكلفة الحسابية.
  3. تصميم الكتلة الموجهة بالترتيب: يقوم بتكييف تصميم الكتلة بناءً على التكرار المرحلي الجوهري، مما يضمن الاستخدام الأمثل للمعلمات.

تحسينات الدقة

  1. التفاف حجم النواة الكبير: يوسع حقل الاستقبال لتعزيز قدرة استخلاص الميزات.
  2. الانتباه الذاتي الجزئي (PSA): يدمج وحدات الانتباه الذاتي لتحسين تعلم التمثيل العالمي بأقل قدر من النفقات.

التجارب والنتائج

تم اختبار YOLOv10 على نطاق واسع على المعايير القياسية مثل COCO، مما يدل على الأداء والكفاءة الفائقة. يحقق النموذج نتائج حديثة عبر متغيرات مختلفة، ويعرض تحسينات كبيرة في زمن الوصول والدقة مقارنة بالإصدارات السابقة وأجهزة الكشف المعاصرة الأخرى.

المقارنات

مقارنة YOLOv10 مع أحدث أدوات الكشف عن الأجسام (SOTA)

مقارنة بأحدث أجهزة الكشف الأخرى:

  • تعد YOLOv10s / x أسرع بمقدار 1.8 / 1.3 مرة من RT-DETR-R18 / R101 بدقة مماثلة
  • يحتوي YOLOv10b على معلمات أقل بنسبة 25% وزمن وصول أقل بنسبة 46% من YOLOv9-C بنفس الدقة
  • يتفوق YOLOv10l / x على YOLOv8l / x بمقدار 0.3 AP / 0.5 AP مع معلمات أقل بمقدار 1.8 / 2.3 مرة

الأداء

إليك مقارنة تفصيلية لمتغيرات YOLOv10 مع أحدث النماذج الأخرى:

النموذج المعلمات
(M)
FLOPs
(G)
mAPval
50-95
زمن الوصول
(ms)
زمن الوصول-إعادة التوجيه
(ms)
YOLOv6-3.0-N 4.7 11.4 37.0 2.69 1.76
Gold-YOLO-N 5.6 12.1 39.6 2.92 1.82
YOLOv8n 3.2 8.7 37.3 6.16 1.77
YOLOv10n 2.3 6.7 39.5 1.84 1.79
YOLOv6-3.0-S 18.5 45.3 44.3 3.42 2.35
Gold-YOLO-S 21.5 46.0 45.4 3.82 2.73
YOLOv8s 11.2 28.6 44.9 7.07 2.33
YOLOv10s 7.2 21.6 46.8 2.49 2.39
RT-DETR-R18 20.0 60.0 46.5 4.58 4.49
YOLOv6-3.0-M 34.9 85.8 49.1 5.63 4.56
Gold-YOLO-M 41.3 87.5 49.8 6.38 5.45
YOLOv8m 25.9 78.9 50.6 9.50 5.09
YOLOv10m 15.4 59.1 51.3 4.74 4.63
YOLOv6-3.0-L 59.6 150.7 51.8 9.02 7.90
Gold-YOLO-L 75.1 151.7 51.8 10.65 9.78
YOLOv8l 43.7 165.2 52.9 12.39 8.06
RT-DETR-R50 42.0 136.0 53.1 9.20 9.07
YOLOv10l 24.4 120.3 53.4 7.28 7.21
YOLOv8x 68.2 257.8 53.9 16.86 12.83
RT-DETR-R101 76.0 259.0 54.3 13.71 13.58
YOLOv10x 29.5 160.4 54.4 10.70 10.60

أمثلة الاستخدام

للتنبؤ بصور جديدة باستخدام YOLOv10:

مثال

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()
# Load a COCO-pretrained YOLOv10n model and run inference on the 'bus.jpg' image
yolo detect predict model=yolov10n.pt source=path/to/bus.jpg

لتدريب YOLOv10 على مجموعة بيانات مخصصة:

مثال

from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a YOLOv10n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov10n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv10n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov10n.yaml source=path/to/bus.jpg

المهام والأوضاع المدعومة

تقدم سلسلة نماذج YOLOv10 مجموعة من النماذج، تم تحسين كل منها للكشف عالي الأداء عن الكائنات. تلبي هذه النماذج الاحتياجات الحسابية المتنوعة ومتطلبات الدقة، مما يجعلها متعددة الاستخدامات لمجموعة واسعة من التطبيقات.

النموذج أسماء الملفات المهام الاستدلال التحقق التدريب تصدير
YOLOv10 yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt الكشف عن الكائنات

تصدير YOLOv10

نظرًا للعمليات الجديدة التي تم تقديمها مع YOLOv10، لا يتم دعم جميع تنسيقات التصدير التي توفرها Ultralytics حاليًا. يوضح الجدول التالي التنسيقات التي تم تحويلها بنجاح باستخدام Ultralytics لـ YOLOv10. لا تتردد في فتح طلب سحب إذا كنت قادرًا على تقديم تغيير مساهمة لإضافة دعم التصدير لتنسيقات إضافية لـ YOLOv10.

تنسيق التصدير دعم التصدير الاستدلال على النموذج المصدَّر ملاحظات
TorchScript تنسيق نموذج PyTorch القياسي.
ONNX مدعوم على نطاق واسع للنشر.
OpenVINO محسن لأجهزة Intel.
TensorRT محسن لوحدات معالجة الرسوميات NVIDIA.
CoreML يقتصر على أجهزة Apple.
TF SavedModel تنسيق النموذج القياسي لـ TensorFlow.
TF GraphDef تنسيق TensorFlow القديم.
TF Lite محسن للأجهزة المحمولة والمدمجة.
TF Edge TPU خاص بأجهزة Edge TPU من Google.
TF.js بيئة JavaScript للاستخدام في المتصفح.
PaddlePaddle شائع في الصين؛ دعم عالمي أقل.
NCNN طبقة torch.topk غير موجودة أو مسجلة

الخلاصة

يضع YOLOv10 معيارًا جديدًا في الكشف عن الكائنات في الوقت الفعلي من خلال معالجة أوجه القصور في إصدارات YOLO السابقة ودمج استراتيجيات تصميم مبتكرة. إن قدرته على تقديم دقة عالية بتكلفة حسابية منخفضة تجعله خيارًا مثاليًا لمجموعة واسعة من تطبيقات العالم الحقيقي بما في ذلك التصنيع و البيع بالتجزئة و المركبات ذاتية القيادة.

الاقتباسات والشكر والتقدير

نود أن نعرب عن تقديرنا لمؤلفي YOLOv10 من جامعة Tsinghua لأبحاثهم المكثفة ومساهماتهم الكبيرة في إطار عمل Ultralytics:

@article{THU-MIGyolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Ao Wang, Hui Chen, Lihao Liu, et al.},
  journal={arXiv preprint arXiv:2405.14458},
  year={2024},
  institution={Tsinghua University},
  license = {AGPL-3.0}
}

للحصول على تفاصيل حول التنفيذ والابتكارات المعمارية والنتائج التجريبية، يرجى الرجوع إلى ورقة البحث الخاصة بـ YOLOv10 و مستودع GitHub من قبل فريق جامعة Tsinghua.

الأسئلة الشائعة

ما هو YOLOv10 وكيف يختلف عن إصدارات YOLO السابقة؟

يقدم YOLOv10، الذي تم تطويره بواسطة باحثين في جامعة Tsinghua، العديد من الابتكارات الرئيسية للكشف عن الأجسام في الوقت الفعلي. فهو يلغي الحاجة إلى منع التداخل غير الأقصى (NMS) من خلال استخدام تعيينات مزدوجة متسقة أثناء التدريب ومكونات النموذج المحسنة لتحقيق أداء فائق مع تقليل النفقات الحسابية. لمزيد من التفاصيل حول بنيته وميزاته الرئيسية، تحقق من قسم نظرة عامة على YOLOv10.

كيف يمكنني البدء في تشغيل الاستدلال باستخدام YOLOv10؟

لتسهيل الاستدلال، يمكنك استخدام مكتبة Ultralytics YOLO Python أو واجهة سطر الأوامر (CLI). فيما يلي أمثلة على التنبؤ بصور جديدة باستخدام YOLOv10:

مثال

from ultralytics import YOLO

# Load the pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()
yolo detect predict model=yolov10n.pt source=path/to/image.jpg

لمزيد من أمثلة الاستخدام، قم بزيارة قسم أمثلة الاستخدام الخاص بنا.

ما هي أنواع النماذج التي يوفرها YOLOv10 وما هي حالات استخدامها؟

يقدم YOLOv10 العديد من متغيرات النماذج لتلبية حالات الاستخدام المختلفة:

  • YOLOv10n: مناسبة للبيئات ذات الموارد المحدودة للغاية
  • YOLOv10s: توازن بين السرعة والدقة
  • YOLOv10m: استخدام للأغراض العامة
  • YOLOv10b: دقة أعلى مع زيادة في العرض
  • YOLOv10l: دقة عالية على حساب الموارد الحسابية
  • YOLOv10x: أقصى دقة وأداء

تم تصميم كل متغير لتلبية احتياجات حسابية مختلفة ومتطلبات دقة، مما يجعلها متعددة الاستخدامات لمجموعة متنوعة من التطبيقات. استكشف قسم متغيرات النموذج لمزيد من المعلومات.

كيف تعمل طريقة NMS-free في YOLOv10 على تحسين الأداء؟

يلغي YOLOv10 الحاجة إلى منع التداخل غير الأقصى (NMS) أثناء الاستدلال باستخدام تعيينات مزدوجة متسقة للتدريب. يقلل هذا النهج من زمن انتقال الاستدلال ويعزز كفاءة التنبؤ. تشتمل البنية أيضًا على رأس فردي للاستدلال، مما يضمن حصول كل كائن على أفضل تنبؤ واحد. للحصول على شرح مفصل، راجع قسم تعيينات مزدوجة متسقة للتدريب الخالي من NMS.

أين يمكنني العثور على خيارات التصدير لنماذج YOLOv10؟

يدعم YOLOv10 العديد من تنسيقات التصدير، بما في ذلك TorchScript و ONNX و OpenVINO و TensorRT. ومع ذلك، لا يتم دعم جميع تنسيقات التصدير التي توفرها Ultralytics حاليًا لـ YOLOv10 نظرًا لعملياته الجديدة. للحصول على تفاصيل حول التنسيقات المدعومة وتعليمات حول التصدير، تفضل بزيارة قسم تصدير YOLOv10.

ما هي المعايير القياسية لأداء نماذج YOLOv10؟

يتفوق YOLOv10 على إصدارات YOLO السابقة والنماذج الحديثة الأخرى في كل من الدقة والكفاءة. على سبيل المثال، YOLOv10s أسرع بـ 1.8 مرة من RT-DETR-R18 مع AP مماثل على مجموعة بيانات COCO. يُظهر YOLOv10b زمن وصول أقل بنسبة 46٪ ومعلمات أقل بنسبة 25٪ من YOLOv9-C مع نفس الأداء. يمكن العثور على معايير مفصلة في قسم المقارنات.



📅 أُنشئ منذ سنة واحدة ✏️ تم التحديث منذ 3 أشهر

تعليقات