YOLO Vision 2026:

الإعدادات#

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



Watch: Mastering Ultralytics YOLO: Configuration

تستخدم أوامر Ultralytics الصيغة التالية:

مثال
yolo TASK MODE ARGS

حيث:

يتم تحديد قيم 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.

الوسيطالنوعالافتراضيالوصف
modelstrNoneيحدد ملف النموذج للتدريب. يقبل مسارًا إما لنموذج مُدرَّب مسبقًا .pt أو ملف تكوين .yaml. أساسي لتحديد هيكل النموذج أو تهيئة الأوزان.
datastrNoneالمسار إلى ملف YAML لمجموعة البيانات (مثل coco8.yaml)، والذي يحمل مسارات بيانات التدريب وبيانات التحقق، وأسماء الفئات، وعدد الفئات. وبدلاً من ذلك، يقبل التصنيف دليل مجموعة البيانات أو اسم مجموعة بيانات مدمج (مثل imagenet10).
epochsint100إجمالي عدد دورات التدريب (epochs). يمثل كل عصر (epoch) تمريرة كاملة على مجموعة البيانات بأكملها. يمكن أن يؤثر ضبط هذه القيمة على مدة التدريب وأداء النموذج.
timefloatNoneالحد الأقصى لوقت التدريب بالساعات. إذا تم تعيينه، فإنه يتجاوز وسيطة epochs، مما يسمح للتدريب بالتوقف تلقائيًا بعد المدة المحددة. مفيد لسيناريوهات التدريب المقيدة بالوقت.
patienceint100عدد الدورات المراد انتظارها بدون تحسن في مقاييس التحقق قبل إيقاف التدريب مبكرًا. يساعد في منع التفراط في التخصيص (overfitting) عن طريق إيقاف التدريب عندما يستقر الأداء.
batchint أو float16حجم الدفعة، بثلاثة أوضاع: مُحدد كعدد صحيح (على سبيل المثال، batch=16)، أو وضع تلقائي لاستخدام 60% من ذاكرة وحدة معالجة الرسومات GPU (batch=-1)، أو وضع تلقائي مع كسر استخدام مُحدد (batch=0.70).
imgszint640حجم الصورة المستهدف للتدريب. يتم تغيير حجم الصور إلى مربعات ذات جوانب تساوي القيمة المحددة (إذا كانت rect=False)، مع الحفاظ على نسبة العرض إلى الارتفاع لنماذج YOLO ولكن ليس RT-DETR. يؤثر على دقة النموذج والتعقيد الحسابي.
saveboolTrueيمكن حفظ نقاط تفتيش التدريب وأوزان النموذج النهائية. مفيد لاستئناف التدريب أو نشر النموذج.
save_periodint-1تكرار حفظ نقاط تحقق النموذج، محددة بالحقبات. قيمة -1 تعطل هذه الميزة. مفيدة لحفظ النماذج المؤقتة خلال جلسات التدريب الطويلة.
cacheboolFalseيمكّن التخزين المؤقت لصور مجموعة البيانات في الذاكرة (True/ram)، أو على القرص (disk)، أو يعطله (False). يحسن سرعة التدريب عن طريق تقليل إدخال/إخراج القرص على حساب زيادة استخدام الذاكرة.
deviceint أو str أو listNoneيحدد الجهاز (الأجهزة) الحسابية للتدريب: وحدة معالجة رسومات GPU مفردة (device=0)، أو وحدات معالجة رسومات GPU متعددة (device=[0,1])، أو وحدة معالجة مركزية CPU (device=cpu)، أو MPS لسيليكون Apple (device=mps)، أو وحدة NPU من Huawei Ascend (device=npu:0 أو device=npu:0,1)، أو التحديد التلقائي لوحدة معالجة رسومات خاملة (device=-1) أو وحدات معالجة رسومات خاملة متعددة (device=[-1,-1]).
workersint8عدد خيوط العمال (worker threads) لتحميل البيانات (لكل RANK في حالة التدريب متعدد وحدات معالجة الرسومات). يؤثر على سرعة المعالجة المسبقة للبيانات وتغذيتها في النموذج، وهو مفيد بشكل خاص في الإعدادات متعددة وحدات معالجة الرسومات.
projectstrNoneاسم دليل المشروع حيث يتم حفظ مخرجات التدريب. يسمح بتخزين منظم للتجارب المختلفة.
namestrNoneاسم تشغيل التدريب. يستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التدريب.
exist_okboolFalseإذا كان True، يسمح بالكتابة فوق دليل مشروع/اسم موجود. مفيد للتجارب التكرارية دون الحاجة إلى مسح المخرجات السابقة يدوياً.
save_dirstrNoneيحدد الدليل الدقيق حيث يتم حفظ مخرجات التشغيل، متجاوزًا مجموعة project/name. يُستخدم المسار كما هو دون زيادات تلقائية، لذا تعيد التشغيلات المتتالية استخدام نفس الدليل.
pretrainedbool أو strTrueيحدد ما إذا كان سيتم بدء التدريب من أوزان مُدرَّبة مسبقًا. يمكن أن يكون قيمة منطقية أو مسار نصي للأوزان المراد تحميلها. يقوم pretrained=False بالتدريب من أوزان مُهيئة عشوائيًا مع الاحتفاظ بهيكل النموذج.
cls_remapboolTrueعند الضبط الدقيق عبر مجموعات البيانات، ينسخ صفوف رأس التصنيف المدرب مسبقًا إلى النموذج الجديد حيثما تتطابق أسماء الفئات، بحيث تحتفظ الفئات المتداخلة بانحيازها المتعلم، بالإضافة إلى أوزانها عندما يكون عرض الرأس ثابتًا. ينطبق بغض النظر عما إذا كانت عدد الفئات تختلف أو تتطابق مع ترتيب فئات مختلف.
optimizerstr'auto'اختيار المُحسِّن (optimizer) للتدريب. تتضمن الخيارات SGD، أو MuSGD، أو Adam، أو Adamax، أو AdamW، أو NAdam، أو RAdam، أو RMSProp، أو auto لاختيار AdamW أو MuSGD من عدد تكرارات التدريب. يؤثر على سرعة التقارب والاستقرار.
seedint0يضبط البذرة العشوائية (random seed) للتدريب، مما يضمن قابلية تكرار النتائج عبر التشغيلات بنفس التكوينات.
deterministicboolTrueيفرض استخدام خوارزمية حتمية، مما يضمن قابلية التكرار ولكنه قد يؤثر على الأداء والسرعة بسبب القيود على الخوارزميات غير الحتمية.
verboseboolTrueيُمكّن المخرجات التفصيلية أثناء التدريب، حيث يعرض أشرطة التقدم، والمقاييس لكل دورة (epoch)، ومعلومات تدريب إضافية في وحدة التحكم.
single_clsboolFalseيعامل جميع الفئات في مجموعات البيانات متعددة الفئات كفئة واحدة أثناء التدريب. مفيد لمهام التصنيف الثنائي أو عند التركيز على وجود الكائن بدلاً من تصنيفه.
classeslist[int]Noneيحدد قائمة بمعرفات الفئات للتدريب عليها. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التدريب.
rectboolFalseيمكّن استراتيجية الحشو الأدنى - يتم حشو الصور في الدفعة بحد أدنى لتوصيلها إلى حجم مشترك، بحيث يكون الجانب الأطول مساويًا لـ imgsz. يمكن أن يحسن الكفاءة والسرعة ولكنه قد يؤثر على دقة النموذج.
multi_scalefloat0.0تغيير imgsz عشوائيًا لكل دفعة بواسطة +/- multi_scale (على سبيل المثال، 0.25 -> 0.75x إلى 1.25x)، والتقريب إلى مضاعفات خطوة النموذج؛ يقوم 0.0 بتعطيل التدريب متعدد المقاييس.
cos_lrboolFalseيستخدم جدولة معدل تعلم جيبية (cosine)، مما يؤدي إلى ضبط معدل التعلم باتباع منحنى جيب عبر العصور. يساعد في إدارة معدل التعلم لتقارب أفضل.
close_mosaicint10يعطل تعزيز بيانات الفسيفساء (mosaic) في آخر N عصور لتثبيت التدريب قبل الانتهاء. التعيين إلى 0 يعطل هذه الميزة.
resumeboolFalseيستأنف التدريب من آخر نقطة تفتيش محفوظة. يقوم تلقائياً بتحميل أوزان النموذج، وحالة المُحسِّن، وعدد الدورات، مما يتيح متابعة التدريب بسلاسة.
ampbool أو strTrueيحدد دقة التدريب: True أو "fp16" يستخدم FP16، و "bf16" يستخدم BF16 على أجهزة CUDA المدعومة، و False أو "fp32" يستخدم FP32.
fractionfloat أو int أو list1.0الجزئية الفرعية لمجموعة البيانات المراد استخدامها: نسبة مثل 0.1، أو عدد صور تدريب مثل 300، أو نسب/أعداد [train, val] مثل [0.1, 0.2] أو [300, 100] أو [0.1, 100]. يحدد الرقم الصحيح 1 صورة واحدة، بينما يحدد الرقم العشري 1.0 كل الصور. تحدد مجموعات بيانات NDJSON سجلات موزعة بانتظام قبل التنزيل، لذا فإن عمليات التشغيل المتكررة تعيد استخدام نفس الصور بالضبط.
profileboolFalseيُفعّل تتبع سرعات ONNX و TensorRT أثناء التدريب، وهو مفيد لتحسين نشر النموذج.
freezeint أو listNoneيقوم بتجميد الطبقات N الأولى من النموذج، أو طبقات محددة حسب الفهرس أو اسم الوحدة (23.cv2، بدون البادئة model.)، مما يقلل من عدد المعلمات القابلة للتدريب. مفيد للضبط الدقيق (fine-tuning) أو التعلم بالتنقل.
lr0float0.01معدل التعلم الأولي (أي SGD=1E-2، Adam=1E-3). يعد ضبط هذه القيمة أمرًا بالغ الأهمية لعملية التحسين، حيث يؤثر على مدى سرعة تحديث أوزان النموذج.
lrffloat0.01معدل التعلم النهائي ككسر من المعدل الأولي = (lr0 * lrf)، يُستخدم بالkتزامن مع الجدولات لضبط معدل التعلم بمرور الوقت.
momentumfloat0.937عامل الزخم لـ SGD أو beta1 لـ مُحسِّنات Adam، مما يؤثر على دمج التدرجات السابقة في التحديث الحالي.
weight_decayfloat0.0005مصطلح الانتظام (regularization) L2، الذي يعاقب الأوزان الكبيرة لمنع الإفراط في التخصيص (overfitting).
warmup_epochsfloat3.0عدد الدورات لتهيئة معدل التعلم (warmup)، حيث يزداد معدل التعلم تدريجياً من قيمة منخفضة إلى معدل التعلم الأولي لتحقيق استقرار التدريب في بدايته.
warmup_momentumfloat0.8الزخم الأولي لمرحلة التهيئة، والذي يتم ضبطه تدريجياً ليصل إلى الزخم المحدد عبر فترة التهيئة.
warmup_bias_lrfloat0.1معدل التعلم لمعلمات الانحياز (bias) خلال مرحلة الإحماء، مما يساعد على تثبيت تدريب النموذج في الحقبات الأولى. يتم تعيينه تلقائياً إلى 0.0 تحت الافتراضي optimizer='auto'، لذا قم بتسمية المُحسِّن بوضوح لاستخدامه.
distill_modelstrNoneمسار إلى نقطة تفتيش نموذج المعلم (على سبيل المثال، yolo26x.pt) لتقطير المعرفة. عند التعيين، يتم تدريب نموذج الطالب بخسارة تقطير إضافية موجهة بواسطة المعلم المُجمد.
disfloat6.0وزن خسارة التقطير المضافة إلى خسائر الكشف القياسية. القيم الأعلى تزيد من تأثير توجيه الميزات الخاص بنموذج المعلم.
boxfloat7.5وزن مكون خسارة الصندوق في دالة الخسارة، مما يؤثر على مقدار التركيز الموضع على التنبؤ الدقيق بإحداثيات صندوق الإحاطة.
clsfloat0.5وزن خسارة التصنيف في دالة الخسارة الإجمالية، مما يؤثر على أهمية التنبؤ الصحيح بالفئة بالنسبة للمكونات الأخرى.
cls_pwfloat0.0عامل تركيز الفئة للتعامل مع عدم توازن الفئات باستخدام تكرار الفئة العكسي. يقوم 0.0 بتعطيل ترجيح الفئة، ويطبق 1.0 ترجيح التكرار العكسي الكامل. توفر القيم بين 0 و 1 ترجيحًا جزئيًا.
dflfloat1.5وزن حد الانحدار لمسافة الصندوق: خسارة التركيز التوزيعية (DFL) عندما يستخدم رأس الكشف reg_max > 1، أو خسارة L1 على مسافات الصندوق المُطَبَّعَة على YOLO26 الخالي من DFL (reg_max: 1).
posefloat12.0وزن خسارة الوضعية (pose loss) في النماذج المدربة لتقدير الوضعية، مما يؤثر على التركيز على التنبؤ الدقيق للنقاط الرئيسية للوضعية.
kobjfloat1.0وزن خسارة موضوعية النقاط الرئيسية في نماذج تقدير الوضعية، مما يوازن بين ثقة الكشف ودقة الوضعية.
rlefloat1.0وزن خسارة تقدير احتمالية اللوغاريتم المتبقية (residual log-likelihood estimation loss) في نماذج تقدير الوضعية، مما يؤثر على دقة تحديد مواقع النقاط الرئيسية.
anglefloat1.0وزن خسارة الزاوية في نماذج obb، مما يؤثر على دقة توقعات زاوية صندوق الإحاطة الموجه.
dlogfloat1.0وزن الخسارة اللوغاريتمية الثابتة للمقياس (SILog) في نماذج تقدير العمق، وهو المصدر الأساسي لدقة العمق.
dgradfloat0.5وزن خسارة التدرج في نماذج تقدير العمق، مما يعاقب الأخطاء في حواف العمق ويشجع حدود سطح أكثر حدة.
dlamfloat1.0عامل تركيز التباين لخسارة SILog في نماذج تقدير العمق. يجعل 1.0 الخسارة ثابتة النطاق تمامًا، بينما يقللها 0.0 إلى log-RMSE العادي.
nbsint64حجم الدفعة الاسمي لتطبيع الخسارة.
overlap_maskboolTrueيحدد ما إذا كان يجب دمج أقنعة الكائنات في قناع واحد للتدريب، أو الاحتفاظ بها منفصلة لكل كائن. في حالة التداخل، يتم وضع القناع الأصغر فوق القناع الأكبر أثناء الدمج.
mask_ratioint4نسبة التقليص لأقنعة التجزئة (segmentation masks)، مما يؤثر على دقة الأقنعة المستخدمة أثناء التدريب.
dropoutfloat0.0معدل الإسقاط (dropout) للتنظيم في مهام التصنيف، مما يمنع الإفراط في التخصيص عن طريق حذف الوحدات عشوائياً أثناء التدريب.
valboolTrueيُفعّل التحقق أثناء التدريب، مما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة.
plotsboolTrueيُنشئ ويحفظ مخططات لمقاييس التدريب والتحقق، بالإضافة إلى أمثلة للتنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم.
compilebool أو strFalseيمكّن تجميع رسم البياني PyTorch 2.x torch.compile باستخدام backend='inductor'. يقبل True"default"، False ← تعطيل، أو وضع نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يتراجع إلى الوضع الحماسي (eager) مع تحذير إذا كان غير مدعوم.
channels_lastboolFalseيستخدم تنسيق الذاكرة channels_last (NHWC) لعمليات الالتفاف أثناء التدريب، مما يسّرع وحدات معالجة الرسومات CUDA Tensor Core دون أي تغيير في النتائج. يتم تجاهله تلقائياً على وحدة المعالجة المركزية (CPU) و MPS، حيث لا يقدم أي فائدة.
max_detint300يحدد الحد الأقصى لعدد الكائنات المحتفظ بها أثناء مرحلة التحقق من التدريب.
ملاحظة حول إعدادات حجم الدفعة (batch-size)

