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

التكوين

تلعب إعدادات 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.

الوسيطةالنوعافتراضيالوصف
modelstrNoneيحدد ملف النموذج للتدريب. يقبل مسارًا إما إلى .pt نموذج مُدرَّب مسبقًا أو إلى .yaml ملف تكوين. ضروري لتحديد بنية النموذج أو تهيئة الأوزان.
datastrNoneمسار إلى ملف تكوين مجموعة البيانات (مثل, coco8.yaml). يحتوي هذا الملف على معلمات خاصة بمجموعة البيانات، بما في ذلك مسارات إلى التدريب و بيانات التحققوأسماء الفئات وعدد الفئات.
epochsint100العدد الإجمالي لحقب التدريب. تمثل كل حقبة تمريرة كاملة على مجموعة البيانات بأكملها. يمكن أن يؤثر تعديل هذه القيمة على مدة التدريب وأداء النموذج.
timefloatNoneالحد الأقصى لوقت التدريب بالساعات. إذا تم تعيينه، فإنه يتجاوز epochs مما يسمح بإيقاف التدريب تلقائيًا بعد المدة المحددة. مفيد لسيناريوهات التدريب المقيدة بالوقت.
patienceint100عدد الحقب التي يجب الانتظار خلالها دون تحسن في مقاييس التحقق قبل الإيقاف المبكر للتدريب. يساعد على منع التحميل الزائد عن طريق إيقاف التدريب عندما يستقر الأداء.
batchint أو float16حجم الدفعة، مع ثلاثة أوضاع: يتم تعيينه كعدد صحيح (مثل, batch=16)، الوضع التلقائي لاستخدام ذاكرة GPU بنسبة 60٪ (batch=-1)، أو الوضع التلقائي مع تحديد جزء الاستخدام (batch=0.70).
imgszint640حجم الصورة المستهدف للتدريب. يتم تغيير حجم الصور إلى مربعات بأضلاع تساوي القيمة المحددة (إذا rect=False)، مع الحفاظ على نسبة العرض إلى الارتفاع لنماذج YOLO وليس RT-DETR. يؤثر على النموذج الدقة والتعقيد الحسابي.
saveboolTrueيتيح حفظ نقاط التحقق من التدريب وأوزان النموذج النهائية. مفيد لاستئناف التدريب أو نشر النموذج.
save_periodint-1تكرار حفظ نقاط التحقق من النموذج، المحدد بالحقبة. القيمة -1 تعطل هذه الميزة. مفيد لحفظ النماذج المؤقتة أثناء جلسات التدريب الطويلة.
cacheboolFalseيتيح تخزين صور مجموعة البيانات مؤقتًا في الذاكرة (True/ram)، على القرص (disk)، أو تعطيله (False). يحسن سرعة التدريب عن طريق تقليل عمليات الإدخال/الإخراج على القرص على حساب زيادة استخدام الذاكرة.
deviceint أو str أو listNoneيحدد الجهاز (الأجهزة) الحسابية للتدريب: وحدة معالجة رسومات واحدة (GPU) (device=0)، وحدات معالجة رسومات متعددة (GPU) (device=[0,1])، وحدة معالجة مركزية (CPU) (device=cpu)، MPS لـ Apple silicon (device=mps)، أو الاختيار التلقائي لوحدة معالجة الرسومات (GPU) الأكثر خمولاً (device=-1) أو وحدات معالجة الرسومات (GPU) المتعددة غير المستخدمة (device=[-1,-1])
workersint8عدد سلاسل العمل لتحميل البيانات (لكل RANK إذا كان التدريب متعدد وحدات معالجة الرسوميات). يؤثر على سرعة معالجة البيانات الأولية وتغذيتها في النموذج، وهو مفيد بشكل خاص في إعدادات وحدات معالجة الرسوميات المتعددة.
projectstrNoneاسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بتخزين منظم للتجارب المختلفة.
namestrNoneاسم تشغيل التدريب. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التدريب.
exist_okboolFalseإذا كانت القيمة True، يسمح بالكتابة فوق دليل مشروع/اسم موجود. مفيد للتجريب التكراري دون الحاجة إلى مسح المخرجات السابقة يدويًا.
pretrainedbool أو strTrueيحدد ما إذا كان سيتم بدء التدريب من نموذج مُدرَّب مسبقًا. يمكن أن تكون قيمة منطقية أو مسار سلسلة إلى نموذج معين لتحميل الأوزان منه. يعزز كفاءة التدريب وأداء النموذج.
optimizerstr'auto'اختيار المحسن للتدريب. تشمل الخيارات SGD, Adam, AdamW, NAdam, RAdam, RMSProp إلخ، أو auto للاختيار التلقائي بناءً على تكوين النموذج. يؤثر على سرعة واستقرار التقارب.
seedint0يحدد البذرة العشوائية للتدريب، مما يضمن إمكانية تكرار النتائج عبر عمليات التشغيل بنفس التكوينات.
deterministicboolTrueيفرض استخدام الخوارزمية الحتمية، مما يضمن إمكانية التكرار ولكنه قد يؤثر على الأداء والسرعة بسبب القيود المفروضة على الخوارزميات غير الحتمية.
single_clsboolFalseيعامل جميع الفئات في مجموعات البيانات متعددة الفئات كفئة واحدة أثناء التدريب. مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الكائن بدلاً من التصنيف.
classeslist[int]Noneيحدد قائمة بمعرفات الفئات المراد التدريب عليها. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التدريب.
rectboolFalseتمكين الحد الأدنى لاستراتيجية الحشو - يتم حشو الصور في دفعة بشكل ضئيل للوصول إلى حجم مشترك، مع كون الجانب الأطول مساويًا لـ imgsz. يمكن أن يحسن الكفاءة والسرعة ولكنه قد يؤثر على دقة النموذج.
multi_scaleboolFalseتمكين التدريب متعدد المقاييس عن طريق الزيادة/النقصان imgsz بنسبة تصل إلى عامل 0.5 أثناء التدريب. يدرب النموذج ليكون أكثر دقة مع imgsz أثناء الاستدلال.
cos_lrboolFalseيستخدم جدولة معدل التعلم لجيب التمام، وضبط معدل التعلم باتباع منحنى جيب التمام عبر الحقب. يساعد في إدارة معدل التعلم لتحسين التقارب.
close_mosaicint10يعطل زيادة البيانات الفسيفسائية في آخر N حقبة لتثبيت التدريب قبل الانتهاء. يؤدي التعيين إلى 0 إلى تعطيل هذه الميزة.
resumeboolFalseيستأنف التدريب من آخر نقطة تفتيش محفوظة. يقوم تلقائيًا بتحميل أوزان النموذج وحالة المُحسِّن وعدد الحقب، ومتابعة التدريب بسلاسة.
ampboolTrueيتيح التدريب التلقائي بالدقة المختلطة (AMP)، مما يقلل من استخدام الذاكرة وربما يسرع التدريب مع الحد الأدنى من التأثير على الدقة.
fractionfloat1.0يحدد جزء مجموعة البيانات المراد استخدامه للتدريب. يسمح بالتدريب على مجموعة فرعية من مجموعة البيانات الكاملة، وهو مفيد للتجارب أو عندما تكون الموارد محدودة.
profileboolFalseيتيح تحديد سرعات ONNX و TensorRT أثناء التدريب، وهو أمر مفيد لتحسين نشر النموذج.
freezeint أو listNoneيقوم بتجميد أول N طبقة من النموذج أو طبقات محددة بواسطة الفهرس، مما يقلل من عدد المعلمات القابلة للتدريب. مفيد للضبط الدقيق أو التعلم بالنقل.
lr0float0.01معدل التعلم الأولي (على سبيل المثال SGD=1E-2, Adam=1E-3). يعد تعديل هذه القيمة أمرًا بالغ الأهمية لعملية التحسين، مما يؤثر على مدى سرعة تحديث أوزان النموذج.
lrffloat0.01معدل التعلم النهائي كجزء من المعدل الأولي =lr0 * lrf)، ويستخدم بالاشتراك مع المجدولات لضبط معدل التعلم بمرور الوقت.
momentumfloat0.937عامل الزخم لـ SGD أو beta1 لـ محسنات Adam، مما يؤثر على دمج التدرجات السابقة في التحديث الحالي.
weight_decayfloat0.0005مصطلح تسوية L2، لمعاقبة الأوزان الكبيرة لمنع التجاوز.
warmup_epochsfloat3.0عدد الحقب لتهيئة معدل التعلم، وزيادة معدل التعلم تدريجيًا من قيمة منخفضة إلى معدل التعلم الأولي لتحقيق الاستقرار في التدريب في وقت مبكر.
warmup_momentumfloat0.8الزخم الأولي لمرحلة الإحماء، والتعديل التدريجي للزخم المحدد خلال فترة الإحماء.
warmup_bias_lrfloat0.1معدل التعلم لمعلمات التحيز خلال مرحلة الإحماء، مما يساعد على استقرار تدريب النموذج في الحقب الأولية.
boxfloat7.5وزن مكون خسارة الصندوق في دالة الخسارة، مما يؤثر على مقدار التركيز الذي يتم وضعه على التنبؤ بدقة بإحداثيات المربع المحيط.
clsfloat0.5وزن خسارة التصنيف في دالة الخسارة الكلية، مما يؤثر على أهمية التنبؤ الصحيح بالفئة بالنسبة إلى المكونات الأخرى.
dflfloat1.5وزن خسارة التوزيع البؤري، المستخدم في إصدارات YOLO معينة للتصنيف الدقيق.
posefloat12.0وزن خسارة الوضعية في النماذج المدربة على تقدير الوضعية، مما يؤثر على التأكيد على التنبؤ الدقيق بالنقاط الرئيسية للوضعية.
kobjfloat2.0وزن خسارة موضوعية النقاط الرئيسية في نماذج تقدير الوضعية، وموازنة الثقة في الكشف مع دقة الوضعية.
nbsint64حجم الدفعة الاسمية لتطبيع الخسارة.
overlap_maskboolTrueيحدد ما إذا كان يجب دمج أقنعة الكائنات في قناع واحد للتدريب، أو الاحتفاظ بها منفصلة لكل كائن. في حالة التداخل، يتم وضع القناع الأصغر فوق القناع الأكبر أثناء الدمج.
mask_ratioint4نسبة أخذ العينات السفلية لأقنعة التجزئة، مما يؤثر على دقة الأقنعة المستخدمة أثناء التدريب.
dropoutfloat0.0معدل التسرب للتسوية في مهام التصنيف، ومنع التجاوز عن طريق حذف الوحدات عشوائيًا أثناء التدريب.
valboolTrueيتيح التحقق من الصحة أثناء التدريب، مما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة.
plotsboolFalseيقوم بإنشاء وحفظ مخططات لمقاييس التدريب والتحقق من الصحة، بالإضافة إلى أمثلة التنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم.
compilebool أو strFalseتمكين PyTorch 2.x torch.compile تجميع الرسم البياني مع backend='inductor'. يقبل True"default", False → تعطيل أو وضع سلسلة مثل "default", "reduce-overhead", "max-autotune-no-cudagraphs". يعود إلى التلهف مع تحذير إذا كان غير مدعوم.

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

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

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

