الإعدادات
تلعب إعدادات ومعاملات YOLO دوراً حاسماً في أداء النموذج وسرعته ودقة التنبؤ. يمكن لهذه الإعدادات أن تؤثر على سلوك النموذج في مراحل مختلفة، بما في ذلك التدريب والتحقق من الصحة والتنبؤ.
Watch: Mastering Ultralytics YOLO: Configuration
تستخدم أوامر Ultralytics البنية التالية:
yolo TASK MODE ARGSحيث:
TASK(اختياري) هو أحد الخيارات (detect, segment, classify, pose, obb, semantic)MODE(مطلوب) هو أحد الخيارات (train, val, predict, export, track, benchmark)ARGS(اختياري) هي أزواجarg=valueمثلimgsz=640التي تتجاوز الإعدادات الافتراضية.
Default ARG values are defined on this page and come from the cfg/default.yaml file.
المهام
يمكن لنماذج Ultralytics YOLO أداء مجموعة متنوعة من مهام الرؤية الحاسوبية، بما في ذلك:
- Detect: اكتشاف الكائنات يقوم بتحديد وتوطين الكائنات داخل صورة أو مقطع فيديو.
- Segment: تقسيم المثيلات يقوم بتقسيم صورة أو فيديو إلى مناطق تتوافق مع كائنات أو فئات مختلفة.
- Classify: تصنيف الصور يتنبأ بتسمية فئة صورة الإدخال.
- Pose: تقدير الوضعية يحدد الكائنات ويقدر نقاطها الرئيسية في صورة أو فيديو.
- OBB: صناديق التحديد الموجهة تستخدم صناديق تحديد دوارة، وهي مناسبة للصور الفضائية أو الطبية.
- التقسيم الدلالي (
semantic): التقسيم الدلالي يخصص تسمية فئة لكل بكسل في الصورة لفهم المشهد بكثافة.
| المعامل | الافتراضي | الوصف |
|---|---|---|
task | 'detect' | يحدد مهمة YOLO: detect لـ اكتشاف الكائنات، segment لتقسيم المثيلات، classify للتصنيف، pose لتقدير الوضعية، obb لصناديق التحديد الموجهة، وsemantic للتقسيم الدلالي. كل مهمة مصممة خصيصاً لمخرجات ومشاكل محددة في تحليل الصور والفيديو. |
الأوضاع
تعمل نماذج Ultralytics YOLO في أوضاع مختلفة، كل منها مصمم لمرحلة محددة من دورة حياة النموذج:
- Train: تدريب نموذج YOLO على مجموعة بيانات مخصصة.
- Val: التحقق من صحة نموذج YOLO مدرب.
- Predict: استخدام نموذج YOLO مدرب لإجراء تنبؤات على صور أو فيديوهات جديدة.
- Export: تصدير نموذج YOLO للنشر.
- Track: تتبع الكائنات في الوقت الفعلي باستخدام نموذج YOLO.
- Benchmark: قياس سرعة ودقة صادرات 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 | إجمالي عدد دورات التدريب (epochs). تمثل كل دورة تمريرة كاملة عبر مجموعة البيانات بالكامل. تعديل هذه القيمة يمكن أن يؤثر على مدة التدريب وأداء النموذج. |
time | float | None | أقصى وقت تدريب بالساعات. إذا تم ضبطه، فإنه يتجاوز معامل epochs، مما يسمح للتدريب بالتوقف تلقائياً بعد المدة المحددة. مفيد لسيناريوهات التدريب المقيدة زمنياً. |
patience | int | 100 | عدد الدورات للانتظار دون تحسن في مقاييس التحقق قبل إيقاف التدريب مبكراً. يساعد في منع الفرط في التخصيص عن طريق إيقاف التدريب عندما يستقر الأداء. |
batch | int أو float | 16 | حجم الدفعة، مع ثلاثة أوضاع: كعدد صحيح (مثلاً batch=16)، أو الوضع التلقائي لاستخدام 60% من ذاكرة GPU (batch=-1)، أو الوضع التلقائي مع كسر استخدام محدد (batch=0.70). |
imgsz | int | 640 | حجم الصورة المستهدف للتدريب. يتم تغيير حجم الصور إلى مربعات بأضلاع تساوي القيمة المحددة (إذا كان rect=False)، مع الحفاظ على نسبة العرض إلى الارتفاع لنماذج YOLO ولكن ليس RT-DETR. يؤثر على دقة النموذج والتعقيد الحسابي. |
save | bool | True | يُمكّن حفظ نقاط فحص التدريب وأوزان النموذج النهائية. مفيد لاستئناف التدريب أو نشر النموذج. |
save_period | int | -1 | تكرار حفظ نقاط فحص النموذج، محدد بالدورات. القيمة -1 تعطل هذه الميزة. مفيد لحفظ النماذج المؤقتة خلال جلسات التدريب الطويلة. |
cache | bool | False | يُمكّن التخزين المؤقت لصور مجموعة البيانات في الذاكرة (True/ram)، أو على القرص (disk)، أو يعطله (False). يحسن سرعة التدريب عن طريق تقليل عمليات الإدخال/الإخراج للقرص على حساب زيادة استخدام الذاكرة. |
device | int أو str أو list | None | يحدد جهاز/أجهزة الحوسبة للتدريب: GPU واحد (device=0)، وحدات GPU متعددة (device=[0,1])، CPU (device=cpu)، MPS لمعالجات Apple silicon (device=mps)، Huawei Ascend NPU (device=npu أو device=npu:0)، أو الاختيار التلقائي لأكثر GPU غير مشغول (device=-1) أو وحدات GPU متعددة غير مشغولة (device=[-1,-1]) |
workers | int | 8 | عدد خيوط العمل لتحميل البيانات (لكل RANK في حالة التدريب متعدد GPU). يؤثر على سرعة المعالجة المسبقة للبيانات وتغذيتها للنموذج، وهو مفيد بشكل خاص في إعدادات متعددة GPU. |
project | str | None | اسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بتخزين منظم للتجارب المختلفة. |
name | str | None | اسم تشغيل التدريب. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التدريب. |
exist_ok | bool | False | إذا كان True، يسمح بالكتابة فوق دليل المشروع/الاسم الموجود. مفيد للتجارب التكرارية دون الحاجة إلى مسح المخرجات السابقة يدوياً. |
pretrained | bool أو str | True | يحدد ما إذا كان يجب بدء التدريب من أوزان مُدربة مسبقاً. يمكن أن يكون قيمة منطقية أو مساراً نصياً للأوزان المراد تحميلها. pretrained=False يبدأ التدريب من أوزان مُهيأة عشوائياً مع الحفاظ على بنية النموذج. |
optimizer | str | 'auto' | اختيار المحسن للتدريب. تشمل الخيارات SGD، MuSGD، Adam، Adamax، AdamW، NAdam، RAdam، RMSProp، أو auto للاختيار التلقائي بناءً على إعدادات النموذج. يؤثر على سرعة التقارب والاستقرار. |
seed | int | 0 | يضبط البذرة العشوائية للتدريب، مما يضمن قابلية تكرار النتائج عبر التشغيلات بنفس الإعدادات. |
deterministic | bool | True | يفرض استخدام خوارزمية حتمية، مما يضمن قابلية التكرار ولكنه قد يؤثر على الأداء والسرعة بسبب القيود المفروضة على الخوارزميات غير الحتمية. |
verbose | bool | True | يُمكّن المخرجات التفصيلية أثناء التدريب، حيث يعرض أشرطة التقدم، ومقاييس كل دورة، ومعلومات تدريب إضافية في وحدة التحكم. |
single_cls | bool | False | يعامل جميع الفئات في مجموعات البيانات متعددة الفئات كفئة واحدة أثناء التدريب. مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الكائن بدلاً من تصنيفه. |
classes | list[int] | None | يحدد قائمة بمعرفات الفئات للتدريب عليها. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التدريب. |
rect | bool | False | يُمكّن استراتيجية الحشو الأدنى—يتم حشو الصور في دفعة بحد أدنى للوصول إلى حجم مشترك، مع تساوي الجانب الأطول مع imgsz. يمكن أن يحسن الكفاءة والسرعة ولكنه قد يؤثر على دقة النموذج. |
multi_scale | float | 0.0 | يغير حجم imgsz عشوائياً في كل دفعة بمقدار +/- multi_scale (مثلاً 0.25 -> 0.75x إلى 1.25x)، مع التقريب إلى مضاعفات خطوة النموذج؛ 0.0 يعطل التدريب متعدد المقاييس. |
cos_lr | bool | False | يستخدم مجدول معدل التعلم جيب التمام، حيث يقوم بضبط معدل التعلم باتباع منحنى جيب التمام عبر العصور (epochs). يساعد في إدارة معدل التعلم لتحقيق تقارب أفضل. |
close_mosaic | int | 10 | يعطل زيادة البيانات بنمط الفسيفساء (mosaic) في آخر N عصور لتثبيت التدريب قبل اكتماله. ضبط القيمة على 0 يعطل هذه الميزة. |
resume | bool | False | يستأنف التدريب من آخر نقطة تفتيش (checkpoint) تم حفظها. يقوم تلقائيًا بتحميل أوزان النموذج، وحالة المُحسن (optimizer)، وعدد العصور، مما يضمن استمرار التدريب بسلاسة. |
amp | bool | True | يُمكّن تدريب الدقة المختلطة التلقائية (AMP)، مما يقلل من استخدام الذاكرة وربما يسرع عملية التدريب مع تأثير ضئيل على الدقة. |
fraction | float | 1.0 | يحدد جزءًا من مجموعة البيانات المراد استخدامها للتدريب. يسمح بالتدريب على مجموعة فرعية من مجموعة البيانات الكاملة، وهو مفيد للتجارب أو عند محدودية الموارد. |
profile | bool | False | يُمكّن تحليل سرعات ONNX و TensorRT أثناء التدريب، وهو مفيد لتحسين نشر النموذج. |
freeze | int أو list | None | يُجمّد أول N طبقة من النموذج أو الطبقات المحددة حسب الفهرس، مما يقلل من عدد المعلمات القابلة للتدريب. مفيد لضبط الدقة (fine-tuning) أو التعلم بنقل المعرفة. |
lr0 | float | 0.01 | معدل التعلم الأولي (مثل SGD=1E-2، Adam=1E-3). يعد ضبط هذه القيمة أمرًا بالغ الأهمية لعملية التحسين، حيث يؤثر على سرعة تحديث أوزان النموذج. |
lrf | float | 0.01 | معدل التعلم النهائي كجزء من المعدل الأولي = (lr0 * lrf)، ويستخدم مع المجدولات لضبط معدل التعلم بمرور الوقت. |
momentum | float | 0.937 | عامل الزخم (momentum) لـ SGD أو beta1 لـ مُحسنات Adam، مما يؤثر على دمج التدرجات السابقة في التحديث الحالي. |
weight_decay | float | 0.0005 | مصطلح التنظيم L2، الذي يعاقب الأوزان الكبيرة لمنع الإفراط في التخصيص (overfitting). |
warmup_epochs | float | 3.0 | عدد العصور الخاصة بتهيئة معدل التعلم (warmup)، مما يؤدي إلى زيادة معدل التعلم تدريجيًا من قيمة منخفضة إلى معدل التعلم الأولي لتحقيق استقرار التدريب في البداية. |
warmup_momentum | float | 0.8 | الزخم الأولي لمرحلة التهيئة، والذي يتم ضبطه تدريجيًا ليصل إلى الزخم المحدد خلال فترة التهيئة. |
warmup_bias_lr | float | 0.1 | معدل التعلم لمعلمات الانحياز (bias) خلال مرحلة التهيئة، مما يساعد في استقرار تدريب النموذج في العصور الأولى. |
box | float | 7.5 | وزن مكون خسارة الصندوق في دالة الخسارة، مما يؤثر على مدى التركيز الموضوع على التنبؤ الدقيق بإحداثيات صندوق الإحاطة. |
cls | float | 0.5 | وزن خسارة التصنيف في إجمالي دالة الخسارة، مما يؤثر على أهمية التنبؤ الصحيح بالفئة مقارنة بالمكونات الأخرى. |
cls_pw | float | 0.0 | قوة ترجيح الفئات للتعامل مع عدم توازن الفئات باستخدام التردد العكسي للفئة. القيمة 0.0 تعطل ترجيح الفئات، و 1.0 تطبق ترجيح التردد العكسي الكامل. القيم بين 0 و 1 توفر ترجيحًا جزئيًا. |
dfl | float | 1.5 | وزن خسارة التوزيع البؤري (distribution focal loss)، المستخدم في إصدارات معينة من YOLO للتصنيف الدقيق. |
pose | float | 12.0 | وزن خسارة الوضع (pose) في النماذج المدربة لتقدير الوضع، مما يؤثر على التركيز على التنبؤ الدقيق للنقاط الرئيسية للوضع. |
kobj | float | 1.0 | وزن خسارة وجود النقاط الرئيسية (keypoint objectness) في نماذج تقدير الوضع، مما يوازن بين ثقة الكشف ودقة الوضع. |
rle | float | 1.0 | وزن خسارة تقدير احتمالية اللوغاريتم المتبقية (residual log-likelihood estimation) في نماذج تقدير الوضع، مما يؤثر على دقة تحديد مواقع النقاط الرئيسية. |
angle | float | 1.0 | وزن خسارة الزاوية في نماذج OBB، مما يؤثر على دقة تنبؤات زاوية صندوق الإحاطة الموجه. |
nbs | int | 64 | حجم الدفعة الاسمي (nominal batch size) لتطبيع الخسارة. |
overlap_mask | bool | True | يحدد ما إذا كان يجب دمج أقنعة الكائنات في قناع واحد للتدريب، أو الاحتفاظ بها منفصلة لكل كائن. في حالة التداخل، يتم وضع القناع الأصغر فوق القناع الأكبر أثناء الدمج. |
mask_ratio | int | 4 | نسبة التقليل (downsample) لأقنعة التجزئة (segmentation masks)، مما يؤثر على دقة الأقنعة المستخدمة أثناء التدريب. |
dropout | float | 0.0 | معدل الإسقاط (dropout) للتنظيم في مهام التصنيف، مما يمنع الإفراط في التخصيص عن طريق حذف الوحدات عشوائيًا أثناء التدريب. |
val | bool | True | يُمكّن التحقق (validation) أثناء التدريب، مما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة. |
plots | bool | True | ينشئ ويحفظ رسومًا بيانية لمقاييس التدريب والتحقق، بالإضافة إلى أمثلة التنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم. |
compile | bool أو str | False | يُمكّن تجميع الرسم البياني لـ PyTorch 2.x torch.compile مع backend='inductor'. يقبل True → "default"، False → لتعطيل، أو وضع نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يعود إلى الوضع السريع (eager) مع تحذير إذا كان غير مدعوم. |
max_det | int | 300 | يحدد الحد الأقصى لعدد الكائنات التي يتم الاحتفاظ بها أثناء مرحلة التحقق من التدريب. |
توفر وسيطة batch ثلاثة خيارات للتكوين:
- حجم دفعة ثابت: حدد عدد الصور لكل دفعة باستخدام رقم صحيح (مثلاً
batch=16). - الوضع التلقائي (60% من ذاكرة GPU): استخدم
batch=-1للضبط التلقائي على حوالي 60% من استخدام ذاكرة CUDA. - الوضع التلقائي مع كسر الاستخدام: قم بتعيين كسر (مثلاً
batch=0.70) للضبط بناءً على استخدام محدد لذاكرة GPU.
إعدادات التنبؤ
تتضمن إعدادات التنبؤ لنماذج YOLO معلمات فائقة وتكوينات تؤثر على الأداء والسرعة والدقة أثناء الاستدلال. تشمل الإعدادات الرئيسية عتبة الثقة، عتبة كبت غير الأعظمية (NMS)، وعدد الفئات. يؤثر أيضًا حجم بيانات الإدخال، والتنسيق، والميزات الإضافية مثل الأقنعة على التنبؤات. يعد ضبط هذه الإعدادات ضروريًا لتحقيق الأداء الأمثل.
وسائط الاستدلال:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
source | str أو int أو None | None | يحدد مصدر البيانات للاستدلال. يمكن أن يكون مسار صورة، ملف فيديو، دليل، URL، أو معرف جهاز للبث المباشر. إذا تم حذفه، يتم تسجيل تحذير ويعود النموذج إلى أصول العرض التوضيحي المضمنة (ultralytics/assets، أو URL عرض توضيحي لـ OBB). يدعم مجموعة واسعة من التنسيقات والمصادر، مما يتيح تطبيقًا مرنًا عبر أنواع مختلفة من المدخلات. |
conf | float | 0.25 | يحدد الحد الأدنى لعتبة الثقة للكشوف. سيتم تجاهل الكائنات التي تم اكتشافها بثقة أقل من هذه العتبة. يمكن أن يساعد ضبط هذه القيمة في تقليل الإيجابيات الكاذبة. |
iou | float | 0.7 | عتبة التقاطع فوق الاتحاد (IoU) لـ NMS. تؤدي القيم الأقل إلى عدد أقل من الكشوف عن طريق التخلص من الصناديق المتداخلة، وهو مفيد لتقليل التكرارات. |
imgsz | int أو tuple | 640 | الهدف الخاص بـ Letterbox. يعطي الرقم الصحيح مربعًا N×N؛ وتعطي الـ tuple أبعاد (height, width). مع rect=True، قد يكون الموتر الفعلي أصغر من هذا الهدف بسبب حشوة المستطيل الأدنى. استخدم rect=False لحجم ثابت. انظر الشكل الثابت مقابل المستطيل الأدنى. |
rect | bool | True | إذا كان True، فاستخدم حشوة المستطيل الأدنى عندما يكون ذلك ممكنًا (دفعة ذات شكل موحد وbackend مدعوم). إذا كان False، فقم دائمًا بالحشو إلى imgsz الكامل. انظر الشكل الثابت مقابل المستطيل الأدنى. |
half | bool | False | يُمكّن استدلال الدقة النصفية (FP16)، والذي يمكن أن يسرع استدلال النموذج على وحدات GPU المدعومة مع تأثير ضئيل على الدقة. |
device | str | None | يحدد الجهاز للاستدلال (مثلاً cpu، cuda:0، 0، npu أو npu:0). يسمح للمستخدمين بالاختيار بين CPU، أو GPU معين، أو Huawei Ascend NPU، أو أجهزة حوسبة أخرى لتنفيذ النموذج. |
batch | int | 1 | يحدد حجم الدفعة (batch size) للاستدلال (يعمل فقط عندما يكون المصدر دليلاً، أو ملف فيديو، أو ملف .txt). يمكن أن يوفر حجم الدفعة الأكبر إنتاجية أعلى، مما يقلل الوقت الإجمالي المطلوب للاستدلال. |
max_det | int | 300 | الحد الأقصى لعدد الاكتشافات المسموح بها لكل صورة. يحد من إجمالي عدد الكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات المفرطة في المشاهد الكثيفة. |
vid_stride | int | 1 | خطوة الإطار (frame stride) لمدخلات الفيديو. يسمح بتخطي الإطارات في مقاطع الفيديو لتسريع المعالجة على حساب الدقة الزمنية. القيمة 1 تعالج كل إطار، والقيم الأعلى تتخطى الإطارات. |
stream_buffer | bool | False | يحدد ما إذا كان يجب وضع الإطارات الواردة في طابور لتدفقات الفيديو. إذا كان False، يتم إسقاط الإطارات القديمة لاستيعاب إطارات جديدة (مُحسّن للتطبيقات في الوقت الفعلي). إذا كان True، يتم وضع الإطارات الجديدة في مخزن مؤقت، مما يضمن عدم تخطي أي إطار، ولكنه سيسبب تأخيراً إذا كان معدل استدلال الإطارات في الثانية (FPS) أقل من معدل تدفق الإطارات. |
visualize | bool | False | يُفعّل تصور ميزات النموذج أثناء الاستدلال، مما يوفر رؤى حول ما "يراه" النموذج. مفيد لتصحيح الأخطاء وتفسير النموذج. |
augment | bool | False | يُفعّل التعزيز أثناء وقت الاختبار (TTA) للتنبؤات، مما قد يحسن قوة الاكتشاف على حساب سرعة الاستدلال. |
agnostic_nms | bool | False | يُفعّل كبت غير الحد الأقصى (NMS) المحايد للفئات، والذي يدمج المربعات المتداخلة من فئات مختلفة. مفيد في سيناريوهات الاكتشاف متعدد الفئات حيث يكون تداخل الفئات شائعاً. بالنسبة للنماذج الشاملة (YOLO26، YOLOv10)، هذا يمنع فقط ظهور نفس الاكتشاف بتسميات فئات متعددة (تكرارات IoU=1.0) ولا يقوم بكبت يعتمد على عتبة IoU بين مربعات متميزة. |
classes | list[int] | None | يقوم بتصفية التنبؤات إلى مجموعة من معرفات الفئات (class IDs). سيتم إرجاع الاكتشافات التي تنتمي للفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الاكتشاف متعدد الفئات. |
retina_masks | bool | False | يُرجع أقنعة تقسيم (segmentation masks) عالية الدقة. ستطابق الأقنعة المُرجعة (masks.data) حجم الصورة الأصلي إذا تم تفعيل هذا الخيار. إذا تم تعطيله، فسيكون لها حجم الصورة المستخدم أثناء الاستدلال. |
embed | list[int] | None | يحدد الطبقات التي سيتم استخراج متجهات الميزات أو التضمينات منها. مفيد للمهام اللاحقة مثل التجميع أو البحث عن التشابه. |
project | str | None | اسم دليل المشروع حيث يتم حفظ مخرجات التنبؤ إذا تم تفعيل خيار save. |
name | str | None | اسم تشغيل التنبؤ. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين مخرجات التنبؤ إذا تم تفعيل خيار save. |
stream | bool | False | يُفعّل المعالجة الموفرة للذاكرة لمقاطع الفيديو الطويلة أو الصور العديدة عن طريق إرجاع مولد (generator) لكائنات النتائج بدلاً من تحميل جميع الإطارات في الذاكرة دفعة واحدة. |
verbose | bool | True | يتحكم في ما إذا كان سيتم عرض سجلات الاستدلال التفصيلية في الطرفية (terminal)، مما يوفر ملاحظات فورية حول عملية التنبؤ. |
compile | bool أو str | False | يُمكّن تجميع الرسم البياني لـ PyTorch 2.x torch.compile مع backend='inductor'. يقبل True → "default"، False → لتعطيل، أو وضع نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يعود إلى الوضع السريع (eager) مع تحذير إذا كان غير مدعوم. |
end2end | bool | None | يتجاوز الوضع الشامل (end-to-end) في نماذج YOLO التي تدعم الاستدلال بدون NMS (YOLO26، YOLOv10). ضبطه على False يسمح لك بتشغيل التنبؤ باستخدام خط أنابيب NMS التقليدي، مما يسمح لك بالإضافة إلى ذلك باستخدام وسيطة iou. راجع دليل الاكتشاف الشامل للحصول على التفاصيل. |
وسائط التصور:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
show | bool | False | إذا كان True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار. |
save | bool | False or True | يُفعّل حفظ الصور أو مقاطع الفيديو المشروحة في ملفات. مفيد للتوثيق، أو إجراء المزيد من التحليل، أو مشاركة النتائج. يكون الافتراضي True عند استخدام CLI و False عند الاستخدام في 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 | يرسم مربعات الإحاطة (bounding boxes) حول الكائنات المكتشفة. ضروري للتعرف المرئي وتحديد موقع الكائنات في الصور أو إطارات الفيديو. |
line_width | int or None | None | يحدد عرض خط مربعات الإحاطة. إذا كان None، يتم تعديل عرض الخط تلقائياً بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح. |
إعدادات التحقق
تتضمن إعدادات التحقق لنماذج YOLO معلمات فائقة وتكوينات لتقييم الأداء على مجموعة بيانات التحقق. تؤثر هذه الإعدادات على الأداء والسرعة والدقة. تشمل الإعدادات الشائعة حجم الدفعة، وتكرار التحقق، ومقاييس الأداء. يؤثر حجم وتكوين مجموعة بيانات التحقق، جنباً إلى جنب مع المهمة المحددة، على العملية أيضاً.
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
data | str | None | يحدد المسار إلى ملف تكوين مجموعة البيانات (مثل coco8.yaml). يجب أن يتضمن هذا الملف المسار إلى بيانات التحقق. |
imgsz | int | 640 | يحدد حجم صور الإدخال. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة. قد تؤدي الأحجام الأكبر إلى تحسين الدقة للكائنات الصغيرة ولكنها تزيد من وقت الحساب. |
batch | int | 16 | يحدد عدد الصور لكل دفعة. تستخدم القيم الأعلى ذاكرة GPU بكفاءة أكبر ولكنها تتطلب المزيد من VRAM. اضبط الإعداد بناءً على موارد الأجهزة المتاحة. |
save_json | bool | False | إذا كان True، يحفظ النتائج في ملف JSON لمزيد من التحليل، أو التكامل مع أدوات أخرى، أو التقديم لخوادم التقييم مثل COCO. |
conf | float | 0.001 | يحدد عتبة الثقة الدنيا للاكتشافات. القيم المنخفضة تزيد من الاستدعاء (recall) ولكن قد تؤدي إلى المزيد من الإيجابيات الكاذبة. تُستخدم أثناء التحقق لحساب منحنيات الدقة والاستدعاء. |
iou | float | 0.7 | يحدد عتبة التقاطع فوق الاتحاد لـ الكبت غير الحد الأقصى. يتحكم في إزالة الاكتشافات المكررة. |
max_det | int | 300 | يحد من الحد الأقصى لعدد الاكتشافات لكل صورة. مفيد في المشاهد الكثيفة لمنع الاكتشافات المفرطة وإدارة الموارد الحسابية. |
half | bool | False | يُفعّل الحساب بنصف الدقة (FP16)، مما يقلل من استخدام الذاكرة وربما يزيد من السرعة مع تأثير ضئيل على الدقة. |
device | str | None | يحدد الجهاز للتحقق (cpu, cuda:0, npu, npu:0, إلخ). عند ضبطه على None، يتم اختيار أفضل جهاز متاح تلقائياً. يمكن تحديد أجهزة CUDA متعددة بفصلها بفواصل. |
dnn | bool | False | إذا كان True، يستخدم وحدة DNN الخاصة بـ OpenCV لاستدلال نموذج ONNX، مما يوفر بديلاً لطرق استدلال PyTorch. |
plots | bool | True | عند ضبطه على True، ينشئ ويحفظ مخططات للتنبؤات مقابل الحقيقة الأرضية، ومصفوفات الارتباك، ومنحنيات PR للتقييم المرئي لأداء النموذج. |
classes | list[int] | None | يحدد قائمة بمعرفات الفئات للتقييم. مفيد للتصفية والتركيز فقط على فئات معينة أثناء التقييم. |
rect | bool | True | إذا كان True، يستخدم الاستدلال المستطيل للدفعة، مما يقلل من الحشو وربما يزيد من السرعة والكفاءة من خلال معالجة الصور بنسبة العرض إلى الارتفاع الأصلية. |
split | str | 'val' | يحدد تقسيم مجموعة البيانات المستخدم للتحقق (val, test, أو train). يسمح بالمرونة في اختيار جزء البيانات لتقييم الأداء. |
project | str | None | اسم دليل المشروع حيث يتم حفظ مخرجات التحقق. يساعد في تنظيم النتائج من تجارب أو نماذج مختلفة. |
name | str | None | اسم تشغيل التحقق. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التحقق. |
verbose | bool | True | إذا كان True، يعرض معلومات تفصيلية أثناء عملية التحقق، بما في ذلك المقاييس لكل فئة، وتقدم الدفعة، ومعلومات إضافية لتصحيح الأخطاء. |
save_txt | bool | False | إذا كان True، يحفظ نتائج الاكتشاف في ملفات نصية، ملف واحد لكل صورة، مفيد لمزيد من التحليل، أو المعالجة اللاحقة المخصصة، أو التكامل مع أنظمة أخرى. |
save_conf | bool | False | إذا كان True، يتضمن قيم الثقة في الملفات النصية المحفوظة عند تفعيل save_txt، مما يوفر مخرجات أكثر تفصيلاً للتحليل والتصفية. |
workers | int | 8 | عدد خيوط العمل (worker threads) لتحميل البيانات. يمكن أن تسرع القيم الأعلى من معالجة البيانات مسبقاً ولكنها قد تزيد من استخدام CPU. الضبط على 0 يستخدم الخيط الرئيسي، والذي يمكن أن يكون أكثر استقراراً في بعض البيئات. |
augment | bool | False | يُفعّل التعزيز أثناء وقت الاختبار (TTA) أثناء التحقق، مما قد يحسن دقة الاكتشاف على حساب سرعة الاستدلال من خلال تشغيل الاستدلال على نسخ معدلة من المدخلات. |
agnostic_nms | bool | False | يُفعّل الكبت غير الحد الأقصى المحايد للفئات، والذي يدمج المربعات المتداخلة بغض النظر عن فئتها المتوقعة. مفيد للتطبيقات التي تركز على الحالة. بالنسبة للنماذج الشاملة (YOLO26، YOLOv10)، هذا يمنع فقط ظهور نفس الاكتشاف بتسميات فئات متعددة (تكرارات IoU=1.0) ولا يقوم بكبت يعتمد على عتبة IoU بين مربعات متميزة. |
single_cls | bool | False | يعامل جميع الفئات كفئة واحدة أثناء التحقق. مفيد لتقييم أداء النموذج في مهام الاكتشاف الثنائي أو عندما لا تكون التمييزات بين الفئات مهمة. |
visualize | bool | False | يصور الحقائق الأرضية، والإيجابيات الحقيقية، والإيجابيات الكاذبة، والسلبيات الكاذبة لكل صورة. مفيد لتصحيح الأخطاء وتفسير النموذج. |
compile | bool أو str | False | يُمكّن تجميع الرسم البياني لـ PyTorch 2.x torch.compile مع backend='inductor'. يقبل True → "default"، False → لتعطيل، أو وضع نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يعود إلى الوضع السريع (eager) مع تحذير إذا كان غير مدعوم. |
end2end | bool | None | يتجاوز الوضع الشامل في نماذج YOLO التي تدعم الاستدلال بدون NMS (YOLO26، YOLOv10). ضبطه على False يسمح لك بتشغيل التحقق باستخدام خط أنابيب NMS التقليدي، مما يسمح لك بالإضافة إلى ذلك باستخدام وسيطة iou. |
يعد الضبط الدقيق والتجريب أمراً بالغ الأهمية لضمان الأداء الأمثل ولاكتشاف ومنع الفرط في التخصيص.
إعدادات التصدير
تتضمن إعدادات التصدير لنماذج 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. بالنسبة لـ DeepX، فإنه يُفعّل تحسيناً أعلى للمترجم مما يقلل من تأخير الاستدلال ويزيد من وقت التجميع. |
half | bool | False | يُفعّل تكميم FP16 (نصف الدقة)، مما يقلل من حجم النموذج وربما يسرع الاستدلال على الأجهزة المدعومة. غير متوافق مع تكميم INT8 أو الصادرات المعتمدة على CPU فقط. متاح فقط لتنسيقات معينة، على سبيل المثال ONNX (انظر أدناه). |
int8 | bool | False | يُفعّل تكميم INT8، مما يزيد من ضغط النموذج ويسرع الاستدلال مع حد أدنى من فقدان الدقة، بشكل أساسي لـ أجهزة الحافة. عند استخدامه مع TensorRT، يقوم بإجراء تكميم ما بعد التدريب (PTQ). |
dynamic | bool | False | يسمح بأحجام إدخال ديناميكية لصادرات TorchScript، ONNX، OpenVINO، TensorRT، و CoreML، مما يعزز المرونة في التعامل مع أبعاد الصور المتغيرة. يتم ضبطه تلقائياً على True عند استخدام TensorRT مع INT8. |
simplify | bool | True | يبسط رسم بياني للنموذج لصادرات ONNX باستخدام onnxslim، مما قد يحسن الأداء والتوافق مع محركات الاستدلال. |
opset | int | None | يحدد إصدار opset الخاص بـ ONNX للتوافق مع محللات ومحركات تشغيل ONNX المختلفة. إذا لم يتم ضبطه، فإنه يستخدم أحدث إصدار مدعوم. |
workspace | float أو None | None | يحدد الحد الأقصى لحجم مساحة العمل بـ GiB لتحسينات 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 لأجهزة Apple silicon (device=mps)، أو Huawei Ascend NPU (device=npu أو device=npu:0)، أو DLA لـ NVIDIA Jetson (device=dla:0 أو device=dla:1). تستخدم عمليات تصدير TensorRT الـ GPU تلقائياً. |
data | str | 'coco8.yaml' | مسار ملف تكوين مجموعة البيانات، وهو ضروري لمعايرة تكميم INT8. إذا لم يتم تحديده مع تفعيل INT8، فسيتم استخدام coco8.yaml كخيار افتراضي للمعايرة. |
fraction | float | 1.0 | يحدد جزء من مجموعة البيانات لاستخدامه في معايرة تكميم INT8. يسمح بالمعايرة على مجموعة فرعية من كامل مجموعة البيانات، وهو مفيد للتجارب أو عند محدودية الموارد. إذا لم يتم تحديده مع تفعيل INT8، فسيتم استخدام مجموعة البيانات الكاملة. |
end2end | bool | None | يتجاوز وضع النهاية إلى النهاية (end-to-end) في نماذج YOLO التي تدعم الاستدلال بدون NMS (مثل YOLO26، YOLOv10). ضبطه على False يسمح بتصدير هذه النماذج لتكون متوافقة مع خط معالجة النتائج التقليدي القائم على NMS. راجع دليل الكشف من النهاية إلى النهاية لمزيد من التفاصيل. |
التكوين المدروس يضمن تحسين النموذج المصدر لحالة استخدامه وأنه يعمل بفعالية في البيئة المستهدفة.
إعدادات الحلول
توفر إعدادات تكوين Ultralytics Solutions المرونة لتخصيص النماذج لمهام مثل عد الأشياء، إنشاء الخرائط الحرارية، تتبع التمارين الرياضية، تحليل البيانات، تتبع المناطق، إدارة الطوابير، والعد القائم على المناطق. تسمح هذه الخيارات بإجراء تعديلات سهلة للحصول على نتائج دقيقة ومفيدة مصممة لتلبية احتياجات محددة.
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | مسار لملف نموذج Ultralytics YOLO. |
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_DEEPGREEN | خريطة الألوان المستخدمة للرسم الحراري. |
json_file | str | None | مسار ملف JSON الذي يحتوي على جميع بيانات إحداثيات مواقف السيارات. |
up_angle | float | 145.0 | عتبة الزاوية لوضع 'الأعلى'. |
kpts | list[int] | '[6, 8, 10]' | قائمة من ثلاثة مؤشرات للنقاط الرئيسية المستخدمة لمراقبة التمارين. تتوافق هذه النقاط الرئيسية مع مفاصل أو أجزاء الجسم، مثل الكتفين، المرفقين، والمعصمين، لتمارين مثل الضغط، العقلة، القرفصاء، وتمارين البطن. |
down_angle | int | 90 | عتبة الزاوية لوضع 'الأسفل'. |
blur_ratio | float | 0.5 | يضبط نسبة كثافة التمويه، بقيم تتراوح بين 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | اسم المجلد لتخزين الاكتشافات المقصوصة. |
records | int | 5 | إجمالي عدد الاكتشافات لتشغيل بريد إلكتروني بنظام إنذار أمني. |
vision_point | tuple[int, int] | (20, 20) | النقطة التي ستتتبع عندها الرؤية الأشياء وترسم المسارات باستخدام حل VisionEye. |
source | str | None | مسار مصدر الإدخال (فيديو، RTSP، إلخ). قابل للاستخدام فقط مع واجهة سطر أوامر الحلول (CLI). |
figsize | tuple[int, int] | (12.8, 7.2) | حجم الشكل لمخططات التحليلات مثل الخرائط الحرارية أو الرسوم البيانية. |
fps | float | 30.0 | عدد الإطارات في الثانية المستخدم لحسابات السرعة. |
max_hist | int | 5 | الحد الأقصى للنقاط التاريخية لتتبعها لكل كائن من أجل حسابات السرعة/الاتجاه. |
meter_per_pixel | float | 0.05 | عامل القياس المستخدم لتحويل مسافة البكسل إلى وحدات العالم الحقيقي. |
max_speed | int | 120 | حد السرعة الأقصى في التراكبات المرئية (المستخدمة في التنبيهات). |
data | str | 'images' | مسار مجلد الصور المستخدم للبحث عن التشابه. |
إعدادات الزيادة (Augmentation)
تعد تقنيات زيادة البيانات ضرورية لتحسين متانة وأداء نموذج YOLO عن طريق إدخال التباين في بيانات التدريب، مما يساعد النموذج على التعميم بشكل أفضل على البيانات غير المرئية. يوضح الجدول التالي غرض وتأثير كل وسيطة زيادة:
| المعامل | النوع | الافتراضي | المهام المدعومة | النطاق | الوصف |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, pose, obb, classify | 0.0 - 1.0 | يعدل درجة اللون في الصورة بجزء من عجلة الألوان، مما يقدم تباينًا في الألوان. يساعد النموذج على التعميم عبر ظروف الإضاءة المختلفة. |
hsv_s | float | 0.7 | detect, segment, pose, obb, classify | 0.0 - 1.0 | يغير تشبع الصورة بجزء، مما يؤثر على كثافة الألوان. مفيد لمحاكاة ظروف بيئية مختلفة. |
hsv_v | float | 0.4 | detect, segment, pose, obb, classify | 0.0 - 1.0 | يعدل القيمة (السطوع) للصورة بجزء، مما يساعد النموذج على الأداء الجيد في ظل ظروف إضاءة متنوعة. |
degrees | float | 0 | detect, segment, pose, obb | 0.0 - 180 | يدور الصورة عشوائياً ضمن نطاق الدرجات المحدد، مما يحسن قدرة النموذج على التعرف على الأشياء في اتجاهات مختلفة. |
translate | float | 0.1 | detect, segment, pose, obb | 0.0 - 1.0 | ينقل الصورة أفقياً ورأسياً بجزء من حجم الصورة، مما يساعد في تعلم اكتشاف الأشياء المرئية جزئياً. |
scale | float | 0.5 | detect, segment, pose, obb, classify | 0 - 1 | يغير مقياس الصورة بعامل كسب، لمحاكاة الأشياء على مسافات مختلفة من الكاميرا. |
shear | float | 0 | detect, segment, pose, obb | -180 - +180 | يميل الصورة بزاوية محددة، لمحاكاة تأثير رؤية الأشياء من زوايا مختلفة. |
perspective | float | 0 | detect, segment, pose, obb | 0.0 - 0.001 | يطبق تحويلاً منظورياً عشوائياً على الصورة، مما يعزز قدرة النموذج على فهم الأشياء في الفضاء ثلاثي الأبعاد. |
flipud | float | 0 | detect, segment, pose, obb, classify | 0.0 - 1.0 | يعكس الصورة رأساً على عقب بالاحتمالية المحددة، مما يزيد من تباين البيانات دون التأثير على خصائص الكائن. |
fliplr | float | 0.5 | detect, segment, pose, obb, classify | 0.0 - 1.0 | يعكس الصورة من اليسار إلى اليمين بالاحتمالية المحددة، وهو مفيد لتعلم الكائنات المتناظرة وزيادة تنوع مجموعة البيانات. |
bgr | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | يعكس قنوات الصورة من RGB إلى BGR بالاحتمالية المحددة، وهو مفيد لزيادة المتانة ضد ترتيب القنوات غير الصحيح. |
mosaic | float | 1 | detect, segment, pose, obb | 0.0 - 1.0 | يدمج أربع صور تدريب في صورة واحدة، مما يحاكي تكوينات مشهد مختلفة وتفاعلات الكائنات. فعال للغاية لفهم المشاهد المعقدة. |
mixup | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | يمزج صورتين وتسمياتهما، مما ينشئ صورة مركبة. يعزز قدرة النموذج على التعميم من خلال إدخال ضجيج التسمية والتباين البصري. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | يدمج أجزاءً من صورتين، مما ينشئ مزيجاً جزئياً مع الحفاظ على مناطق مميزة. يعزز متانة النموذج من خلال إنشاء سيناريوهات حجب. |
copy_paste | float | 0 | segment | 0.0 - 1.0 | ينسخ ويلصق الكائنات عبر الصور لزيادة تكرارات الكائنات. |
copy_paste_mode | str | flip | segment | - | يحدد استراتيجية copy-paste المستخدمة. تشمل الخيارات 'flip' و 'mixup'. |
auto_augment | str | randaugment | classify | - | يطبق سياسة تعزيز محددة مسبقاً ('randaugment', 'autoaugment', أو 'augmix') لتعزيز أداء النموذج من خلال التنوع البصري. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | يمسح مناطق من الصورة عشوائياً أثناء التدريب لتشجيع النموذج على التركيز على السمات الأقل وضوحاً. |
augmentations | list | `` | detect, segment, pose, obb | - | تحويلات Albumentations مخصصة لتعزيز البيانات المتقدم (Python API فقط). يقبل قائمة من كائنات التحويل لاحتياجات التعزيز المتخصصة. |
اضبط هذه الإعدادات لتلبية متطلبات مجموعة البيانات والمهمة. تجربة قيم مختلفة يمكن أن تساعد في العثور على استراتيجية التعزيز المثلى للحصول على أفضل أداء للنموذج.
إعدادات التسجيل ونقاط التحقق والتخطيط
يعد التسجيل ونقاط التحقق والتخطيط وإدارة الملفات أموراً مهمة عند تدريب نموذج YOLO:
- التسجيل: تتبع تقدم النموذج وتشخيص المشكلات باستخدام مكتبات مثل TensorBoard أو الكتابة في ملف.
- نقاط التحقق: احفظ النموذج على فترات منتظمة لاستئناف التدريب أو التجربة بإعدادات مختلفة.
- التخطيط: تصور الأداء وتقدم التدريب باستخدام مكتبات مثل Matplotlib أو TensorBoard.
- إدارة الملفات: نظم الملفات التي يتم إنشاؤها أثناء التدريب، مثل نقاط التحقق وملفات السجل والمخططات، لتسهيل الوصول إليها وتحليلها.
الإدارة الفعالة لهذه الجوانب تساعد في تتبع التقدم وتجعل تصحيح الأخطاء والتحسين أسهل.
| المعامل | الافتراضي | الوصف |
|---|---|---|
project | 'runs' | يحدد المجلد الجذر لحفظ عمليات التدريب. يتم حفظ كل عملية في مجلد فرعي منفصل. |
name | 'exp' | يحدد اسم التجربة. إذا لم يتم تحديده، يقوم YOLO بزيادة هذا الاسم لكل عملية (مثلاً: exp, exp-2) لتجنب الكتابة فوق البيانات. |
exist_ok | False | يحدد ما إذا كان سيتم الكتابة فوق مجلد تجربة موجود. True يسمح بالكتابة فوقه؛ False يمنع ذلك. |
plots | True | يتحكم في إنشاء وحفظ مخططات التدريب والتحقق. اضبطه على True لإنشاء مخططات مثل منحنيات الخسارة، ومنحنيات precision-recall، وعينات التنبؤ للتتبع البصري للأداء. |
save | True | يمكن حفظ نقاط التحقق للتدريب وأوزان النموذج النهائية. اضبطه على True لحفظ حالات النموذج بشكل دوري، مما يسمح باستئناف التدريب أو نشر النموذج. |
ملف تهيئة مخصص
قم بتحميل YAML محفوظ لإعادة استخدام مجموعة كاملة من الوسائط دون تمريرها مضمنة. وسيط cfg يتجاوز القيم من default.yaml، بينما تظل الوسائط الإضافية الممررة جنباً إلى جنب لها الأسبقية.
| المعامل | الافتراضي | الوصف |
|---|---|---|
cfg | None | مسار إلى ملف YAML الذي تحل قيمه محل إدخالات default.yaml. راجع تجاوز ملف التهيئة الافتراضي للحصول على مثال CLI عملي. |
أسئلة شائعة
كيف يمكنني تحسين أداء نموذج YOLO الخاص بي أثناء التدريب؟
حسن الأداء عن طريق ضبط المعلمات الفائقة مثل batch size، وlearning rate، والزخم، وتضاؤل الوزن. اضبط إعدادات data augmentation، واختر المُحسِّن الصحيح، واستخدم تقنيات مثل التوقف المبكر أو mixed precision. للحصول على التفاصيل، راجع دليل التدريب.
ما هي المعلمات الفائقة الرئيسية لدقة نموذج YOLO؟
تشمل المعلمات الفائقة الرئيسية التي تؤثر على الدقة ما يلي:
- حجم الدفعة (
batch): الأحجام الأكبر يمكن أن تحقق استقراراً في التدريب ولكنها تتطلب ذاكرة أكبر. - معدل التعلم (
lr0): المعدلات الأصغر توفر تعديلات دقيقة ولكن تقارباً أبطأ. - الزخم (
momentum): يسرع متجهات التدرج، مما يقلل من التذبذبات. - حجم الصورة (
imgsz): الأحجام الأكبر تحسن الدقة ولكنها تزيد من الحمل الحسابي.
اضبط هذه بناءً على مجموعة البيانات والأجهزة الخاصة بك. تعلم المزيد في إعدادات التدريب.
كيف يمكنني تعيين معدل التعلم لتدريب نموذج YOLO؟
معدل التعلم (lr0) أمر بالغ الأهمية؛ ابدأ بـ 0.01 لـ SGD أو 0.001 لـ Adam optimizer. راقب المقاييس واضبطها حسب الحاجة. استخدم مجدولات معدل التعلم الجيبية (cos_lr) أو الإحماء (warmup_epochs, warmup_momentum). التفاصيل موجودة في دليل التدريب.
ما هي إعدادات الاستدلال الافتراضية لنماذج YOLO؟
تشمل الإعدادات الافتراضية ما يلي:
- عتبة الثقة (
conf=0.25): الحد الأدنى من الثقة للاكتشافات. - عتبة IoU (
iou=0.7): لـ Non-Maximum Suppression (NMS). - حجم الصورة (
imgsz=640): يعيد تغيير حجم الصور المدخلة. - الجهاز (
device=None): يختار CPU، GPU، Apple MPS أو Huawei Ascend NPU (npu).
للحصول على نظرة عامة كاملة، راجع إعدادات التنبؤ ودليل التنبؤ.
لماذا نستخدم التدريب بالدقة المختلطة مع نماذج YOLO؟
التدريب بـ Mixed precision (amp=True) يقلل من استخدام الذاكرة ويسرع التدريب باستخدام FP16 و FP32. إنه مفيد لوحدات معالجة الرسومات الحديثة، مما يسمح بنماذج أكبر وحسابات أسرع دون فقدان كبير في الدقة. تعلم المزيد في دليل التدريب.