التهيئة#
تلعب إعدادات YOLO والمعلمات الفائقة دورًا حاسمًا في أداء النموذج وسرعته ودقته. ويمكن أن تؤثر هذه الإعدادات في سلوك النموذج خلال مراحل مختلفة، بما في ذلك التدريب والتحقق والتنبؤ.
Watch: Mastering Ultralytics YOLO: Configuration
تستخدم أوامر Ultralytics الصيغة التالية:
yolo TASK MODE ARGSحيث:
TASK(اختياري) هو أحد الخيارات التالية: (detect، segment، semantic، depth، classify، pose، obb)MODE(مطلوب) هو أحد الخيارات التالية: (train، val، predict، export، track، benchmark)ARGS(اختياري) عبارة عن أزواجarg=valueمثلimgsz=640تتجاوز القيم الافتراضية.
تُعرَّف قيم ARG الافتراضية في هذه الصفحة وتأتي من ملف cfg/default.yaml.
المهام#
يمكن لنماذج Ultralytics YOLO تنفيذ مجموعة متنوعة من مهام الرؤية الحاسوبية، بما في ذلك:
- Detect: يحدد اكتشاف الكائنات الكائنات داخل صورة أو فيديو ويحدد مواقعها.
- Segment: يقسم تقسيم المثيلات صورة أو فيديو إلى مناطق تمثل كائنات أو فئات مختلفة.
- التقسيم الدلالي (
semantic): يعيّن التقسيم الدلالي تسمية فئة لكل بكسل في الصورة لفهم المشهد بكثافة. - العمق (
depth): يتنبأ تقدير العمق أحادي العين بخريطة عمق لكل بكسل، بوحدة المتر، من صورة RGB واحدة. - Classify: يتنبأ تصنيف الصور بتسمية فئة صورة الإدخال.
- Pose: يحدد تقدير الوضعية الكائنات ويقدّر نقاطها الأساسية في صورة أو فيديو.
- OBB: تستخدم المربعات المحيطة الموجّهة مربعات محيطة مدوّرة، ما يجعلها مناسبة للصور الساتلية أو الطبية.
| الوسيطة | الافتراضي | الوصف |
|---|---|---|
task | 'detect' | يحدد مهمة YOLO: detect من أجل اكتشاف الكائنات، وsegment من أجل تقسيم المثيلات، وsemantic من أجل التقسيم الدلالي، وdepth من أجل تقدير العمق أحادي العين، وclassify من أجل التصنيف، وpose من أجل تقدير الوضعية، وobb من أجل المربعات المحيطة الموجّهة. وقد صُممت كل مهمة لمخرجات ومشكلات محددة في تحليل الصور والفيديو. |
الأنماط#
تعمل نماذج 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 | مسار YAML الخاص بمجموعة البيانات (مثل coco8.yaml)، الذي يحتوي على مسارات بيانات التدريب والتحقق وأسماء الفئات وعددها. أما التصنيف فيتطلب دليل مجموعة بيانات أو اسم مجموعة بيانات مضمّنة (مثل imagenet10). |
epochs | int | 100 | إجمالي عدد حقب التدريب. تمثل كل حقبة مرورًا كاملًا على مجموعة البيانات بأكملها. وقد يؤثر ضبط هذه القيمة في مدة التدريب وأداء النموذج. |
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:0 أو device=npu:0,1)، أو الاختيار التلقائي لـGPU الخاملة (device=-1) أو وحدات GPU الخاملة المتعددة (device=[-1,-1]). |
workers | int | 8 | عدد خيوط العامل لتحميل البيانات (لكل RANK عند التدريب باستخدام وحدات GPU متعددة). ويؤثر ذلك في سرعة المعالجة المسبقة للبيانات وإدخالها إلى النموذج، ويفيد خصوصًا في إعدادات وحدات GPU المتعددة. |
project | str | None | اسم دليل المشروع الذي تُحفظ فيه مخرجات التدريب. ويتيح تخزين التجارب المختلفة بطريقة منظمة. |
name | str | None | اسم عملية التدريب. ويُستخدم لإنشاء دليل فرعي داخل مجلد المشروع تُخزَّن فيه سجلات التدريب ومخرجاته. |
exist_ok | bool | False | إذا كانت القيمة True، يُسمح بالكتابة فوق دليل مشروع/اسم موجود. ويفيد ذلك في التجارب التكرارية دون الحاجة إلى مسح المخرجات السابقة يدويًا. |
save_dir | str | None | يحدد الدليل الدقيق الذي تُحفظ فيه مخرجات العملية، متجاوزًا تركيبة project/name. ويُستخدم المسار كما هو دون زيادة تلقائية، لذلك تعيد العمليات المتتالية استخدام الدليل نفسه. |
pretrained | bool أو str | True | يحدد ما إذا كان سيبدأ التدريب من أوزان مدرَّبة مسبقًا. ويمكن أن تكون القيمة منطقية أو مسارًا نصيًا إلى الأوزان المراد تحميلها. يدرّب pretrained=False باستخدام أوزان مهيأة عشوائيًا مع الحفاظ على بنية النموذج. |
cls_remap | bool | True | عند الضبط الدقيق عبر مجموعات بيانات مختلفة، ينسخ صفوف رأس التصنيف المدرَّبة مسبقًا إلى النموذج الجديد حيثما تتطابق أسماء الفئات، بحيث تحتفظ الفئات المتداخلة بتحيزها المتعلم، وبأوزانها أيضًا عندما يظل عرض الرأس دون تغيير. وينطبق ذلك سواء اختلف عدد الفئات أو تطابق مع اختلاف ترتيبها. |
optimizer | str | 'auto' | اختيار المحسّن للتدريب. تشمل الخيارات SGD وMuSGD وAdam وAdamax وAdamW وNAdam وRAdam وRMSProp أو auto لاختيار AdamW أو MuSGD استنادًا إلى عدد تكرارات التدريب. ويؤثر ذلك في سرعة التقارب واستقراره. |
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 | يستخدم مُجدوِل معدل تعلّم جيبيًا، فيضبط معدل التعلّم باتباع منحنى جيبي على مدى العصور. ويساعد ذلك في إدارة معدل التعلّم لتحقيق تقارب أفضل. |
close_mosaic | int | 10 | يعطّل زيادة البيانات بطريقة الفسيفساء في آخر N من العصور لتحقيق استقرار التدريب قبل اكتماله. ويؤدي ضبطها على 0 إلى تعطيل هذه الميزة. |
resume | bool | False | يستأنف التدريب من آخر نقطة تحقق محفوظة. ويحمّل تلقائيًا أوزان النموذج وحالة المُحسِّن وعدد العصور، مواصلًا التدريب بسلاسة. |
amp | bool أو str | True | يضبط دقة التدريب: يستخدم True أو "fp16" الدقة FP16، ويستخدم "bf16" الدقة BF16 على أجهزة CUDA المدعومة، بينما يستخدم False أو "fp32" الدقة FP32. |
quantize | int أو str | None | اضبطه على 8 (أو "int8") من أجل التدريب الواعي بالكمية INT8 (QAT)، والذي يعمل على الضبط الدقيق مع التكميم الوهمي في الحلقة لكي تتحمل الأوزان تصدير INT8. انظر الالتزام بالتدريب الواعي بالكمية. |
fraction | float أو int أو list | 1.0 | مجموعة فرعية من البيانات على شكل نسبة/عدد أو قائمة [train, val, test]. يعني 1 التقسيم الكامل، وتمثل الأعداد الصحيحة الأكبر من 1 أعداد الصور، ولا يقبل سوى إدخال الاختبار الاختياري 0/0.0 للدلالة على عدم وجوده. وتحافظ القوائم المكوّنة من عنصرين على اكتمال الاختبار. |
profile | bool | False | يمكّن تحليل سرعتي ONNX وTensorRT أثناء التدريب، وهو مفيد لتحسين نشر النموذج. |
freeze | int أو list | None | يجمّد أول N طبقات من النموذج، أو طبقات محددة حسب الفهرس أو اسم الوحدة (23.cv2، من دون model. البادئ)، مما يقلل عدد المعلمات القابلة للتدريب. ويُفيد ذلك في الضبط الدقيق أو التعلّم بالنقل. |
lr0 | float | 0.01 | معدل التعلّم الأولي (أي SGD=1E-2 وAdam=1E-3). ويُعد ضبط هذه القيمة بالغ الأهمية لعملية التحسين، إذ يؤثر في سرعة تحديث أوزان النموذج. |
lrf | float | 0.01 | معدل التعلّم النهائي باعتباره كسرًا من المعدل الأولي = (lr0 * lrf)، ويُستخدم بالاقتران مع المُجدوِلات لضبط معدل التعلّم بمرور الوقت. |
momentum | float | 0.937 | عامل الزخم لـ SGD أو beta1 لـ مُحسّنات Adam، بما يؤثر في إدماج التدرجات السابقة في التحديث الحالي. |
weight_decay | float | 0.0005 | حد انتظام من النوع L2، يعاقب الأوزان الكبيرة لمنع فرط التعلّم. |
warmup_epochs | float | 3.0 | عدد عصور الإحماء لمعدل التعلّم، إذ يزيد معدل التعلّم تدريجيًا من قيمة منخفضة إلى معدل التعلّم الأولي لتحقيق استقرار التدريب في مراحله المبكرة. |
warmup_momentum | float | 0.8 | الزخم الأولي لمرحلة الإحماء، مع ضبطه تدريجيًا ليتوافق مع الزخم المحدد خلال فترة الإحماء. |
warmup_bias_lr | float | 0.1 | معدل التعلّم لمعلمات التحيّز أثناء مرحلة الإحماء، مما يساعد في استقرار تدريب النموذج خلال العصور الأولية. يُضبط تلقائيًا على 0.0 ضمن optimizer='auto' الافتراضي، لذا يجب تسمية مُحسِّن صراحةً لاستخدامه. |
distill_model | str | None | مسار نقطة تحقق لنموذج المعلّم (مثلًا yolo26x.pt) من أجل تقطير المعرفة. عند ضبطه، يُدرَّب نموذج الطالب باستخدام خسارة تقطير إضافية يوجّهها المعلّم المجمّد. |
dis | float | 6.0 | وزن خسارة التقطير المضافة إلى خسائر الكشف القياسية. تزيد القيم الأعلى تأثير توجيه المعلّم للميزات. |
box | float | 7.5 | وزن مكوّن خسارة الصندوق في دالة الخسارة، مما يؤثر في مقدار التركيز على التنبؤ الدقيق بإحداثيات الصندوق المحيط. |
cls | float | 0.5 | وزن خسارة التصنيف في دالة الخسارة الكلية، مما يؤثر في أهمية التنبؤ الصحيح بالفئة مقارنةً بالمكونات الأخرى. |
cls_pw | float | 0.0 | قوة ترجيح الفئات لمعالجة عدم توازن الفئات باستخدام معكوس تكرار الفئة. يعطّل 0.0 ترجيح الفئات، بينما يطبّق 1.0 ترجيحًا كاملًا بمعكوس التكرار. وتوفر القيم بين 0 و1 ترجيحًا جزئيًا. |
dfl | float | 1.5 | وزن حد انحدار مسافة الصندوق: خسارة بؤرية توزيعية (DFL) عندما يستخدم رأس الكشف reg_max > 1، وخسارة L1 لمسافات الصندوق المُطبَّعة في YOLO26 الخالي من DFL (reg_max: 1). |
pose | float | 12.0 | وزن خسارة الوضعية في النماذج المدرَّبة لتقدير الوضعية، مما يؤثر في التركيز على التنبؤ الدقيق بالنقاط المفتاحية للوضعية. |
kobj | float | 1.0 | وزن خسارة احتمالية الكائن للنقاط المفتاحية في نماذج تقدير الوضعية، لتحقيق التوازن بين ثقة الكشف ودقة الوضعية. |
rle | float | 1.0 | وزن خسارة تقدير الاحتمالية اللوغاريتمية المتبقية في نماذج تقدير الوضعية، مما يؤثر في دقة تحديد مواقع النقاط المفتاحية. |
angle | float | 1.0 | وزن خسارة الزاوية في نماذج obb، مما يؤثر في دقة التنبؤ بزوايا الصناديق المحيطة الموجّهة. |
dlog | float | 1.0 | وزن خسارة اللوغاريتم ثابت المقياس (SILog) في نماذج تقدير العمق، وهو الحد الأساسي الذي يوجّه دقة العمق. |
dgrad | float | 0.5 | وزن خسارة التدرج في نماذج تقدير العمق، إذ تعاقب الأخطاء في حواف العمق وتشجع على حدود سطحية أكثر حدة. |
dlam | float | 1.0 | عامل التركيز على التباين في خسارة SILog في نماذج تقدير العمق. يجعل 1.0 الخسارة ثابتة المقياس بالكامل، بينما يختزلها 0.0 إلى RMSE لوغاريتمي عادي. |
nbs | int | 64 | حجم الدفعة الاسمي لتطبيع الخسارة. |
overlap_mask | bool | True | يحدد ما إذا كان ينبغي دمج أقنعة الكائنات في قناع واحد أثناء التدريب أو إبقاؤها منفصلة لكل كائن. وفي حال التداخل، يوضع القناع الأصغر فوق القناع الأكبر أثناء الدمج. |
mask_ratio | int | 4 | نسبة تصغير أقنعة التجزئة، مما يؤثر في دقة الأقنعة المستخدمة أثناء التدريب. |
dropout | float | 0.0 | معدل الإسقاط للانتظام في مهام التصنيف، إذ يمنع فرط التعلّم من خلال حذف الوحدات عشوائيًا أثناء التدريب. |
val | bool | True | يمكّن التحقق أثناء التدريب، مما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة. |
nms | bool، اختياري | None | يحدد رأس الاستدلال المستخدم للتحقق من صحة العصر، وتحديد نقاط التحقق، والإيقاف المبكر. يستخدم None أو True النهج من واحد إلى متعدد مع NMS؛ ويستخدم False الرأس الخالي من NMS عند توفره. يحافظ كلا الرأسين على خسائر التدريب الخاصة بهما. |
plots | bool | True | ينشئ ويحفظ مخططات لمقاييس التدريب والتحقق، بالإضافة إلى أمثلة التنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلّم. |
compile | bool أو str | False | يمكّن تجميع الرسم البياني باستخدام torch.compile في PyTorch 2.x مع backend='inductor'. يقبل True → "default"، أو False → للتعطيل، أو وضعًا نصيًا مثل "default" و"reduce-overhead" و"max-autotune-no-cudagraphs". ويعود إلى التنفيذ الفوري مع إصدار تحذير إذا لم يكن مدعومًا. |
channels_last | bool | None | يستخدم تنسيق الذاكرة channels_last (NHWC) لعمليات الالتفاف أثناء التدريب. يقوم None بتمكينه تلقائياً على CUDA باستخدام PyTorch 1.11 أو الأحدث، باستثناء نظام Windows حيث أدى إلى قياسات أبطأ. يقوم False بتعطيله، بينما يطلب True ذلك صراحة. تظل الإصدارات PyTorch 1.10 والأقدم، وCPU، وMPS تستخدم تنسيق NCHW افتراضياً. |
max_det | int | 300 | الحد الأقصى لعدد الاكتشافات لكل صورة أثناء التحقق من التدريب. بالنسبة لـ detect، وsegment، وpose، وOBB، يرتفع الافتراضي البالغ 300 إلى أكبر عدد من الكائنات الموسومة في التدريب/التحقق فقط عندما يتجاوز هذا العدد 300. تظل القيم الأخرى ثابتة؛ ويؤدي تجاوز الحد إلى إطلاق تحذير. |
يوفر الوسيط batch ثلاثة خيارات للتكوين:
- حجم دفعة ثابت: حدد عدد الصور في كل دفعة باستخدام عدد صحيح، مثل
batch=16. - الوضع التلقائي (60% من ذاكرة GPU): استخدم
batch=-1للضبط التلقائي لاستخدام ذاكرة CUDA بنسبة تقارب 60%. - الوضع التلقائي مع كسر الاستخدام: عيّن كسرًا، مثل
batch=0.70، للضبط استنادًا إلى استخدام محدد لذاكرة GPU. - لم يُعثر على ملاءمة: إذا لم ينتج أي حجم دفعة مرشح ملفًا توصيفيًا قابلًا للاستخدام، ترفع AutoBatch خطأ
RuntimeErrorواضحًا بدلًا من الرجوع بصمت إلى قيمة افتراضية غير ذات صلة.
إعدادات التنبؤ#
تتضمن إعدادات التنبؤ لنماذج 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 مربعًا، بينما يعطي الزوج (height, width). ومع rect=True، قد يكون الموتر الفعلي أصغر من هذا الهدف بسبب الحشو بالحد الأدنى للمستطيل. استخدم rect=False لحجم ثابت. راجع الشكل الثابت مقابل الحد الأدنى للمستطيل. |
rect | bool | True | إذا كان True، فاستخدم الحشو بالحد الأدنى للمستطيل متى أمكن (دفعة ذات الشكل نفسه وخلفية مدعومة). وإذا كان False، فاحشو دائمًا إلى imgsz الكامل. راجع الشكل الثابت مقابل الحد الأدنى للمستطيل. |
quantize | int أو str | None | دقة الاستدلال: 16/"fp16" و 32/"fp32"/غير المحدد تحدد حساب FP16 أو FP32 لنماذج PyTorch و TorchScript؛ بينما تحسب التنسيقات الأخرى بالدقة التي تحددها ملفاتها ووقت تشغيلها. عند 16 تقوم OpenVINO بتقريب المدخلات إلى FP16 على العميل وتوسيعها مرة أخرى إلى FP32، دون تغيير ما يحسبه وقت التشغيل. يتم تكوين الكمي INT8/PTQ أثناء التصدير، ثم يُستخدَم عن طريق تحميل النموذج المصدر. يحل محل علامة half المهملة. |
device | str | None | يحدد الجهاز المستخدم للاستدلال (مثل cpu أو cuda:0 أو 0 أو npu أو npu:0). ويتيح للمستخدمين الاختيار بين CPU أو GPU محدد أو Huawei Ascend NPU أو أجهزة حوسبة أخرى لتنفيذ النموذج. |
dnn | bool | False | إذا كان True، فاستخدم وحدة DNN في OpenCV بدلًا من ONNX Runtime لاستدلال نموذج ONNX. |
data | str | None | مسار YAML لمجموعة بيانات (مثل coco8.yaml) يُقرأ فقط من أجل names، وفقط عندما لا يحمل النموذج المحمّل أسماء فئات خاصة به: أي تصدير من جهة خارجية أو تصدير من Ultralytics منفصل عن البيانات الوصفية المرفقة به. ويُبلغ هذا النموذج بخلاف ذلك عن class0 وclass1 وما إلى ذلك. |
batch | int | 1 | يحدد حجم الدفعة للاستدلال (ولا يعمل إلا عندما يكون المصدر دليلًا أو ملف فيديو أو ملف .txt). ويمكن أن يوفر حجم الدفعة الأكبر معدل نقل أعلى، ما يقلل إجمالي الوقت المطلوب للاستدلال. |
max_det | int | 300 | الحد الأقصى لعدد عمليات الاكتشاف المسموح بها لكل صورة. ويحد إجمالي عدد الكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، ما يمنع المخرجات المفرطة في المشاهد الكثيفة. |
vid_stride | int | 1 | خطوة الإطارات لمدخلات الفيديو. تتيح تخطي الإطارات في مقاطع الفيديو لتسريع المعالجة على حساب الدقة الزمنية. تعالج القيمة 1 كل إطار، بينما تتخطى القيم الأعلى بعض الإطارات. |
stream_buffer | bool | False | يحدد ما إذا كان ينبغي وضع الإطارات الواردة في قائمة انتظار لبث الفيديو. إذا كان False، تُسقط الإطارات القديمة لاستيعاب الإطارات الجديدة (وهو محسن للتطبيقات في الوقت الفعلي). وإذا كان True، تُوضع الإطارات الجديدة في مخزن مؤقت، ما يضمن عدم تخطي أي إطار، لكنه يسبب زمن استجابة إذا كان معدل إطارات الاستدلال أقل من معدل إطارات البث. |
visualize | bool | False | يحفظ خريطة حرارية لتنشيط الفئة بجانب كل تنبؤ، موضحًا وحدات البكسل التي رفعت درجات الفئة المتنبأ بها. ويراعي conf وclasses، ولذلك يعيّن classes=[0] تلك الفئة فقط. ولا يتوفر إلا لنماذج Ultralytics PyTorch. |
augment | bool | False | يمكّن زيادة البيانات وقت الاختبار (TTA) للتنبؤات، ما قد يحسن متانة الاكتشاف على حساب سرعة الاستدلال. ولا يتوفر إلا لنماذج Ultralytics PyTorch. |
agnostic_nms | bool | False | يمكن عملية القمع غير المرتبط بالفئة (NMS)، حيث يتم قمع المربعات المتداخلة الأقل تسجيلًا عبر الفئات المختلفة بدلاً من الفئة نفسها فقط. مفيد في سيناريوهات الكشف متعدد الفئات حيث يكون تداخل الفئات شائعًا. مع الاستدلال الخالي من NMS (nms=False على YOLO26 أو YOLOv10)، يمنع هذا فقط نفس الاكتشاف من الظهور بتسميات فئات متعددة (تكرارات IoU=1.0) ولا يقوم بقمع يعتمد على عتبة IoU بين المربعات المتميزة. |
classes | list[int] | None | يصفّي التنبؤات إلى مجموعة من معرّفات الفئات. ولن تُعاد إلا عمليات الاكتشاف التي تنتمي إلى الفئات المحددة. ويفيد ذلك في التركيز على الكائنات ذات الصلة في مهام الاكتشاف متعدد الفئات. |
retina_masks | bool | False | يعيد أقنعة تقسيم عالية الدقة. وستطابق الأقنعة المُعادة (masks.data) حجم الصورة الأصلية إذا فُعّلت. وإذا عُطّلت، فسيكون لها حجم الصورة المستخدم أثناء الاستدلال. |
embed | list[int] | None | يحدد الطبقات التي تُستخرج منها متجهات الميزات أو التضمينات. استخدم model.embed(source) لتضمينات الطبقة قبل الأخيرة، أو model.predict(source, embed=[layer]) لتحديد طبقات بعينها. ويفيد ذلك في المهام اللاحقة مثل التجميع أو البحث عن التشابه. ولا يتوفر إلا لنماذج Ultralytics PyTorch. |
project | str | None | اسم دليل المشروع الذي تُحفظ فيه مخرجات التنبؤ إذا فُعّل save. |
name | str | None | اسم تشغيل التنبؤ. ويُستخدم لإنشاء دليل فرعي داخل مجلد المشروع تُخزَّن فيه مخرجات التنبؤ إذا فُعّل save. |
stream | bool | False | يمكّن المعالجة الفعالة للذاكرة لمقاطع الفيديو الطويلة أو الصور العديدة عبر إعادة مولّد من كائنات Results بدلًا من تحميل جميع الإطارات إلى الذاكرة دفعة واحدة. |
verbose | bool | True | يتحكم في عرض سجلات الاستدلال التفصيلية في الطرفية، موفرًا ملاحظات فورية حول عملية التنبؤ. |
compile | bool أو str | False | يمكّن تجميع الرسم البياني باستخدام torch.compile في PyTorch 2.x مع backend='inductor'. يقبل True → "default"، أو False → للتعطيل، أو وضعًا نصيًا مثل "default" و"reduce-overhead" و"max-autotune-no-cudagraphs". ويعود إلى التنفيذ الفوري مع إصدار تحذير إذا لم يكن مدعومًا. |
channels_last | bool | None | يستخدم تنسيق ذاكرة channels_last (NHWC) للاستدلال الأصلي في PyTorch. ويمكّنه None تلقائيًا على وحدات CPU x86 في Linux وWindows المفعّل فيها oneDNN مع PyTorch 1.13 أو أحدث، بينما يعطّله False، ويطلبه True على أجهزة CPU x86 أو CUDA المدعومة. وتظل ARM64 وMPS وإصدارات PyTorch الأقدم ووحدات CPU التي لا تحتوي على oneDNN والتنسيقات المُصدَّرة مثل TensorRT وONNX دون تغيير. |
nms | bool، اختياري | None | يشغل استدلال من واحد إلى متعدد مع NMS افتراضيًا (None أو True). قم بتعيين False لاستخدام الرأس الفردي الخالي من NMS عند توفره. راجع دليل الكشف من طرف إلى طرف للحصول على التفاصيل. |
وسيطات التصور:
| الوسيطة | النوع | الافتراضي | الوصف |
|---|---|---|---|
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 | يرسم مربعات إحاطة حول الكائنات المكتشفة. ويُعد ذلك أساسيًا للتعرف المرئي على الكائنات وتحديد مواقعها في الصور أو إطارات الفيديو. |
line_width | int or None | None | يحدد عرض خط المربعات المحيطة. وإذا كان None، يُضبط عرض الخط تلقائيًا استنادًا إلى حجم الصورة. ويوفر تخصيصًا بصريًا لتحسين الوضوح. |
إعدادات التحقق#
تتضمن إعدادات التحقق لنماذج YOLO معلمات فائقة وتكوينات لتقييم الأداء على مجموعة بيانات التحقق. وتؤثر هذه الإعدادات في الأداء والسرعة والدقة. وتشمل الإعدادات الشائعة حجم الدفعة وتواتر التحقق ومقاييس الأداء. كما يؤثر حجم مجموعة بيانات التحقق وتركيبها، إلى جانب المهمة المحددة، في العملية.
| الوسيطة | النوع | الافتراضي | الوصف |
|---|---|---|---|
data | str | None | يحدد مسار YAML لمجموعة البيانات (مثل coco8.yaml)، الذي ينبغي أن يتضمن مسار بيانات التحقق. أما التصنيف فيتطلب دليل مجموعة بيانات أو اسم مجموعة بيانات مضمنًا (مثل imagenet10). |
imgsz | int | 640 | يحدد حجم صور الإدخال. تُعاد تحجيم جميع الصور إلى هذا البعد قبل المعالجة. قد تحسّن الأحجام الأكبر الدقةَ للأجسام الصغيرة، لكنها تزيد زمن الحساب. |
batch | int | 16 | يحدد عدد الصور في كل دفعة. تستفيد القيم الأعلى من ذاكرة GPU بكفاءة أكبر، لكنها تتطلب قدرًا أكبر من VRAM. اضبط القيمة وفق موارد الأجهزة المتاحة. |
save_json | bool | False | إذا True، يتم حفظ النتائج في ملف JSON لمزيد من التحليل، أو التكامل مع أدوات أخرى، أو الإرسال إلى خوادم التقييم مثل COCO. على مجموعات بيانات الكشف، يتم أيضاً تقييم التنبؤات باستخدام faster-coco-eval والإبلاغ عن مقياس mAP للكائنات الصغيرة والمتوسطة والكبيرة، والذي يتم تسجيله أثناء التدريب كـ metrics/mAP_small(B) وmetrics/mAP_medium(B) وmetrics/mAP_large(B) في results.csv. |
conf | float | 0.001 | يحدد الحد الأدنى لعتبة الثقة لعمليات الكشف. تزيد القيم الأقل من الاستدعاء، لكنها قد تؤدي إلى مزيد من الإيجابيات الكاذبة. تُضبط منحنيات الدقة-الاستدعاء افتراضيًا على 0.001؛ وتستخدم مصفوفات الالتباس الخاصة بالكشف قيمة conf الصريحة، أو 0.25 عند حذفها. يستخدم ملخص الدقة والاستدعاء قيمة الثقة عند max-F1، لذلك قد يختلفان عن القيم المشتقة من confusion_matrix.png. القيمة الافتراضية هي 0.01 للتحقق من OBB لتقليل استخدام الذاكرة. |
iou | float | 0.7 | يحدد عتبة التقاطع على الاتحاد لـكبت غير الأعظم. ويتحكم في إزالة عمليات الكشف المكررة. |
max_det | int | 300 | يحد من الحد الأقصى لعدد الاكتشافات لكل صورة. بالنسبة لـ detect، وsegment، وpose، وOBB، إذا تُرِك عند 300، فسيتم رفعه إلى أكبر عدد من الكائنات الموسومة في التقسيم المُتحقَّق منه عندما تتجاوز الصورة ذلك، مع إصدار تحذير؛ بينما يتم الاحتفاظ بأي قيمة أخرى، مع تحذير من أن الاسترجاع قد يكون محدوداً عندما تتجاوز الصورة ذلك. |
quantize | int أو str | None | دقة التحقق: 16/"fp16" و 32/"fp32"/غير المحدد تحدد حساب FP16 أو FP32 لنماذج PyTorch و TorchScript؛ بينما تحسب التنسيقات الأخرى بالدقة التي تحددها ملفاتها ووقت تشغيلها. عند 16 تقوم OpenVINO بتقريب المدخلات إلى FP16 على العميل وتوسيعها مرة أخرى إلى FP32، دون تغيير ما يحسبه وقت التشغيل. يتم تكوين الكمي INT8/PTQ أثناء التصدير، ثم يُستخدَم عن طريق التحقق من النموذج المصدر. يحل محل علامة half المهملة. |
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، يُستخدم الاستدلال المستطيل لمعالجة الدُفعات، مما يقلل الحشو وقد يزيد السرعة والكفاءة عبر معالجة الصور بنسبة أبعادها الأصلية. ويُتجاهل ذلك في التحقق من depth، الذي يمدد كل صورة إلى مربع ثابت بحجم imgsz بدلًا من إضافة الحشو. |
split | str | 'val' | يحدد تقسيم مجموعة البيانات المستخدم للتحقق (val أو test أو train). ويتيح المرونة في اختيار جزء البيانات لتقييم الأداء. |
fraction | float أو int أو list | 1.0 | مجموعة فرعية من التقسيم الذي تم التحقق من صحته. باستخدام قائمة [train, val, test]، ينطبق المدخل المطابق لـ split (حيث 1 = التقسيم الكامل، والأعداد الصحيحة الأكبر من 1 = عدد الصور؛ المدخلات المستبعدة هي التقسيم الكامل). ينطبق العدد القياسي فقط مع split=train؛ وعندها يستخدم كل من val و test التقسيم الكامل. |
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 | عدد خيوط العاملين لتحميل البيانات. قد تسرّع القيم الأعلى المعالجة المسبقة للبيانات، لكنها قد تزيد استخدام CPU. يؤدي الضبط على 0 إلى استخدام الخيط الرئيسي، وهو ما قد يكون أكثر استقرارًا في بعض البيئات. |
augment | bool | False | يمكّن زيادة البيانات وقت الاختبار (TTA) أثناء التحقق، مما قد يحسّن دقة الكشف على حساب سرعة الاستدلال عبر تشغيل الاستدلال على نسخ محوّلة من الإدخال. ولا يتوفر إلا لنماذج Ultralytics PyTorch. |
agnostic_nms | bool | False | يمكن عملية Non-Maximum Suppression غير المرتبط بالفئة، حيث يتم قمع المربعات المتداخلة الأقل تسجيلًا بغض النظر عن فئتها المتوقعة. مفيد للتطبيقات التي تركز على المثيلات. مع الاستدلال الخالي من NMS (nms=False على YOLO26 أو YOLOv10)، يمنع هذا فقط نفس الاكتشاف من الظهور بتسميات فئات متعددة (تكرارات IoU=1.0) ولا يقوم بقمع يعتمد على عتبة IoU بين المربعات المتميزة. |
single_cls | bool | False | يعامل جميع الفئات كفئة واحدة أثناء التحقق. ويفيد في تقييم أداء النموذج في مهام الكشف الثنائي أو عندما لا تكون الفروق بين الفئات مهمة. |
visualize | bool | False | يعرض القيم الحقيقية والإيجابيات الحقيقية والإيجابيات الكاذبة والسلبيات الكاذبة لكل صورة. ويفيد في تصحيح الأخطاء وتفسير النموذج. |
show_labels | bool | True | يعرض تسميات الفئات في مرئيات التحقق عندما تكون visualize=True. اضبطها على False للحصول على عرض أوضح للتطابقات والأخطاء. |
show_conf | bool | True | يعرض درجات الثقة في مرئيات التحقق عندما تكون visualize=True. اضبطها على False للحصول على عرض أوضح للتطابقات والأخطاء. |
compile | bool أو str | False | يمكّن تجميع الرسم البياني باستخدام torch.compile في PyTorch 2.x مع backend='inductor'. يقبل True → "default"، أو False → للتعطيل، أو وضعًا نصيًا مثل "default" و"reduce-overhead" و"max-autotune-no-cudagraphs". ويعود إلى التنفيذ الفوري مع إصدار تحذير إذا لم يكن مدعومًا. |
channels_last | bool | None | يستخدم تنسيق ذاكرة channels_last (NHWC) للتحقق الأصلي باستخدام PyTorch. يمكّنه None تلقائيًا على وحدات CPU بمعمارية x86 في Linux وWindows المفعّل فيها oneDNN مع PyTorch 1.13 أو أحدث، بينما يعطله False، ويطلبه True على أجهزة CPU بمعمارية x86 أو CUDA المدعومة. وتبقى ARM64 وMPS وإصدارات PyTorch الأقدم ووحدات CPU التي لا تحتوي على oneDNN والتنسيقات المُصدَّرة دون تغيير؛ كما يحافظ التحقق أثناء التدريب على تخطيط نموذج التدريب. |
nms | bool، اختياري | None | يشغل استدلال من واحد إلى متعدد مع NMS افتراضيًا (None أو True). قم بتعيين False لاستخدام الرأس الفردي الخالي من NMS عند توفره. راجع دليل الكشف من طرف إلى طرف للحصول على التفاصيل. |
يُعد الضبط الدقيق والتجريب أمرين أساسيين لضمان الأداء الأمثل واكتشاف فرط التكيّف ومنعه.
إعدادات التصدير#
تتضمن إعدادات التصدير لنماذج YOLO تكوينات لحفظ النموذج أو تصديره لاستخدامه في بيئات مختلفة. وتؤثر هذه الإعدادات في الأداء والحجم والتوافق. وتشمل الإعدادات الرئيسية تنسيق الملف المُصدَّر (مثل ONNX وTensorFlow SavedModel)، والجهاز المستهدف (مثل CPU وGPU)، وميزات مثل الأقنعة. كما تؤثر مهمة النموذج وقيود البيئة المستهدفة في عملية التصدير.
| الوسيطة | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'torchscript' | التنسيق المستهدف للنموذج المُصدَّر، مثل 'onnx' أو 'torchscript' أو 'engine' (TensorRT) أو غيرها. ويتيح كل تنسيق التوافق مع بيئات النشر المختلفة. |
name | str | None | اسم العتاد المستهدف للتنسيقات التي تتطلبه: بنية Hailo ('hailo8' و'hailo8l' و'hailo10h' و'hailo15h' و'hailo15l'؛ والقيمة الافتراضية 'hailo8l')، أو شريحة Rockchip RKNN (القيمة الافتراضية 'rk3588')، أو Huawei Ascend SoC (CANN --soc_version؛ والقيمة الافتراضية 'Ascend310B4')، أو هدف Qualcomm QNN HTP (القيمة الافتراضية '73'). ويختلف ذلك عن زوج تسمية التشغيل project/name المستخدم في الأوضاع الأخرى. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لإدخال النموذج. ويمكن أن يكون عددًا صحيحًا للصور المربعة (مثل 640 للصورة 640×640) أو زوجًا (height, width) لأبعاد محددة. عند عدم تمريره، يعيد التصدير استخدام حجم التدريب المسجل في نقطة التحقق المحمّلة: تسجل نقاط التحقق الرسمية لـ YOLO26 القيمة 768 للعمق، و224 للتصنيف، و1024 لـ OBB، و640 للمهام الأخرى، بينما يسجل الضبط الدقيق أي imgsz دُرّب عليه. ولا يسجل النموذج المبني من YAML حجم تدريب، ويستخدم 640. |
keras | bool | False | يمكّن التصدير إلى تنسيق Keras من أجل TensorFlow SavedModel، موفرًا التوافق مع خدمة TensorFlow وواجهات API. |
optimize | bool | False | يمكّن تحسينًا أعلى للمصرّف من أجل DEEPX، ما يقلل زمن استجابة الاستدلال مع زيادة وقت الترجمة. |
quantize | int أو str | None | دقة التكميم: 16 (FP16، تقلل حجم النموذج ويمكنها تسريع الاستدلال على الأجهزة المدعومة) أو 8 (INT8/PTQ، تضغط النموذج بشكل أكبر مع الحد الأدنى من فقدان الدقة، وتُستخدم أساساً لـ الأجهزة الطرفية؛ وتتطلب معايرة data/fraction)؛ بينما 32/غير المحددة فهي FP32. نقطة التحقق المُدربة باستخدام quantize=8 تصدر دائماً INT8: حيث يقوم onnx و engine بالتصدير من النطاقات التي تحملها نقطة التحقق دون معايرة، ويتم رفض التنسيقات أو الدقات الأخرى. كما تقبل تنسيقات التصدير التي تدعم دقة الأوزان/التفعيل المختلطة ترميز 'w8a8'/'w16a16'/'w8a16'/'w8a32'. وهي تحل محل علامات half/int8 المهجورة (half=True ← 16، وint8=True ← 8، والتي لا تزال مقبولة مع تحذير بالتهجير). ولا يُسمح إلا بالدقات المدعومة من قبل التنسيق المستهدف (انظر أدناه). |
dynamic | bool | False | يتيح أحجام إدخال ديناميكية لصادرات TorchScript وONNX وOpenVINO وTensorRT وCoreML، ما يعزز المرونة في التعامل مع أبعاد الصور المتغيرة. |
simplify | bool | True | يبسّط مخطط ONNX الوسيط باستخدام onnxslim للصادرات التي تنشئه (راجع تنسيقات التصدير)، ما قد يحسن الأداء والتوافق مع محركات الاستدلال. |
opset | int | None | يحدد إصدار مجموعة عمليات ONNX للصادرات التي تنشئ مخطط ONNX (راجع تنسيقات التصدير)، لتحقيق التوافق مع محللات ONNX وبيئات التشغيل المختلفة. وإذا لم يُعيّن، يُستخدم أحدث إصدار مدعوم. |
workspace | float أو None | None | يحدد الحد الأقصى لحجم مساحة العمل بوحدة GiB لتحسينات TensorRT، محققًا توازنًا بين استخدام الذاكرة والأداء. استخدم None للتخصيص التلقائي بواسطة TensorRT حتى الحد الأقصى للجهاز. |
nms | bool، اختياري | None | يقوم None بتصدير تنبؤات الخام من واحد إلى متعدد لـ NMS الخارجي؛ ويقوم True بتضمين NMS حيثما يتم دعم ذلك؛ ويحدد False الرأس الخالي من NMS عند توفره. يدعم NMS المضمن في CoreML الكشف والتجزئة ووضعيات الحركة بأشكال ثابتة. راجع دليل الكشف من طرف إلى طرف. |
conf | float | None | عتبة الثقة المستخدمة حيثما يُنشأ NMS وقت التصدير: صادرات nms=True؛ وصادرات الاكتشاف غير الشاملة من البداية إلى النهاية في Hailo؛ وصادرات الاكتشاف والوضعية والتقسيم في IMX، التي تفرض داخليًا nms=True. وتكون القيمة الافتراضية 0.25 عند عدم التعيين. |
iou | float | 0.7 | عتبة IoU المستخدمة حيثما يُنشأ NMS وقت التصدير: صادرات nms=True؛ وصادرات الاكتشاف غير الشاملة من البداية إلى النهاية في Hailo؛ وصادرات الاكتشاف والوضعية والتقسيم في IMX، التي تفرض داخليًا nms=True. |
max_det | int | 300 | الحد الأقصى لعدد التكتشفات المحتفظ بها في مخرج النموذج المُصدر. ينطبق على عمليات تصدير nms=True على كل تنسيق باستثناء كشف CoreML، الذي لا تحتوي خط أنابيب NMS الأصلية الخاصة به على حد أقصى للاكتشاف، بالإضافة إلى عمليات تصدير الكشف الشاملة الخالية من NMS (مثل YOLO26 وYOLOv10، حيث يتم تقييدها بحد أقصى يعادل عدد المراسي المتاحة) وعمليات التصدير الخاصة بالكشف والوضعية والتجزئة في IMX. |
agnostic_nms | bool | False | يمكّن NMS غير المتعلق بالفئة حيثما يُنشأ NMS وقت التصدير عبر مسار nms=True القياسي، بما في ذلك مرحلة NMS الخاصة بـ CoreML، فيقمع المربعات المتداخلة ذات الدرجات الأقل عبر فئات مختلفة بدلًا من قمعها داخل الفئة نفسها فقط. ولا تراعيه تكوينات NMS التي ينشئها Hailo أو IMX، إذ لا تحتوي على خيار غير متعلق بالفئة وتظل واعية بالفئة بغض النظر عن هذه العلامة. كما يكون مضمّنًا في صادرات الاكتشاف الشاملة من البداية إلى النهاية والخالية من NMS (YOLO26 وYOLOv10)، حيث لا يمنع إلا ظهور الاكتشاف نفسه تحت تسميات فئات متعددة (تكرارات IoU=1.0)، ولا يقمع المربعات المختلفة استنادًا إلى عتبة IoU. |
batch | int | 1 | يحدد حجم دفعة الاستدلال للنموذج المُصدَّر أو الحد الأقصى لعدد الصور التي يعالجها النموذج المُصدَّر بالتزامن في وضع predict. وبالنسبة إلى صادرات Edge TPU، يُضبط تلقائيًا على 1. |
device | str | None | يحدد جهاز التصدير: GPU (device=0) أو CPU (device=cpu) أو MPS لشرائح Apple (device=mps) أو Huawei Ascend NPU (device=npu أو device=npu:0) أو DLA لـ NVIDIA Jetson (device=dla:0 أو device=dla:1). وتستخدم صادرات TensorRT GPU تلقائيًا، لكن TensorRT 11.0 لا يدعم DLA. |
verbose | bool | False | يرفع سجل منشئ TensorRT إلى مستوى VERBOSE أثناء تصدير format='engine'. وتتجاهله تنسيقات التصدير الأخرى. |
data | str | None | مسار ملف البيانات بصيغة YAML، وهو ضروري لمعايرة تكميم INT8؛ بينما يتطلب التصنيف بدلاً من ذلك مجلد بيانات أو اسم مجموعة بيانات مدمجة. وإذا لم يتم تحديده مع تمكين INT8، يقوم Ultralytics بتحديد مجموعة بيانات معايرة خاصة بالمهمة عند اللزوم، أو يعود إلى مجموعة البيانات الافتراضية لمهمة النموذج. نقطة التحقق المُدربة باستخدام quantize=8 تحمل نطاقات INT8 الخاصة بها ولا تحتاج إلى بيانات معايرة. |
split | str | 'val' | تقسيم مجموعة البيانات ('train' أو 'val' أو 'test') المستخدم لإنشاء محمّل بيانات معايرة تكميم INT8 من data. |
fraction | float أو int أو list | 1.0 | المجموعة الفرعية من مجموعة البيانات المستخدمة لمعايرة INT8: نسبة أو عدد صور أو قيم [train, val, test]. وتعني 1 التقسيم الكامل، بينما تمثل الأعداد الصحيحة الأكبر من 1 أعداد الصور، ولا يقبل إدخال الاختبار الاختياري وحده 0/0.0 للدلالة على عدم وجود صور. وتُبقي القوائم ذات العنصرين test كاملًا. |
يضمن التكوين المدروس تحسين النموذج المُصدَّر لحالة استخدامه وعمله بكفاءة في البيئة المستهدفة.
إعدادات الحلول#
توفر إعدادات تكوين حلول Ultralytics مرونة لتخصيص النماذج لمهام مثل عدّ الكائنات وإنشاء الخرائط الحرارية وتتبع التمارين وتحليل البيانات وتتبع المناطق وإدارة قوائم الانتظار والعدّ المستند إلى المناطق. وتتيح هذه الخيارات إجراء تعديلات سهلة للحصول على نتائج دقيقة ومفيدة ومخصصة لاحتياجات محددة.
| الوسيطة | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | المسار إلى ملف نموذج Ultralytics YOLO. |
region | list أو dict | None | النقاط التي تحدد منطقة الاهتمام، إما على شكل قائمة من صفوف (x, y) أو قاموس يربط أسماء المناطق بقوائم النقاط لمناطق متعددة (RegionCounter فقط). عندما تكون قيمة None، تعود الحلول التي تتطلب منطقة إلى إعداد افتراضي محدد مسبقًا. |
show_in | bool | True | علامة للتحكم في ما إذا كان سيتم عرض أعداد الدخول في دفق الفيديو. |
show_out | bool | True | علامة للتحكم في ما إذا كان سيتم عرض أعداد الخروج في دفق الفيديو. |
analytics_type | str | 'line' | نوع الرسم البياني، أي line أو bar أو area أو pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | خريطة الألوان المستخدمة للخريطة الحرارية. |
line_width | int | 2 | سُمك الخط للصناديق والنقاط الرئيسية والأعداد التي يرسمها الحل. |
verbose | bool | True | يمكّن سجل الحل لكل إطار، والذي يتضمن شكل الإدخال وأعداد الفئات وسرعة المعالجة. ويظل استدعاء التتبع نفسه صامتًا دائمًا. |
json_file | str | None | مسار ملف JSON الذي يحتوي على جميع بيانات إحداثيات مواقف السيارات. |
up_angle | float | 145.0 | عتبة الزاوية لوضعية "up". |
kpts | list[int] | '[6, 8, 10]' | قائمة بثلاثة مؤشرات للنقاط الرئيسية المستخدمة لمراقبة التمارين. وتتوافق هذه النقاط الرئيسية مع مفاصل أو أجزاء الجسم، مثل الكتفين والمرفقين والمعصمين، لتمارين مثل تمارين الضغط والعقلة والقرفصاء وتمارين عضلات البطن. |
down_angle | int | 90 | عتبة الزاوية لوضعية "down". |
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[float, float] | (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' | مسار دليل الصور المستخدم للبحث عن التشابه. |
imgsz | int | 640 | حجم صورة الإدخال لاستدلال النموذج. |
إعدادات زيادة البيانات#
تُعد تقنيات زيادة البيانات ضرورية لتحسين متانة نموذج YOLO وأدائه من خلال إدخال تنوع في بيانات التدريب، مما يساعد النموذج على التعميم بشكل أفضل على البيانات غير المرئية. يوضح الجدول التالي الغرض من كل وسيطة من وسائط زيادة البيانات وتأثيرها:
| الوسيطة | النوع | الافتراضي | المهام المدعومة | النطاق | الوصف |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect، segment، semantic، depth، classify، pose، obb | 0.0 - 1.0 | يضبط تدرج لون الصورة بكسر من عجلة الألوان، مما يضيف تنوعًا لونيًا. ويساعد النموذج على التعميم عبر ظروف الإضاءة المختلفة. بالنسبة إلى classify، ينطبق ذلك فقط عندما يكون auto_augment=None. |
hsv_s | float | 0.7 | detect، segment، semantic، depth، classify، pose، obb | 0.0 - 1.0 | يغيّر تشبع الصورة بكسر معين، مما يؤثر في شدة الألوان. ويُفيد ذلك في محاكاة الظروف البيئية المختلفة. بالنسبة إلى classify، ينطبق ذلك فقط عندما يكون auto_augment=None. |
hsv_v | float | 0.4 | detect، segment، semantic، depth، classify، pose، obb | 0.0 - 1.0 | يعدّل قيمة الصورة (السطوع) بكسر معين، مما يساعد النموذج على الأداء جيدًا في ظروف الإضاءة المتنوعة. بالنسبة إلى classify، ينطبق ذلك فقط عندما يكون auto_augment=None. |
degrees | float | 0 | detect، segment، semantic، depth، pose، obb | 0.0 - 180 | يدوّر الصورة عشوائيًا ضمن نطاق الدرجات المحدد، مما يحسّن قدرة النموذج على التعرّف على الكائنات في اتجاهات مختلفة. |
translate | float | 0.1 | detect، segment، semantic، depth، pose، obb | 0.0 - 1.0 | ينقل الصورة أفقيًا ورأسيًا بكسر من حجمها، مما يساعد على تعلّم اكتشاف الكائنات الظاهرة جزئيًا. |
scale | float | tuple | 0.5 | detect، segment، semantic، depth، classify، pose، obb | 0 - 1، أو صف صريح (min, max) (ليس لـ classify) | يغيّر مقياس الصورة بعامل كسب، محاكيًا وجود الكائنات على مسافات مختلفة من الكاميرا. |
shear | float | 0 | detect، segment، semantic، depth، pose، obb | -180 - +180 | يقص الصورة بزاوية محددة، محاكيًا تأثير رؤية الكائنات من زوايا مختلفة. |
perspective | float | 0 | detect، segment، semantic، depth، pose، obb | 0.0 - 0.001 | يطبّق تحويلًا منظوريًا عشوائيًا على الصورة، مما يعزز قدرة النموذج على فهم الكائنات في فضاء ثلاثي الأبعاد. |
flipud | float | 0 | detect، segment، semantic، depth، classify، pose، obb | 0.0 - 1.0 | يقلب الصورة رأسًا على عقب بالاحتمال المحدد، مما يزيد تنوع البيانات من دون التأثير في خصائص الكائن. |
fliplr | float | 0.5 | detect، segment، semantic، depth، classify، pose، obb | 0.0 - 1.0 | يقلب الصورة من اليسار إلى اليمين بالاحتمال المحدد، وهو مفيد لتعلّم الكائنات المتماثلة وزيادة تنوع مجموعة البيانات. |
bgr | float | 0 | detect، segment، semantic، depth، pose، obb | 0.0 - 1.0 | يقلب قنوات الصورة من RGB إلى BGR بالاحتمال المحدد، مما يفيد في زيادة المتانة تجاه الترتيب غير الصحيح للقنوات. |
mosaic | float | 1 | detect، segment، semantic، pose، obb | 0.0 - 1.0 | يدمج أربع صور تدريب في صورة واحدة، محاكيًا تراكيب مشاهد وتفاعلات كائنات مختلفة. وهو فعال جدًا في فهم المشاهد المعقدة. |
mixup | float | 0 | detect، segment، semantic، pose، obb | 0.0 - 1.0 | يمزج صورتين وتسميتيهما، منشئًا صورة مركبة. ويعزز قدرة النموذج على التعميم من خلال إدخال ضوضاء في التسميات وتنوع بصري. |
cutmix | float | 0 | detect، segment، pose، obb | 0.0 - 1.0 | يدمج أجزاءً من صورتين، منشئًا مزجًا جزئيًا مع الحفاظ على المناطق المميزة. ويعزز متانة النموذج من خلال إنشاء حالات حجب. |
copy_paste | float | 0 | segment، obb | 0.0 - 1.0 | كسر الكائنات المؤهلة التي تُلصق؛ إذ يعكسها flip داخل الصورة، بينما يستخدم mixup القيمة أيضًا باعتبارها احتمال تطبيق بين الصور. |
copy_paste_mode | str | flip | segment، obb | - | يحدد استراتيجية copy-paste المطلوب استخدامها. وتشمل الخيارات 'flip' و'mixup'. |
auto_augment | str | randaugment | classify | - | يطبّق سياسة محددة مسبقًا لزيادة البيانات ('randaugment' أو 'autoaugment' أو 'augmix') لتحسين أداء النموذج من خلال التنوع البصري. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | يمحو مناطق من الصورة عشوائيًا أثناء التدريب لتشجيع النموذج على التركيز على الميزات الأقل وضوحًا. |
augmentations | list | None | detect، segment، semantic، depth، pose، obb | - | تحويلات Albumentations مخصصة لزيادة البيانات المتقدمة (واجهة Python فقط). ويقبل قائمة من كائنات التحويل لتلبية احتياجات زيادة البيانات المتخصصة. |
اضبط هذه الإعدادات لتلبية متطلبات مجموعة البيانات والمهمة. ويمكن أن يساعد تجريب قيم مختلفة في العثور على استراتيجية زيادة البيانات المثلى لتحقيق أفضل أداء للنموذج.
إعدادات التسجيل ونقاط التحقق والرسم البياني#
يُعد التسجيل ونقاط التحقق والرسم البياني وإدارة الملفات أمورًا مهمة عند تدريب نموذج YOLO:
- التسجيل: تتبّع تقدم النموذج وشخّص المشكلات باستخدام مكتبات مثل TensorBoard أو بالكتابة إلى ملف.
- نقاط التحقق: احفظ النموذج على فترات منتظمة لاستئناف التدريب أو تجربة إعدادات مختلفة.
- الرسم البياني: صوّر الأداء وتقدم التدريب باستخدام مكتبات مثل Matplotlib أو TensorBoard.
- إدارة الملفات: نظّم الملفات المُنشأة أثناء التدريب، مثل نقاط التحقق وملفات السجل والرسوم البيانية، لتسهيل الوصول إليها وتحليلها.
تساعد الإدارة الفعالة لهذه الجوانب على تتبّع التقدم وتسهيل تصحيح الأخطاء والتحسين.
| الوسيطة | الافتراضي | الوصف |
|---|---|---|
project | None | يحدد الدليل الجذر لحفظ عمليات تشغيل التدريب. إذا لم يُحدّد، فسيتم حفظ عمليات التشغيل ضمن runs/<task>. ويُحفظ كل تشغيل في دليل فرعي منفصل. |
name | None | يحدد اسم التجربة. إذا لم يُحدّد، يستخدم YOLO اسم الوضع ويزيده لكل تشغيل (مثل train وtrain-2) لتجنب الكتابة فوق البيانات الموجودة. |
exist_ok | False | يحدد ما إذا كان سيتم الكتابة فوق دليل تجربة موجود. يتيح True الكتابة فوقه، بينما يمنع False ذلك. |
plots | True | يتحكم في إنشاء مخططات التدريب والتحقق وحفظها. اضبطه على True لإنشاء مخططات مثل منحنيات الخسارة ومنحنيات الدقة-الاسترجاع وتنبؤات العينات لتتبّع الأداء بصريًا. |
save | True | يُمكّن من حفظ نقاط تحقق التدريب وأوزان النموذج النهائية. اضبطه على True لحفظ حالات النموذج دوريًا، مما يتيح استئناف التدريب أو نشر النموذج. |
ملف إعدادات مخصص#
حمّل ملف YAML محفوظًا لإعادة استخدام مجموعة كاملة من الوسائط دون تمريرها ضمن السطر. تتجاوز الوسيطة cfg القيم الواردة من default.yaml، بينما تظل للوسائط الإضافية الممررة معها الأولوية.
| الوسيطة | الافتراضي | الوصف |
|---|---|---|
cfg | None | مسار ملف YAML الذي تستبدل قيمه إدخالات default.yaml. راجع تجاوز ملف الإعدادات الافتراضي للاطلاع على مثال عملي باستخدام CLI. |
الأسئلة الشائعة#
حسّن الأداء من خلال ضبط المعلمات الفائقة مثل حجم الدفعة ومعدل التعلم والزخم وتضاؤل الأوزان. اضبط إعدادات زيادة البيانات، واختر المحسّن المناسب، واستخدم تقنيات مثل الإيقاف المبكر أو الدقة المختلطة. لمزيد من التفاصيل، راجع دليل التدريب.
تشمل المعلمات الفائقة الرئيسية التي تؤثر في الدقة ما يلي:
- حجم الدفعة (
batch): يمكن للأحجام الأكبر أن تجعل التدريب أكثر استقرارًا، لكنها تحتاج إلى ذاكرة أكبر. - معدل التعلم (
lr0): توفر المعدلات الأصغر تعديلات دقيقة، لكنها تؤدي إلى تقارب أبطأ. - الزخم (
momentum): يسرّع متجهات التدرج ويخفف التذبذبات. - حجم الصورة (
imgsz): تحسّن الأحجام الأكبر الدقة، لكنها تزيد العبء الحسابي.
اضبط هذه القيم استنادًا إلى مجموعة البيانات والأجهزة لديك. تعرّف على المزيد في إعدادات التدريب.
- حجم الدفعة (
يُعد معدل التعلم (
lr0) بالغ الأهمية؛ ابدأ بالقيمة0.01من أجل SGD أو بالقيمة0.001من أجل محسّن Adam. راقب المقاييس واضبطها حسب الحاجة. استخدم مجدولات معدل التعلم الجيبية (cos_lr) أو الإحماء (warmup_epochsوwarmup_momentum). ترد التفاصيل في دليل التدريب.تشمل الإعدادات الافتراضية ما يلي:
- عتبة الثقة (
conf=0.25): الحد الأدنى للثقة اللازمة للكشف. - عتبة IoU (
iou=0.7): مخصصة لـقمع غير الأعظمي (NMS). - حجم الصورة (
imgsz=640): يغيّر حجم الصور المُدخلة. - الجهاز (
device=None): يحدد CPU أو GPU أو Apple MPS أو Huawei Ascend NPU (npu).
للاطلاع على نظرة عامة كاملة، راجع إعدادات التنبؤ ودليل التنبؤ.
- عتبة الثقة (
يقلل التدريب باستخدام الدقة المختلطة (
amp=True) استخدام الذاكرة ويسرّع التدريب بالاستعانة بـ FP16 وFP32. ويفيد ذلك وحدات GPU الحديثة، إذ يتيح استخدام نماذج أكبر وإجراء حسابات أسرع دون خسارة كبيرة في الدقة. تعرّف على المزيد في دليل التدريب.