الإعدادات#
تلعب إعدادات 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 | مسار ملف تكوين مجموعة البيانات (على سبيل المثال، coco8.yaml). يحتوي هذا الملف على معلمات خاصة بمجموعة البيانات، بما في ذلك مسارات تدريب وبيانات التحقق، وأسماء الفئات، وعدد الفئات. |
epochs | int | 100 | إجمالي عدد دورات التدريب (epochs). يمثل كل عصر (epoch) تمريرة كاملة على مجموعة البيانات بأكملها. يمكن أن يؤثر ضبط هذه القيمة على مدة التدريب وأداء النموذج. |
time | float | None | الحد الأقصى لوقت التدريب بالساعات. إذا تم تعيينه، فإنه يتجاوز وسيطة epochs، مما يسمح للتدريب بالتوقف تلقائيًا بعد المدة المحددة. مفيد لسيناريوهات التدريب المقيدة بالوقت. |
patience | int | 100 | عدد الدورات المراد انتظارها بدون تحسن في مقاييس التحقق قبل إيقاف التدريب مبكرًا. يساعد في منع التفراط في التخصيص (overfitting) عن طريق إيقاف التدريب عندما يستقر الأداء. |
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 (device=mps)، أو وحدة NPU من Huawei Ascend (device=npu:0 أو device=npu:0,1)، أو التحديد التلقائي لوحدة معالجة رسومات خاملة (device=-1) أو وحدات معالجة رسومات خاملة متعددة (device=[-1,-1]). |
workers | int | 8 | عدد خيوط العمال (worker threads) لتحميل البيانات (لكل RANK في حالة التدريب متعدد وحدات معالجة الرسومات). يؤثر على سرعة المعالجة المسبقة للبيانات وتغذيتها في النموذج، وهو مفيد بشكل خاص في الإعدادات متعددة وحدات معالجة الرسومات. |
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 للتحديد التلقائي استنادًا إلى تكوين النموذج. يؤثر على سرعة التقارب والاستقرار. |
seed | int | 0 | يضبط البذرة العشوائية (random seed) للتدريب، مما يضمن قابلية تكرار النتائج عبر التشغيلات بنفس التكوينات. |
deterministic | bool | True | يفرض استخدام خوارزمية حتمية، مما يضمن قابلية التكرار ولكنه قد يؤثر على الأداء والسرعة بسبب القيود على الخوارزميات غير الحتمية. |
verbose | bool | True | يُمكّن المخرجات التفصيلية أثناء التدريب، حيث يعرض أشرطة التقدم، والمقاييس لكل دورة (epoch)، ومعلومات تدريب إضافية في وحدة التحكم. |
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 | يستخدم جدولة معدل تعلم جيبية (cosine)، مما يؤدي إلى ضبط معدل التعلم باتباع منحنى جيب عبر العصور. يساعد في إدارة معدل التعلم لتقارب أفضل. |
close_mosaic | int | 10 | يعطل تعزيز بيانات الفسيفساء (mosaic) في آخر N عصور لتثبيت التدريب قبل الانتهاء. التعيين إلى 0 يعطل هذه الميزة. |
resume | bool | False | يستأنف التدريب من آخر نقطة تفتيش محفوظة. يقوم تلقائياً بتحميل أوزان النموذج، وحالة المُحسِّن، وعدد الدورات، مما يتيح متابعة التدريب بسلاسة. |
amp | bool | True | يمكّن التدريب بـ الدقة المختلطة التلقائية (AMP)، مما يقلل من استخدام الذاكرة وربما يسرع التدريب مع الحد الأدنى من التأثير على الدقة. |
fraction | float | 1.0 | يحدد جزءاً من مجموعة البيانات لاستخدامه في التدريب. يسمح بالتدريب على مجموعة فرعية من مجموعة البيانات الكاملة، وهو مفيد للتجارب أو عند محدودية الموارد. |
profile | bool | False | يُفعّل تتبع سرعات ONNX و TensorRT أثناء التدريب، وهو مفيد لتحسين نشر النموذج. |
freeze | int أو list | None | يُجمد أول N طبقات من النموذج أو طبقات محددة حسب الفهرس، مما يقلل من عدد المعلمات القابلة للتدريب. مفيد للضبط الدقيق أو التعلم النقلي. |
lr0 | float | 0.01 | معدل التعلم الأولي (أي SGD=1E-2، Adam=1E-3). يعد ضبط هذه القيمة أمرًا بالغ الأهمية لعملية التحسين، حيث يؤثر على مدى سرعة تحديث أوزان النموذج. |
lrf | float | 0.01 | معدل التعلم النهائي ككسر من المعدل الأولي = (lr0 * lrf)، يُستخدم بالkتزامن مع الجدولات لضبط معدل التعلم بمرور الوقت. |
momentum | float | 0.937 | عامل الزخم لـ SGD أو beta1 لـ مُحسِّنات Adam، مما يؤثر على دمج التدرجات السابقة في التحديث الحالي. |
weight_decay | float | 0.0005 | مصطلح الانتظام (regularization) L2، الذي يعاقب الأوزان الكبيرة لمنع الإفراط في التخصيص (overfitting). |
warmup_epochs | float | 3.0 | عدد الدورات لتهيئة معدل التعلم (warmup)، حيث يزداد معدل التعلم تدريجياً من قيمة منخفضة إلى معدل التعلم الأولي لتحقيق استقرار التدريب في بدايته. |
warmup_momentum | float | 0.8 | الزخم الأولي لمرحلة التهيئة، والذي يتم ضبطه تدريجياً ليصل إلى الزخم المحدد عبر فترة التهيئة. |
warmup_bias_lr | float | 0.1 | معدل التعلم لمعلمات التحيز (bias) أثناء مرحلة التهيئة، مما يساعد في استقرار تدريب النموذج في الدورات الأولى. |
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)، وهو مصطلح لتحديد موقع صندوق الإحاطة (bounding box) يقوم بحساب مسافات حواف الصندوق. |
pose | float | 12.0 | وزن خسارة الوضعية (pose loss) في النماذج المدربة لتقدير الوضعية، مما يؤثر على التركيز على التنبؤ الدقيق للنقاط الرئيسية للوضعية. |
kobj | float | 1.0 | وزن خسارة موضوعية النقاط الرئيسية في نماذج تقدير الوضعية، مما يوازن بين ثقة الكشف ودقة الوضعية. |
rle | float | 1.0 | وزن خسارة تقدير احتمالية اللوغاريتم المتبقية (residual log-likelihood estimation loss) في نماذج تقدير الوضعية، مما يؤثر على دقة تحديد مواقع النقاط الرئيسية. |
angle | float | 1.0 | وزن خسارة الزاوية في نماذج obb، مما يؤثر على دقة توقعات زاوية صندوق الإحاطة الموجه. |
dlog | float | 1.0 | وزن الخسارة اللوغاريتمية الثابتة للمقياس (SILog) في نماذج تقدير العمق، وهو المصدر الأساسي لدقة العمق. |
dgrad | float | 0.5 | وزن خسارة التدرج في نماذج تقدير العمق، مما يعاقب الأخطاء في حواف العمق ويشجع حدود سطح أكثر حدة. |
dlam | float | 1.0 | عامل تركيز التباين لخسارة SILog في نماذج تقدير العمق. يجعل 1.0 الخسارة ثابتة النطاق تمامًا، بينما يقللها 0.0 إلى log-RMSE العادي. |
nbs | int | 64 | حجم الدفعة الاسمي لتطبيع الخسارة. |
overlap_mask | bool | True | يحدد ما إذا كان يجب دمج أقنعة الكائنات في قناع واحد للتدريب، أو الاحتفاظ بها منفصلة لكل كائن. في حالة التداخل، يتم وضع القناع الأصغر فوق القناع الأكبر أثناء الدمج. |
mask_ratio | int | 4 | نسبة التقليص لأقنعة التجزئة (segmentation masks)، مما يؤثر على دقة الأقنعة المستخدمة أثناء التدريب. |
dropout | float | 0.0 | معدل الإسقاط (dropout) للتنظيم في مهام التصنيف، مما يمنع الإفراط في التخصيص عن طريق حذف الوحدات عشوائياً أثناء التدريب. |
val | bool | True | يُفعّل التحقق أثناء التدريب، مما يسمح بالتقييم الدوري لأداء النموذج على مجموعة بيانات منفصلة. |
plots | bool | True | يُنشئ ويحفظ مخططات لمقاييس التدريب والتحقق، بالإضافة إلى أمثلة للتنبؤ، مما يوفر رؤى مرئية حول أداء النموذج وتقدم التعلم. |
compile | bool أو str | False | يمكّن تجميع رسم البياني PyTorch 2.x torch.compile باستخدام backend='inductor'. يقبل True ← "default"، False ← تعطيل، أو وضع نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يتراجع إلى الوضع الحماسي (eager) مع تحذير إذا كان غير مدعوم. |
channels_last | bool | False | يستخدم تنسيق الذاكرة channels_last (NHWC) لعمليات الالتفاف أثناء التدريب، مما يسّرع وحدات معالجة الرسومات CUDA Tensor Core دون أي تغيير في النتائج. يتم تجاهله تلقائياً على وحدة المعالجة المركزية (CPU) و MPS، حيث لا يقدم أي فائدة. |
max_det | int | 300 | يحدد الحد الأقصى لعدد الكائنات المحتفظ بها أثناء مرحلة التحقق من التدريب. |
توفر وسيطة batch ثلاثة خيارات للتكوين:
- حجم الدفعة الثابت: حدد عدد الصور لكل دفعة باستخدام عدد صحيح (على سبيل المثال،
batch=16). - الوضع التلقائي (60% من ذاكرة وحدة معالجة الرسومات): استخدم
batch=-1للضبط التلقائي لتصل إلى حوالي 60% من استخدام ذاكرة CUDA. - الوضع التلقائي مع كسر الاستخدام: قم بتعيين كسر (على سبيل المثال،
batch=0.70) للضبط بناءً على استخدام مُحدد لذاكرة وحدة معالجة الرسومات.
إعدادات التنبؤ#
تتضمن إعدادات التنبؤ لنماذج 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" استدلال FP16 على وحدات معالجة الرسومات المدعومة؛ ويعتبر 32/"fp32"/غير المعين هو FP32. يتم تكوين تقييس INT8/PTQ أثناء التصدير، ثم يُستخدم عن طريق تحميل النموذج المُصدَّر. يحل محل علامة half المُهملة. |
device | str | None | يحدد جهاز الاستدلال (على سبيل المثال، cpu، أو cuda:0، أو 0، أو npu أو npu:0). يسمح للمستخدمين بالاختيار بين وحدة معالجة مركزية CPU، أو وحدة معالجة رسومات GPU محددة، أو وحدة NPU من Huawei Ascend، أو أجهزة حسابية أخرى لتنفيذ النموذج. |
batch | int | 1 | يحدد حجم الدفعة للاستدلال (يعمل فقط عندما يكون المصدر دليلًا أو ملف فيديو أو ملف .txt). يمكن أن يوفر حجم دفعة أكبر إنتاجية أعلى، مما يقصر إجمالي الوقت اللازم للاستدلال. |
max_det | int | 300 | الحد الأقصى لعدد الاكتشافات المسموح به لكل صورة. يحد من إجمالي عدد الكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات المفرطة في المشاهد الكثيفة. |
vid_stride | int | 1 | خطوة الإطار لمدخلات الفيديو. يسمح بتخطي الإطارات في الفيديوهات لتسريع المعالجة على حساب الدقة الزمنية. تعالج القيمة 1 كل إطار، بينما تتخطى القيم الأعلى الإطارات. |
stream_buffer | bool | False | يحدد ما إذا كان سيتم وضع الإطارات الواردة في طابور لبث الفيديو. إذا كان False، يتم إسقاط الإطارات القديمة لاستيعاب الإطارات الجديدة (متحسن لتطبيقات الوقت الفعلي). إذا كان True، فإنه يضع الإطارات الجديدة في مخزن مؤقت، مما يضمن عدم تخطي أي إطارات، ولكنه سيسبب تأخيرًا (latency) إذا كان معدل الإطارات للاستدلال أقل من معدل إطارات البث. |
visualize | bool | False | يحفظ خريطة حرارية لتنشيط الفئة بجوار كل تنبؤ، مما يوضح البكسلات التي رفعت درجات الفئة المتنبأ بها. يحترم conf وclasses، لذا يحدد classes=[0] تلك الفئة فقط. متاح فقط لنماذج PyTorch. |
augment | bool | False | يُمكن زيادة وقت الاختبار (TTA) للتنبؤات، مما قد يحسن متانة الاكتشاف على حساب سرعة الاستدلال. |
agnostic_nms | bool | False | يُمكن كبت غير الأعظمية (NMS) غير المرتبط بالفئة، والذي يدمج الصناديق المتداخلة للفئات المختلفة. مفيد في سيناريوهات الاكتشاف متعدد الفئات حيث يكون تداخل الفئة شائعاً. بالنسبة للنماذج الشاملة (YOLO26، YOLOv10)، هذا يمنع فقط ظهور نفس الاكتشاف بتسميات فئة متعددة (تكرارات IoU=1.0) ولا يقوم بكبت يعتمد على عتبة IoU بين الصناديق المميزة. |
classes | list[int] | None | يُصفي التنبؤات إلى مجموعة من معرفات الفئات. سيتم إرجاع الاكتشافات التي تنتمي إلى الفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الاكتشاف متعدد الفئات. |
retina_masks | bool | False | يُرجع أقنعة تجزئة عالية الدقة. ستتطابق الأقنعة المُرجعة (masks.data) مع حجم الصورة الأصلي إذا تم تمكينها. إذا تم تعطيلها، فستكون لها حجم الصورة المستخدم أثناء الاستدلال. |
embed | list[int] | None | يحدد الطبقات التي يتم منها استخراج متجهات الميزات أو التضمينات (embeddings). استخدم model.embed(source) لتضمينات الطبقة قبل الأخيرة، أو model.predict(source, embed=[layer]) لتحديد طبقات معين. مفيد للمهام لاحقة مثل التجميع أو البحث عن التشابه. |
project | str | None | اسم مجلد المشروع حيث يتم حفظ مخرجات التنبؤ إذا تم تمكين save. |
name | str | None | اسم تشغيل التنبؤ. يُستخدم لإنشاء مجلد فرعي داخل مجلد المشروع، حيث يتم تخزين مخرجات التنبؤ إذا تم تمكين save. |
stream | bool | False | يُمكّن المعالجة الموفرة للذاكرة للفيديوهات الطويلة أو الصور العديدة عن طريق إرجاع مولد لكائنات النتائج بدلاً من تحميل جميع الإطارات في الذاكرة دفعة واحدة. |
verbose | bool | True | يتحكم في ما إذا كان يجب عرض سجلات الاستدلال التفصيلية في الطرفية، مما يوفر ملاحظات في الوقت الفعلي حول عملية التنبؤ. |
compile | bool أو str | False | يمكّن تجميع رسم البياني PyTorch 2.x torch.compile باستخدام backend='inductor'. يقبل True ← "default"، False ← تعطيل، أو وضع نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يتراجع إلى الوضع الحماسي (eager) مع تحذير إذا كان غير مدعوم. |
channels_last | bool | False | يستخدم تنسيق الذاكرة channels_last (NHWC) لعمليات الالتفاف أثناء الاستدلال، مما يسّرع وحدات معالجة الرسومات CUDA Tensor Core دون أي تغيير في النتائج. ينطبق على نماذج PyTorch الأصلية فقط؛ ويتم تجاهله لوحدة المعالجة المركزية (CPU)، و MPS، والتنسيقات المصدرة مثل TensorRT و ONNX. |
end2end | bool | None | يتجاوز وضع النهاية إلى النهاية في نماذج YOLO التي تدعم الاستدلال الخالي من NMS (مثل YOLO26 وYOLOv10). يتيح لك تعيينه إلى False إجراء التنبؤ باستخدام خط أنابيب NMS التقليدي، مما يتيح لك أيضًا الاستفادة من وسيطة iou. انظر دليل الكشف من النهاية إلى النهاية للحصول على التفاصيل. |
وسائط التصور:
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
show | bool | False | إذا كان True، يعرض الصور أو الفيديوهات المشروحة في نافذة. مفيد للحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار. |
save | bool | False or True | يُمكن حفظ الصور أو الفيديوهات المرفقة في ملفات. مفيد للتوثيق أو المزيد من التحليل أو مشاركة النتائج. الافتراضي هو True عند استخدام CLI و False عند الاستخدام في Python. |
save_frames | bool | False | عند معالجة الفيديوهات، يحفظ الإطارات الفردية كصور. مفيد لاستخراج إطارات معينة أو للتحليل التفصيلي إطاراً بإطار. |
save_txt | bool | False | يحفظ نتائج الكشف في ملف نصي، باتباع التنسيق [class] [x_center] [y_center] [width] [height] [confidence]. مفيد للتكامل مع أدوات التحليل الأخرى. |
save_conf | bool | False | يتضمن درجات الثقة في الملفات النصية المحفوظة. يعزز التفاصيل المتاحة للمعالجة اللاحقة والتحليل. |
save_crop | bool | False | يحفظ صوراً مقصوصة للاكتشافات. مفيد لزيادة مجموعة البيانات أو التحليل أو إنشاء مجموعات بيانات مركزة لكائنات معينة. |
show_labels | bool | True | يعرض تصنيفات كل اكتشاف في المخرجات المرئية. يوفر فهماً فورياً للكائنات المكتشفة. |
show_conf | bool | True | يعرض درجة الثقة لكل اكتشاف بجانب التصنيف. يوفر رؤية حول مدى يقين النموذج في كل اكتشاف. |
show_boxes | bool | True | يرسم صناديق الإحاطة حول الكائنات المكتشفة. ضروري للتحديد البصري وموقع الكائنات في الصور أو إطارات الفيديو. |
line_width | int or None | None | يحدد عرض خط صناديق الإحاطة. إذا كان None، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح. |
إعدادات التحقق#
تتضمن إعدادات التحقق لنماذج YOLO المعلمات الفائقة والتكوينات لتقييم الأداء على مجموعة بيانات التحقق. تؤثر هذه الإعدادات على الأداء والسرعة والدقة. تشمل الإعدادات الشائعة حجم الدفعة، وتكرار التحقق، ومقاييس الأداء. يؤثر حجم وتكوين مجموعة بيانات التحقق، جنبًا إلى جنب مع المهمة المحددة، على العملية أيضًا.
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
data | str | None | يحدد مسار ملف تكوين مجموعة البيانات (على سبيل المثال، coco8.yaml). يجب أن يتضمن هذا الملف مسار بيانات التحقق. |
imgsz | int | 640 | يحدد حجم صور الإدخال. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة. قد تعمل الأحجام الأكبر على تحسين الدقة للكائنات الصغيرة ولكنها تزيد من وقت الحساب. |
batch | int | 16 | يعين عدد الصور في كل دفعة. تستخدم القيم الأعلى ذاكرة GPU بشكل أكثر كفاءة ولكنها تتطلب المزيد من VRAM. اضبط بناءً على موارد الأجهزة المتاحة. |
save_json | bool | False | إذا كان True، يحفظ النتائج في ملف JSON لمزيد من التحليل، أو التكامل مع أدوات أخرى، أو الإرسال إلى خوادم التقييم مثل COCO. |
conf | float | 0.001 | يُعيّن الحد الأدنى لعتبة الثقة للاكتشافات. تزيد القيم الأقل من الاستدعاء ولكنها قد تقدم المزيد من الإيجابيات الكاذبة. يُستخدم أثناء التحقق لحساب منحنيات الدقة والاستدعاء. الافتراضي هو 0.01 لتحقق OBB لتقليل استخدام الذاكرة. |
iou | float | 0.7 | يُعيّن عتبة التقاطع فوق الاتحاد لـ إلغاء القمع غير الأقصى. يتحكم في القضاء على الكشف المكرر. |
max_det | int | 300 | يحد من الحد الأقصى لعدد الاكتشافات لكل صورة. مفيد في المشاهد الكثيفة لمنع الاكتشافات المفرطة وإدارة موارد الحوسبة. |
quantize | int أو str | None | دقة التحقق: يُمكّن 16/"fp16" تحقق FP16 على وحدات معالجة الرسومات المدعومة؛ ويعتبر 32/"fp32"/غير المعين هو FP32. يتم تكوين تقييس INT8/PTQ أثناء التصدير، ثم يُستخدم عن طريق التحقق من النموذج المُصدَّر. يحل محل علامة half المُهملة. |
device | str | None | يحدد جهاز التحقق (cpu، أو cuda:0، أو npu، أو npu:0، إلخ). عندما يكون None، فإنه يحدد تلقائيًا أفضل جهاز متاح. يمكن تحديد وحدات معالجة رسومات CUDA متعددة مفصولة بفواصل. |
dnn | bool | False | في حال استخدام True لوحدة OpenCV DNN لاستدلال نموذج ONNX، مما يوفر بديلاً لطرق استدلال PyTorch. |
plots | bool | True | عند التعيين إلى True، يُنشئ ويحفظ مخططات التنبؤات مقابل الحقيقة الأرضية، ومصفوفات الارتباك، ومنحنيات PR للتقييم المرئي لأداء النموذج. |
classes | list[int] | None | يحدد قائمة بمعرفات الفئات للتقييم. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التقييم. |
rect | bool | True | إذا كان True، فيستخدم الاستدلال المستطيل للدفعة، مما يقلل الحشو وربما يزيد السرعة والكفاءة من خلال معالجة الصور في نسبة عرض إلى ارتفاعها الأصلية. |
split | str | 'val' | يحدد تقسيم مجموعة البيانات المراد استخدامه للتحقق (val، أو test، أو train). يتيح المرونة في اختيار قطاع البيانات لتقييم الأداء. |
project | str | None | اسم دليل المشروع حيث يتم حفظ مخرجات التحقق من الصحة. يساعد في تنظيم النتائج من تجارب أو نماذج مختلفة. |
name | str | None | اسم تشغيل التحقق من الصحة. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التحقق من الصحة. |
verbose | bool | True | إذا كان True، يعرض معلومات مفصلة أثناء عملية التحقق، بما في ذلك مقاييس كل فئة، وتقدم الدفعة، ومعلومات تصحيح الأخطاء الإضافية. |
save_txt | bool | False | إذا كان True، يحفظ نتائج الكشف في ملفات نصية، مع ملف واحد لكل صورة، وهو مفيد لمزيد من التحليل، أو المعالجة اللاحقة المخصصة، أو التكامل مع أنظمة أخرى. |
save_conf | bool | False | إذا كان True، يتضمن قيم الثقة في الملفات النصية المحفوظة عند تمكين save_txt، مما يوفر إخراجًا أكثر تفصيلًا للتحليل والتصفية. |
workers | int | 8 | عدد سلاسل عمليات العامل (worker threads) لتحميل البيانات. القيم الأعلى يمكن أن تسرع معالجة البيانات ولكن قد تزيد من استخدام CPU. الضبط على 0 يستخدم السلسلة الرئيسية، والتي يمكن أن تكون أكثر استقرارًا في بعض البيئات. |
augment | bool | False | يفعل تعزيز وقت الاختبار (TTA) أثناء التحقق من الصحة، مما قد يحسن دقة الكشف على حساب سرعة الاستدلال من خلال تشغيل الاستدلال على نسخ معدلة من المدخلات. |
agnostic_nms | bool | False | يمكّن إلغاء القمع غير الأقصى المستقل عن الفئة، والذي يدمج الصناديق المتداخلة بغض النظر عن فئتها المتنبأ بها. مفيد للتطبيقات المركزة على المثيلات. بالنسبة للنماذج من النهاية إلى النهاية (YOLO26، YOLOv10)، يمنع هذا فقط نفس الكشف من الظهور بتسميات فئات متعددة (تكرارات IoU=1.0) ولا يجري قمعًا قائمًا على عتبة IoU بين الصناديق المميزة. |
single_cls | bool | False | يعامل جميع الفئات كفئة واحدة أثناء التحقق من الصحة. مفيد لتقييم أداء النموذج في مهام الكشف الثنائي أو عندما لا تكون الفروق بين الفئات مهمة. |
visualize | bool | False | يصور الحقائق الأرضية، والإيجابيات الحقيقية، والإيجابيات الكاذبة، والسلبيات الكاذبة لكل صورة. مفيد لتصحيح الأخطاء وتفسير النموذج. |
show_labels | bool | True | يعرض تسميات الفئات في تصورات التحقق عند visualize=True. اضبط على False لعرض أنظف للمباريات والأخطاء. |
show_conf | bool | True | يعرض درجات الثقة في تصورات التحقق عند visualize=True. اضبط على False لعرض أنظف للمباريات والأخطاء. |
compile | bool أو str | False | يمكّن تجميع رسم البياني PyTorch 2.x torch.compile باستخدام backend='inductor'. يقبل True ← "default"، False ← تعطيل، أو وضع نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يتراجع إلى الوضع الحماسي (eager) مع تحذير إذا كان غير مدعوم. |
channels_last | bool | False | يستخدم تنسيق الذاكرة channels_last (NHWC) لعمليات الالتفاف أثناء التحقق من الصحة، مما يسرع وحدات معالجة الرسومات CUDA Tensor Core دون أي تغيير في النتائج. ينطبق على نماذج PyTorch الأصلية فقط؛ ويتم تجاهله مع وحدة المعالجة المركزية CPU، وMPS، والتنسيقات المصدرة مثل TensorRT وONNX. |
end2end | bool | None | يتجاوز وضع النهاية إلى النهاية في نماذج YOLO التي تدعم الاستدلال الخالي من NMS (YOLO26، YOLOv10). يتيح لك تعيينه إلى False تشغيل التحقق باستخدام خط أنابيب NMS التقليدي، مما يتيح لك أيضًا الاستفادة من وسيطة iou. |
يُعد الضبط الدقيق والتجريب أمرًا بالغ الأهمية لضمان الأداء الأمثل واكتشاف ومنع التفراط في التخصيص (overfitting).
إعدادات التصدير#
تتضمن إعدادات التصدير لنماذج YOLO تهيئات لحفظ أو تصدير النموذج للاستخدام في بيئات مختلفة. تؤثر هذه الإعدادات على الأداء والحجم والتوافق. تشمل الإعدادات الرئيسية تنسيق الملف المصدر (مثل ONNX، TensorFlow SavedModel)، والجهاز المستهدف (مثل CPU، GPU)، وميزات مثل الأقنعة. كما تؤثر مهمة النموذج وقيود البيئة الوجهة على عملية التصدير.
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'torchscript' | التنسيق المستهدف للنموذج المُصدَّر، مثل 'onnx'، أو 'torchscript'، أو 'engine' (TensorRT)، أو غيرها. يتيح كل تنسيق التوافق مع بيئات نشر مختلفة. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة (على سبيل المثال، 640 لـ 640×640) أو صفيفًا (height, width) لأبعاد محددة. |
keras | bool | False | يمكّن التصدير إلى تنسيق Keras لـ TensorFlow SavedModel، مما يوفر التوافق مع خدمة TensorFlow وواجهات برمجة التطبيقات (APIs). |
optimize | bool | False | تمكين تحسين المترجم (compiler optimization) بشكل أعلى لـ DEEPX، مما يقلل من زمن انتقال الاستدلال (inference latency) بينما يزيد من وقت التجميع (compilation time). |
quantize | int أو str | None | دقة التقييس: 16 (FP16، يقلل من حجم النموذج ويمكن أن يسرع الاستدلال على الأجهزة المدعومة) أو 8 (INT8/PTQ، يضغط النموذج بشكل أكبر مع الحد الأدنى من فقدان الدقة، في المقام الأول لـ أجهزة الحافة (edge devices)؛ يحتاج إلى معايرة data/fraction)؛ يعتبر 32/غير المعين هو FP32. تقبل تنسيقات التصدير التي تدعم دقة الوزن/التنشيط المختلطة أيضًا تدوين '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 | يحدد إصدار opset لـ ONNX للصادرات التي تبني رسم بياني ONNX (انظر تنسيقات التصدير)، للتوافق مع محللات ومُشغلات ONNX المختلفة. إذا لم يتم تعيينه، فإنه يستخدم أحدث إصدار مدعوم. |
workspace | float أو None | None | يُعيّن الحد الأقصى لحجم مساحة العمل بـ GiB لتحسينات TensorRT، مما يوازن بين استخدام الذاكرة والأداء. استخدم None للتخصيص التلقائي بواسطة TensorRT حتى الحد الأقصى للجهاز. |
nms | bool | False | يضيف إلغاء القمع غير الأقصى (NMS) إلى النموذج المُصدَّر عندما يكون مدعومًا (انظر تنسيقات التصدير)، مما يحسن كفاءة معالجة الكشف اللاحقة. غير متاح لنماذج end2end. بالنسبة لـ CoreML، مدعوم فقط لنماذج الكشف. |
batch | int | 1 | يحدد حجم استدلال دفعة نموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدَّر بالتزامن في وضع predict. بالنسبة لصادرات Edge TPU، يتم تعيين هذا تلقائيًا إلى 1. |
device | str | None | يحدد جهاز التصدير: وحدة معالجة رسومات 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. |
data | str | None | مسار ملف تكوين مجموعة البيانات، وهو أساسي لمعايرة تقييس INT8. إذا لم يتم تحديده مع تمكين INT8، فتحدد Ultralytics مجموعة بيانات معايرة خاصة بالمهمة حيثما لزم الأمر، أو تتراجع إلى مجموعة البيانات الافتراضية لمهمة النموذج. |
fraction | float | 1.0 | يحدد جزءاً من مجموعة البيانات لاستخدامه في معايرة تكميم INT8. يسمح بالمعايرة على مجموعة فرعية من مجموعة البيانات الكاملة، وهو مفيد للتجارب أو عندما تكون الموارد محدودة. إذا لم يتم تحديده مع تمكين INT8، فسيتم استخدام مجموعة البيانات الكاملة. |
end2end | bool | None | يتجاوز وضع النهاية إلى النهاية في نماذج YOLO التي تدعم الاستدلال الخالي من NMS (YOLO26، YOLOv10). يتيح لك تعيينه إلى False تصدير هذه النماذج لتكون متوافقة مع خط أنابيب المعالجة اللاحقة القائم على NMS التقليدي. انظر دليل الكشف من النهاية إلى النهاية للحصول على التفاصيل. |
تضمن التهيئة المدروسة تحسين النموذج المصدر لحالة استخدامه وعمله بفعالية في البيئة المستهدفة.
إعدادات الحلول#
توفر إعدادات تهيئة حلول 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 | خريطة الألوان لاستخدامها في الخريطة الحرارية. |
json_file | str | None | المسار إلى ملف JSON الذي يحتوي على جميع بيانات إحداثيات مواقف السيارات. |
up_angle | float | 145.0 | عتبة الزاوية لوضعية 'للأعلى'. |
kpts | list[int] | '[6, 8, 10]' | قائمة من ثلاثة فهارس نقاط مفصلية تستخدم لمراقبة التمارين. تتوافق هذه النقاط مع مفاصل الجسم أو أجزائه، مثل الكتفين والمرفقين والمعصمين، لتمارين مثل الضغط، العقلة، القرفصاء، وتمارين البطن. |
down_angle | int | 90 | عتبة الزاوية لوضعية 'للأسفل'. |
blur_ratio | float | 0.5 | يضبط نسبة شدة التمويه، مع القيم في النطاق 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | اسم الدليل لتخزين الاكتشافات المقتطعة. |
records | int | 5 | إجمالي عدد الاكتشافات لإطلاق رسالة بريد إلكتروني مع نظام الإنذار الأمني. |
vision_point | tuple[int, int] | (20, 20) | النقطة التي ستتتبع فيها الرؤية الكائنات وترسم المسارات باستخدام حل VisionEye. |
source | str | None | المسار إلى مصدر الإدخال (فيديو، RTSP، إلخ). يمكن استخدامه فقط مع واجهة سطر الأوامر (CLI) للحلول. |
figsize | tuple[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 | يضبط تدرج لون الصورة بجزء من عجلة الألوان، مما يدخل تبايناً لونياً. يساعد النموذج على التعميم عبر ظروف الإضاءة المختلفة. |
hsv_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | يغير تشبع الصورة بجزء معين، مما يؤثر على كثافة الألوان. مفيد لمحاكاة ظروف بيئية مختلفة. |
hsv_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | يعدل قيمة (سطوع) الصورة بجزء معين، مما يساعد النموذج على الأداء الجيد في ظل ظروف إضاءة متنوعة. |
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 | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 | يقوم بتحجيم الصورة بمعامل زيادة، مما يحاكي الكائنات على مسافات مختلفة من الكاميرا. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | يقوم بقص الصورة (shear) بدرجة محددة، مما يحاكي تأثير رؤية الكائنات من زوايا مختلفة. |
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 | 0.0 - 1.0 | ينسخ ويلصق الكائنات عبر الصور لزيادة حالات الكائنات. |
copy_paste_mode | str | flip | segment | - | يحدد استراتيجية copy-paste المراد استخدامها. تتضمن الخيارات 'flip' و 'mixup'. |
auto_augment | str | randaugment | classify | - | يطبق سياسة تعزيز محددة مسبقًا ('randaugment' أو 'autoaugment' أو 'augmix') لتحسين أداء النموذج من خلال التنوع البصري. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | يمسح عشوائياً مناطق من الصورة أثناء التدريب لتشجيع النموذج على التركيز على الميزات الأقل وضوحاً. |
augmentations | list | None | detect, segment, semantic, pose, obb | - | تحويلات Albumentations مخصصة لتعزيز البيانات المتقدم (Python API فقط). يقبل قائمة من كائنات التحويل لاحتياجات التعزيز المتخصصة. |
اضبط هذه الإعدادات لتلبية متطلبات مجموعة البيانات والمهمة. يمكن أن يساعد التجريب بقيم مختلفة في العثور على استراتيجية التعزيز الأمثل للحصول على أفضل أداء للنموذج.
إعدادات التسجيل، ونقاط الحفظ، والتخطيط#
يعد التسجيل ونقاط الحفظ والتخطيط وإدارة الملفات أموراً مهمة عند تدريب نموذج 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. راجع تجاوز ملف التكوين الافتراضي للحصول على مثال عملي لسطر الأوامر. |
الأسئلة الشائعة#
كيف يمكنني تحسين أداء نموذج YOLO الخاص بي أثناء التدريب؟#
حسّن الأداء عن طريق ضبط المعلمات الفائقة مثل حجم الدفعة، ومعدل التعلم، والزخم، واضمحلال الوزن. اضبط إعدادات تعزيز البيانات، وحدد المُحسِّن المناسب، واستخدم تقنيات مثل الإيقاف المبكر أو الدقة المختلطة. للحصول على التفاصيل، راجع دليل التدريب.
ما هي المعلمات الفائقة الرئيسية لدقة نموذج YOLO؟#
تشمل المعلمات الفائقة الرئيسية التي تؤثر على الدقة:
- حجم الدفعة (
batch): الأحجام الأكبر يمكن أن تثبت التدريب ولكنها تحتاج إلى ذاكرة أكبر. - معدل التعلم (
lr0): المعدلات الأصغر توفر تعديلات دقيقة ولكن تقاربًا أبطأ. - الزخم (
momentum): يسرع متجهات التدرج، مما يخفف التذبذبات. - حجم الصورة (
imgsz): الأحجام الأكبر تحسن الدقة ولكنها تزيد من الحمل الحسابي.
اضبط هذه بناءً على مجموعة البيانات والأجهزة الخاصة بك. تعرف على المزيد في إعدادات التدريب.
كيف أقوم بضبط معدل التعلم لتدريب نموذج YOLO؟#
معدل التعلم (lr0) أمر بالغ الأهمية؛ ابدأ بـ 0.01 لـ SGD أو 0.001 لـ محسن Adam. راقب المقاييس وقم بالإضافة أو التعديل حسب الحاجة. استخدم مجدولات معدل التعلم الجيبية (cos_lr) أو الإحماء (warmup_epochs, warmup_momentum). التفاصيل موجودة في دليل التدريب.
ما هي إعدادات الاستدلال الافتراضية لنماذج YOLO؟#
تشمل الإعدادات الافتراضية:
- عتبة الثقة (
conf=0.25): الحد الأدنى للثقة لعمليات الاكتشاف. - عتبة IoU (
iou=0.7): من أجل القمع غير الأعظمي (NMS). - حجم الصورة (
imgsz=640): تغيير حجم صور الإدخال. - الجهاز (
device=None): يحدد وحدة المعالجة المركزية (CPU)، أو وحدة معالجة الرسومات (GPU)، أو Apple MPS، أو وحدة NPU من Huawei Ascend (npu).
للحصول على نظرة عامة كاملة، راجع إعدادات التنبؤ ودليل التنبؤ.
لماذا نستخدم تدريب الدقة المختلطة مع نماذج YOLO؟#
يقلل التدريب بـ الدقة المختلطة (amp=True) من استخدام الذاكرة ويسرع التدريب باستخدام FP16 و FP32. إنه مفيد لوحدات معالجة الرسومات الحديثة، مما يسمح بنماذج أكبر وحسابات أسرع دون فقدان كبير في الدقة. تعرف على المزيد في دليل التدريب.