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

التكوين

تلعب إعدادات 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 تنفيذ مجموعة متنوعة من مهام الرؤية الحاسوبية، بما في ذلك:

  • الكشف: يقوم اكتشاف الكائنات بتحديد وتوطين الكائنات داخل الصورة أو الفيديو.
  • التجزئة: يقسم تجزئة المثيل الصورة أو الفيديو إلى مناطق تتوافق مع كائنات أو فئات مختلفة.
  • التصنيف: يتنبأ تصنيف الصور بتسمية فئة الصورة المدخلة.
  • الوضعية: يحدد تقدير الوضعية الأجسام ويقدر نقاطها الرئيسية في الصورة أو الفيديو.
  • OBB: تستخدم المربعات المحدودة الموجهة مربعات محددة مستديرة، وهي مناسبة لصور الأقمار الصناعية أو الصور الطبية.
الجدال افتراضي الوصف
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 للاستدلال, 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 16 حجم الدفعة، مع ثلاثة أوضاع: التعيين كعدد صحيح (على سبيل المثال, batch=16)، الوضع التلقائي لاستخدام الذاكرة بنسبة 60% GPU (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)، وحدات معالجة رسومات متعددة (device=0,1)، CPU (device=cpu)، أو MPS لسيليكون Apple (device=mps).
workers int 8 عدد الخيوط العاملة لتحميل البيانات (لكل RANK إذا كان التدريب متعددGPU ). يؤثر على سرعة المعالجة المسبقة للبيانات وتغذيتها في النموذج، وهو مفيد بشكل خاص في الإعدادات المتعددةGPU .
project str None اسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بالتخزين المنظم للتجارب المختلفة.
name str None اسم التشغيل التدريبي. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التدريب.
exist_ok bool False إذا كان صواب، يسمح بالكتابة فوق دليل مشروع/اسم موجود. مفيد للتجربة التكرارية دون الحاجة إلى مسح المخرجات السابقة يدويًا.
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 أو بيتا1 لمُحسِّنات آدم، مما يؤثر على دمج التدرجات السابقة في التحديث الحالي.
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).
  • الوضع التلقائي (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 أو tuple 640 يحدد حجم الصورة للاستدلال. يمكن أن يكون عددًا صحيحًا واحدًا 640 لتغيير حجم المربع أو (الارتفاع، العرض) المربّع أو (الارتفاع، العرض). يمكن أن يحسن التحجيم المناسب من الكشف الدقة وسرعة المعالجة.
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يضع الإطارات الجديدة في قائمة انتظار في مخزن مؤقت، مما يضمن عدم تخطي أي إطارات، ولكنه سيتسبب في تأخير زمني إذا كان معدل الإطارات في الثانية في الاستدلال أقل من معدل الإطارات في الثانية في الدفق.
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 ممكّنة.
stream bool False تمكين المعالجة الموفرة للذاكرة لمقاطع الفيديو الطويلة أو الصور العديدة عن طريق إرجاع مولد من كائنات النتائج بدلاً من تحميل جميع الإطارات في الذاكرة مرة واحدة.
verbose bool True يتحكم فيما إذا كان سيتم عرض سجلات الاستدلال التفصيلية في المنصة أم لا، مما يوفر ملاحظات في الوقت الفعلي حول عملية التنبؤ.

حجج التصور:

الجدال النوع افتراضي الوصف
show bool False إذا كان Trueيعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للتعليقات المرئية الفورية أثناء التطوير أو الاختبار.
save bool False or 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 or int None يحدد عرض خط المربعات المحدودة. إذا كان None، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح.
font_size float None حجم خط النص للتعليقات التوضيحية. يتناسب الحجم تلقائياً مع حجم الصورة إذا تم ضبطه على None.
font str 'Arial.ttf' اسم الخط أو المسار الخاص بالتعليقات التوضيحية النصية في التصور.
pil bool False إرجاع الصورة ككائن صورة PIL بدلاً من مصفوفة numpy.
kpt_radius int 5 نصف قطر النقاط الرئيسية عند تصور نتائج تقدير الوضعية.
kpt_line bool True ربط النقاط الرئيسية بخطوط عند تصور تقدير الوضعية.
masks bool True عرض أقنعة التجزئة في إخراج التصور.
probs bool True تضمين احتمالات التصنيف في التصور.
filename str None المسار واسم الملف لحفظ الصورة المشروحة عند save=True.
color_mode str 'class' حدد وضع التلوين للتصورات، على سبيل المثال، "مثيل" أو "فئة".
txt_color tuple[int, int, int] (255, 255, 255) لون نص RGB للتعليقات التوضيحية لمهمة التصنيف.

دليل التنبؤ

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

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

الجدال النوع افتراضي الوصف
data str None يحدد المسار إلى ملف تكوين مجموعة البيانات (على سبيل المثال, coco8.yaml). يتضمن هذا الملف مسارات إلى بيانات التحقق من الصحةوأسماء الفصول، وعدد الفصول.
imgsz int 640 يحدد حجم الصور المدخلة. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة. قد تؤدي الأحجام الأكبر إلى تحسين الدقة للأجسام الصغيرة ولكنها تزيد من وقت الحساب.
batch int 16 تعيين عدد الصور لكل دفعة. تستفيد القيم الأعلى من ذاكرة GPU بكفاءة أكبر ولكنها تتطلب المزيد من ذاكرة VRAM. اضبط بناءً على موارد الأجهزة المتاحة.
save_json bool False إذا كان Trueيحفظ النتائج في ملف JSON لإجراء مزيد من التحليل أو التكامل مع أدوات أخرى أو إرسالها إلى خوادم التقييم مثل COCO.
save_hybrid bool False إذا كان Trueيحفظ نسخة هجينة من التسميات التي تجمع بين الشروح الأصلية والتنبؤات النموذجية الإضافية. مفيد للتعلم شبه الخاضع للإشراف وتحسين مجموعة البيانات.
conf float 0.001 تعيين الحد الأدنى لعتبة الثقة للكشف. تزيد القيم المنخفضة من الاستدعاء ولكنها قد تقدم المزيد من النتائج الإيجابية الخاطئة. يُستخدم أثناء التحقق من الصحة لحساب منحنيات دقة الاستدعاء.
iou float 0.6 يضبط عتبة التقاطع فوق الاتحاد للقمع غير الأقصى. يتحكم في إزالة الكشف عن التكرار.
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ينشئ ويحفظ مخططات للتنبؤات مقابل الحقيقة الأرضية، ومصفوفات الارتباك، ومنحنيات العلاقات العامة للتقييم البصري لأداء النموذج.
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 ممكّن، مما يوفر مخرجات أكثر تفصيلاً للتحليل والتصفية.
save_crop bool False إذا كان True، يحفظ الصور التي تم اقتصاصها للأجسام المكتشفة، والتي يمكن أن تكون مفيدة لإنشاء مجموعات بيانات مركزة أو للتحقق البصري أو لمزيد من التحليل للكشف الفردي.
workers int 8 عدد الخيوط العاملة لتحميل البيانات. يمكن أن تؤدي القيم الأعلى إلى تسريع المعالجة المسبقة للبيانات ولكنها قد تزيد من استخدام CPU . الضبط على 0 يستخدم مؤشر ترابط رئيسي، والذي يمكن أن يكون أكثر استقرارًا في بعض البيئات.
augment bool False تمكين زيادة وقت الاختبار (TTA) أثناء التحقق من الصحة، مما قد يحسن دقة الكشف على حساب سرعة الاستدلال من خلال تشغيل الاستدلال على نسخ محوّلة من المدخلات.
agnostic_nms bool False تُمكِّن خاصية الكبت غير الفئوي غير الفئوي، والتي تدمج المربعات المتداخلة بغض النظر عن فئتها المتوقعة. مفيد للتطبيقات التي تركز على المثيل.
single_cls bool False يعامل جميع الفئات كفئة واحدة أثناء التحقق من الصحة. مفيد لتقييم أداء النموذج في مهام الكشف الثنائي أو عندما لا تكون الفروق بين الفئات مهمة.

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

دليل فال

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

تتضمن إعدادات التصدير لنماذج 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 وواجهات برمجة التطبيقات.
optimize bool False يطبّق تحسينات للأجهزة المحمولة عند التصدير إلى TorchScript مما يقلل من حجم النموذج ويحسّن أداء الاستدلال. غير متوافق مع تنسيق NCNN أو أجهزة CUDA .
half bool False تمكين التكميم FP16 (نصف دقة)، مما يقلل من حجم النموذج وربما يسرع الاستدلال على الأجهزة المدعومة. غير متوافق مع التكميم INT8 أو التصدير CPU ل 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 للتوافق مع إصدارات ONNX المختلفة ONNX وأوقات التشغيل المختلفة. إذا لم يتم تعيينه، يستخدم أحدث إصدار مدعوم.
workspace float أو None None تعيين الحد الأقصى لحجم مساحة العمل بالجيغابايت ل 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 لسيليكون أبل (device=mps) أو DLA لـ NVIDIA جيتسون (device=dla:0 أو device=dla:1). تستخدم صادرات TensorRT تلقائيًا GPU.
data str 'coco8.yaml' الطريق إلى مجموعة البيانات ملف التكوين (افتراضي: coco8.yaml)، ضروري للمعايرة الكمية INT8. إذا لم يتم تحديدها مع تمكين INT8، سيتم تعيين مجموعة بيانات افتراضية.

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

دليل التصدير

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

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

الجدال النوع افتراضي الوصف
model str None المسار إلى ملف نموذج Ultralytics YOLO Model File.
region list [(20, 400), (1260, 400)] قائمة النقاط التي تحدد منطقة العد.
show_in bool True علامة للتحكم في ما إذا كان سيتم عرض التعداد الداخلي على دفق الفيديو أم لا.
show_out bool True علامة للتحكم في ما إذا كان سيتم عرض الأعداد الخارجة على دفق الفيديو.
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] (50, 50) النقطة التي ستقوم فيها الرؤية بتتبع الأجسام ورسم المسارات باستخدام حل VisionEye.
tracker str 'botsort.yaml' يحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال, bytetrack.yaml أو botsort.yaml.
conf float 0.3 تعيين عتبة الثقة للاكتشافات؛ تسمح القيم المنخفضة بتتبع المزيد من الكائنات ولكنها قد تتضمن نتائج إيجابية كاذبة.
iou float 0.5 تعيين عتبة التقاطع على الاتحاد (IoU) لتصفية الاكتشافات المتداخلة.
classes list None تصفية النتائج حسب فهرس الفئة. على سبيل المثال, classes=[0, 2, 3] يتتبع الفئات المحددة فقط.
verbose bool True يتحكم في عرض نتائج التتبع، مما يوفر إخراجًا مرئيًا للأجسام المتعقبة.
device str None يحدد جهاز الاستدلال (على سبيل المثال, cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU ، أو جهاز GPU معين، أو أجهزة حوسبة أخرى لتنفيذ النموذج.
show bool False إذا كان Trueيعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للتعليقات المرئية الفورية أثناء التطوير أو الاختبار.
line_width None or int None يحدد عرض خط المربعات المحدودة. إذا كان None، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح.

دليل الحلول

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

تُعد تقنيات زيادة البيانات ضرورية لتحسين متانة نموذج 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

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

  • حجم الدفعة (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 سنة مضت ✏️ تم التحديث منذ 6 أيام

التعليقات