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

التكوين

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

شاهد: إتقان Ultralytics YOLO: التكوين



شاهد: إتقان Ultralytics YOLO: التكوين

تستخدم أوامر Ultralytics بناء الجملة التالي:

مثال

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO model from a pre-trained weights file
model = YOLO("yolo11n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

حيث:

افتراضي ARG يتم تحديد القيم في هذه الصفحة وتأتي من cfg/defaults.yaml ملف.

المهام

يمكن لنماذج Ultralytics YOLO أداء مجموعة متنوعة من مهام الرؤية الحاسوبية، بما في ذلك:

الوسيطة افتراضي الوصف
task 'detect' يحدد مهمة YOLO: detect لـ اكتشاف الكائنات, segment للتجزئة، classify للتصنيف، pose لتقدير الوضعية، و obb للمربعات المحيطة الموجهة. تم تصميم كل مهمة لمخرجات ومشاكل محددة في تحليل الصور والفيديو.

دليل المهام

الأوضاع

تعمل نماذج Ultralytics YOLO في أوضاع مختلفة، تم تصميم كل منها لمرحلة معينة من دورة حياة النموذج:

  • تدريب: تدريب نموذج YOLO على مجموعة بيانات مخصصة.
  • Val: تحقق من صحة نموذج YOLO مدرب.
  • توقع: استخدم نموذج YOLO مُدرَّبًا لعمل تنبؤات على صور أو مقاطع فيديو جديدة.
  • تصدير: تصدير نموذج YOLO للنشر.
  • تتبع: تتبع الكائنات في الوقت الفعلي باستخدام نموذج YOLO.
  • قياس الأداء: قم بقياس سرعة ودقة صادرات YOLO ‏(ONNX و TensorRT وما إلى ذلك).
الوسيطة افتراضي الوصف
mode 'train' يحدد وضع تشغيل نموذج YOLO: train لتدريب النموذج، val للتحقق من الصحة، predict للاستدلال (inference)، export للتحويل إلى تنسيقات النشر، track لتتبع الكائنات، و benchmark لتقييم الأداء. يدعم كل وضع مراحل مختلفة، من التطوير إلى النشر.

دليل الأوضاع

إعدادات التدريب

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

الوسيطة النوع افتراضي الوصف
model str None يحدد ملف النموذج للتدريب. يقبل مسارًا إما إلى .pt نموذج مُدرَّب مسبقًا أو إلى .yaml ملف تكوين. ضروري لتحديد بنية النموذج أو تهيئة الأوزان.
data str None مسار إلى ملف تكوين مجموعة البيانات (مثل, coco8.yaml). يحتوي هذا الملف على معلمات خاصة بمجموعة البيانات، بما في ذلك مسارات إلى التدريب و بيانات التحققوأسماء الفئات وعدد الفئات.
epochs int 100 العدد الإجمالي لحقب التدريب. تمثل كل حقبة تمريرة كاملة على مجموعة البيانات بأكملها. يمكن أن يؤثر تعديل هذه القيمة على مدة التدريب وأداء النموذج.
time float None الحد الأقصى لوقت التدريب بالساعات. إذا تم تعيينه، فإنه يتجاوز epochs مما يسمح بإيقاف التدريب تلقائيًا بعد المدة المحددة. مفيد لسيناريوهات التدريب المقيدة بالوقت.
patience int 100 عدد الحقب التي يجب الانتظار خلالها دون تحسن في مقاييس التحقق قبل الإيقاف المبكر للتدريب. يساعد على منع التحميل الزائد عن طريق إيقاف التدريب عندما يستقر الأداء.
batch int أو float 16 حجم الدفعة، مع ثلاثة أوضاع: يتم تعيينه كعدد صحيح (مثل, batch=16)، الوضع التلقائي لاستخدام ذاكرة GPU بنسبة 60٪ (batch=-1)، أو الوضع التلقائي مع تحديد جزء الاستخدام (batch=0.70).
imgsz int أو list 640 حجم الصورة المستهدف للتدريب. يتم تغيير حجم جميع الصور إلى هذا البعد قبل إدخالها في النموذج. يؤثر على دقة النموذج والتعقيد الحسابي.
save bool True يتيح حفظ نقاط التحقق من التدريب وأوزان النموذج النهائية. مفيد لاستئناف التدريب أو نشر النموذج.
save_period int -1 تكرار حفظ نقاط التحقق من النموذج، المحدد بالحقبة. القيمة -1 تعطل هذه الميزة. مفيد لحفظ النماذج المؤقتة أثناء جلسات التدريب الطويلة.
cache bool False يتيح تخزين صور مجموعة البيانات مؤقتًا في الذاكرة (True/ram)، على القرص (disk)، أو تعطيله (False). يحسن سرعة التدريب عن طريق تقليل عمليات الإدخال/الإخراج على القرص على حساب زيادة استخدام الذاكرة.
device int أو str أو list None يحدد الجهاز (الأجهزة) الحسابية للتدريب: وحدة معالجة رسومات واحدة (GPU) (device=0)، وحدات معالجة رسومات متعددة (GPU) (device=[0,1])، وحدة معالجة مركزية (CPU) (device=cpu)، MPS لـ Apple silicon (device=mps)، أو الاختيار التلقائي لوحدة معالجة الرسومات (GPU) الأكثر خمولاً (device=-1) أو وحدات معالجة الرسومات (GPU) المتعددة غير المستخدمة (device=[-1,-1])
workers int 8 عدد سلاسل العمل لتحميل البيانات (لكل RANK إذا كان التدريب متعدد وحدات معالجة الرسوميات). يؤثر على سرعة معالجة البيانات الأولية وتغذيتها في النموذج، وهو مفيد بشكل خاص في إعدادات وحدات معالجة الرسوميات المتعددة.
project str None اسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بتخزين منظم للتجارب المختلفة.
name str None اسم تشغيل التدريب. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التدريب.
exist_ok bool False إذا كانت القيمة True، يسمح بالكتابة فوق دليل مشروع/اسم موجود. مفيد للتجريب التكراري دون الحاجة إلى مسح المخرجات السابقة يدويًا.
pretrained bool أو str True يحدد ما إذا كان سيتم بدء التدريب من نموذج مُدرَّب مسبقًا. يمكن أن تكون قيمة منطقية أو مسار سلسلة إلى نموذج معين لتحميل الأوزان منه. يعزز كفاءة التدريب وأداء النموذج.
optimizer str 'auto' اختيار المحسن للتدريب. تشمل الخيارات SGD, Adam, AdamW, NAdam, RAdam, RMSProp إلخ، أو auto للاختيار التلقائي بناءً على تكوين النموذج. يؤثر على سرعة واستقرار التقارب.
seed int 0 يحدد البذرة العشوائية للتدريب، مما يضمن إمكانية تكرار النتائج عبر عمليات التشغيل بنفس التكوينات.
deterministic bool True يفرض استخدام الخوارزمية الحتمية، مما يضمن إمكانية التكرار ولكنه قد يؤثر على الأداء والسرعة بسبب القيود المفروضة على الخوارزميات غير الحتمية.
single_cls bool False يعامل جميع الفئات في مجموعات البيانات متعددة الفئات كفئة واحدة أثناء التدريب. مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الكائن بدلاً من التصنيف.
classes list[int] None يحدد قائمة بمعرفات الفئات المراد التدريب عليها. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التدريب.
rect bool False يتيح التدريب المستطيل، وتحسين تكوين الدُفعات لتقليل الحشو. يمكن أن يحسن الكفاءة والسرعة ولكنه قد يؤثر على دقة النموذج.
multi_scale bool False تمكين التدريب متعدد المقاييس عن طريق الزيادة/النقصان imgsz بنسبة تصل إلى عامل 0.5 أثناء التدريب. يدرب النموذج ليكون أكثر دقة مع imgsz أثناء الاستدلال.
cos_lr bool False يستخدم جدولة معدل التعلم لجيب التمام، وضبط معدل التعلم باتباع منحنى جيب التمام عبر الحقب. يساعد في إدارة معدل التعلم لتحسين التقارب.
close_mosaic int 10 يعطل زيادة البيانات الفسيفسائية في آخر N حقبة لتثبيت التدريب قبل الانتهاء. يؤدي التعيين إلى 0 إلى تعطيل هذه الميزة.
resume bool False يستأنف التدريب من آخر نقطة تفتيش محفوظة. يقوم تلقائيًا بتحميل أوزان النموذج وحالة المُحسِّن وعدد الحقب، ومتابعة التدريب بسلاسة.
amp bool True يتيح التدريب التلقائي بالدقة المختلطة (AMP)، مما يقلل من استخدام الذاكرة وربما يسرع التدريب مع الحد الأدنى من التأثير على الدقة.
fraction float 1.0 يحدد جزء مجموعة البيانات المراد استخدامه للتدريب. يسمح بالتدريب على مجموعة فرعية من مجموعة البيانات الكاملة، وهو مفيد للتجارب أو عندما تكون الموارد محدودة.
profile bool False يتيح تحديد سرعات ONNX و TensorRT أثناء التدريب، وهو أمر مفيد لتحسين نشر النموذج.
freeze int أو list None يقوم بتجميد أول N طبقة من النموذج أو طبقات محددة بواسطة الفهرس، مما يقلل من عدد المعلمات القابلة للتدريب. مفيد للضبط الدقيق أو التعلم بالنقل.
lr0 float 0.01 معدل التعلم الأولي (على سبيل المثال SGD=1E-2, Adam=1E-3). يعد تعديل هذه القيمة أمرًا بالغ الأهمية لعملية التحسين، مما يؤثر على مدى سرعة تحديث أوزان النموذج.
lrf float 0.01 معدل التعلم النهائي كجزء من المعدل الأولي =lr0 * lrf)، ويستخدم بالاشتراك مع المجدولات لضبط معدل التعلم بمرور الوقت.
momentum float 0.937 عامل الزخم لـ SGD أو beta1 لـ محسنات Adam، مما يؤثر على دمج التدرجات السابقة في التحديث الحالي.
weight_decay float 0.0005 مصطلح تسوية L2، لمعاقبة الأوزان الكبيرة لمنع التجاوز.
warmup_epochs float 3.0 عدد الحقب لتهيئة معدل التعلم، وزيادة معدل التعلم تدريجيًا من قيمة منخفضة إلى معدل التعلم الأولي لتحقيق الاستقرار في التدريب في وقت مبكر.
warmup_momentum float 0.8 الزخم الأولي لمرحلة الإحماء، والتعديل التدريجي للزخم المحدد خلال فترة الإحماء.
warmup_bias_lr float 0.1 معدل التعلم لمعلمات التحيز خلال مرحلة الإحماء، مما يساعد على استقرار تدريب النموذج في الحقب الأولية.
box float 7.5 وزن مكون خسارة الصندوق في دالة الخسارة، مما يؤثر على مقدار التركيز الذي يتم وضعه على التنبؤ بدقة بإحداثيات المربع المحيط.
cls float 0.5 وزن خسارة التصنيف في دالة الخسارة الكلية، مما يؤثر على أهمية التنبؤ الصحيح بالفئة بالنسبة إلى المكونات الأخرى.
dfl float 1.5 وزن خسارة التوزيع البؤري، المستخدم في إصدارات YOLO معينة للتصنيف الدقيق.
pose float 12.0 وزن خسارة الوضعية في النماذج المدربة على تقدير الوضعية، مما يؤثر على التأكيد على التنبؤ الدقيق بالنقاط الرئيسية للوضعية.
kobj float 2.0 وزن خسارة موضوعية النقاط الرئيسية في نماذج تقدير الوضعية، وموازنة الثقة في الكشف مع دقة الوضعية.
nbs int 64 حجم الدفعة الاسمية لتطبيع الخسارة.
overlap_mask bool True يحدد ما إذا كان يجب دمج أقنعة الكائنات في قناع واحد للتدريب، أو الاحتفاظ بها منفصلة لكل كائن. في حالة التداخل، يتم وضع القناع الأصغر فوق القناع الأكبر أثناء الدمج.
mask_ratio int 4 نسبة أخذ العينات السفلية لأقنعة التجزئة، مما يؤثر على دقة الأقنعة المستخدمة أثناء التدريب.
dropout float 0.0 معدل التسرب للتسوية في مهام التصنيف، ومنع التجاوز عن طريق حذف الوحدات عشوائيًا أثناء التدريب.
val bool True يتيح التحقق من الصحة أثناء التدريب، مما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة.
plots bool False يقوم بإنشاء وحفظ مخططات لمقاييس التدريب والتحقق من الصحة، بالإضافة إلى أمثلة التنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم.

