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

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

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

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



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

لمحة عامة

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

الهندسة المعمارية

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

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

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

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

متغيرات الطراز

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

  • YOLOv10-N: إصدار النانو للبيئات محدودة الموارد للغاية.
  • YOLOv10-S: إصدار صغير يوازن بين السرعة والدقة.
  • YOLOv10-M: إصدار متوسط للاستخدام للأغراض العامة.
  • YOLOv10-B: إصدار متوازن مع زيادة العرض للحصول على دقة أعلى.
  • YOLOv10-L: إصدار كبير لدقة أعلى على حساب زيادة الموارد الحاسوبية.
  • YOLOv10-X: إصدار كبير للغاية لتحقيق أقصى قدر من الدقة والأداء.

الأداء

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

الطراز حجم المدخلات أ.ب.ف.ف.ج النقطتان (ز) زمن الاستجابة (مللي ثانية)
YOLOV10-N 640 38.5 6.7 1.84
YOLOV10-S 640 46.3 21.6 2.49
YOLOV10-M 640 51.1 59.1 4.74
YOLOV10-B 640 52.5 92.0 5.74
YOLOV10-L 640 53.2 120.3 7.28
YOLOV10-X 640 54.4 160.4 10.70

زمن الاستجابة الذي تم قياسه باستخدام TensorRT FP16 على T4 GPU.

المنهجية

التعيينات المزدوجة المتسقة للتدريب الخالي من نظام إدارة المحتوى الوطني

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

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

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

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

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

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

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

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

المقارنات

مقارنة YOLOv10 مع كاشفات الأجسام SOTA

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

  • إن YOLOV10-S/X أسرع بـ 1.8×/ 1.3× من RT-DETR-R18 / R101 بدقة مماثلة
  • يحتوي YOLOv10-B على معلمات أقل بنسبة 25% وزمن استجابة أقل بنسبة 46% من YOLOv9-C بالدقة نفسها
  • يتفوق أداء YOLOv10-L / X على أداء YOLOv8-L / X بمقدار 0.3 نقطة مئوية / 0.5 نقطة مئوية مع معلمات أقل بمقدار 1.8 × / 2.3 ×

فيما يلي مقارنة مفصّلة بين متغيرات YOLOv10 مع أحدث الموديلات الأخرى:

الطراز بارامز
(م)

(G)
مافال
50-95
زمن الاستجابة
(مللي ثانية)
الكمون إلى الأمام
(مللي ثانية)
YOLOV6-3.0-N 4.7 11.4 37.0 2.69 1.76
الذهب-YOLO-ن 5.6 12.1 39.6 2.92 1.82
YOLOv8-N 3.2 8.7 37.3 6.16 1.77
YOLOV10-N 2.3 6.7 39.5 1.84 1.79
YOLOV6-3.0-S 18.5 45.3 44.3 3.42 2.35
الذهب-YOLO-S 21.5 46.0 45.4 3.82 2.73
YOLOv8-S 11.2 28.6 44.9 7.07 2.33
YOLOV10-S 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
الذهب-YOLO-م 41.3 87.5 49.8 6.38 5.45
YOLOv8-M 25.9 78.9 50.6 9.50 5.09
YOLOV10-M 15.4 59.1 51.3 4.74 4.63
YOLOV6-3.0-L 59.6 150.7 51.8 9.02 7.90
الذهب-YOLO-L 75.1 151.7 51.8 10.65 9.78
YOLOv8-L 43.7 165.2 52.9 12.39 8.06
RT-DETR-R50 42.0 136.0 53.1 9.20 9.07
YOLOV10-L 24.4 120.3 53.4 7.28 7.21
YOLOv8-X 68.2 257.8 53.9 16.86 12.83
RT-DETR-R101 76.0 259.0 54.3 13.71 13.58
YOLOV10-X 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 مجموعة من الموديلات، كل منها مُحسَّن للكشف عن الكائنات عالية الأداء. تلبي هذه النماذج الاحتياجات الحسابية المتنوعة ومتطلبات الدقة المختلفة، مما يجعلها متعددة الاستخدامات لمجموعة واسعة من التطبيقات.

الطراز أسماء الملفات المهام الاستدلال التحقق من الصحة التدريب التصدير
يولوف 10 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 لايت مُحسَّن للهاتف المحمول والمضمّن.
TF إيدج TPU خاص بأجهزة Google'Edge TPU .
TF.js بيئة JavaScript لاستخدام المتصفح.
PaddlePaddle شعبية في الصين؛ دعم عالمي أقل.
NCNN الطبقة torch.topk غير موجود أو مسجل

الخاتمة

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

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

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

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

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

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

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

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

مثال على ذلك

from ultralytics import YOLO

# Load the pre-trained YOLOv10-N 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 العديد من الطرازات المختلفة لتلبية حالات الاستخدام المختلفة:

  • YOLOv10-N: مناسب للبيئات ذات الموارد المحدودة للغاية
  • YOLOv10-S: يوازن بين السرعة والدقة
  • YOLOV10-M: الاستخدام للأغراض العامة
  • YOLOv10-B: دقة أعلى مع زيادة العرض
  • YOLOv10-L: دقة عالية على حساب الموارد الحاسوبية
  • YOLOv10-X: أقصى قدر من الدقة والأداء

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

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

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

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

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

ما هي معايير الأداء لطرازات YOLOv10؟

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

📅 تم إنشاؤها قبل 6 أشهر ✏️ تم التحديث منذ 2 أشهر

التعليقات