انتقل إلى المحتوى

تكوين

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



شاهد: اتقان Ultralytics YOLOv8:تكوين

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

مثل

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLOv8 model from a pre-trained weights file
model = YOLO('yolov8n.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 يمكن استخدام النماذج في أوضاع مختلفة اعتمادا على المشكلة المحددة التي تحاول حلها. تتضمن هذه الأوضاع:

  • التدريب: لتدريب أ YOLOv8 نموذج على مجموعة بيانات مخصصة.
  • Val: للتحقق من صحة YOLOv8 نموذج بعد تدريبه.
  • التنبؤ: لعمل تنبؤات باستخدام مدرب YOLOv8 نموذج على الصور أو مقاطع الفيديو الجديدة.
  • تصدير: لتصدير YOLOv8 نموذج لتنسيق يمكن استخدامه للنشر.
  • المسار: لتتبع الكائنات في الوقت الفعلي باستخدام ملف YOLOv8 نموذج.
  • المعيار: لقياس الأداء YOLOv8 الصادرات (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=-1) يضبط حجم الدفعة ديناميكيا بناء على توفر ذاكرة وحدة معالجة الرسومات.
imgsz 640 حجم الصورة المستهدفة للتدريب. يتم تغيير حجم جميع الصور إلى هذا البعد قبل إدخالها في النموذج. يؤثر على دقة النموذج والتعقيد الحسابي.
save True يتيح توفير نقاط تفتيش التدريب وأوزان النموذج النهائي. مفيد لاستئناف التدريب أو نشر النموذج.
save_period -1 تواتر نقاط التفتيش النموذجية المحفوظة ، المحددة في العصور. تؤدي القيمة -1 إلى تعطيل هذه الميزة. مفيد لحفظ النماذج المؤقتة أثناء جلسات التدريب الطويلة.
cache False تمكين التخزين المؤقت لصور مجموعة البيانات في الذاكرة (True/ram)، على القرص (disk)، أو تعطيله (False). يحسن سرعة التدريب عن طريق تقليل إدخال/إخراج القرص على حساب زيادة استخدام الذاكرة.
device None يحدد الجهاز (الأجهزة) الحسابية للتدريب: وحدة معالجة رسومات واحدة (device=0) ، ووحدات معالجة رسومات متعددة (device=0,1) ، وحدة المعالجة المركزية (device=cpu)، أو MPS لسيليكون Apple (device=mps).
workers 8 عدد مؤشرات الترابط العاملة لتحميل البيانات (لكل RANK إذا كان التدريب متعدد GPU). يؤثر على سرعة المعالجة المسبقة للبيانات والتغذية في النموذج ، وهو مفيد بشكل خاص في إعدادات وحدات معالجة الرسومات المتعددة.
project None اسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بالتخزين المنظم للتجارب المختلفة.
name None اسم تشغيل التدريب. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع ، حيث يتم تخزين سجلات التدريب والمخرجات.
exist_ok False إذا كان صحيحا ، يسمح بالكتابة فوق دليل مشروع / اسم موجود. مفيد للتجربة التكرارية دون الحاجة إلى مسح المخرجات السابقة يدويا.
pretrained True يحدد ما إذا كان سيبدأ التدريب من نموذج تم تدريبه مسبقا. يمكن أن تكون قيمة منطقية أو مسار سلسلة إلى نموذج معين يتم من خلاله تحميل الأوزان. يعزز كفاءة التدريب وأداء النموذج.
optimizer 'auto' اختيار محسن للتدريب. تشمل الخيارات SGD, Adam, AdamW, NAdam, RAdam, RMSProp إلخ، أو auto للاختيار التلقائي بناء على تكوين النموذج. يؤثر على سرعة التقارب والاستقرار.
verbose False تمكين الإخراج المطول أثناء التدريب ، وتوفير سجلات مفصلة وتحديثات التقدم. مفيد لتصحيح الأخطاء ومراقبة عملية التدريب عن كثب.
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 أو beta1 لمحسنات Adam ، مما يؤثر على دمج التدرجات السابقة في التحديث الحالي.
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 يقوم بإنشاء وحفظ مخططات مقاييس التدريب والتحقق من الصحة، بالإضافة إلى أمثلة التنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم.

دليل القطار

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

إعدادات التنبؤ ل 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). يسمح للمستخدمين بالاختيار بين وحدة المعالجة المركزية أو وحدة معالجة رسومات معينة أو أجهزة حوسبة أخرى لتنفيذ النموذج.
max_det int 300 الحد الأقصى لعدد الاكتشافات المسموح بها لكل صورة. يحد من العدد الإجمالي للكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات الزائدة في المشاهد الكثيفة.
vid_stride int 1 خطوة الإطار لمدخلات الفيديو. يسمح بتخطي الإطارات في مقاطع الفيديو لتسريع المعالجة على حساب الدقة الزمنية. قيمة 1 تعالج كل إطار ، القيم الأعلى تتخطى الإطارات.
stream_buffer bool False يحدد ما إذا كان يجب تخزين كل الإطارات مؤقتا عند معالجة تدفقات الفيديو (True)، أو إذا كان يجب أن يعيد النموذج أحدث إطار (False). مفيد للتطبيقات في الوقت الحقيقي.
visualize bool False ينشط تصور ميزات النموذج أثناء الاستدلال ، مما يوفر رؤى حول ما "يراه" النموذج. مفيد لتصحيح الأخطاء وتفسير النموذج.
augment bool False يتيح زيادة وقت الاختبار (TTA) للتنبؤات ، مما قد يؤدي إلى تحسين متانة الكشف على حساب سرعة الاستدلال.
agnostic_nms bool False تمكين منع عدم الحد الأقصى (NMS) اللاأدري للفئة ، والذي يدمج المربعات المتداخلة لفئات مختلفة. مفيد في سيناريوهات الكشف متعددة الفئات حيث يكون تداخل الفئة شائعا.
classes list[int] None تصفية التوقعات إلى مجموعة من معرفات الفئة. سيتم إرجاع الاكتشافات التي تنتمي إلى الفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الكشف متعددة الفئات.
retina_masks bool False يستخدم أقنعة تجزئة عالية الدقة إذا كانت متوفرة في النموذج. يمكن أن يؤدي ذلك إلى تحسين جودة القناع لمهام التجزئة ، مما يوفر تفاصيل أدق.
embed list[int] None يحدد الطبقات التي سيتم استخراج متجهات المعالم أو الدمجات منها. مفيد للمهام النهائية مثل التجميع أو البحث عن التشابه.

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

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