توفر وسيطة batch ثلاثة خيارات للتكوين:

  • حجم الدفعة الثابت: حدد عدد الصور لكل دفعة باستخدام عدد صحيح (على سبيل المثال، batch=16).
  • الوضع التلقائي (60% من ذاكرة وحدة معالجة الرسومات): استخدم batch=-1 للضبط التلقائي لتصل إلى حوالي 60% من استخدام ذاكرة CUDA.
  • الوضع التلقائي مع كسر الاستخدام: قم بتعيين كسر (على سبيل المثال، batch=0.70) للضبط بناءً على استخدام مُحدد لذاكرة وحدة معالجة الرسومات.
  • لم يتم العثور على توافق: إذا لم تنتج أي دفعة مرشحة حجماً قابلاً للاستخدام، فإن AutoBatch يرفع رسالة RuntimeError واضحة بدلاً من التراجع بصمت إلى قيمة افتراضية غير مرتبطة.

دليل التدريب

إعدادات التنبؤ#

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

وسائط الاستدلال:

الوسيطالنوعالافتراضيالوصف
sourcestr أو int أو NoneNoneيحدد مصدر البيانات للاستدلال. يمكن أن يكون مسار صورة، أو ملف فيديو، أو دليل، أو عنوان URL، أو معرف جهاز للبث المباشر. إذا تم حذفه، يتم تسجيل تحذير ويتراجع النموذج إلى أصول العرض المضمنة (ultralytics/assets، أو عنوان URL للعرض لـ OBB). يدعم نطاقًا واسعًا من التنسيقات والمصادر، مما يتيح تطبيقًا مرنًا عبر أنواع مختلفة من المدخلات.
conffloat0.25يعين الحد الأدنى لعتبة الثقة للاكتشافات. سيتم تجاهل الكائنات التي يتم اكتشافها بثقة أقل من هذه العتبة. يمكن أن يساعد تعديل هذه القيمة في تقليل النتائج الإيجابية الخاطئة.
ioufloat0.7عتبة التقاطع فوق الاتحاد (IoU) لإلغاء القمع غير الأقصى (NMS). تؤدي القيم الأقل إلى اكتشافات أقل عن طريق القضاء على الصناديق المتداخلة، وهو أمر مفيد لتقليل التكرارات.
imgszint أو tuple640هدف Letterbox. يعطي العدد الصحيح N×N مربعًا؛ ويعطي الصفحي (height, width). مع rect=True، قد يكون الموتر الفعلي أصغر من هذا الهدف بسبب حشو المستطيل الأدنى. استخدم rect=False لحجم ثابت. انظر الشكل الثابت مقابل الحد الأدنى للمستطيل.
rectboolTrueإذا كان True، فاستخدم حشو المستطيل الأدنى عندما يكون ذلك ممكنًا (دفعة بنفس الشكل وخلفية مدعومة). إذا كان False، فاحش دائمًا إلى كامل imgsz. انظر الشكل الثابت مقابل الحد الأدنى للمستطيل.
quantizeint أو strNoneدقة الاستدلال: يُمكّن 16/"fp16" استدلال FP16 على وحدات معالجة الرسومات المدعومة؛ ويعتبر 32/"fp32"/غير المعين هو FP32. يتم تكوين تقييس INT8/PTQ أثناء التصدير، ثم يُستخدم عن طريق تحميل النموذج المُصدَّر. يحل محل علامة half المُهملة.
devicestrNoneيحدد جهاز الاستدلال (على سبيل المثال، cpu، أو cuda:0، أو 0، أو npu أو npu:0). يسمح للمستخدمين بالاختيار بين وحدة معالجة مركزية CPU، أو وحدة معالجة رسومات GPU محددة، أو وحدة NPU من Huawei Ascend، أو أجهزة حسابية أخرى لتنفيذ النموذج.
dnnboolFalseإذا تم استخدام True، فإنه يستخدم وحدة OpenCV DNN بدلاً من ONNX Runtime للاستدلال بنموذج ONNX.
datastrNoneالمسار إلى ملف YAML لمجموعة البيانات (مثل coco8.yaml) المقروء فقط لـ names الخاص به، وفقط عندما لا يحمل النموذج المُحمَّل أسماء فئات خاصة به: تصدير طرف ثالث، أو تصدير Ultralytics مفصول عن بيانات التعريف التي يُشحن معها. بخلاف ذلك، يُبلغ مثل هذا النموذج عن class0 وclass1 وما إلى ذلك.
batchint1يحدد حجم الدفعة للاستدلال (يعمل فقط عندما يكون المصدر دليلًا أو ملف فيديو أو ملف .txt). يمكن أن يوفر حجم دفعة أكبر إنتاجية أعلى، مما يقصر إجمالي الوقت اللازم للاستدلال.
max_detint300الحد الأقصى لعدد الاكتشافات المسموح به لكل صورة. يحد من إجمالي عدد الكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات المفرطة في المشاهد الكثيفة.
vid_strideint1خطوة الإطار لمدخلات الفيديو. يسمح بتخطي الإطارات في الفيديوهات لتسريع المعالجة على حساب الدقة الزمنية. تعالج القيمة 1 كل إطار، بينما تتخطى القيم الأعلى الإطارات.
stream_bufferboolFalseيحدد ما إذا كان سيتم وضع الإطارات الواردة في طابور لبث الفيديو. إذا كان False، يتم إسقاط الإطارات القديمة لاستيعاب الإطارات الجديدة (متحسن لتطبيقات الوقت الفعلي). إذا كان True، فإنه يضع الإطارات الجديدة في مخزن مؤقت، مما يضمن عدم تخطي أي إطارات، ولكنه سيسبب تأخيرًا (latency) إذا كان معدل الإطارات للاستدلال أقل من معدل إطارات البث.
visualizeboolFalseيحفظ خريطة حرارية لتفعيل الفئات بجانب كل تنبؤ، مما يوضح البكسلات التي رفعت درجات الفئة المتوقعة. يحترم conf و classes، بحيث يربط classes=[0] تلك الفئة فقط. متاح فقط لنماذج Ultralytics المصنوعة بـ PyTorch.
augmentboolFalseيُفعل تحسين وقت الاختبار (TTA) للتنبؤات، مما قد يحسن متانة الكشف على حساب سرعة الاستدلال. متاح فقط لنماذج Ultralytics المصنوعة بـ PyTorch.
agnostic_nmsboolFalseيُفَعِّل كتم التداخل غير الأقصى (NMS) المستقل عن الفئة، حيث يكتم الصناديق المتراكبة ذات النقاط الأقل عبر الفئات المختلفة بدلاً من الفئة نفسها فقط. مفيد في سيناريوهات الكشف متعدد الفئات حيث يكون تداخل الفئات شائعاً. بالنسبة للنماذج ذات النهاية إلى النهاية (YOLO26، YOLOv10)، فإن هذا يمنع فقط ظهور نفس الاكتشاف بتسميات فئات متعددة (نسخ متطابقة IoU=1.0) ولا ينفذ كتماً يعتمد على عتبة IoU بين الصناديق المتميزة.
classeslist[int]Noneيُصفي التنبؤات إلى مجموعة من معرفات الفئات. سيتم إرجاع الاكتشافات التي تنتمي إلى الفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الاكتشاف متعدد الفئات.
retina_masksboolFalseيُرجع أقنعة تجزئة عالية الدقة. ستتطابق الأقنعة المُرجعة (masks.data) مع حجم الصورة الأصلي إذا تم تمكينها. إذا تم تعطيلها، فستكون لها حجم الصورة المستخدم أثناء الاستدلال.
embedlist[int]Noneيحدد الطبقات التي يتم استخراج متجهات الخصائص أو الـ embeddings منها. استخدم model.embed(source) لتضمينات الطبقة قبل الأخيرة، أو model.predict(source, embed=[layer]) لتحديد طبقات معينة. مفيد للمهام اللاحقة مثل التجميع أو البحث عن التشابه. متاح فقط لنماذج Ultralytics المصنوعة بـ PyTorch.
projectstrNoneاسم مجلد المشروع حيث يتم حفظ مخرجات التنبؤ إذا تم تمكين save.
namestrNoneاسم تشغيل التنبؤ. يُستخدم لإنشاء مجلد فرعي داخل مجلد المشروع، حيث يتم تخزين مخرجات التنبؤ إذا تم تمكين save.
streamboolFalseيُمكّن المعالجة الموفرة للذاكرة للفيديوهات الطويلة أو الصور العديدة عن طريق إرجاع مولد لكائنات النتائج بدلاً من تحميل جميع الإطارات في الذاكرة دفعة واحدة.
verboseboolTrueيتحكم في ما إذا كان يجب عرض سجلات الاستدلال التفصيلية في الطرفية، مما يوفر ملاحظات في الوقت الفعلي حول عملية التنبؤ.
compilebool أو strFalseيمكّن تجميع رسم البياني PyTorch 2.x torch.compile باستخدام backend='inductor'. يقبل True"default"، False ← تعطيل، أو وضع نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يتراجع إلى الوضع الحماسي (eager) مع تحذير إذا كان غير مدعوم.
channels_lastboolFalseيستخدم تنسيق الذاكرة channels_last (NHWC) لعمليات الالتفاف أثناء الاستدلال، مما يسّرع وحدات معالجة الرسومات CUDA Tensor Core دون أي تغيير في النتائج. ينطبق على نماذج PyTorch الأصلية فقط؛ ويتم تجاهله لوحدة المعالجة المركزية (CPU)، و MPS، والتنسيقات المصدرة مثل TensorRT و ONNX.
end2endboolNoneيتجاوز وضع النهاية إلى النهاية في نماذج YOLO التي تدعم الاستدلال الخالي من NMS (مثل YOLO26 وYOLOv10). يتيح لك تعيينه إلى False إجراء التنبؤ باستخدام خط أنابيب NMS التقليدي، مما يتيح لك أيضًا الاستفادة من وسيطة iou. انظر دليل الكشف من النهاية إلى النهاية للحصول على التفاصيل.

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

