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

التكوين

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



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

Ultralytics تستخدم الأوامر الصيغة التالية:

مثال على ذلك

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO11 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 الملف.

المهام

YOLO يمكن استخدام النماذج في مجموعة متنوعة من المهام، بما في ذلك الكشف والتجزئة والتصنيف والوضع. تختلف هذه المهام في نوع المخرجات التي تنتجها والمشكلة المحددة المصممة لحلها.

  • الكشف: لتحديد وتوطين الكائنات أو المناطق ذات الأهمية في صورة أو فيديو.
  • التقسيم: لتقسيم صورة أو فيديو إلى مناطق أو وحدات بكسل تتوافق مع كائنات أو فئات مختلفة.
  • تصنيف: للتنبؤ بتسمية فئة الصورة المدخلة.
  • الوضعية: لتحديد الأجسام وتقدير نقاطها الرئيسية في الصورة أو الفيديو.
  • OBB: المربعات المحدودة الموجهة (أي الدوارة) المناسبة لصور الأقمار الصناعية أو الطبية.
الجدال افتراضي الوصف
task 'detect' يحدد المهمة YOLO التي سيتم تنفيذها. تتضمن الخيارات detect لـ اكتشاف الأجسام, segment للتجزئة, classify للتصنيف, pose لتقدير الوضعية و obb للمربعات المحدودة الموجهة. كل مهمة مصممة لأنواع محددة من المخرجات والمشاكل في تحليل الصور والفيديو.

دليل المهام

الأوضاع

YOLO يمكن استخدام النماذج في أوضاع مختلفة اعتمادًا على المشكلة المحددة التي تحاول حلها. تتضمن هذه الأوضاع ما يلي:

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

دليل الأوضاع

إعدادات القطار

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

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

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

إن batch يمكن تكوين الوسيطة بثلاث طرق:

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

دليل القطار

التنبؤ بالإعدادات

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

الحجج الاستدلالية:

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

حجج التصور:

الجدال النوع افتراضي الوصف
show bool False إذا كان Trueيعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للتعليقات المرئية الفورية أثناء التطوير أو الاختبار.
save bool False أو True تمكين حفظ الصور أو مقاطع الفيديو المشروحة في ملف. مفيد للتوثيق أو لمزيد من التحليل أو مشاركة النتائج. الافتراضي إلى صواب عند استخدام CLI وخطأ عند استخدامه في 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 أو int None يحدد عرض خط المربعات المحدودة. إذا كان None، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح.

دليل التنبؤ

إعدادات التحقق من الصحة

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

الجدال النوع افتراضي الوصف
data str None يحدد المسار إلى ملف تكوين مجموعة البيانات (على سبيل المثال, coco8.yaml). يتضمن هذا الملف مسارات إلى بيانات التحقق من الصحةوأسماء الفصول، وعدد الفصول.
imgsz int 640 يحدد حجم الصور المدخلة. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة.
batch int 16 تعيين عدد الصور لكل دفعة. الاستخدام -1 للدفعات التلقائية، والتي يتم ضبطها تلقائيًا بناءً على توفر الذاكرة GPU .
save_json bool False إذا كان Trueيحفظ النتائج في ملف JSON لمزيد من التحليل أو التكامل مع أدوات أخرى.
save_hybrid bool False إذا كان Trueيحفظ نسخة هجينة من التسميات تجمع بين التسميات التوضيحية الأصلية والتنبؤات النموذجية الإضافية.
conf float 0.001 يضبط الحد الأدنى للثقة للكشف عن الاكتشافات. يتم تجاهل الاكتشافات التي تقل الثقة فيها عن هذه العتبة.
iou float 0.6 يضبط عتبة التقاطع فوق الاتحاد (IoU) للقمع غير الأقصى (NMS). يساعد في تقليل عمليات الكشف المكررة.
max_det int 300 يحد من الحد الأقصى لعدد الاكتشافات لكل صورة. مفيد في المشاهد الكثيفة لمنع الاكتشافات المفرطة.
half bool True تمكين الحوسبة بنصف دقة (FP16)، مما يقلل من استخدام الذاكرة ويزيد من السرعة مع الحد الأدنى من التأثير على الدقة.
device str None يحدد الجهاز للتحقق من الصحة (cpu, cuda:0إلخ). يتيح المرونة في استخدام الموارد CPU أو GPU .
dnn bool False إذا كان Trueيستخدم OpenCV وحدة DNN للاستدلال على النماذج ONNX ، مما يوفر بديلاً عن PyTorch طرق الاستدلال.
plots bool False عند ضبطها على Trueينشئ ويحفظ مخططات للتنبؤات مقابل الحقيقة الأرضية للتقييم البصري لأداء النموذج.
rect bool True إذا كان Trueيستخدم الاستدلال المستطيلي للتجميع، مما يقلل من الحشو ويزيد من السرعة والكفاءة.
split str val يحدد تقسيم مجموعة البيانات المراد استخدامها للتحقق من الصحة (val, testأو train). يتيح المرونة في اختيار شريحة البيانات لتقييم الأداء.
project str None اسم دليل المشروع حيث يتم حفظ مخرجات التحقق من الصحة.
name str None اسم عملية تشغيل التحقق من الصحة. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التحقق من الصحة.

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

