Meet YOLO26: next-gen vision AI.

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

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 consistent dual assignment for NMS-free training



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

Link to this sectionنظرة عامة#

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

Link to this sectionالبنية الهندسية#

تعتمد هندسة 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، مما يقلل زمن الوصول ويحسن الكفاءة.

Link to this sectionالميزات الرئيسية#

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

Link to this sectionمتغيرات النموذج#

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

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

Link to this sectionالأداء#

يتفوق 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

Link to this sectionالمنهجية#

Link to this sectionتعيينات مزدوجة متسقة للتدريب بدون NMS#

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

Link to this sectionتصميم نموذج شامل يعتمد على الكفاءة والدقة#

Link to this sectionتحسينات الكفاءة#

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

Link to this sectionتحسينات الدقة#

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

Link to this sectionالتجارب والنتائج#

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

Link to this sectionالمقارنات#

YOLOv10 comparison with SOTA object detectors

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

  • 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 وإزالة رأس الكشف الإضافي واحد-إلى-متعدد. تحتفظ نقاط التحقق المدربة مسبقًا بهيكلية التدريب الكاملة وقد تظهر أعدادًا أعلى.

Link to this sectionأمثلة الاستخدام#

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

مثال
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)

Link to this sectionالمهام والأوضاع المدعومة#

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

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

Link to this sectionتصدير YOLOv10#

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

Link to this sectionالخلاصة#

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

Link to this sectionالاقتباسات والشكر#

نود أن نعرب عن تقديرنا لمؤلفي 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}
}

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

Link to this sectionالأسئلة الشائعة#

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

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

Link to this sectionكيف يمكنني البدء في تشغيل الاستدلال باستخدام 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()

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

Link to this sectionما هي متغيرات النماذج التي يقدمها YOLOv10 وما هي حالات استخدامها؟#

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

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

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

Link to this sectionكيف يحسن النهج الخالي من NMS في YOLOv10 الأداء؟#

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

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

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

Link to this sectionما هي مقاييس الأداء لنماذج YOLOv10؟#

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

التعليقات