الوسيطالنوعالافتراضيالوصف
showboolFalseإذا كان True، يعرض الصور أو الفيديوهات المشروحة في نافذة. مفيد للحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار.
saveboolFalse or Trueيُمكن حفظ الصور أو الفيديوهات المرفقة في ملفات. مفيد للتوثيق أو المزيد من التحليل أو مشاركة النتائج. الافتراضي هو True عند استخدام CLI و False عند الاستخدام في Python.
save_framesboolFalseعند معالجة الفيديوهات، يحفظ الإطارات الفردية كصور. مفيد لاستخراج إطارات معينة أو للتحليل التفصيلي إطاراً بإطار.
save_txtboolFalseيحفظ نتائج الكشف في ملف نصي، باتباع التنسيق [class] [x_center] [y_center] [width] [height] [confidence]. مفيد للتكامل مع أدوات التحليل الأخرى.
save_confboolFalseيتضمن درجات الثقة في الملفات النصية المحفوظة. يعزز التفاصيل المتاحة للمعالجة اللاحقة والتحليل.
save_cropboolFalseيحفظ صوراً مقصوصة للاكتشافات. مفيد لزيادة مجموعة البيانات أو التحليل أو إنشاء مجموعات بيانات مركزة لكائنات معينة.
show_labelsboolTrueيعرض تصنيفات كل اكتشاف في المخرجات المرئية. يوفر فهماً فورياً للكائنات المكتشفة.
show_confboolTrueيعرض درجة الثقة لكل اكتشاف بجانب التصنيف. يوفر رؤية حول مدى يقين النموذج في كل اكتشاف.
show_boxesboolTrueيرسم صناديق الإحاطة حول الكائنات المكتشفة. ضروري للتحديد البصري وموقع الكائنات في الصور أو إطارات الفيديو.
line_widthint or NoneNoneيحدد عرض خط صناديق الإحاطة. إذا كان None، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح.

