Ultralytics YOLOv5
نظرة عامة
يمثل YOLOv5u تقدماً في منهجيات اكتشاف الكائنات. انطلاقاً من البنية الأساسية لنموذج YOLOv5 الذي طورته Ultralytics، يدمج YOLOv5u الرأس المنفصل الخالي من المرساة (anchor-free) والخالي من خاصية الكائن (objectness-free)، وهي ميزة تم تقديمها سابقاً في نماذج YOLOv8. يعمل هذا التعديل على تحسين بنية النموذج، مما يؤدي إلى تحسين المفاضلة بين الدقة والسرعة في مهام اكتشاف الكائنات. وبالنظر إلى النتائج التجريبية وميزاته المشتقة، يوفر YOLOv5u بديلاً فعالاً لأولئك الذين يبحثون عن حلول قوية في كل من الأبحاث والتطبيقات العملية.

توفر Ultralytics متغيراً خالياً من المرساة لنموذج YOLOv5. لا يمكن استخدام النماذج التي تم تدريبها باستخدام مستودع YOLOv5 الأصلي مع مكتبة Ultralytics.
استكشف نماذج YOLOv5 وقم بتشغيلها مباشرة على منصة Ultralytics.
الميزات الرئيسية
-
رأس Ultralytics المنفصل الخالي من المرساة: تعتمد نماذج اكتشاف الكائنات التقليدية على صناديق مرساة (anchor boxes) محددة مسبقاً للتنبؤ بمواقع الكائنات. ومع ذلك، يقوم YOLOv5u بتحديث هذا النهج. فمن خلال اعتماد رأس Ultralytics منفصل وخالٍ من المرساة، فإنه يضمن آلية اكتشاف أكثر مرونة وقابلية للتكيف، مما يعزز الأداء في سيناريوهات متنوعة.
-
مفاضلة محسنة بين الدقة والسرعة: غالباً ما تسير السرعة والدقة في اتجاهين متعاكسين. لكن YOLOv5u يتحدى هذه المقايضة. فهو يوفر توازناً معايراً، مما يضمن اكتشافات في الوقت الفعلي دون المساومة على الدقة. هذه الميزة لا تقدر بثمن بشكل خاص للتطبيقات التي تتطلب استجابات سريعة، مثل المركبات ذاتية القيادة، والروبوتات، وتحليلات الفيديو في الوقت الفعلي.
-
مجموعة متنوعة من النماذج المدربة مسبقاً: إدراكاً منا بأن المهام المختلفة تتطلب أدوات مختلفة، يوفر YOLOv5u عدداً كبيراً من النماذج المدربة مسبقاً. سواء كنت تركز على الاستدلال (Inference) أو التحقق (Validation) أو التدريب (Training)، فهناك نموذج مصمم خصيصاً في انتظارك. يضمن هذا التنوع أنك لا تستخدم حلاً واحداً يناسب الجميع، بل نموذجاً تم ضبطه بدقة لتحديك الفريد.
المهام والأنماط المدعومة
تتفوق نماذج YOLOv5u، بأوزانها المدربة مسبقاً المختلفة، في مهام اكتشاف الكائنات. وهي تدعم مجموعة شاملة من الأوضاع، مما يجعلها مناسبة لتطبيقات متنوعة، من التطوير إلى النشر.
| نوع النموذج | الأوزان المدربة مسبقاً | المهمة | الاستدلال | التحقق | التدريب | تصدير |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | اكتشاف الكائنات | ✅ | ✅ | ✅ | ✅ |
يقدم هذا الجدول نظرة عامة مفصلة عن متغيرات نموذج YOLOv5u، مع تسليط الضوء على قابليتها للتطبيق في مهام اكتشاف الكائنات ودعمها لأوضاع تشغيلية مختلفة مثل الاستدلال، والتحقق، والتدريب، والتصدير. يضمن هذا الدعم الشامل قدرة المستخدمين على الاستفادة الكاملة من إمكانيات نماذج YOLOv5u في مجموعة واسعة من سيناريوهات اكتشاف الكائنات.
مقاييس الأداء
راجع مستندات الكشف للحصول على أمثلة للاستخدام مع هذه النماذج المدربة على COCO، والتي تتضمن 80 فئة مدربة مسبقاً.
| النموذج | YAML | الحجم (بكسل) | mAPval 50-95 | السرعة CPU ONNX (ملي ثانية) | السرعة A100 TensorRT (ms) | المعلمات (مليون) | FLOPs (مليار) |
|---|---|---|---|---|---|---|---|
| yolov5nu.pt | yolov5n.yaml | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
| yolov5su.pt | yolov5s.yaml | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
| yolov5mu.pt | yolov5m.yaml | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
| yolov5lu.pt | yolov5l.yaml | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
| yolov5xu.pt | yolov5x.yaml | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
| yolov5n6u.pt | yolov5n6.yaml | 1280 | 42.1 | 211.0 | 1.83 | 4.3 | 7.8 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 24.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 65.7 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 137.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.4 | 250.7 |
أمثلة الاستخدام
يقدم هذا المثال أمثلة بسيطة لتدريب YOLOv5 والاستدلال به. للحصول على وثائق كاملة حول هذه الأوضاع وغيرها من الأوضاع، راجع صفحات وثائق التنبؤ والتدريب والتحقق والتصدير.
يمكن تمرير نماذج PyTorch المدربة مسبقاً بصيغة *.pt بالإضافة إلى ملفات الإعداد بصيغة *.yaml إلى فئة YOLO() لإنشاء مثيل للنموذج في Python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv5n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")الاقتباسات والشكر
لم تنشر Ultralytics بحثاً رسمياً لنموذج YOLOv5 نظراً للطبيعة المتطورة بسرعة لهذه النماذج. نحن نركز على تطوير التكنولوجيا وتسهيل استخدامها، بدلاً من إنتاج وثائق ثابتة. للحصول على أحدث المعلومات حول بنية YOLO والميزات والاستخدام، يرجى الرجوع إلى مستودع GitHub والوثائق الخاصة بنا.
إذا كنت تستخدم YOLOv5 أو YOLOv5u في بحثك، يرجى الاستشهاد بمستودع Ultralytics YOLOv5 كما يلي:
@software{yolov5,
title = {Ultralytics YOLOv5},
author = {Glenn Jocher},
year = {2020},
version = {7.0},
license = {AGPL-3.0},
url = {https://github.com/ultralytics/yolov5},
doi = {10.5281/zenodo.3908559},
orcid = {0000-0001-5950-6979}
}يرجى ملاحظة أن نماذج YOLOv5 مقدمة بموجب تراخيص AGPL-3.0 وEnterprise.
الأسئلة الشائعة
ما هو Ultralytics YOLOv5u وكيف يختلف عن YOLOv5؟
Ultralytics YOLOv5u هو إصدار متطور من YOLOv5، يدمج الرأس المنفصل الخالي من المرساة والخاصية الكائنية، مما يعزز المفاضلة بين الدقة والسرعة لمهام اكتشاف الكائنات في الوقت الفعلي. على عكس YOLOv5 التقليدي، يعتمد YOLOv5u آلية اكتشاف خالية من المرساة، مما يجعله أكثر مرونة وقابلية للتكيف في سيناريوهات متنوعة. لمزيد من المعلومات التفصيلية حول ميزاته، يمكنك الرجوع إلى نظرة عامة على YOLOv5.
كيف يعمل رأس Ultralytics الخالي من المرساة على تحسين أداء اكتشاف الكائنات في YOLOv5u؟
يعمل رأس Ultralytics الخالي من المرساة في YOLOv5u على تحسين أداء اكتشاف الكائنات من خلال القضاء على الاعتماد على صناديق المرساة المحددة مسبقاً. وينتج عن ذلك آلية اكتشاف أكثر مرونة وقابلية للتكيف يمكنها التعامل مع أحجام وأشكال الكائنات المختلفة بكفاءة أكبر. يساهم هذا التحسين بشكل مباشر في تحقيق توازن بين الدقة والسرعة، مما يجعل YOLOv5u مناسباً للتطبيقات في الوقت الفعلي. تعرف على المزيد حول بنيته في قسم الميزات الرئيسية.
هل يمكنني استخدام نماذج YOLOv5u المدربة مسبقاً لمهام وأوضاع مختلفة؟
نعم، يمكنك استخدام نماذج YOLOv5u المدربة مسبقاً لمهام متنوعة مثل اكتشاف الكائنات. تدعم هذه النماذج أوضاعاً متعددة، بما في ذلك الاستدلال، والتحقق، والتدريب، والتصدير. تسمح هذه المرونة للمستخدمين بالاستفادة من إمكانيات نماذج YOLOv5u عبر متطلبات تشغيلية مختلفة. للحصول على نظرة عامة مفصلة، راجع قسم المهام والأوضاع المدعومة.
كيف تقارن مقاييس أداء نماذج YOLOv5u على منصات مختلفة؟
تختلف مقاييس أداء نماذج YOLOv5u اعتماداً على المنصة والأجهزة المستخدمة. على سبيل المثال، يحقق نموذج YOLOv5nu دقة 34.3 mAP على مجموعة بيانات COCO بسرعة 73.6 مللي ثانية على وحدة المعالجة المركزية (ONNX) و1.06 مللي ثانية على A100 TensorRT. يمكن العثور على مقاييس أداء تفصيلية لنماذج YOLOv5u المختلفة في قسم مقاييس الأداء، والذي يوفر مقارنة شاملة عبر أجهزة متنوعة.
كيف يمكنني تدريب نموذج YOLOv5u باستخدام واجهة برمجة تطبيقات Python الخاصة بـ Ultralytics؟
يمكنك تدريب نموذج YOLOv5u عن طريق تحميل نموذج مدرب مسبقاً وتشغيل أمر التدريب باستخدام مجموعة البيانات الخاصة بك. إليك مثال سريع:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)لمزيد من التعليمات التفصيلية، تفضل بزيارة قسم أمثلة الاستخدام.