دليل فال

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

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

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

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

دليل التصدير

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

تُعد تقنيات التعزيز ضرورية لتحسين متانة وأداء نماذج 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 -180 - +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 يمزج صورتين وتسمياتهما، مما يؤدي إلى إنشاء صورة مركبة. يعزز قدرة النموذج على التعميم من خلال إدخال ضوضاء التسمية والتباين البصري.
copy_paste float 0.0 0.0 - 1.0 نسخ كائنات من صورة ولصقها على صورة أخرى، وهو أمر مفيد لزيادة مثيلات الكائنات وتعلم انسداد الكائنات.
copy_paste_mode str flip - اختيار طريقة زيادة النسخ واللصق من بين خيارات ("flip", "mixup").
auto_augment str randaugment - يطبق تلقائياً سياسة زيادة محددة مسبقاً (randaugment, autoaugment, augmix)، وتحسين مهام التصنيف من خلال تنويع الميزات المرئية.
erasing float 0.4 0.0 - 0.9 محو جزء من الصورة عشوائيًا أثناء التدريب على التصنيف، مما يشجع النموذج على التركيز على الميزات الأقل وضوحًا للتعرف عليها.
crop_fraction float 1.0 0.1 - 1.0 اقتصاص صورة التصنيف إلى جزء صغير من حجمها للتأكيد على الميزات المركزية والتكيف مع مقاييس الأجسام، مما يقلل من تشتيت انتباه الخلفية.

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

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

يعد التسجيل ونقاط التفتيش والتخطيط وإدارة الملفات اعتبارات مهمة عند تدريب نموذج YOLO .

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

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

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

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

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

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

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

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

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

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

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

معدل التعلم (lr0) أمر بالغ الأهمية للتحسين. نقطة البداية الشائعة هي 0.01 بالدولار السنغافوري أو 0.001 لآدم. من الضروري مراقبة مقاييس التدريب وتعديلها إذا لزم الأمر. استخدم جداول معدل تعلم جيب التمام (cos_lr) أو تقنيات الإحماء (warmup_epochs, warmup_momentum) لتعديل المعدل ديناميكيًا أثناء التدريب. اعثر على مزيد من التفاصيل في دليل القطار.

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

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

  • عتبة الثقة (conf=0.25): الحد الأدنى من الثقة للاكتشافات.
  • عتبة IoU (iou=0.7): للقمع غير الأقصى (NMS).
  • حجم الصورة (imgsz=640): تغيير حجم الصور المدخلة قبل الاستدلال.
  • الجهاز (device=None): يختار CPU أو GPU للاستدلال. للحصول على نظرة عامة شاملة، قم بزيارة التنبؤ بالإعدادات وقسم دليل التنبؤ.

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

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

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

التعليقات