دليل التنبؤ

إعدادات التحقق#

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

الوسيطالنوعالافتراضيالوصف
datastrNoneيحدد المسار إلى ملف YAML لمجموعة البيانات (مثل coco8.yaml)، والذي يجب أن يتضمن مسار بيانات التحقق. وبدلاً من ذلك، يقبل التصنيف دليل مجموعة البيانات أو اسم مجموعة بيانات مدمج (مثل imagenet10).
imgszint640يحدد حجم صور الإدخال. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة. قد تعمل الأحجام الأكبر على تحسين الدقة للكائنات الصغيرة ولكنها تزيد من وقت الحساب.
batchint16يعين عدد الصور في كل دفعة. تستخدم القيم الأعلى ذاكرة GPU بشكل أكثر كفاءة ولكنها تتطلب المزيد من VRAM. اضبط بناءً على موارد الأجهزة المتاحة.
save_jsonboolFalseإذا كان True، يحفظ النتائج في ملف JSON لمزيد من التحليل، أو التكامل مع أدوات أخرى، أو الإرسال إلى خوادم التقييم مثل COCO.
conffloat0.001يحدد الحد الأدنى لعتبة الثقة لعمليات الكشف. تؤدي القيم الأقل إلى زيادة استرجاع المعلومات ولكن قد تؤدي إلى المزيد من النتائج الإيجابية الخاطئة. تفترض منحنيات الدقة والاسترجاع افتراضياً 0.001؛ وتستخدم مصفوفات الارتباك الخاصة بالكشف قيمة صريحة conf، أو 0.25 عند حذفها. يستخدم ملخص الدقة والاسترجاع ثقة max-F1، لذا فقد تختلف عن القيم المشتقة من confusion_matrix.png. القيمة الافتراضية هي 0.01 للتحقق من صحة OBB لتقليل استخدام الذاكرة.
ioufloat0.7يُعيّن عتبة التقاطع فوق الاتحاد لـ إلغاء القمع غير الأقصى. يتحكم في القضاء على الكشف المكرر.
max_detint300يحد من الحد الأقصى لعدد الاكتشافات لكل صورة. مفيد في المشاهد الكثيفة لمنع الاكتشافات المفرطة وإدارة موارد الحوسبة.
quantizeint أو strNoneدقة التحقق: يُمكّن 16/"fp16" تحقق FP16 على وحدات معالجة الرسومات المدعومة؛ ويعتبر 32/"fp32"/غير المعين هو FP32. يتم تكوين تقييس INT8/PTQ أثناء التصدير، ثم يُستخدم عن طريق التحقق من النموذج المُصدَّر. يحل محل علامة half المُهملة.
devicestrNoneيحدد جهاز التحقق (cpu، أو cuda:0، أو npu، أو npu:0، إلخ). عندما يكون None، فإنه يحدد تلقائيًا أفضل جهاز متاح. يمكن تحديد وحدات معالجة رسومات CUDA متعددة مفصولة بفواصل.
dnnboolFalseفي حال استخدام True لوحدة OpenCV DNN لاستدلال نموذج ONNX، مما يوفر بديلاً لطرق استدلال PyTorch.
plotsboolTrueعند التعيين إلى True، يُنشئ ويحفظ مخططات التنبؤات مقابل الحقيقة الأرضية، ومصفوفات الارتباك، ومنحنيات PR للتقييم المرئي لأداء النموذج.
classeslist[int]Noneيحدد قائمة بمعرفات الفئات للتقييم. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التقييم.
rectboolTrueإذا كان True، فإنه يستخدم الاستدلال المستطيل للمعالجة المجمعة، مما يقلل من الحشو وربما يزيد من السرعة والكفاءة من خلال معالجة الصور بنسب أبعادها الأصلية. يتم تجاهل هذا للتحقق من الصحة depth، والذي يمد كل صورة لتصبح مربعًا ثابتًا imgsz بدلاً من الحشو.
splitstr'val'يحدد تقسيم مجموعة البيانات المراد استخدامه للتحقق (val، أو test، أو train). يتيح المرونة في اختيار قطاع البيانات لتقييم الأداء.
projectstrNoneاسم دليل المشروع حيث يتم حفظ مخرجات التحقق من الصحة. يساعد في تنظيم النتائج من تجارب أو نماذج مختلفة.
namestrNoneاسم تشغيل التحقق من الصحة. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التحقق من الصحة.
verboseboolTrueإذا كان True، يعرض معلومات مفصلة أثناء عملية التحقق، بما في ذلك مقاييس كل فئة، وتقدم الدفعة، ومعلومات تصحيح الأخطاء الإضافية.
save_txtboolFalseإذا كان True، يحفظ نتائج الكشف في ملفات نصية، مع ملف واحد لكل صورة، وهو مفيد لمزيد من التحليل، أو المعالجة اللاحقة المخصصة، أو التكامل مع أنظمة أخرى.
save_confboolFalseإذا كان True، يتضمن قيم الثقة في الملفات النصية المحفوظة عند تمكين save_txt، مما يوفر إخراجًا أكثر تفصيلًا للتحليل والتصفية.
workersint8عدد سلاسل عمليات العامل (worker threads) لتحميل البيانات. القيم الأعلى يمكن أن تسرع معالجة البيانات ولكن قد تزيد من استخدام CPU. الضبط على 0 يستخدم السلسلة الرئيسية، والتي يمكن أن تكون أكثر استقرارًا في بعض البيئات.
augmentboolFalseيُفعل تحسين وقت الاختبار (TTA) أثناء التحقق، مما قد يحسين دقة الكشف على حساب سرعة الاستدلال عن طريق تشغيل الاستدلال على نسخ محولة من المدخلات. متاح فقط لنماذج Ultralytics المصنوعة بـ PyTorch.
agnostic_nmsboolFalseيُفَعِّل كتم التداخل غير الأقصى المستقل عن الفئة، حيث يكتم الصناديق المتراكبة ذات النقاط الأقل بغض النظر عن فئتها المتوقعة. مفيد للبيقات المرتكزة على الكائنات. بالنسبة للنماذج ذات النهاية إلى النهاية (YOLO26، YOLOv10)، فإن هذا يمنع فقط ظهور نفس الاكتشاف بتسميات فئات متعددة (نسخ متطابقة IoU=1.0) ولا ينفذ كتماً يعتمد على عتبة IoU بين الصناديق المتميزة.
single_clsboolFalseيعامل جميع الفئات كفئة واحدة أثناء التحقق من الصحة. مفيد لتقييم أداء النموذج في مهام الكشف الثنائي أو عندما لا تكون الفروق بين الفئات مهمة.
visualizeboolFalseيصور الحقائق الأرضية، والإيجابيات الحقيقية، والإيجابيات الكاذبة، والسلبيات الكاذبة لكل صورة. مفيد لتصحيح الأخطاء وتفسير النموذج.
show_labelsboolTrueيعرض تسميات الفئات في تصورات التحقق عند visualize=True. اضبط على False لعرض أنظف للمباريات والأخطاء.
show_confboolTrueيعرض درجات الثقة في تصورات التحقق عند visualize=True. اضبط على False لعرض أنظف للمباريات والأخطاء.
compilebool أو strFalseيمكّن تجميع رسم البياني PyTorch 2.x torch.compile باستخدام backend='inductor'. يقبل True"default"، False ← تعطيل، أو وضع نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يتراجع إلى الوضع الحماسي (eager) مع تحذير إذا كان غير مدعوم.
channels_lastboolFalseيستخدم تنسيق الذاكرة channels_last (NHWC) لعمليات الالتفاف أثناء التحقق من الصحة، مما يسرع وحدات معالجة الرسومات CUDA Tensor Core دون أي تغيير في النتائج. ينطبق على نماذج PyTorch الأصلية فقط؛ ويتم تجاهله مع وحدة المعالجة المركزية CPU، وMPS، والتنسيقات المصدرة مثل TensorRT وONNX.
end2endboolNoneيتجاوز وضع النهاية إلى النهاية في نماذج YOLO التي تدعم الاستدلال الخالي من NMS (YOLO26، YOLOv10). يتيح لك تعيينه إلى False تشغيل التحقق باستخدام خط أنابيب NMS التقليدي، مما يتيح لك أيضًا الاستفادة من وسيطة iou.