دليل التدريب

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

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

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

الوسيطةالنوعافتراضيالوصف
sourcestr'ultralytics/assets'يحدد مصدر البيانات للاستدلال. يمكن أن يكون مسار صورة أو ملف فيديو أو دليل أو عنوان URL أو معرف جهاز لتغذية مباشرة. يدعم مجموعة واسعة من التنسيقات والمصادر، مما يتيح تطبيقًا مرنًا عبر أنواع مختلفة من المدخلات.
conffloat0.25يحدد الحد الأدنى لعتبة الثقة للكشف. سيتم تجاهل الكائنات التي يتم الكشف عنها بثقة أقل من هذه العتبة. يمكن أن تساعد تعديلات هذه القيمة في تقليل النتائج الإيجابية الكاذبة.
ioufloat0.7عتبة تقاطع الاتحاد (IoU) لقمع Non-Maximum Suppression (NMS). تؤدي القيم المنخفضة إلى عدد أقل من عمليات الكشف عن طريق إزالة المربعات المتداخلة، وهو أمر مفيد لتقليل التكرارات.
imgszint أو tuple640يحدد حجم الصورة للاستدلال. يمكن أن يكون عددًا صحيحًا واحدًا 640 لتغيير الحجم المربع أو صف (ارتفاع، عرض). يمكن أن يؤدي تغيير الحجم المناسب إلى تحسين الكشف الدقة وسرعة المعالجة.
rectboolTrueإذا تم تمكينه، فإنه يضيف حدًا أدنى من المساحات إلى الجانب الأقصر من الصورة حتى يكون قابلاً للقسمة على الخطوة لتحسين سرعة الاستدلال. إذا تم تعطيله، فإنه يضيف مساحة إلى الصورة لتصبح مربعة أثناء الاستدلال.
halfboolFalseيتيح الاستدلال بنصف الدقة (FP16)، مما قد يؤدي إلى تسريع استدلال النموذج على وحدات معالجة الرسومات المدعومة مع الحد الأدنى من التأثير على الدقة.
devicestrNoneيحدد الجهاز الخاص بالاستدلال (على سبيل المثال، cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU أو GPU معين أو أجهزة حساب أخرى لتنفيذ النموذج.
batchint1يحدد حجم الدُفعة للاستدلال (يعمل فقط عندما يكون المصدر هو دليل أو ملف فيديو أو .txt ملف). يمكن أن يوفر حجم الدفعة الأكبر إنتاجية أعلى، مما يقلل إجمالي الوقت المطلوب للاستدلال.
max_detint300الحد الأقصى لعدد عمليات الكشف المسموح بها لكل صورة. يحد من العدد الإجمالي للكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات المفرطة في المشاهد المزدحمة.
vid_strideint1تباعد الإطارات لمدخلات الفيديو. يسمح بتخطي الإطارات في مقاطع الفيديو لتسريع المعالجة على حساب الدقة الزمنية. تعالج القيمة 1 كل إطار، بينما تتخطى القيم الأعلى الإطارات.
stream_bufferboolFalseيحدد ما إذا كان سيتم وضع الإطارات الواردة في قائمة الانتظار لتدفقات الفيديو. إذا False، يتم إسقاط الإطارات القديمة لاستيعاب الإطارات الجديدة (محسن للتطبيقات في الوقت الفعلي). إذا True، يقوم بوضع الإطارات الجديدة في قائمة انتظار في المخزن المؤقت، مما يضمن عدم تخطي أي إطارات، ولكنه سيسبب زمن انتقال إذا كان FPS للاستدلال أقل من FPS للبث.
visualizeboolFalseيقوم بتنشيط تصور ميزات النموذج أثناء الاستدلال، مما يوفر نظرة ثاقبة لما يراه النموذج. مفيد لتصحيح الأخطاء وتفسير النموذج.
augmentboolFalseيتيح زيادة وقت الاختبار (TTA) للتنبؤات، مما قد يحسن قوة الكشف على حساب سرعة الاستدلال.
agnostic_nmsboolFalseيتيح قمع Non-Maximum Suppression (NMS) غير المحدد للفئة، والذي يدمج المربعات المتداخلة لفئات مختلفة. مفيد في سيناريوهات الكشف متعدد الفئات حيث يكون تداخل الفئات شائعًا.
classeslist[int]Noneيقوم بتصفية التنبؤات إلى مجموعة من معرفات الفئات. سيتم إرجاع عمليات الكشف التي تنتمي إلى الفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الكشف متعدد الفئات.
retina_masksboolFalseإرجاع أقنعة تجزئة عالية الدقة. الأقنعة التي تم إرجاعها (masks.data) ستطابق حجم الصورة الأصلي إذا تم تمكينها. إذا تم تعطيلها، فسيكون لها حجم الصورة المستخدم أثناء الاستدلال.
embedlist[int]Noneيحدد الطبقات التي سيتم استخراج متجهات الميزات أو التضمينات منها. مفيد للمهام اللاحقة مثل التجميع أو البحث عن التشابه.
projectstrNoneاسم دليل المشروع حيث يتم حفظ مخرجات التنبؤ إذا save تم تمكينه.
namestrNoneاسم تشغيل التنبؤ. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين مخرجات التنبؤ إذا save تم تمكينه.
streamboolFalseتمكين المعالجة الفعالة للذاكرة لمقاطع الفيديو الطويلة أو الصور العديدة عن طريق إرجاع مولد لكائنات النتائج بدلاً من تحميل جميع الإطارات في الذاكرة مرة واحدة.
verboseboolTrueيتحكم فيما إذا كان سيتم عرض سجلات الاستدلال التفصيلية في الجهاز الطرفي، مما يوفر ملاحظات في الوقت الفعلي حول عملية التنبؤ.
compilebool أو strFalseتمكين PyTorch 2.x torch.compile تجميع الرسم البياني مع backend='inductor'. يقبل True"default", False → تعطيل أو وضع سلسلة مثل "default", "reduce-overhead", "max-autotune-no-cudagraphs". يعود إلى التلهف مع تحذير إذا كان غير مدعوم.

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

الوسيطةالنوعافتراضيالوصف
showboolFalseإذا True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على تعليقات مرئية فورية أثناء التطوير أو الاختبار.
saveboolFalse or Trueتمكين حفظ الصور أو مقاطع الفيديو المشروحة في ملفات. مفيد للتوثيق أو لمزيد من التحليل أو مشاركة النتائج. يُفترض إلى صواب عند استخدام CLI وخطأ عند استخدامه في Python.
save_framesboolFalseعند معالجة مقاطع الفيديو، يتم حفظ الإطارات الفردية كصور. مفيد لاستخراج إطارات معينة أو لتحليل تفصيلي للإطار تلو الآخر.
save_txtboolFalseيحفظ نتائج الكشف في ملف نصي، باتباع التنسيق [class] [x_center] [y_center] [width] [height] [confidence]. مفيد للتكامل مع أدوات التحليل الأخرى.
save_confboolFalseيتضمن قيم الثقة في الملفات النصية المحفوظة. يعزز التفاصيل المتاحة للمعالجة والتحليل اللاحقين.
save_cropboolFalseيحفظ الصور المقصوصة للكائنات التي تم الكشف عنها. مفيد لزيادة حجم البيانات، والتحليل، أو إنشاء مجموعات بيانات مركزة لكائنات معينة.
show_labelsboolTrueيعرض تسميات لكل كائن يتم الكشف عنه في الناتج المرئي. يوفر فهمًا فوريًا للكائنات التي تم الكشف عنها.
show_confboolTrueيعرض قيمة الثقة لكل كائن يتم الكشف عنه بجانب التسمية. يعطي نظرة ثاقبة حول يقين النموذج لكل كائن تم الكشف عنه.
show_boxesboolTrueيرسم مربعات إحاطة حول الكائنات التي تم الكشف عنها. ضروري للتحديد المرئي وموقع الكائنات في الصور أو إطارات الفيديو.
line_widthNone or intNoneيحدد عرض خطوط مربعات الإحاطة. إذا None، يتم تعديل عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح.

دليل التوقع

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

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

الوسيطةالنوعافتراضيالوصف
datastrNoneيحدد المسار إلى ملف تكوين مجموعة البيانات (على سبيل المثال، coco8.yaml). يجب أن يتضمن هذا الملف المسار إلى بيانات التحقق.
imgszint640يحدد حجم الصور المدخلة. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة. قد تؤدي الأحجام الأكبر إلى تحسين الدقة للأجسام الصغيرة ولكنها تزيد من وقت الحساب.
batchint16يحدد عدد الصور لكل دفعة. القيم الأعلى تستخدم ذاكرة GPU بكفاءة أكبر ولكنها تتطلب المزيد من VRAM. اضبط بناءً على موارد الأجهزة المتاحة.
save_jsonboolFalseإذا True، لحفظ النتائج في ملف JSON لمزيد من التحليل أو التكامل مع الأدوات الأخرى أو الإرسال إلى خوادم التقييم مثل COCO.
conffloat0.001يحدد الحد الأدنى لعتبة الثقة للكشف. القيم الأقل تزيد من الاسترجاع ولكن قد تدخل المزيد من الإيجابيات الخاطئة. يستخدم أثناء التحقق لحساب منحنيات الدقة والاسترجاع.
ioufloat0.7يحدد عتبة تقاطع الاتحاد لـ منع القمع الأقصى. يتحكم في إزالة الاكتشافات المكررة.
max_detint300يحد من الحد الأقصى لعدد الاكتشافات لكل صورة. مفيد في المشاهد المزدحمة لمنع الاكتشافات المفرطة وإدارة الموارد الحسابية.
halfboolTrueيتيح حساب نصف الدقة (FP16)، مما يقلل من استخدام الذاكرة ويزيد السرعة المحتملة مع الحد الأدنى من التأثير على الدقة.
devicestrNoneيحدد الجهاز للتحقق (cpu, cuda:0، إلخ). عندما None، يختار تلقائيًا أفضل جهاز متاح. يمكن تحديد عدة أجهزة CUDA بفصلها بفواصل.
dnnboolFalseإذا True، يستخدم OpenCV وحدة DNN للاستدلال بنموذج ONNX، مما يوفر بديلاً لـ PyTorch طرق الاستدلال.
plotsboolFalseعند الضبط على True، يقوم بإنشاء وحفظ مخططات للتنبؤات مقابل الحقائق الأساسية، ومصفوفات الالتباس، ومنحنيات PR للتقييم البصري لأداء النموذج.
classeslist[int]Noneيحدد قائمة بمعرفات الفئات للتدريب عليها. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التقييم.
rectboolTrueإذا True، يستخدم الاستدلال المستطيل للتقسيم على دفعات، مما يقلل من الحشو ويزيد السرعة والكفاءة المحتملة عن طريق معالجة الصور في نسبة العرض إلى الارتفاع الأصلية.
splitstr'val'يحدد تقسيم مجموعة البيانات المراد استخدامها للتحقق (val, test، أو train). يتيح المرونة في اختيار جزء البيانات لتقييم الأداء.
projectstrNoneاسم دليل المشروع حيث يتم حفظ مخرجات التحقق. يساعد في تنظيم النتائج من التجارب أو النماذج المختلفة.
namestrNoneاسم تشغيل التحقق. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التحقق.
verboseboolFalseإذا True، يعرض معلومات مفصلة أثناء عملية التحقق، بما في ذلك مقاييس لكل فئة، وتقدم الدُفعات، ومعلومات تصحيح الأخطاء إضافية.
save_txtboolFalseإذا True، لحفظ نتائج الكشف في ملفات نصية، مع ملف واحد لكل صورة، وهو أمر مفيد لمزيد من التحليل أو المعالجة اللاحقة المخصصة أو التكامل مع الأنظمة الأخرى.
save_confboolFalseإذا True، يتضمن قيم الثقة في ملفات النصوص المحفوظة عندما save_txt ممكن، مما يوفر إخراجًا أكثر تفصيلاً للتحليل والتصفية.
workersint8عدد سلاسل العمليات العاملة لتحميل البيانات. القيم الأعلى يمكن أن تسرع معالجة البيانات ولكن قد تزيد من استخدام وحدة المعالجة المركزية CPU. الضبط على 0 يستخدم السلسلة الرئيسية، والتي يمكن أن تكون أكثر استقرارًا في بعض البيئات.
augmentboolFalseتمكين زيادة وقت الاختبار (TTA) أثناء التحقق، مما قد يحسن دقة الكشف على حساب سرعة الاستدلال عن طريق تشغيل الاستدلال على إصدارات محولة من الإدخال.
agnostic_nmsboolFalseتمكين قمع غير الحد الأقصى غير المحدد للفئة، والذي يدمج الصناديق المتداخلة بغض النظر عن فئتها المتوقعة. مفيد للتطبيقات التي تركز على المثيلات.
single_clsboolFalseيعامل جميع الفئات كفئة واحدة أثناء التحقق من الصحة. مفيد لتقييم أداء النموذج في مهام الكشف الثنائية أو عندما لا تكون الفروق بين الفئات مهمة.
visualizeboolFalseتصور الحقائق الأساسية والإيجابيات الصحيحة والإيجابيات الخاطئة والسلبيات الخاطئة لكل صورة. مفيد لتصحيح الأخطاء وتفسير النموذج.
compilebool أو strFalseتمكين PyTorch 2.x torch.compile تجميع الرسم البياني مع backend='inductor'. يقبل True"default", False → تعطيل أو وضع سلسلة مثل "default", "reduce-overhead", "max-autotune-no-cudagraphs". يعود إلى التلهف مع تحذير إذا كان غير مدعوم.

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

دليل Val

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

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

الوسيطةالنوعافتراضيالوصف
formatstr'torchscript'التنسيق المستهدف للنموذج المصدر، مثل 'onnx', 'torchscript', 'engine' (TensorRT) أو غيرها. تتيح كل صيغة التوافق مع مختلف بيئات النشر.
imgszint أو tuple640حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة (مثل، 640 لـ 640 × 640) أو صف. (height, width) لأبعاد محددة.
kerasboolFalseيتيح التصدير إلى تنسيق Keras لـ TensorFlow SavedModel، مما يوفر توافقًا مع TensorFlow serving و APIs.
optimizeboolFalseيطبق تحسينًا للأجهزة المحمولة عند التصدير إلى TorchScript، مما قد يقلل من حجم النموذج ويحسن أداء الاستدلال. غير متوافق مع تنسيق NCNN أو أجهزة CUDA.
halfboolFalseتمكين تكميم FP16 (نصف دقة)، مما يقلل من حجم النموذج وربما يسرع الاستدلال على الأجهزة المدعومة. غير متوافق مع التكميم INT8 أو التصدير CPU. متاح فقط لتنسيقات معينة، مثل ONNX (انظر أدناه).
int8boolFalseيقوم بتنشيط تكميم INT8، مما يزيد من ضغط النموذج وتسريع الاستدلال مع الحد الأدنى من فقدان الدقة، في المقام الأول للأجهزة الطرفية. عند استخدامه مع TensorRT، فإنه ينفذ التكميم بعد التدريب (PTQ).
dynamicboolFalseيسمح بأحجام إدخال ديناميكية لصادرات ONNX TensorRT OpenVINO مما يعزز المرونة في التعامل مع أبعاد الصور المختلفة. يتم ضبطها تلقائيًا على True عند استخدام TensorRT مع INT8.
simplifyboolTrueيبسط الرسم البياني للنموذج لصادرات ONNX مع onnxslim، مما قد يحسن الأداء والتوافق مع محركات الاستدلال.
opsetintNoneيحدد إصدار ONNX opset للتوافق مع مختلف المحللات اللغوية ONNX وأوقات التشغيل. إذا لم يتم تعيينه، فسيتم استخدام أحدث إصدار مدعوم.
workspacefloat أو NoneNoneيحدد الحد الأقصى لحجم مساحة العمل بوحدة الجيغابايت (GiB) لـ TensorRT تحسينات، موازنة استخدام الذاكرة والأداء. استخدم None للتخصيص التلقائي بواسطة TensorRT حتى الحد الأقصى للجهاز.
nmsboolFalseيضيف قمع غير الأقصى (NMS) إلى النموذج المصدر عند دعمه (انظر صيغ التصدير)، مما يحسن كفاءة المعالجة اللاحقة للكشف. غير متوفر لنماذج end2end.
batchint1يحدد حجم الدُفعة الاستنتاجية لنموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدَّر في وقت واحد في predict الوضع. بالنسبة إلى عمليات تصدير Edge TPU، يتم تعيين هذا تلقائيًا إلى 1.
devicestrNoneيحدد الجهاز للتصدير: GPU (device=0)، وحدة معالجة مركزية (CPU) (device=cpu)، MPS لـ Apple silicon (device=mps) أو DLA لـ NVIDIA Jetson (device=dla:0 أو device=dla:1). تستخدم TensorRT وحدة معالجة الرسومات GPU تلقائيًا في عمليات التصدير.
datastr'coco8.yaml'مسار إلى مجموعة البيانات ملف التكوين (افتراضي: coco8.yaml)، وهو أمر ضروري لمعايرة تحديد الكميات INT8. إذا لم يتم تحديده مع تمكين INT8، فسيتم تعيين مجموعة بيانات افتراضية.
fractionfloat1.0يحدد جزء مجموعة البيانات المراد استخدامها لمعايرة القياس الكمي INT8. يسمح بالمعايرة على مجموعة فرعية من مجموعة البيانات الكاملة، وهو أمر مفيد للتجارب أو عندما تكون الموارد محدودة. إذا لم يتم تحديده مع تمكين INT8، فسيتم استخدام مجموعة البيانات الكاملة.

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

دليل التصدير

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

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

الوسيطةالنوعافتراضيالوصف
modelstrNoneالمسار إلى ملف نموذجYOLO الخاص بـ Ultralytics .
regionlist'[(20, 400), (1260, 400)]'قائمة النقاط التي تحدد منطقة العد.
show_inboolTrueFlag للتحكم فيما إذا كان سيتم عرض عدد الأسماك الداخلة في بث الفيديو.
show_outboolTrueFlag للتحكم فيما إذا كان سيتم عرض عدد الأسماك الخارجة في بث الفيديو.
analytics_typestrlineنوع الرسم البياني، على سبيل المثال، line, bar, area، أو pie.
colormapintcv2.COLORMAP_JETمخطط الألوان المراد استخدامه للخريطة الحرارية.
json_filestrNoneمسار ملف JSON الذي يحتوي على جميع بيانات إحداثيات مواقف السيارات.
up_anglefloat145.0عتبة الزاوية لوضعية 'الأعلى'.
kptslist[int, int, int]'[6, 8, 10]'قائمة النقاط الرئيسية المستخدمة لمراقبة التدريبات. تتوافق هذه النقاط الرئيسية مع مفاصل أو أجزاء الجسم، مثل الأكتاف والمرفقين والمعصمين، لتمارين مثل تمارين الضغط والسحب والجلوس وتمارين البطن.
down_anglefloat90.0عتبة الزاوية لوضعية 'الأسفل'.
blur_ratiofloat0.5يضبط النسبة المئوية لشدة التمويه، بقيم في النطاق 0.1 - 1.0.
crop_dirstr'cropped-detections'اسم الدليل لتخزين الاكتشافات التي تم اقتصاصها.
recordsint5إجمالي عدد الاكتشافات لتشغيل بريد إلكتروني مع نظام إنذار أمني.
vision_pointtuple[int, int](20, 20)النقطة التي ستتعقب فيها الرؤية الكائنات وترسم المسارات باستخدام VisionEye Solution.
sourcestrNoneمسار إلى المصدر المدخل (فيديو، RTSP، إلخ). يُستخدم فقط مع واجهة سطر الأوامر (CLI) الخاصة بالحلول.
figsizetuple[int, int](12.8, 7.2)حجم الشكل لمخططات التحليلات مثل الخرائط الحرارية أو الرسوم البيانية.
fpsfloat30.0الإطارات في الثانية المستخدمة لحسابات السرعة.
max_histint5الحد الأقصى للنقاط التاريخية التي يجب تتبعها لكل كائن لحساب السرعة/الاتجاه.
meter_per_pixelfloat0.05عامل القياس المستخدم لتحويل مسافة البكسل إلى وحدات العالم الحقيقي.
max_speedint120الحد الأقصى للسرعة في التراكبات المرئية (يستخدم في التنبيهات).
datastr'images'مسار إلى دليل الصور المستخدم للبحث عن التشابه.

دليل الحلول

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

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

الوسيطةالنوعافتراضيالمهام المدعومةالنطاقالوصف
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0يضبط لون الصورة بجزء من عجلة الألوان، مما يدخل تباينًا في الألوان. يساعد النموذج على التعميم عبر ظروف الإضاءة المختلفة.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0يغير تشبع الصورة بجزء، مما يؤثر على كثافة الألوان. مفيد لمحاكاة الظروف البيئية المختلفة.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0يعدل قيمة (سطوع) الصورة بجزء، مما يساعد النموذج على الأداء الجيد في ظل ظروف الإضاءة المختلفة.
degreesfloat0.0detect, segment, pose, obb0.0 - 180يدور الصورة عشوائيًا ضمن نطاق الدرجات المحدد، مما يحسن قدرة النموذج على التعرف على الكائنات في اتجاهات مختلفة.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0ينقل الصورة أفقيًا وعموديًا بجزء من حجم الصورة، مما يساعد في تعلم اكتشاف الكائنات المرئية جزئيًا.
scalefloat0.5detect, segment, pose, obb, classify>=0.0يقوم بتوسيع الصورة بمعامل كسب، مما يحاكي الكائنات على مسافات مختلفة من الكاميرا.
shearfloat0.0detect, segment, pose, obb-180 - +180يقص الصورة بدرجة محددة، مما يحاكي تأثير رؤية الكائنات من زوايا مختلفة.
perspectivefloat0.0detect, segment, pose, obb0.0 - 0.001يطبق تحويلًا منظوريًا عشوائيًا على الصورة، مما يعزز قدرة النموذج على فهم الكائنات في الفضاء ثلاثي الأبعاد.
flipudfloat0.0detect, segment, pose, obb, classify0.0 - 1.0يقلب الصورة رأسًا على عقب بالاحتمالية المحددة، مما يزيد من تباين البيانات دون التأثير على خصائص الكائن.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0يقلب الصورة من اليسار إلى اليمين بالاحتمالية المحددة، وهو أمر مفيد لتعلم الكائنات المتماثلة وزيادة تنوع مجموعة البيانات.
bgrfloat0.0detect, segment, pose, obb0.0 - 1.0يقلب قنوات الصورة من RGB إلى BGR بالاحتمالية المحددة، وهو أمر مفيد لزيادة القوة في مواجهة ترتيب القنوات غير الصحيح.
mosaicfloat1.0detect, segment, pose, obb0.0 - 1.0يدمج أربع صور تدريبية في صورة واحدة، مما يحاكي تركيبات المشاهد المختلفة وتفاعلات الكائنات. فعال للغاية لفهم المشهد المعقد.
mixupfloat0.0detect, segment, pose, obb0.0 - 1.0يمزج صورتين وتسمياتهما، مما يخلق صورة مركبة. يعزز قدرة النموذج على التعميم من خلال إدخال ضوضاء التسمية والتباين البصري.
cutmixfloat0.0detect, segment, pose, obb0.0 - 1.0يجمع أجزاء من صورتين، مما يخلق مزيجًا جزئيًا مع الحفاظ على مناطق متميزة. يعزز قوة النموذج عن طريق إنشاء سيناريوهات انسداد.
copy_pastefloat0.0segment0.0 - 1.0نسخ الكائنات ولصقها عبر الصور لزيادة مثيلات الكائنات.
copy_paste_modestrflipsegment-يحدد copy-paste الإستراتيجية المراد استخدامها. تتضمن الخيارات 'flip' و 'mixup'.
auto_augmentstrrandaugmentclassify-يطبق سياسة زيادة محددة مسبقًا ('randaugment', 'autoaugment'، أو 'augmix') لتحسين أداء النموذج من خلال التنوع البصري.
erasingfloat0.4classify0.0 - 0.9يمحو مناطق من الصورة عشوائيًا أثناء التدريب لتشجيع النموذج على التركيز على الميزات الأقل وضوحًا.
augmentationslist{{ augmentations }}detect, segment, pose, obb-تحويلات Albumentations مخصصة لزيادة البيانات المتقدمةPython واجهة برمجة تطبيقاتPython فقط). يقبل قائمة من كائنات التحويل لاحتياجات التعزيز المتخصصة.

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

