YOLO Vision 2026:

YOLOv10: اكتشاف كائنات في الوقت الفعلي ومن الطرف إلى الطرف (End-to-End)#

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

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



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

نظرة عامة#

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

البنية الهندسية#

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

  1. العمود الفقري: المسؤول عن استخراج الميزات، ويستخدم العمود الفقري في 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: يستخدم تعيينات مزدوجة متسقة للقضاء على الحاجة إلى 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 على GPU من نوع T4.

النموذجحجم الإدخال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 مع أجهزة كشف الكائنات 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

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

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

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

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

الخلاصة#

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

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

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

اقتباس
@inproceedings{wang2024yolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Wang, Ao and Chen, Hui and Liu, Lihao and Chen, Kai and Lin, Zijia and Han, Jungong and Ding, Guiguang},
  booktitle={Advances in Neural Information Processing Systems},
  doi = {10.52202/079017-3429},
  url = {https://proceedings.neurips.cc/paper_files/paper/2024/file/c34ddd05eb089991f06f3c5dc36836e0-Paper-Conference.pdf},
  volume={37},
  pages={107984--108011},
  year={2024}
}

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

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

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

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

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

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

التعليقات