YOLOv3 و YOLOv3u#
نظرة عامة#
يقدّم هذا المستند نظرة عامة على ثلاثة نماذج مترابطة ارتباطًا وثيقًا لاكتشاف الأجسام، وهي YOLOv3 وYOLOv3-Ultralytics وYOLOv3u.
-
YOLOv3: هذا هو الإصدار الثالث من خوارزمية اكتشاف الأجسام «لن ترَ إلا مرة واحدة» (YOLO). طوّرها جوزيف ريدمون في الأصل، وقد حسّن YOLOv3 أداء أسلافه من خلال تقديم ميزات مثل التنبؤات متعددة المقاييس وثلاثة أحجام مختلفة لنوى الكشف.
-
YOLOv3-Ultralytics: هذا هو تطبيق PyTorch من Ultralytics لنموذج YOLOv3، والمُصان في مستودع ultralytics/yolov3. فهو يحافظ على المعمارية الأصلية القائمة على المرساة مع إضافة المزيد من النماذج المدربة مسبقاً وتخصيص أسهل.
-
YOLOv3u: هذا إصدار محدّث من YOLOv3-Ultralytics يدمج الرأس المنقسم الخالي من المراسي والخالي من درجات وجود الأجسام، والمستخدم في نماذج YOLOv8. يحافظ YOLOv3u على البنية نفسها لكل من الهيكل الأساسي والعنق كما في YOLOv3، لكنه يستخدم رأس الكشف المحدّث من YOLOv8.

