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

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

YOLOv10، المبني على UltralyticsPython من قِبل باحثين في جامعة تسينغهوا، يقدم نهجًا جديدًا للكشف عن الأجسام في الوقت الحقيقي، ويعالج كلاً من أوجه القصور في مرحلة ما بعد المعالجة وبنية النموذج الموجودة في إصدارات YOLO السابقة. من خلال التخلص من الكبح غير الأقصى (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.

النموذجحجم الإدخالAPvalFLOPs (G)زمن الوصول (بالمللي ثانية)
YOLOv10n64038.56.71.84
YOLOv10s64046.321.62.49
YOLOv10m64051.159.14.74
YOLOv10b64052.592.05.74
YOLOv10l64053.2120.37.28
YOLOv10x64054.4160.410.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-N4.711.437.02.691.76
Gold-YOLO-N5.612.139.62.921.82
YOLOv8n3.28.737.36.161.77
YOLOv10n2.36.739.51.841.79
YOLOv6-3.0-S18.545.344.33.422.35
Gold-YOLO-S21.546.045.43.822.73
YOLOv8s11.228.644.97.072.33
YOLOv10s7.221.646.82.492.39
RT-DETR-R1820.060.046.54.584.49
YOLOv6-3.0-M34.985.849.15.634.56
Gold-YOLO-M41.387.549.86.385.45
YOLOv8m25.978.950.69.505.09
YOLOv10m15.459.151.34.744.63
YOLOv6-3.0-L59.6150.751.89.027.90
Gold-YOLO-L75.1151.751.810.659.78
YOLOv8l43.7165.252.912.398.06
RT-DETR-R5042.0136.053.19.209.07
YOLOv10l24.4120.353.47.287.21
YOLOv8x68.2257.853.916.8612.83
RT-DETR-R10176.0259.054.313.7113.58
YOLOv10x29.5160.454.410.7010.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 مجموعة من النماذج، كل منها مُحسَّن للكشف عن الكائنات عالية الأداء. تلبي هذه النماذج الاحتياجات الحسابية المتنوعة ومتطلبات الدقة المختلفة، مما يجعلها متعددة الاستخدامات لمجموعة واسعة من التطبيقات.

النموذجأسماء الملفاتالمهامالاستدلالالتحققالتدريبتصدير
YOLOv10yolov10n.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 مع نفس الأداء. يمكن العثور على معايير مفصلة في قسم المقارنات.



📅 تم الإنشاء منذ 1 سنة مضت ✏️ تم التحديث منذ 5 أيام
glenn-jocherRizwanMunawarleonnilY-T-GLaughing-qMatthewNoyceUltralyticsAssistanthasanghaffari93zhixuweiabirami-vinaBurhan-Q

تعليقات