التهيئة#
تؤدي إعدادات YOLO والمعلمات الفائقة دورًا حاسمًا في أداء النموذج وسرعته ودقته. ويمكن أن تؤثر هذه الإعدادات في سلوك النموذج في مراحل مختلفة، بما فيها التدريب والتحقق والتنبؤ.
شاهد: إتقان Ultralytics YOLO: التهيئة
تستخدم أوامر Ultralytics الصيغة التالية:
yolo TASK MODE ARGSحيث:
TASK(اختياري) هو أحد الخيارات التالية (كشف، تجزئة، دلالي، عمق، تصنيف، وضعية، مربعات إحاطة موجّهة)MODE(مطلوب) هو أحد الخيارات التالية (تدريب، تحقق، تنبؤ، تصدير، تتبّع، قياس الأداء)ARGS(اختياري) عبارة عن أزواجarg=valueمثلimgsz=640، وتتجاوز القيم الافتراضية.
تُعرّف قيم ARG الافتراضية في هذه الصفحة، وهي مأخوذة من الملف cfg/default.yaml.
المهام#
يمكن لنماذج Ultralytics YOLO تنفيذ مجموعة متنوعة من مهام الرؤية الحاسوبية، ومنها:
- الكشف: يحدّد اكتشاف الكائنات الكائنات داخل صورة أو مقطع فيديو ويحدّد مواقعها.
- التجزئة: تقسّم تجزئة المثيلات الصورة أو مقطع الفيديو إلى مناطق تقابل كائنات أو فئات مختلفة.
- التجزئة الدلالية (
semantic): تسند التجزئة الدلالية تسمية فئة إلى كل بكسل في الصورة لفهم المشهد بكثافة. - العمق (
depth): يقدّر تقدير العمق أحادي العين خريطة عمق لكل بكسل، بوحدة الأمتار، انطلاقًا من صورة RGB واحدة. - التصنيف: يتنبأ تصنيف الصور بتسمية فئة الصورة المدخلة.
- الوضعية: يحدّد تقدير الوضعية الكائنات ويقدّر نقاطها المفتاحية في صورة أو مقطع فيديو.
- OBB: تستخدم مربعات الإحاطة الموجّهة مربعات إحاطة مدوّرة، وهي مناسبة للصور الساتلية أو الطبية.
| المعامل | الافتراضي | الوصف |
|---|---|---|
task | 'detect' | يحدّد مهمة YOLO: detect للكشف عن الأجسام، وsegment لتجزئة الكائنات، وsemantic للتجزئة الدلالية، وdepth لتقدير العمق أحادي العين، وclassify للتصنيف، وpose لتقدير الوضعيات، وobb للصناديق المحيطة الموجّهة. صُممت كل مهمة لتلبية مخرجات ومشكلات محددة في تحليل الصور ومقاطع الفيديو. |
الأوضاع#
تعمل نماذج Ultralytics YOLO بأوضاع مختلفة، صُمم كل منها لمرحلة محددة من دورة حياة النموذج:
- التدريب: درّب نموذج YOLO على مجموعة بيانات مخصصة.
- التحقق: تحقّق من صحة نموذج YOLO مدرَّب.
- التنبؤ: استخدم نموذج YOLO مدرَّبًا لإجراء تنبؤات على صور أو مقاطع فيديو جديدة.
- التصدير: صدّر نموذج YOLO لنشره.
- التتبّع: تتبّع الأجسام في الوقت الفعلي باستخدام نموذج YOLO.
- قياس الأداء: قِس سرعة ودقة النماذج المصدّرة من YOLO (ONNX وTensorRT وما إلى ذلك).
| المعامل | الافتراضي | الوصف |
|---|---|---|
mode | 'train' | يحدّد وضع تشغيل نموذج YOLO: train لتدريب النموذج، وval للتحقق، وpredict للاستدلال، وexport للتحويل إلى تنسيقات النشر، وtrack لتتبّع الأجسام، وbenchmark لتقييم الأداء. يدعم كل وضع مراحل مختلفة، بدءًا من التطوير وصولًا إلى النشر. |
إعدادات التدريب#
تشمل إعدادات تدريب نماذج YOLO المعلمات الفائقة والتهيئات التي تؤثر في أداء النموذج وسرعته ودقته. تشمل الإعدادات الرئيسية حجم الدفعة، ومعدل التعلّم، والزخم، واضمحلال الأوزان. ويؤثر اختيار المحسِّن ودالة الخسارة وتركيب مجموعة البيانات أيضًا في التدريب. يُعد الضبط والتجريب أساسيين لتحقيق الأداء الأمثل. لمزيد من التفاصيل، راجع دالة نقطة الدخول في Ultralytics.
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | يحدّد ملف النموذج المستخدم للتدريب. يقبل مسارًا إلى نموذج مدرَّب مسبقًا من .pt أو ملف تهيئة .yaml. وهو ضروري لتعريف بنية النموذج أو تهيئة الأوزان. |
data | str | None | مسار ملف 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 أو str | 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)، أو NPU من Huawei Ascend (device=npu:0 أو device=npu:0,1)، أو Intel XPU (device=xpu: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، يُسمح بالكتابة فوق دليل موجود للمشروع/الاسم. وهذا مفيد للتجارب التكرارية دون الحاجة إلى مسح المخرجات السابقة يدويًا. |
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). يُتجاهل مع الإعداد الافتراضي optimizer='auto'؛ لذا حدّد محسِّنًا صراحةً لاستخدامه. |
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 صراحةً. ويظل التدريب على CPU أو MPS دائمًا بتنسيق NCHW (يُتجاهل True مع إظهار تحذير). |
max_det | int | 300 | الحد الأقصى لعدد عمليات الكشف لكل صورة أثناء التحقق من التدريب. بالنسبة إلى الكشف والتجزئة والوضعيات وOBB، يرتفع الحد الافتراضي البالغ 300 إلى أكبر عدد من الكائنات الموسومة في التدريب/التحقق، وذلك فقط عندما يتجاوز هذا العدد 300. وتظل القيم الأخرى ثابتة؛ ويؤدي تجاوز الحد إلى ظهور تحذير. |
توفّر الوسيطة batch ثلاثة خيارات للتهيئة:
- حجم دفعة ثابت: حدّد عدد الصور في الدفعة باستخدام عدد صحيح (مثل
batch=16). - الوضع التلقائي (60% من ذاكرة GPU): استخدم
batch=-1لضبط الاستخدام تلقائيًا إلى نحو 60% من ذاكرة CUDA. - الوضع التلقائي مع تحديد نسبة الاستخدام: عيّن نسبة (مثل
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 محددة أو NPU من Huawei Ascend أو أجهزة حوسبة أخرى لتنفيذ النموذج. |
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 | يحدد الحد الأدنى لعتبة الثقة للاكتشافات. تزيد القيم الأقل من الاستدعاء، لكنها قد تؤدي إلى مزيد من الإيجابيات الكاذبة. تستخدم منحنيات الدقة والاستدعاء وmAP ومصفوفات الالتباس للاكتشاف هذه القيمة؛ وتؤدي قيمة conf أعلى، مثل 0.25، إلى مصفوفة أقرب إلى مخرجات التنبؤ، لكنها قد تخفض mAP. وتستخدم قيمتا الدقة والاستدعاء الموجزتان قيمة الثقة المقابلة لأقصى 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 | يفعّل كبت غير الأعظمية غير المرتبط بالفئة، فيكبت الصناديق المتداخلة ذات الدرجات الأقل بصرف النظر عن الفئة المتنبأ بها. يفيد ذلك في التطبيقات التي تركز على المثيلات. في الاستدلال الخالي من 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')، أو جهاز AMD Xilinx Versal AI Edge Series Gen 2 (القيمة الافتراضية هي 've2-xc2ve3858'، وهي مجموعة التقييم VEK385). يختلف هذا عن زوج تسمية التشغيل project/name المستخدم في الأوضاع الأخرى. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لمدخل النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة (مثل 640 لصورة بقياس 640×640)، أو صفًا (height, width) لأبعاد محددة. إذا لم يُمرر هذا الخيار، يعيد التصدير استخدام حجم التدريب المسجل في نقطة التحقق المحمّلة: تسجل نقاط التحقق الرسمية لـYOLO26 القيمة 768 لمهمة العمق، و224 للتصنيف، و1024 لمهمة OBB، و640 للمهام الأخرى؛ أما النموذج الدقيق فيسجل قيمة imgsz التي دُرّب عليها. ولا يسجل النموذج المبني من ملف YAML حجم تدريب، لذا يستخدم 640. |
optimize | bool | False | يفعّل تحسينًا أعلى للمترجم البرمجي في DEEPX، ما يقلل زمن استجابة الاستدلال مع زيادة وقت الترجمة. |
quantize | int أو str | None | دقة التكميم: 16 (FP16، يقلّل حجم النموذج وقد يسرّع الاستدلال على الأجهزة المدعومة) أو 8 (INT8/PTQ، يضغط النموذج أكثر مع انخفاض طفيف في الدقة، ويُستخدم أساسًا في الأجهزة الطرفية؛ ويتطلب معايرة data/fraction)؛ أما 32/غير المحدد فيعني FP32. تُصدَّر نقطة التحقق المدرَّبة باستخدام quantize=8 دائمًا بدقة INT8: ويعتمد التصدير عبر onnx وengine على النطاقات التي تتضمنها نقطة التحقق، دون معايرة، وتُرفض التنسيقات أو درجات الدقة الأخرى. 'w8a8' و'w16a16' اسمان بديلان لـ8 و16؛ ولا تُقبل دقتا المزج 'w8a16' (أوزان INT8 مع تنشيطات 16 بت: CoreML، LiteRT، QNN) و'w8a32' (INT8 ديناميكي: LiteRT) إلا في التنسيقات المحددة لكل منهما. ويحلّ هذا الخيار محلّ العَلَمَين المتقادمين half/int8 (half=True → 16، int8=True → 8، ولا يزال العَلَمان مقبولين مع تحذير من إهمالهما). لا يُسمح إلا بدرجات الدقة التي يدعمها التنسيق المستهدف (انظر أدناه). |
dynamic | bool | False | يتيح أحجام مدخلات ديناميكية لتصديرات TorchScript وONNX وOpenVINO وTensorRT وCoreML وMNN، ما يعزز المرونة في التعامل مع أبعاد الصور المتفاوتة. |
simplify | bool | True | يبسّط الرسم البياني الوسيط لـONNX باستخدام onnxslim في عمليات التصدير التي تنشئ رسمًا بيانيًا كهذا (راجع تنسيقات التصدير)، ما قد يحسن الأداء والتوافق مع محركات الاستدلال. |
opset | int | None | يحدد إصدار ONNX opset لعمليات التصدير التي تنشئ رسمًا بيانيًا لـONNX (راجع تنسيقات التصدير)، لضمان التوافق مع محللات وبيئات تشغيل ONNX المختلفة. إذا لم يُضبط، فسيُستخدم أحدث إصدار مدعوم. |
workspace | float أو None | None | يحدد الحد الأقصى لحجم مساحة العمل بالغيغابايت لتحسينات TensorRT، مع الموازنة بين استخدام الذاكرة والأداء. استخدم None لتخصيص الذاكرة تلقائيًا بواسطة TensorRT حتى الحد الأقصى للجهاز. |
nms | bool، اختياري | None | يصدّر None تنبؤات خامًا من واحد إلى متعدد لإجراء NMS خارجيًا؛ ويضمّن True NMS حيثما كان مدعومًا؛ بينما يختار False الرأس الخالي من NMS عند توفره. يدعم NMS المضمّن في CoreML مهام detect وsegment وpose بأشكال ثابتة. راجع دليل الاكتشاف الشامل. |
conf | float | None | عتبة الثقة المستخدمة عند إنشاء NMS وقت التصدير: تصديرات nms=True، وتصديرات detect غير الشاملة من Hailo، وتصديرات detect وpose وsegment من IMX، التي تفرض داخليًا nms=True. القيمة الافتراضية هي 0.25 إذا لم تُضبط. |
iou | float | 0.7 | عتبة IoU المستخدمة عند إنشاء NMS وقت التصدير: تصديرات nms=True، وتصديرات detect غير الشاملة من Hailo، وتصديرات detect وpose وsegment من IMX، التي تفرض داخليًا nms=True. |
max_det | int | 300 | الحد الأقصى لعدد الاكتشافات المحتفظ بها في مخرجات النموذج المصدّر. ينطبق على تصديرات nms=True في جميع التنسيقات باستثناء اكتشاف CoreML، إذ لا يتضمن مسار NMS الأصلي فيه حدًا أقصى للاكتشافات؛ وينطبق أيضًا على تصديرات الاكتشاف الشامل الخالية من NMS (YOLO26 وYOLOv10، مع تحديد الحد بعدد المراسي المتاحة) وتصديرات detect وpose وsegment من 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. تصدّر الصيغ التي لا تتضمن batch ضمن وسيطات التصدير دفعة بحجم 1 (Edge TPU وIMX500 وDEEPX وHailo وAMD Xilinx)، وترفض القيم الأخرى. |
device | str | None | يحدد الجهاز المستخدم للتصدير: GPU (device=0)، أو CPU (device=cpu)، أو MPS لأجهزة Apple silicon (device=mps)، أو NPU من Huawei Ascend (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 | عتبة زاوية وضعية «الأعلى». |
kpts | list[int] | [6, 8, 10] | قائمة بثلاثة فهارس للنقاط المفتاحية تُستخدم لمراقبة التمارين. وتتوافق هذه النقاط المفتاحية مع مفاصل الجسم أو أجزائه، مثل الكتفين والمرفقين والمعصمين، في تمارين مثل الضغط والعقلة والقرفصاء وتمارين البطن. |
down_angle | float | 90.0 | عتبة زاوية وضعية «الأسفل». |
blur_ratio | float | 0.5 | يضبط نسبة شدة التمويه، ضمن النطاق 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | اسم الدليل الذي تُحفظ فيه الاكتشافات المقصوصة. |
records | int | 5 | إجمالي عدد الاكتشافات اللازم لإطلاق رسالة بريد إلكتروني مع نظام إنذار أمني. |
vision_point | tuple[int, int] | (20, 20) | النقطة التي ستتتبع منها الرؤية الأجسام وترسم المسارات باستخدام حل VisionEye. |
source | str | None | مسار مصدر الإدخال (فيديو، RTSP، وما إلى ذلك). لا يمكن استخدامه إلا مع واجهة سطر الأوامر (CLI) الخاصة بـ Solutions. |
figsize | tuple[float, float] | (12.8, 7.2) | حجم الشكل بالبوصة لمخططات Analytics؛ يعرض (12.8, 7.2) إطارًا بدقة 1280×720. |
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, semantic, pose, obb | 0.0 - 1.0 | يدمج أجزاءً من صورتين، منشئًا مزجًا جزئيًا مع الحفاظ على مناطق متميزة. ويعزز متانة النموذج عبر إنشاء حالات حجب. |
copy_paste | float | 0 | segment, semantic, obb | 0.0 - 1.0 | نسبة الأجسام المؤهلة التي تُلصق؛ يعكسها flip داخل الصورة، بينما يستخدم mixup القيمة أيضًا احتمالًا للتطبيق عبر الصور. |
copy_paste_mode | str | flip | segment, semantic, 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، وحددoptimizerصراحةً لأن القيمة الافتراضيةautoتتجاهلlr0. راقب المقاييس وعدّلها حسب الحاجة. استخدم مجدولات معدل التعلم الجيبية (cos_lr) أو الإحماء (warmup_epochsوwarmup_momentum). تجد التفاصيل في دليل التدريب.تشمل الإعدادات الافتراضية ما يلي:
- عتبة الثقة (
conf=0.25): الحد الأدنى للثقة المطلوبة للاكتشافات. - عتبة IoU (
iou=0.7): تُستخدم في الكبت غير الأقصى (NMS). - حجم الصورة (
imgsz=640): يغيّر حجم صور الإدخال. - الجهاز (
device=None): يحدد CPU أو GPU من CUDA أو MPS من Apple أو XPU من Intel (xpu) أو NPU من Huawei Ascend (npu).
للاطلاع على نظرة عامة كاملة، راجع إعدادات التنبؤ ودليل التنبؤ.
- عتبة الثقة (
يقلل التدريب بالدقة المختلطة (
amp=True) استهلاك الذاكرة ويسرّع التدريب باستخدام FP16 وFP32. وهو مفيد لوحدات GPU الحديثة، إذ يتيح استخدام نماذج أكبر وإجراء العمليات الحسابية بسرعة أعلى دون خسارة كبيرة في الدقة. تعرّف على المزيد في دليل التدريب.