الميزات الرئيسية#
-
YOLOv3: قدّم استخدام ثلاثة مقاييس مختلفة للكشف، مستفيدًا من ثلاثة أحجام مختلفة لنوى الكشف: 13x13 و26x26 و52x52. وقد حسّن ذلك دقة الكشف بدرجة كبيرة للأجسام ذات الأحجام المختلفة. بالإضافة إلى ذلك، أضاف YOLOv3 ميزات مثل التنبؤات متعددة التسميات لكل صندوق إحاطة وشبكة أفضل لاستخراج السمات.
-
YOLOv3u: يدمج هذا النموذج المحدّث الرأس المنقسم الخالي من المراسي والخالي من درجات وجود الأجسام من YOLOv8. ومن خلال الاستغناء عن الحاجة إلى صناديق المراسي المحددة مسبقًا ودرجات وجود الأجسام، يمكن لتصميم رأس الكشف هذا تحسين قدرة النموذج على اكتشاف الأجسام ذات الأحجام والأشكال المتنوعة. وهذا يجعل YOLOv3u أكثر متانة ودقة في مهام اكتشاف الأجسام.
المهام والأوضاع المدعومة#
صُمّم YOLOv3 خصيصًا لمهام اكتشاف الأجسام. تدعم Ultralytics ثلاثة متغيرات من YOLOv3: yolov3u وyolov3-tinyu وyolov3-sppu. وتشير u في الاسم إلى أن هذه النماذج تستخدم الرأس الخالي من المراسي في YOLOv8، بخلاف بنيتها الأصلية القائمة على المراسي. وتشتهر هذه النماذج بفعاليتها في مختلف السيناريوهات الواقعية، إذ توازن بين الدقة والسرعة. ويقدم كل متغير ميزات وتحسينات فريدة، مما يجعله مناسبًا لمجموعة متنوعة من التطبيقات.
تدعم النماذج الثلاثة جميع أوضاع العمل الشاملة، مما يضمن تعدد الاستخدامات في مختلف مراحل نشر النماذج وتطويرها. وتشمل هذه الأوضاع الاستدلال والتحقق والتدريب والتصدير، مما يوفر للمستخدمين مجموعة أدوات متكاملة لتنفيذ اكتشاف الأجسام بفعالية.
| نوع النموذج | الأوزان المدرّبة مسبقًا | المهام المدعومة | التدريب | التحقق | الاستدلال | التصدير |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | اكتشاف الأجسام | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | اكتشاف الأجسام | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-SPP(u) | yolov3-sppu.pt | اكتشاف الأجسام | ✅ | ✅ | ✅ | ✅ |
يوفر هذا الجدول عرضًا سريعًا لقدرات كل متغير من متغيرات YOLOv3، مع إبراز تعدد استخداماتها وملاءمتها لمختلف المهام وأوضاع التشغيل في سير عمل اكتشاف الأجسام.
أمثلة على الاستخدام#
يقدم هذا المثال أمثلة بسيطة على تدريب YOLOv3 والاستدلال به. للحصول على الوثائق الكاملة لهذه الأوضاع وغيرها، راجع صفحات وثائق التنبؤ والتدريب والتحقق والتصدير.
يمكن تمرير نماذج *.pt المدرّبة مسبقًا باستخدام PyTorch، بالإضافة إلى ملفات الإعداد *.yaml، إلى الفئة YOLO() لإنشاء مثيل نموذج في Python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.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 YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")الاقتباسات والشكر والتقدير#
إذا استخدمت YOLOv3 في بحثك، فيُرجى الاستشهاد بأبحاث YOLO الأصلية ومستودع Ultralytics YOLOv3:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}شكرًا لجوزيف ريدمون وعلي فرهادي على تطوير YOLOv3 الأصلي.
الأسئلة الشائعة#
YOLOv3 هو التكرار الثالث من خوارزمية YOLO (لن ترَ إلا مرة واحدة) لـاكتشاف الأجسام، التي طوّرها جوزيف ريدمون، والمعروفة بتوازنها بين الدقة والسرعة، إذ تستخدم ثلاثة مقاييس مختلفة (13x13 و26x26 و52x52) للكشف. أما YOLOv3-Ultralytics فهو تكييف Ultralytics لنموذج YOLOv3، ويضيف دعمًا لمزيد من النماذج المدربة مسبقًا ويسهّل تخصيص النماذج. وYOLOv3u هو متغير مطوّر من YOLOv3-Ultralytics، يدمج الرأس المنقسم الخالي من المراسي والخالي من درجات وجود الأجسام من YOLOv8، مما يحسّن متانة الكشف ودقته لمختلف أحجام الأجسام. لمزيد من التفاصيل حول المتغيرات، راجع سلسلة YOLOv3.
يُعد تدريب نموذج YOLOv3 باستخدام Ultralytics أمرًا مباشرًا. يمكنك تدريب النموذج باستخدام Python أو CLI:
مثالfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)للحصول على خيارات وإرشادات أكثر شمولًا للتدريب، تفضل بزيارة وثائق وضع التدريب.
يحسّن YOLOv3u أداء YOLOv3 وYOLOv3-Ultralytics من خلال دمج الرأس المنقسم الخالي من المراسي والخالي من درجات وجود الأجسام، والمستخدم في نماذج YOLOv8. يلغي هذا التحديث الحاجة إلى صناديق المراسي المحددة مسبقًا ودرجات وجود الأجسام، مما يعزز قدرته على اكتشاف الأجسام ذات الأحجام والأشكال المتنوعة بدقة أكبر. وهذا يجعل YOLOv3u خيارًا أفضل لمهام اكتشاف الأجسام المعقدة والمتنوعة. لمزيد من المعلومات، راجع قسم الميزات الرئيسية.
يمكنك إجراء الاستدلال باستخدام نماذج YOLOv3 إما عبر نصوص Python البرمجية أو أوامر CLI:
مثالfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Run inference with the YOLOv3u model on the 'bus.jpg' image results = model("path/to/bus.jpg")راجع وثائق وضع الاستدلال لمزيد من التفاصيل حول تشغيل نماذج YOLO.
يدعم YOLOv3 وYOLOv3-Tiny وYOLOv3-SPP مهام اكتشاف الأجسام بشكل أساسي. ويمكن استخدام هذه النماذج في مختلف مراحل نشر النماذج وتطويرها، مثل الاستدلال والتحقق والتدريب والتصدير. للحصول على قائمة شاملة بالمهام المدعومة ومزيد من التفاصيل المتعمقة، تفضل بزيارة وثائق مهام اكتشاف الأجسام.
إذا استخدمت YOLOv3 في بحثك، فيُرجى الاستشهاد بأبحاث YOLO الأصلية ومستودع Ultralytics YOLOv3. مثال على استشهاد BibTeX:
اقتباس@article{redmon2018yolov3, title={YOLOv3: An Incremental Improvement}, author={Redmon, Joseph and Farhadi, Ali}, journal={arXiv preprint arXiv:1804.02767}, year={2018} }لمزيد من تفاصيل الاستشهاد، راجع قسم الاستشهادات والشكر والتقدير.