التكوين
YOLO تلعب الإعدادات والمعلمات الفائقة دورًا حاسمًا في أداء النموذج وسرعته ودقته. يمكن أن تؤثر هذه الإعدادات والمعلمات الفائقة على سلوك النموذج في مراحل مختلفة من عملية تطوير النموذج، بما في ذلك التدريب والتحقق من الصحة والتنبؤ.
شاهد: إتقان Ultralytics YOLO : التهيئة : التكوين
Ultralytics تستخدم الأوامر الصيغة التالية:
مثال على ذلك
أين:
TASK
(اختياري) هو واحد من (الكشف عن, الجزء, التصنيف, تشكل, أوبب)MODE
(مطلوب) هو واحد من (القطار, فال, توقع, التصدير, المسار, المعيار)ARGS
(اختياري) هيarg=value
أزواج مثلimgsz=640
التي تتجاوز الإعدادات الافتراضية.
افتراضي 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. هذا الأمر مفيد لوحدات معالجة الرسومات الحديثة، التي تدعم الدقة المختلطة في الأصل، مما يسمح بتضمين المزيد من النماذج في الذاكرة وتمكين إجراء عمليات حسابية أسرع دون خسارة كبيرة في الدقة. تعرف على المزيد حول هذا الأمر في دليل القطار.