دليل الزيادة

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

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

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

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

الوسيطةافتراضيالوصف
project'runs'يحدد الدليل الجذر لحفظ عمليات التدريب. يتم حفظ كل عملية تشغيل في دليل فرعي منفصل.
name'exp'يحدد اسم التجربة. إذا لم يتم تحديده، يزيد YOLO هذا الاسم لكل تشغيل (على سبيل المثال، exp, exp2) لتجنب الكتابة فوقها.
exist_okFalseيحدد ما إذا كان سيتم استبدال دليل تجربة موجود. True يسمح بالكتابة فوق؛ False يمنع ذلك.
plotsFalseيتحكم في إنشاء وحفظ مخططات التدريب والتحقق. اضبط على True لإنشاء مخططات مثل منحنيات الخسارة، الدقة-الاسترجاع المنحنيات، وعينة من التنبؤات للتتبع البصري للأداء.
saveFalseتمكين حفظ نقاط تفتيش التدريب وأوزان النموذج النهائية. تم التعيين إلى 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)، مما يسمح بنماذج أكبر وحسابات أسرع دون فقدان كبير في الدقة. تعرف على المزيد في دليل التدريب.



📅 تم إنشاؤها منذ 2 منذ سنوات ✏️ تم التحديث منذ 5 أشهر
glenn-jocherMatthewNoyceambitious-octopusfcakyonLaughing-qRizwanMunawarjk4eUltralyticsAssistantplashchynskiBurhan-QAyushExeltensorturtle

تعليقات