يُعد الضبط الدقيق والتجريب أمرًا بالغ الأهمية لضمان الأداء الأمثل واكتشاف ومنع التفراط في التخصيص (overfitting).

دليل التحقق

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

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

الوسيطالنوعالافتراضيالوصف
formatstr'torchscript'التنسيق المستهدف للنموذج المُصدَّر، مثل 'onnx'، أو 'torchscript'، أو 'engine' (TensorRT)، أو غيرها. يتيح كل تنسيق التوافق مع بيئات نشر مختلفة.
namestrNoneاسم الهدف المادي للتنسيقات التي تتطلب واحداً: معمكية Hailo ('hailo8'، 'hailo8l'، 'hailo10h'، 'hailo15h'، 'hailo15l'؛ الافتراضي هو 'hailo8l')، شريحة Rockchip RKNN (الافتراضي هو 'rk3588')، وحدة Huawei Ascend SoC (--soc_version لـ CANN؛ الافتراضي هو 'Ascend310B4')، أو هدف Qualcomm QNN HTP (الافتراضي هو '73'). يختلف عن زوج تسمية التشغيل project/name المستخدم بواسطة الأوضاع الأخرى.
imgszint أو tuple640حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون رقماً صحيحاً للصور المربعة (على سبيل المثال، 640 لـ 640×640) أو مجموعة (height, width) للأبعاد المحددة. عندما لا يتم تمريره، يعيد التصدير استخدام حجم التدريب المسجل في نقطة التحقق المحملة: تسجل نقاط التحقق الرسمية لـ YOLO26 768 للعمق، و224 للتصنيف، و1024 لـ OBB و640 للمهام الأخرى، بينما تسجل عملية الضبط الدقيق أي imgsz تم التدريب عليها. النموذج المبني من ملف YAML ليس لديه حجم تدريب مسجل ويستخدم 640.
kerasboolFalseيمكّن التصدير إلى تنسيق Keras لـ TensorFlow SavedModel، مما يوفر التوافق مع خدمة TensorFlow وواجهات برمجة التطبيقات (APIs).
optimizeboolFalseتمكين تحسين المترجم (compiler optimization) بشكل أعلى لـ DEEPX، مما يقلل من زمن انتقال الاستدلال (inference latency) بينما يزيد من وقت التجميع (compilation time).
quantizeint أو strNoneدقة التقييس: 16 (FP16، يقلل من حجم النموذج ويمكن أن يسرع الاستدلال على الأجهزة المدعومة) أو 8 (INT8/PTQ، يضغط النموذج بشكل أكبر مع الحد الأدنى من فقدان الدقة، في المقام الأول لـ أجهزة الحافة (edge devices)؛ يحتاج إلى معايرة data/fraction)؛ يعتبر 32/غير المعين هو FP32. تقبل تنسيقات التصدير التي تدعم دقة الوزن/التنشيط المختلطة أيضًا تدوين 'w8a8'/'w16a16'/'w8a16'/'w8a32'. يحل محل علامات half/int8 المُهملة (half=True16، int8=True8، لا تزال مقبولة مع تحذير بالإهمال). يُسمح فقط بالدقات التي يدعمها التنسيق المستهدف (انظر أدناه).
dynamicboolFalseيسمح بأحجام مدخلات ديناميكية لتصديرات TorchScript و ONNX و OpenVINO و TensorRT و CoreML، مما يعزز المرونة في التعامل مع أبعاد الصور المتغيرة.
simplifyboolTrueيبسط رسم البياني المتوسط لـ ONNX مع onnxslim للصادرات التي تبني واحدًا (انظر تنسيقات التصدير)، مما قد يحسن الأداء والتوافق مع محركات الاستدلال.
opsetintNoneيحدد إصدار opset لـ ONNX للصادرات التي تبني رسم بياني ONNX (انظر تنسيقات التصدير)، للتوافق مع محللات ومُشغلات ONNX المختلفة. إذا لم يتم تعيينه، فإنه يستخدم أحدث إصدار مدعوم.
workspacefloat أو NoneNoneيُعيّن الحد الأقصى لحجم مساحة العمل بـ GiB لتحسينات TensorRT، مما يوازن بين استخدام الذاكرة والأداء. استخدم None للتخصيص التلقائي بواسطة TensorRT حتى الحد الأقصى للجهاز.
nmsboolFalseيضيف إلغاء القمع غير الأقصى (NMS) إلى النموذج المُصدَّر عندما يكون مدعومًا (انظر تنسيقات التصدير)، مما يحسن كفاءة معالجة الكشف اللاحقة. غير متاح لنماذج end2end. بالنسبة لـ CoreML، مدعوم فقط لنماذج الكشف.
conffloatNoneعتبة الثقة المستخدمة في أي مكان يتم فيه إنشاء NMS وقت التصدير: صادرات nms=True؛ صادرات الكشف التي ليست من طرف إلى طرف لـ Hailo؛ وصادرات الكشف وتحديد الوضع والتقسيم لـ IMX، والتي تفرض nms=True داخليًا. تعود افتراضيًا إلى 0.25 عند عدم التحديد، باستثناء صادرات IMX، التي تعود افتراضيًا إلى 0.001.
ioufloat0.7عتبة IoU المستخدمة في أي مكان يتم فيه إنشاء NMS وقت التصدير: صادرات nms=True؛ صادرات الكشف التي ليست من طرف إلى طرف لـ Hailo؛ وصادرات الكشف وتحديد الوضع والتقسيم لـ IMX، والتي تفرض nms=True داخليًا.
max_detint300الحد الأقصى لعدد الاكتشافات المحتفظ بها في مخرجات النموذج المصدر. ينطبق على صادرات nms=True في كل تنسيق باستثناء CoreML، الذي لا يحتوي خط أنابيب NMS الخاص به على حد أقصى للاكتشاف، بالإضافة إلى صادرات الكشف من طرف إلى طرف الخالية من NMS (YOLO26 وYOLOv10، والمقيدة بعدد المراسي المتاحة) وصادرات الكشف وتحديد الوضع والتقسيم لـ IMX.
agnostic_nmsboolFalseيُفَعِّل NMS المستقل عن الفئة أينما تم إنشاء NMS وقت التصدير من خلال خط أنابيب nms=True القياسي، بما في ذلك مرحلة NMS الخاصة بـ CoreML، حيث يكتم الصناديق المتراكبة ذات النقاط الأقل عبر الفئات المختلفة بدلاً من الفئة نفسها فقط. لا يتم دعم ذلك بواسطة تكوينات NMS التي تم إنشاؤها بواسطة Hailo أو IMX، والتي ليس لها خيار مستقل عن الفئة وتظل واعية بالفئة بغض النظر عن هذا العلامة. كما أنه مدمج في عمليات التصدير ذات النهاية إلى النهاية الخالية من NMS (YOLO26، YOLOv10)، حيث يمنع فقط ظهور نفس الاكتشاف تحت تسميات فئات متعددة (نسخ متطابقة IoU=1.0)، وليس كتم عتبة IoU بين الصناديق المتميزة.
batchint1يحدد حجم استدلال دفعة نموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدَّر بالتزامن في وضع predict. بالنسبة لصادرات Edge TPU، يتم تعيين هذا تلقائيًا إلى 1.
devicestrNoneيحدد جهاز التصدير: وحدة معالجة رسومات GPU (device=0)، أو وحدة معالجة مركزية CPU (device=cpu)، أو MPS لسيليكون Apple (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.
verboseboolFalseيرفع مستوى سجل منشئ TensorRT إلى درجة الخطورة VERBOSE أثناء تصدير format='engine'. تتجاهله تنسيقات التصدير الأخرى.
datastrNoneالمسار إلى ملف YAML لـ مجموعة البيانات، وهو أساسي لمعايرة التكميم INT8؛ وبدلاً من ذلك، يقبل التصنيف دليل مجموعة البيانات أو اسم مجموعة بيانات مدمج. إذا لم يتم تحديده مع تفعيل INT8، فإن Ultralytics يختار مجموعة بيانات معايرة خاصة بالمهمة حيثما لزم الأمر، أو يرجع إلى مجموعة بيانات افتراضية لمهمة النموذج.
splitstr'val'تقسيم مجموعة البيانات ('train'، أو 'val'، أو 'test') المستخدم لبناء مُحمِّل بيانات معايرة التكميم INT8 من data.
fractionfloat أو int أو list1.0الجزئية الفرعية لمجموعة البيانات المستخدمة لمعايرة INT8: نسبة، أو عدد صور، أو نسب/أعداد [train, val]. يحدد الرقم الصحيح 1 صورة واحدة، بينما يحدد الرقم العشري 1.0 كل الصور. تقيد القائمة train أو val؛ بينما تظل test كاملة.
end2endboolNoneيتجاوز وضع النهاية إلى النهاية في نماذج YOLO التي تدعم الاستدلال الخالي من NMS (YOLO26، YOLOv10). يتيح لك تعيينه إلى False تصدير هذه النماذج لتكون متوافقة مع خط أنابيب المعالجة اللاحقة القائم على NMS التقليدي. انظر دليل الكشف من النهاية إلى النهاية للحصول على التفاصيل.

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

دليل التصدير

إعدادات الحلول#

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

الوسيطالنوعالافتراضيالوصف
modelstrNoneالمسار إلى ملف نموذج Ultralytics YOLO.
regionlist أو dictNoneالنقاط التي تحدد منطقة الاهتمام، إما قائمة من صفوف (x, y) أو قاموس يربط أسماء المناطق بقوائم النقاط لمناطق متعددة (RegionCounter فقط). عندما يكون None، تتراجع الحلول التي تتطلب منطقة إلى افتراضي مُحدد مسبقًا.
show_inboolTrueعلامة للتحكم في عرض عدد الكائنات الداخلة في بث الفيديو.
show_outboolTrueعلامة للتحكم في عرض عدد الكائنات الخارجة في بث الفيديو.
analytics_typestr'line'نوع الرسم البياني، أي line، أو bar، أو area، أو pie.
colormapintcv2.COLORMAP_DEEPGREENخريطة الألوان لاستخدامها في الخريطة الحرارية.
line_widthint2سمك الخط للمربعات والنقاط الرئيسية والعدادات التي ترسمها الحلول.
verboseboolTrueيمكّن سجل الحلول لكل إطار لشكل الإدخال، وعدد الفئات، وسرعة المعالجة. استدعاء التتبع بحد ذاته صامت دائماً.
json_filestrNoneالمسار إلى ملف JSON الذي يحتوي على جميع بيانات إحداثيات مواقف السيارات.
up_anglefloat145.0عتبة الزاوية لوضعية 'للأعلى'.
kptslist[int]'[6, 8, 10]'قائمة من ثلاثة فهارس نقاط مفصلية تستخدم لمراقبة التمارين. تتوافق هذه النقاط مع مفاصل الجسم أو أجزائه، مثل الكتفين والمرفقين والمعصمين، لتمارين مثل الضغط، العقلة، القرفصاء، وتمارين البطن.
down_angleint90عتبة الزاوية لوضعية 'للأسفل'.
blur_ratiofloat0.5يضبط نسبة شدة التمويه، مع القيم في النطاق 0.1 - 1.0.
crop_dirstr'cropped-detections'اسم الدليل لتخزين الاكتشافات المقتطعة.
recordsint5إجمالي عدد الاكتشافات لإطلاق رسالة بريد إلكتروني مع نظام الإنذار الأمني.
vision_pointtuple[int, int](20, 20)النقطة التي ستتتبع فيها الرؤية الكائنات وترسم المسارات باستخدام حل VisionEye.
sourcestrNoneالمسار إلى مصدر الإدخال (فيديو، RTSP، إلخ). يمكن استخدامه فقط مع واجهة سطر الأوامر (CLI) للحلول.
figsizetuple[float, float](12.8, 7.2)حجم الشكل لرسوم التحليلات البيانية مثل الخرائط الحرارية أو الرسوم البيانية.
fpsfloat30.0عدد الإطارات في الثانية المستخدم لحسابات السرعة.
max_histint5أقصى عدد من النقاط التاريخية لتتبع كل كائن لحسابات السرعة/الاتجاه.
meter_per_pixelfloat0.05عامل القياس المستخدم لتحويل المسافة بالبكسل إلى وحدات واقعية.
max_speedint120حد السرعة الأقصى في التراكبات المرئية (يستخدم في التنبيهات).
datastr'images'المسار إلى دليل الصور المستخدم للبحث عن التشابه.
imgszint640حجم صورة الإدخال لاستدلال النموذج.

دليل الحلول

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

تقنيات تعزيز البيانات ضرورية لتحسين متانة نموذج YOLO وأدائه عن طريق إدخال التباين في بيانات التدريب، مما يساعد النموذج على التعميم بشكل أفضل على البيانات غير المرئية. يحدد الجدول التالي الغرض والتأثير لكل وسيطة تعزيز:

الوسيطالنوعالافتراضيالمهام المدعومةالنطاقالوصف
hsv_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يضبط تدرج لون الصورة بجزء من عجلة الألوان، مما يدخل تبايناً لونياً. يساعد النموذج على التعميم عبر ظروف الإضاءة المختلفة.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يغير تشبع الصورة بجزء معين، مما يؤثر على كثافة الألوان. مفيد لمحاكاة ظروف بيئية مختلفة.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يعدل قيمة (سطوع) الصورة بجزء معين، مما يساعد النموذج على الأداء الجيد في ظل ظروف إضاءة متنوعة.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180يقوم بتدوير الصورة عشوائياً ضمن نطاق الدرجات المحدد، مما يحسن قدرة النموذج على التعرف على الكائنات في اتجاهات مختلفة.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0يقوم بإزاحة الصورة أفقياً ورأسياً بجزء من حجم الصورة، مما يساعد في تعلم اكتشاف الكائنات المرئية جزئياً.
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1، أو صفيف (min, max) صريح (ليس لـ classify)يقوم بتحجيم الصورة بمعامل زيادة، مما يحاكي الكائنات على مسافات مختلفة من الكاميرا.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180يقوم بقص الصورة (shear) بدرجة محددة، مما يحاكي تأثير رؤية الكائنات من زوايا مختلفة.
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001يطبق تحويلاً منظورياً عشوائياً على الصورة، مما يعزز قدرة النموذج على فهم الكائنات في الفضاء ثلاثي الأبعاد.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يقلب الصورة رأساً على عقب بالاحتمال المحدد، مما يزيد من تباين البيانات دون التأثير على خصائص الكائن.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0يقلب الصورة من اليسار إلى اليمين بالاحتمال المحدد، وهو مفيد لتعلم الكائنات المتناظرة وزيادة تنوع مجموعة البيانات.
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0يقلب قنوات الصورة من RGB إلى BGR بالاحتمال المحدد، وهو مفيد لزيادة المتانة ضد ترتيب القنوات غير الصحيح.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0يجمع أربع صور تدريبية في صورة واحدة، مما يحاكي تركيبات مشهد مختلفة وتفاعلات بين الكائنات. فعال للغاية لفهم المشاهد المعقدة.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0يمزج صورتين وملصقاتهما لإنشاء صورة مركبة. يعزز قدرة النموذج على التعميم من خلال إدخال ضجيج التسميات والتباين البصري.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0يجمع أجزاءً من صورتين، مما يخلق مزيجاً جزئياً مع الحفاظ على مناطق مميزة. يعزز متانة النموذج من خلال خلق سيناريوهات حجب.
copy_pastefloat0segment0.0 - 1.0نسبة الكائنات المؤهلة الملصقة؛ يعكس flip هذه الكائنات داخل الصورة، بينما يستخدم mixup أيضاً القيمة كاحتمالية تطبيق عبر الصور.
copy_paste_modestrflipsegment-يحدد استراتيجية copy-paste المراد استخدامها. تتضمن الخيارات 'flip' و 'mixup'.
auto_augmentstrrandaugmentclassify-يطبق سياسة تعزيز محددة مسبقًا ('randaugment' أو 'autoaugment' أو 'augmix') لتحسين أداء النموذج من خلال التنوع البصري.
erasingfloat0.4classify0.0 - 1.0يمسح عشوائياً مناطق من الصورة أثناء التدريب لتشجيع النموذج على التركيز على الميزات الأقل وضوحاً.
augmentationslistNonedetect, segment, semantic, depth, pose, obb-تحويلات Albumentations مخصصة لتعزيز البيانات المتقدم (Python API فقط). يقبل قائمة من كائنات التحويل لاحتياجات التعزيز المتخصصة.

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

دليل التعزيز

إعدادات التسجيل، ونقاط الحفظ، والتخطيط#

يعد التسجيل ونقاط الحفظ والتخطيط وإدارة الملفات أموراً مهمة عند تدريب نموذج YOLO:

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

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

الوسيطالافتراضيالوصف
projectNoneيحدد الدليل الجذر لحفظ عمليات التدريب. إذا لم يتم تحديده، يتم حفظ العمليات ضمن runs/<task>. يتم حفظ كل عملية في مجلد فرعي مستقل.
nameNoneيعرف اسم التجربة. إذا لم يتم تحديده، يستخدم YOLO اسم الوضع ويزيده لكل عملية (على سبيل المثال، train، train-2) لتجنب الكتابة فوق البيانات.
exist_okFalseيحدد ما إذا كان سيتم الكتابة فوق مجلد تجربة موجود. تسمح True بالكتابة فوقه؛ بينما تمنعها False.
plotsTrueيتحكم في إنشاء وحفظ مخططات التدريب والتحقق. اضبطه على True لإنشاء مخططات مثل منحنيات الخسارة، ومنحنيات الدقة-الاسترجاع، والتنبؤات العينة للتتبع البصري للأداء.
saveTrueيمكّن حفظ نقاط تحقق التدريب وأوزان النموذج النهائية. اضبطه على True لحفظ حالات النموذج بشكل دوري، مما يسمح باستئناف التدريب أو نشر النموذج.

ملف تهيئة مخصص#

قم بتحميل ملف YAML المحفوظ لإعادة استخدام مجموعة كاملة من الوسائط دون تمريرها مضمنة. تتجاوز وسائط cfg القيم من default.yaml، بينما تظل الوسائط الإضافية الممررة بجانبها ذات أولوية.

الوسيطالافتراضيالوصف
cfgNoneمسار إلى ملف YAML الذي تحل قيمه محل إدخالات default.yaml. راجع تجاوز ملف التكوين الافتراضي للحصول على مثال عملي لسطر الأوامر.

الأسئلة الشائعة#

  • حسّن الأداء عن طريق ضبط المعلمات الفائقة مثل حجم الدفعة، ومعدل التعلم، والزخم، واضمحلال الوزن. اضبط إعدادات تعزيز البيانات، وحدد المُحسِّن المناسب، واستخدم تقنيات مثل الإيقاف المبكر أو الدقة المختلطة. للحصول على التفاصيل، راجع دليل التدريب.

  • تشمل المعلمات الفائقة الرئيسية التي تؤثر على الدقة:

    • حجم الدفعة (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، أو وحدة NPU من Huawei Ascend (npu).

    للحصول على نظرة عامة كاملة، راجع إعدادات التنبؤ ودليل التنبؤ.

  • يقلل التدريب بـ الدقة المختلطة (amp=True) من استخدام الذاكرة ويسرع التدريب باستخدام FP16 و FP32. إنه مفيد لوحدات معالجة الرسومات الحديثة، مما يسمح بنماذج أكبر وحسابات أسرع دون فقدان كبير في الدقة. تعرف على المزيد في دليل التدريب.

التعليقات