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

YOLOv10, released in May 2024 and built on the Ultralytics Python package by researchers at Tsinghua University, introduces a new approach to real-time object detection, addressing both the post-processing and model architecture deficiencies found in previous YOLO versions. By eliminating non-maximum suppression (NMS) and optimizing various model components, YOLOv10 achieved excellent performance with significantly reduced computational overhead at its time of release. Its NMS-free end-to-end design pioneered an approach that has been further developed in YOLO26.

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



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

نظرة عامة

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

البنية

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

  1. Backbone: المسؤول عن استخراج الميزات، يستخدم Backbone في YOLOv10 إصداراً محسناً من CSPNet (Cross Stage Partial Network) لتحسين تدفق التدرج وتقليل التكرار الحسابي.
  2. Neck: تم تصميم العنق لتجميع الميزات من مقاييس مختلفة وتمريرها إلى الرأس. يتضمن طبقات PAN (Path Aggregation Network) لدمج فعال للميزات متعددة المقاييس.
  3. One-to-Many Head: يولد تنبؤات متعددة لكل كائن أثناء التدريب لتوفير إشارات إشرافية غنية وتحسين دقة التعلم.
  4. One-to-One Head: يولد تنبؤاً واحداً أفضل لكل كائن أثناء الاستدلال للتخلص من الحاجة إلى NMS، مما يقلل من زمن الوصول ويحسن الكفاءة.

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

  1. NMS-Free Training: يستخدم تعيينات مزدوجة متسقة للتخلص من الحاجة إلى NMS، مما يقلل من زمن وصول الاستدلال.
  2. Holistic Model Design: تحسين شامل للمكونات المختلفة من منظور الكفاءة والدقة، بما في ذلك رؤوس التصنيف خفيفة الوزن، وأخذ العينات الفرعية المفككة مكانياً وقناة، وتصميم الكتلة الموجه بالرتبة.
  3. Enhanced Model Capabilities: يدمج التلافيف كبيرة النواة ووحدات الانتباه الذاتي الجزئية لتحسين الأداء دون تكلفة حسابية كبيرة.

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

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

  • YOLOv10n: نسخة Nano للبيئات المقيدة بالموارد بشكل كبير.
  • 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)زمن الوصول (ms)
[YOLOv10n][1]64038.56.71.84
[YOLOv10s][2]64046.321.62.49
[YOLOv10m][3]64051.159.14.74
[YOLOv10b][4]64052.592.05.74
[YOLOv10l][5]64053.2120.37.28
[YOLOv10x][6]64054.4160.410.70

المنهجية

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

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

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

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

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

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

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

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

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

المقارنات

مقارنة YOLOv10 مع أجهزة كشف الكائنات المتطورة

مقارنة بأجهزة الكشف المتطورة الأخرى:

  • 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

قيم المعلمات (Params) و FLOPs خاصة بالنموذج المدمج بعد تنفيذ model.fuse()، الذي يدمج طبقات Conv و BatchNorm ويزيل رأس الكشف الإضافي من نوع واحد إلى متعدد. تحتفظ نقاط التفتيش المدربة مسبقاً ببنية التدريب الكاملة وقد تظهر عدداً أكبر.

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

للتنبؤ بصور جديدة باستخدام YOLOv10. يمكن أيضاً تدريب النماذج على وحدات معالجة الرسومات (GPUs) السحابية من خلال منصة Ultralytics:

مثال
from ultralytics import YOLO

# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")

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

# Display the results
results[0].show()

لتدريب 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)

المهام والأنماط المدعومة

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

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

تصدير YOLOv10

نظراً للعمليات الجديدة التي تم تقديمها مع YOLOv10، لا يتم دعم جميع تنسيقات التصدير التي توفرها Ultralytics حالياً. يوضح الجدول التالي التنسيقات التي تم تحويلها بنجاح باستخدام Ultralytics لـ YOLOv10. لا تتردد في فتح طلب سحب (pull request) إذا كنت قادراً على تقديم مساهمة لإضافة دعم تصدير لتنسيقات إضافية لـ 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 السابقة ودمج استراتيجيات تصميم مبتكرة. كان نهجها الخالي من NMS رائداً في اكتشاف الكائنات من الطرف إلى الطرف في عائلة YOLO. للحصول على أحدث نموذج من Ultralytics بأداء مُحسَّن واستدلال خالٍ من NMS، راجع YOLO26.

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

نود أن نعرب عن تقديرنا لمؤلفي YOLOv10 من جامعة تسينغhua لأبحاثهم المكثفة ومساهماتهم الهامة في إطار عمل 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 الخاص بفريق جامعة تسينغhua.

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

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

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

كيف يمكنني البدء في إجراء الاستدلال باستخدام YOLOv10؟

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

مثال
from ultralytics import YOLO

# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()

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

ما هي متغيرات النماذج التي يقدمها YOLOv10 وما هي حالات استخدامها؟

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

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

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

كيف يعمل نهج خلو YOLOv10 من NMS على تحسين الأداء؟

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

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

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

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

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

تعليقات