ملاحظة حول إعدادات حجم الدفعة

في batch توفر الوسيطة ثلاثة خيارات للتكوين:

  • حجم الدفعة الثابت: حدد عدد الصور لكل دفعة باستخدام عدد صحيح (على سبيل المثال، batch=16).
  • الوضع التلقائي (ذاكرة GPU بنسبة 60٪): استخدم batch=-1 للتعديل التلقائي لاستخدام ما يقرب من 60% من ذاكرة CUDA.
  • الوضع التلقائي مع جزء الاستخدام: حدد جزءًا (على سبيل المثال، batch=0.70) للتعديل بناءً على استخدام معين لذاكرة وحدة معالجة الرسومات (GPU).

دليل التدريب

إعدادات التوقع

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

وسيطات الاستدلال:

الوسيطة النوع افتراضي الوصف
source str 'ultralytics/assets' يحدد مصدر البيانات للاستدلال. يمكن أن يكون مسار صورة أو ملف فيديو أو دليل أو عنوان URL أو معرف جهاز لتغذية مباشرة. يدعم مجموعة واسعة من التنسيقات والمصادر، مما يتيح تطبيقًا مرنًا عبر أنواع مختلفة من المدخلات.
conf float 0.25 يحدد الحد الأدنى لعتبة الثقة للكشف. سيتم تجاهل الكائنات التي يتم الكشف عنها بثقة أقل من هذه العتبة. يمكن أن تساعد تعديلات هذه القيمة في تقليل النتائج الإيجابية الكاذبة.
iou float 0.7 عتبة تقاطع الاتحاد (IoU) لقمع Non-Maximum Suppression (NMS). تؤدي القيم المنخفضة إلى عدد أقل من عمليات الكشف عن طريق إزالة المربعات المتداخلة، وهو أمر مفيد لتقليل التكرارات.
imgsz int أو tuple 640 يحدد حجم الصورة للاستدلال. يمكن أن يكون عددًا صحيحًا واحدًا 640 لتغيير الحجم المربع أو صف (ارتفاع، عرض). يمكن أن يؤدي تغيير الحجم المناسب إلى تحسين الكشف الدقة وسرعة المعالجة.
rect bool True إذا تم تمكينه، فإنه يضيف حدًا أدنى من المساحات إلى الجانب الأقصر من الصورة حتى يكون قابلاً للقسمة على الخطوة لتحسين سرعة الاستدلال. إذا تم تعطيله، فإنه يضيف مساحة إلى الصورة لتصبح مربعة أثناء الاستدلال.
half bool False يتيح الاستدلال بنصف الدقة (FP16)، مما قد يؤدي إلى تسريع استدلال النموذج على وحدات معالجة الرسومات المدعومة مع الحد الأدنى من التأثير على الدقة.
device str None يحدد الجهاز الخاص بالاستدلال (على سبيل المثال، cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU أو GPU معين أو أجهزة حساب أخرى لتنفيذ النموذج.
batch int 1 يحدد حجم الدُفعة للاستدلال (يعمل فقط عندما يكون المصدر هو دليل أو ملف فيديو أو .txt ملف). يمكن أن يوفر حجم الدفعة الأكبر إنتاجية أعلى، مما يقلل إجمالي الوقت المطلوب للاستدلال.
max_det int 300 الحد الأقصى لعدد عمليات الكشف المسموح بها لكل صورة. يحد من العدد الإجمالي للكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات المفرطة في المشاهد المزدحمة.
vid_stride int 1 تباعد الإطارات لمدخلات الفيديو. يسمح بتخطي الإطارات في مقاطع الفيديو لتسريع المعالجة على حساب الدقة الزمنية. تعالج القيمة 1 كل إطار، بينما تتخطى القيم الأعلى الإطارات.
stream_buffer bool False يحدد ما إذا كان سيتم وضع الإطارات الواردة في قائمة الانتظار لتدفقات الفيديو. إذا False، يتم إسقاط الإطارات القديمة لاستيعاب الإطارات الجديدة (محسن للتطبيقات في الوقت الفعلي). إذا True، يقوم بوضع الإطارات الجديدة في قائمة انتظار في المخزن المؤقت، مما يضمن عدم تخطي أي إطارات، ولكنه سيسبب زمن انتقال إذا كان FPS للاستدلال أقل من FPS للبث.
visualize bool False يقوم بتنشيط تصور ميزات النموذج أثناء الاستدلال، مما يوفر نظرة ثاقبة لما يراه النموذج. مفيد لتصحيح الأخطاء وتفسير النموذج.
augment bool False يتيح زيادة وقت الاختبار (TTA) للتنبؤات، مما قد يحسن قوة الكشف على حساب سرعة الاستدلال.
agnostic_nms bool False يتيح قمع Non-Maximum Suppression (NMS) غير المحدد للفئة، والذي يدمج المربعات المتداخلة لفئات مختلفة. مفيد في سيناريوهات الكشف متعدد الفئات حيث يكون تداخل الفئات شائعًا.
classes list[int] None يقوم بتصفية التنبؤات إلى مجموعة من معرفات الفئات. سيتم إرجاع عمليات الكشف التي تنتمي إلى الفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الكشف متعدد الفئات.
retina_masks bool False إرجاع أقنعة تجزئة عالية الدقة. الأقنعة التي تم إرجاعها (masks.data) ستطابق حجم الصورة الأصلي إذا تم تمكينها. إذا تم تعطيلها، فسيكون لها حجم الصورة المستخدم أثناء الاستدلال.
embed list[int] None يحدد الطبقات التي سيتم استخراج متجهات الميزات أو التضمينات منها. مفيد للمهام اللاحقة مثل التجميع أو البحث عن التشابه.
project str None اسم دليل المشروع حيث يتم حفظ مخرجات التنبؤ إذا save تم تمكينه.
name str None اسم تشغيل التنبؤ. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين مخرجات التنبؤ إذا save تم تمكينه.
stream bool False تمكين المعالجة الفعالة للذاكرة لمقاطع الفيديو الطويلة أو الصور العديدة عن طريق إرجاع مولد لكائنات النتائج بدلاً من تحميل جميع الإطارات في الذاكرة مرة واحدة.
verbose bool True يتحكم فيما إذا كان سيتم عرض سجلات الاستدلال التفصيلية في الجهاز الطرفي، مما يوفر ملاحظات في الوقت الفعلي حول عملية التنبؤ.

وسيطات التصور:

الوسيطة النوع افتراضي الوصف
show bool False إذا True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على تعليقات مرئية فورية أثناء التطوير أو الاختبار.
save bool False or True يتيح حفظ الصور أو مقاطع الفيديو المشروحة في ملف. مفيد للتوثيق أو إجراء مزيد من التحليل أو مشاركة النتائج. يتم تعيينه افتراضيًا على True عند استخدام CLI و False عند استخدامه في python.
save_frames bool False عند معالجة مقاطع الفيديو، يتم حفظ الإطارات الفردية كصور. مفيد لاستخراج إطارات معينة أو لتحليل تفصيلي للإطار تلو الآخر.
save_txt bool False يحفظ نتائج الكشف في ملف نصي، باتباع التنسيق [class] [x_center] [y_center] [width] [height] [confidence]. مفيد للتكامل مع أدوات التحليل الأخرى.
save_conf bool False يتضمن قيم الثقة في الملفات النصية المحفوظة. يعزز التفاصيل المتاحة للمعالجة والتحليل اللاحقين.
save_crop bool False يحفظ الصور المقصوصة للكائنات التي تم الكشف عنها. مفيد لزيادة حجم البيانات، والتحليل، أو إنشاء مجموعات بيانات مركزة لكائنات معينة.
show_labels bool True يعرض تسميات لكل كائن يتم الكشف عنه في الناتج المرئي. يوفر فهمًا فوريًا للكائنات التي تم الكشف عنها.
show_conf bool True يعرض قيمة الثقة لكل كائن يتم الكشف عنه بجانب التسمية. يعطي نظرة ثاقبة حول يقين النموذج لكل كائن تم الكشف عنه.
show_boxes bool True يرسم مربعات إحاطة حول الكائنات التي تم الكشف عنها. ضروري للتحديد المرئي وموقع الكائنات في الصور أو إطارات الفيديو.
line_width None or int None يحدد عرض خطوط مربعات الإحاطة. إذا None، يتم تعديل عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح.

دليل التوقع

إعدادات التحقق

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

الوسيطة النوع افتراضي الوصف
data str None يحدد المسار إلى ملف تكوين مجموعة البيانات (على سبيل المثال، coco8.yaml). يتضمن هذا الملف مسارات إلى بيانات التحققوأسماء الفئات وعدد الفئات.
imgsz int 640 يحدد حجم الصور المدخلة. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة. قد تؤدي الأحجام الأكبر إلى تحسين الدقة للأجسام الصغيرة ولكنها تزيد من وقت الحساب.
batch int 16 يحدد عدد الصور لكل دفعة. القيم الأعلى تستخدم ذاكرة GPU بكفاءة أكبر ولكنها تتطلب المزيد من VRAM. اضبط بناءً على موارد الأجهزة المتاحة.
save_json bool False إذا True، لحفظ النتائج في ملف JSON لمزيد من التحليل أو التكامل مع الأدوات الأخرى أو الإرسال إلى خوادم التقييم مثل COCO.
conf float 0.001 يحدد الحد الأدنى لعتبة الثقة للكشف. القيم الأقل تزيد من الاسترجاع ولكن قد تدخل المزيد من الإيجابيات الخاطئة. يستخدم أثناء التحقق لحساب منحنيات الدقة والاسترجاع.
iou float 0.7 يحدد عتبة تقاطع الاتحاد لـ منع القمع الأقصى. يتحكم في إزالة الاكتشافات المكررة.
max_det int 300 يحد من الحد الأقصى لعدد الاكتشافات لكل صورة. مفيد في المشاهد المزدحمة لمنع الاكتشافات المفرطة وإدارة الموارد الحسابية.
half bool True يتيح حساب نصف الدقة (FP16)، مما يقلل من استخدام الذاكرة ويزيد السرعة المحتملة مع الحد الأدنى من التأثير على الدقة.
device str None يحدد الجهاز للتحقق (cpu, cuda:0، إلخ). عندما None، يختار تلقائيًا أفضل جهاز متاح. يمكن تحديد عدة أجهزة CUDA بفصلها بفواصل.
dnn bool False إذا True، يستخدم OpenCV وحدة DNN للاستدلال بنموذج ONNX، مما يوفر بديلاً لـ PyTorch طرق الاستدلال.
plots bool False عند الضبط على True، يقوم بإنشاء وحفظ مخططات للتنبؤات مقابل الحقائق الأساسية، ومصفوفات الالتباس، ومنحنيات PR للتقييم البصري لأداء النموذج.
classes list[int] None يحدد قائمة بمعرفات الفئات للتدريب عليها. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التقييم.
rect bool True إذا True، يستخدم الاستدلال المستطيل للتقسيم على دفعات، مما يقلل من الحشو ويزيد السرعة والكفاءة المحتملة عن طريق معالجة الصور في نسبة العرض إلى الارتفاع الأصلية.
split str 'val' يحدد تقسيم مجموعة البيانات المراد استخدامها للتحقق (val, test، أو train). يتيح المرونة في اختيار جزء البيانات لتقييم الأداء.
project str None اسم دليل المشروع حيث يتم حفظ مخرجات التحقق. يساعد في تنظيم النتائج من التجارب أو النماذج المختلفة.
name str None اسم تشغيل التحقق. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التحقق.
verbose bool False إذا True، يعرض معلومات مفصلة أثناء عملية التحقق، بما في ذلك مقاييس لكل فئة، وتقدم الدُفعات، ومعلومات تصحيح الأخطاء إضافية.
save_txt bool False إذا True، لحفظ نتائج الكشف في ملفات نصية، مع ملف واحد لكل صورة، وهو أمر مفيد لمزيد من التحليل أو المعالجة اللاحقة المخصصة أو التكامل مع الأنظمة الأخرى.
save_conf bool False إذا True، يتضمن قيم الثقة في ملفات النصوص المحفوظة عندما save_txt ممكن، مما يوفر إخراجًا أكثر تفصيلاً للتحليل والتصفية.
workers int 8 عدد سلاسل العمليات العاملة لتحميل البيانات. القيم الأعلى يمكن أن تسرع معالجة البيانات ولكن قد تزيد من استخدام وحدة المعالجة المركزية CPU. الضبط على 0 يستخدم السلسلة الرئيسية، والتي يمكن أن تكون أكثر استقرارًا في بعض البيئات.
augment bool False تمكين زيادة وقت الاختبار (TTA) أثناء التحقق، مما قد يحسن دقة الكشف على حساب سرعة الاستدلال عن طريق تشغيل الاستدلال على إصدارات محولة من الإدخال.
agnostic_nms bool False تمكين قمع غير الحد الأقصى غير المحدد للفئة، والذي يدمج الصناديق المتداخلة بغض النظر عن فئتها المتوقعة. مفيد للتطبيقات التي تركز على المثيلات.
single_cls bool False يعامل جميع الفئات كفئة واحدة أثناء التحقق من الصحة. مفيد لتقييم أداء النموذج في مهام الكشف الثنائية أو عندما لا تكون الفروق بين الفئات مهمة.

يعد الضبط الدقيق والتجريب الدقيق أمرًا بالغ الأهمية لضمان الأداء الأمثل ولاكتشاف ومنع التدريب الزائد.

دليل Val

إعدادات التصدير

تتضمن إعدادات تصدير نماذج YOLO تكوينات لحفظ النموذج أو تصديره لاستخدامه في بيئات مختلفة. تؤثر هذه الإعدادات على الأداء والحجم والتوافق. تتضمن الإعدادات الرئيسية تنسيق الملف المصدَّر (مثل ONNX أو TensorFlow SavedModel) والجهاز المستهدف (مثل CPU أو GPU) وميزات مثل الأقنعة. تؤثر مهمة النموذج وقيود بيئة الوجهة أيضًا على عملية التصدير.

الوسيطة النوع افتراضي الوصف
format str 'torchscript' التنسيق المستهدف للنموذج المصدر، مثل 'onnx', 'torchscript', 'engine' (TensorRT) أو غيرها. تتيح كل صيغة التوافق مع مختلف بيئات النشر.
imgsz int أو tuple 640 حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة (مثل، 640 لـ 640 × 640) أو صف. (height, width) لأبعاد محددة.
keras bool False يتيح التصدير إلى تنسيق Keras لـ TensorFlow SavedModel، مما يوفر توافقًا مع TensorFlow serving و APIs.
optimize bool False يطبق تحسينًا للأجهزة المحمولة عند التصدير إلى TorchScript، مما قد يقلل من حجم النموذج ويحسن أداء الاستدلال. غير متوافق مع تنسيق NCNN أو أجهزة CUDA.
half bool False تمكين تحديد كمية FP16 (نصف الدقة)، مما يقلل من حجم النموذج وربما يسرع الاستدلال على الأجهزة المدعومة. غير متوافق مع تحديد كمية INT8 أو الصادرات التي تعمل بوحدة المعالجة المركزية فقط لـ ONNX.
int8 bool False يقوم بتنشيط تكميم INT8، مما يزيد من ضغط النموذج وتسريع الاستدلال مع الحد الأدنى من فقدان الدقة، في المقام الأول للأجهزة الطرفية. عند استخدامه مع TensorRT، فإنه ينفذ التكميم بعد التدريب (PTQ).
dynamic bool False يسمح بأحجام إدخال ديناميكية لصادرات ONNX و TensorRT و OpenVINO، مما يعزز المرونة في التعامل مع أبعاد الصور المتغيرة. يتم تعيينه تلقائيًا إلى True عند استخدام TensorRT مع INT8.
simplify bool True يبسط الرسم البياني للنموذج لصادرات ONNX مع onnxslim، مما قد يحسن الأداء والتوافق مع محركات الاستدلال.
opset int None يحدد إصدار ONNX opset للتوافق مع مختلف المحللات اللغوية ONNX وأوقات التشغيل. إذا لم يتم تعيينه، فسيتم استخدام أحدث إصدار مدعوم.
workspace float أو None None يحدد الحد الأقصى لحجم مساحة العمل بوحدة الجيغابايت (GiB) لـ TensorRT تحسينات، موازنة استخدام الذاكرة والأداء. استخدم None للتخصيص التلقائي بواسطة TensorRT حتى الحد الأقصى للجهاز.
nms bool False يضيف قمع غير الأقصى (NMS) إلى النموذج المصدر عند دعمه (انظر صيغ التصدير)، مما يحسن كفاءة المعالجة اللاحقة للكشف. غير متوفر لنماذج end2end.
batch int 1 يحدد حجم الدُفعة الاستنتاجية لنموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدَّر في وقت واحد في predict الوضع. بالنسبة إلى عمليات تصدير Edge TPU، يتم تعيين هذا تلقائيًا إلى 1.
device str None يحدد الجهاز للتصدير: GPU (device=0)، وحدة معالجة مركزية (CPU) (device=cpu)، MPS لـ Apple silicon (device=mps) أو DLA لـ NVIDIA Jetson (device=dla:0 أو device=dla:1). تستخدم TensorRT وحدة معالجة الرسومات GPU تلقائيًا في عمليات التصدير.
data str 'coco8.yaml' مسار إلى مجموعة البيانات ملف التكوين (افتراضي: coco8.yaml)، وهو أمر ضروري لمعايرة تحديد الكميات INT8. إذا لم يتم تحديده مع تمكين INT8، فسيتم تعيين مجموعة بيانات افتراضية.
fraction float 1.0 يحدد جزء مجموعة البيانات المراد استخدامها لمعايرة القياس الكمي INT8. يسمح بالمعايرة على مجموعة فرعية من مجموعة البيانات الكاملة، وهو أمر مفيد للتجارب أو عندما تكون الموارد محدودة. إذا لم يتم تحديده مع تمكين INT8، فسيتم استخدام مجموعة البيانات الكاملة.

يضمن التكوين المدروس تحسين النموذج المُصدَّر لحالة استخدامه وعمله بفعالية في البيئة المستهدفة.

دليل التصدير

إعدادات الحلول

توفر إعدادات تكوين حلول Ultralytics مرونة لتخصيص النماذج لمهام مثل عد الكائنات وإنشاء الخرائط الحرارية وتتبع التمرين وتحليل البيانات وتتبع المنطقة وإدارة قائمة الانتظار والعد المستند إلى المنطقة. تتيح هذه الخيارات إجراء تعديلات سهلة للحصول على نتائج دقيقة ومفيدة مصممة خصيصًا لتلبية الاحتياجات المحددة.

الوسيطة النوع افتراضي الوصف
model str None مسار إلى ملف نموذج Ultralytics YOLO.
region list '[(20, 400), (1260, 400)]' قائمة النقاط التي تحدد منطقة العد.
show_in bool True Flag للتحكم فيما إذا كان سيتم عرض عدد الأسماك الداخلة في بث الفيديو.
show_out bool True Flag للتحكم فيما إذا كان سيتم عرض عدد الأسماك الخارجة في بث الفيديو.
analytics_type str line نوع الرسم البياني، على سبيل المثال، line, bar, area، أو pie.
colormap int cv2.COLORMAP_JET مخطط الألوان المراد استخدامه للخريطة الحرارية.
json_file str None مسار ملف JSON الذي يحتوي على جميع بيانات إحداثيات مواقف السيارات.
up_angle float 145.0 عتبة الزاوية لوضعية 'الأعلى'.
kpts list[int, int, int] '[6, 8, 10]' قائمة النقاط الرئيسية المستخدمة لمراقبة التدريبات. تتوافق هذه النقاط الرئيسية مع مفاصل أو أجزاء الجسم، مثل الأكتاف والمرفقين والمعصمين، لتمارين مثل تمارين الضغط والسحب والجلوس وتمارين البطن.
down_angle float 90.0 عتبة الزاوية لوضعية 'الأسفل'.
blur_ratio float 0.5 يضبط النسبة المئوية لشدة التمويه، بقيم في النطاق 0.1 - 1.0.
crop_dir str 'cropped-detections' اسم الدليل لتخزين الاكتشافات التي تم اقتصاصها.
records int 5 إجمالي عدد الاكتشافات لتشغيل بريد إلكتروني مع نظام إنذار أمني.
vision_point tuple[int, int] (20, 20) النقطة التي ستتعقب فيها الرؤية الكائنات وترسم المسارات باستخدام VisionEye Solution.
source str None مسار إلى المصدر المدخل (فيديو، RTSP، إلخ). يُستخدم فقط مع واجهة سطر الأوامر (CLI) الخاصة بالحلول.
figsize tuple[int, int] (12.8, 7.2) حجم الشكل لمخططات التحليلات مثل الخرائط الحرارية أو الرسوم البيانية.
fps float 30.0 الإطارات في الثانية المستخدمة لحسابات السرعة.
max_hist int 5 الحد الأقصى للنقاط التاريخية التي يجب تتبعها لكل كائن لحساب السرعة/الاتجاه.
meter_per_pixel float 0.05 عامل القياس المستخدم لتحويل مسافة البكسل إلى وحدات العالم الحقيقي.
max_speed int 120 الحد الأقصى للسرعة في التراكبات المرئية (يستخدم في التنبيهات).
data str 'images' مسار إلى دليل الصور المستخدم للبحث عن التشابه.

دليل الحلول

إعدادات الزيادة

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

الوسيطة النوع افتراضي النطاق الوصف
hsv_h float 0.015 0.0 - 1.0 يضبط لون الصورة بجزء من عجلة الألوان، مما يدخل تباينًا في الألوان. يساعد النموذج على التعميم عبر ظروف الإضاءة المختلفة.
hsv_s float 0.7 0.0 - 1.0 يغير تشبع الصورة بجزء، مما يؤثر على كثافة الألوان. مفيد لمحاكاة الظروف البيئية المختلفة.
hsv_v float 0.4 0.0 - 1.0 يعدل قيمة (سطوع) الصورة بجزء، مما يساعد النموذج على الأداء الجيد في ظل ظروف الإضاءة المختلفة.
degrees float 0.0 0.0 - 180 يدور الصورة عشوائيًا ضمن نطاق الدرجات المحدد، مما يحسن قدرة النموذج على التعرف على الكائنات في اتجاهات مختلفة.
translate float 0.1 0.0 - 1.0 ينقل الصورة أفقيًا وعموديًا بجزء من حجم الصورة، مما يساعد في تعلم اكتشاف الكائنات المرئية جزئيًا.
scale float 0.5 >=0.0 يقوم بتوسيع الصورة بمعامل كسب، مما يحاكي الكائنات على مسافات مختلفة من الكاميرا.
shear float 0.0 -180 - +180 يقص الصورة بدرجة محددة، مما يحاكي تأثير رؤية الكائنات من زوايا مختلفة.
perspective float 0.0 0.0 - 0.001 يطبق تحويلًا منظوريًا عشوائيًا على الصورة، مما يعزز قدرة النموذج على فهم الكائنات في الفضاء ثلاثي الأبعاد.
flipud float 0.0 0.0 - 1.0 يقلب الصورة رأسًا على عقب بالاحتمالية المحددة، مما يزيد من تباين البيانات دون التأثير على خصائص الكائن.
fliplr float 0.5 0.0 - 1.0 يقلب الصورة من اليسار إلى اليمين بالاحتمالية المحددة، وهو أمر مفيد لتعلم الكائنات المتماثلة وزيادة تنوع مجموعة البيانات.
bgr float 0.0 0.0 - 1.0 يقلب قنوات الصورة من RGB إلى BGR بالاحتمالية المحددة، وهو أمر مفيد لزيادة القوة في مواجهة ترتيب القنوات غير الصحيح.
mosaic float 1.0 0.0 - 1.0 يدمج أربع صور تدريبية في صورة واحدة، مما يحاكي تركيبات المشاهد المختلفة وتفاعلات الكائنات. فعال للغاية لفهم المشهد المعقد.
mixup float 0.0 0.0 - 1.0 يمزج صورتين وتسمياتهما، مما يخلق صورة مركبة. يعزز قدرة النموذج على التعميم من خلال إدخال ضوضاء التسمية والتباين البصري.
cutmix float 0.0 0.0 - 1.0 يجمع أجزاء من صورتين، مما يخلق مزيجًا جزئيًا مع الحفاظ على مناطق متميزة. يعزز قوة النموذج عن طريق إنشاء سيناريوهات انسداد.
copy_paste float 0.0 0.0 - 1.0 تجزئة فقط. ينسخ ويلصق الكائنات عبر الصور لزيادة مثيلات الكائنات.
copy_paste_mode str flip - التجزئة فقط: يحدد الـ copy-paste الإستراتيجية المراد استخدامها. تتضمن الخيارات 'flip' و 'mixup'.
auto_augment str randaugment - تصنيف فقط. يطبق سياسة زيادة محددة مسبقًا ('randaugment', 'autoaugment'، أو 'augmix') لتحسين أداء النموذج من خلال التنوع البصري.
erasing float 0.4 0.0 - 0.9 تصنيف فقط. يمحو عشوائيًا مناطق من الصورة أثناء التدريب لتشجيع النموذج على التركيز على الميزات الأقل وضوحًا.

اضبط هذه الإعدادات لتلبية متطلبات مجموعة البيانات والمهمة. يمكن أن يساعدك التجريب بقيم مختلفة في إيجاد استراتيجية التوسيع الأمثل لتحقيق أفضل أداء للنموذج.

دليل الزيادة

إعدادات التسجيل ونقاط التفتيش والرسم

يُعد التسجيل، ونقاط التحقق، والرسم البياني، وإدارة الملفات أمورًا مهمة عند تدريب نموذج YOLO:

  • تسجيل: تتبع تقدم النموذج وتشخيص المشكلات باستخدام مكتبات مثل TensorBoard أو عن طريق الكتابة إلى ملف.
  • نقاط التحقق: احفظ النموذج على فترات منتظمة لاستئناف التدريب أو التجربة بتكوينات مختلفة.
  • الرسم: تصور الأداء والتقدم المحرز في التدريب باستخدام مكتبات مثل matplotlib أو TensorBoard.
  • إدارة الملفات: تنظيم الملفات التي تم إنشاؤها أثناء التدريب، مثل نقاط التفتيش وملفات السجل والمخططات، لسهولة الوصول إليها وتحليلها.

تساعد الإدارة الفعالة لهذه الجوانب في تتبع التقدم المحرز وتسهل عملية تصحيح الأخطاء والتحسين.

الوسيطة افتراضي الوصف
project 'runs' يحدد الدليل الجذر لحفظ عمليات التدريب. يتم حفظ كل عملية تشغيل في دليل فرعي منفصل.
name 'exp' يحدد اسم التجربة. إذا لم يتم تحديده، يزيد YOLO هذا الاسم لكل تشغيل (على سبيل المثال، exp, exp2) لتجنب الكتابة فوقها.
exist_ok False يحدد ما إذا كان سيتم استبدال دليل تجربة موجود. True يسمح بالكتابة فوق؛ False يمنع ذلك.
plots False يتحكم في إنشاء وحفظ مخططات التدريب والتحقق. اضبط على True لإنشاء مخططات مثل منحنيات الخسارة، الدقة-الاسترجاع المنحنيات، وعينة من التنبؤات للتتبع البصري للأداء.
save False تمكين حفظ نقاط تفتيش التدريب وأوزان النموذج النهائية. تم التعيين إلى True لحفظ حالات النموذج بشكل دوري، مما يسمح باستئناف التدريب أو نشر النموذج.

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

كيف يمكنني تحسين أداء نموذج YOLO الخاص بي أثناء التدريب؟

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

ما هي المعلمات الفائقة الرئيسية لدقة نموذج YOLO؟

تتضمن المعلمات الفائقة الرئيسية التي تؤثر على الدقة ما يلي:

  • حجم الدفعة (batch): يمكن للأحجام الأكبر أن تثبت التدريب ولكنها تحتاج إلى مزيد من الذاكرة.
  • معدل التعلم (lr0): المعدلات الأصغر توفر تعديلات دقيقة ولكن تقاربًا أبطأ.
  • الزخم (Momentum) (momentum): يسرّع متجهات التدرج، ويخفف من التذبذبات.
  • حجم الصورة (Image Size) (imgsz): الأحجام الأكبر تحسن الدقة ولكنها تزيد من العبء الحسابي.

اضبط هذه بناءً على مجموعة البيانات والأجهزة الخاصة بك. تعرف على المزيد في إعدادات التدريب.

كيف يمكنني ضبط معدل التعلم لتدريب نموذج YOLO؟

معدل التعلم (The learning rate) (lr0) أمر بالغ الأهمية؛ ابدأ بـ 0.01 لـ SGD أو 0.001 لـ محسِّن Adam. راقب المقاييس واضبطها حسب الحاجة. استخدم جدولة معدل تعلم جيب التمام (cosine learning rate schedulers) (cos_lr) أو الإحماء (warmup_epochs, warmup_momentum). التفاصيل موجودة في دليل التدريب.

ما هي إعدادات الاستدلال الافتراضية لنماذج YOLO؟

تتضمن الإعدادات الافتراضية ما يلي:

  • عتبة الثقة (Confidence Threshold) (conf=0.25): الحد الأدنى للثقة للكشف.
  • عتبة IoU (iou=0.7): لـ تثبيط الحد الأقصى غير الصفري (NMS).
  • حجم الصورة (Image Size) (imgsz=640): يقوم بتغيير حجم الصور المدخلة.
  • الجهاز (Device) (device=None): يختار CPU أو GPU.

للحصول على نظرة عامة كاملة، راجع إعدادات التوقع (Predict Settings) و دليل التوقع (Predict Guide).

لماذا نستخدم التدريب بالدقة المختلطة مع نماذج YOLO؟

الدقة المختلطة تدريب (amp=True) يقلل من استخدام الذاكرة ويسرع التدريب باستخدام FP16 و FP32. إنه مفيد لوحدات معالجة الرسومات الحديثة (GPUs)، مما يسمح بنماذج أكبر وحسابات أسرع دون فقدان كبير في الدقة. تعرف على المزيد في دليل التدريب.



📅 تم إنشاؤه منذ سنة واحدة ✏️ تم التحديث منذ شهر واحد

تعليقات