دليل التنبؤ

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

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

جدال نوع افتراضي وصف
data str None يحدد المسار إلى ملف تكوين مجموعة البيانات (على سبيل المثال، coco8.yaml). يتضمن هذا الملف مسارات لبيانات التحقق من الصحة وأسماء الفئات وعدد الفئات.
imgsz int 640 يحدد حجم الصور المدخلة. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة.
batch int 16 يضبط عدد الصور لكل دفعة. استخدام -1 ل AutoBatch ، والذي يتم ضبطه تلقائيا بناء على توفر ذاكرة وحدة معالجة الرسومات.
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، وما إلى ذلك). يسمح بالمرونة في استخدام موارد وحدة المعالجة المركزية أو وحدة معالجة الرسومات.
dnn bool False لو True، يستخدم وحدة OpenCV DNN ل ONNX نموذج الاستدلال ، الذي يقدم بديلا ل PyTorch طرق الاستدلال.
plots bool False عند الضبط على True، يولد ويحفظ مخططات التنبؤات مقابل الحقيقة الأرضية للتقييم البصري لأداء النموذج.
rect bool False لو True، يستخدم الاستدلال المستطيل للتجميع وتقليل الحشو وربما زيادة السرعة والكفاءة.
split str val يحدد تقسيم مجموعة البيانات المراد استخدامه للتحقق من الصحة (val, testأو train). يتيح المرونة في اختيار شريحة البيانات لتقييم الأداء.

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

دليل فال

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

تصدير الإعدادات ل 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 الصادرات ، وتعزيز المرونة في التعامل مع أبعاد الصورة المختلفة.
simplify bool False يبسط الرسم البياني النموذجي ل ONNX الصادرات ، مما قد يؤدي إلى تحسين الأداء والتوافق.
opset int None يحدد ONNX إصدار Opset للتوافق مع مختلف ONNX المحللون وأوقات التشغيل. إذا لم يتم تعيينه، يستخدم أحدث إصدار مدعوم.
workspace float 4.0 تعيين الحد الأقصى لحجم مساحة العمل بالجيجابايت ل TensorRT التحسينات ، وتحقيق التوازن بين استخدام الذاكرة والأداء.
nms bool False يضيف منع غير أقصى (NMS) إلى CoreML التصدير ، ضروري للكشف الدقيق والفعال بعد المعالجة.

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

دليل التصدير

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

تقنيات التعزيز ضرورية لتحسين متانة وأداء 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 يطبق تحويل منظور عشوائي على الصورة ، مما يعزز قدرة النموذج على فهم الكائنات في مساحة 3D.
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 ينسخ كائنات من صورة ويلصقها على صورة أخرى، مفيد لزيادة تواجدات الكائن وتعلم انسداد الكائن.
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 لحفظ الدول النموذجية بشكل دوري ، مما يسمح باستئناف التدريب من نقاط التفتيش هذه أو النماذج التي سيتم نشرها.


تم النشر في 2023-11-12, اخر تحديث 2024-04-18
المؤلفون: جلين جوشر (13) ، فكاكيون (2) ، ضاحك كيو (2) ، بلاشينسكي (1) ، برهان كيو (1) ، أيوشكسل (1) ، رضوان منور (1) ، تينسورترتل (1)

التعليقات