استكشاف الأخطاء وإصلاحها الشائعة YOLO القضايا
مقدمة
This guide serves as a comprehensive aid for troubleshooting common issues encountered while working with YOLO11 on your Ultralytics projects. Navigating through these issues can be a breeze with the right guidance, ensuring your projects remain on track without unnecessary delays.
شاهد: Ultralytics YOLO11 Common Issues | Installation Errors, Model Training Issues
المشكلات الشائعة
أخطاء التثبيت
يمكن أن تنشأ أخطاء التثبيت لأسباب مختلفة ، مثل الإصدارات غير المتوافقة أو التبعيات المفقودة أو إعدادات البيئة غير الصحيحة. أولا ، تحقق للتأكد من قيامك بما يلي:
-
أنت تستخدم Python 3.8 أو أحدث على النحو الموصى به.
-
Ensure that you have the correct version of PyTorch (1.8 or later) installed.
-
ضع في اعتبارك استخدام البيئات الافتراضية لتجنب التعارضات.
-
اتبع دليل التثبيت الرسمي خطوة بخطوة.
بالإضافة إلى ذلك ، إليك بعض مشكلات التثبيت الشائعة التي واجهها المستخدمون ، إلى جانب الحلول الخاصة بهم:
-
Import Errors or Dependency Issues - If you're getting errors during the import of YOLO11, or you're having issues related to dependencies, consider the following troubleshooting steps:
-
تثبيت جديد: في بعض الأحيان ، يمكن أن يؤدي البدء بتثبيت جديد إلى حل المشكلات غير المتوقعة. خاصة مع مكتبات مثل Ultralytics، حيث قد تؤدي التحديثات إلى إدخال تغييرات على بنية شجرة الملفات أو وظائفها.
-
التحديث بانتظام: تأكد من أنك تستخدم أحدث إصدار من المكتبة. قد لا تكون الإصدارات القديمة متوافقة مع التحديثات الأخيرة، مما يؤدي إلى تعارضات أو مشكلات محتملة.
-
تحقق من التبعيات: تحقق من تثبيت جميع التبعيات المطلوبة بشكل صحيح وأنها من الإصدارات المتوافقة.
-
مراجعة التغييرات: إذا قمت في البداية باستنساخ إصدار أقدم أو تثبيته ، فكن على دراية بأن التحديثات المهمة قد تؤثر على بنية المكتبة أو وظائفها. ارجع دائما إلى الوثائق الرسمية أو سجلات التغيير لفهم أي تغييرات كبيرة.
-
تذكر أن الحفاظ على تحديث المكتبات والتبعيات أمر بالغ الأهمية للحصول على تجربة سلسة وخالية من الأخطاء.
-
-
Running YOLO11 on GPU - If you're having trouble running YOLO11 on GPU, consider the following troubleshooting steps:
-
التحقق من التوافق والتركيب CUDA: تأكد من أن جهازك GPU متوافق مع CUDA وأن CUDA مثبت بشكل صحيح. استخدم
nvidia-smi
للتحقق من حالة الإصدار NVIDIA GPU و CUDA . -
تحقق PyTorch و CUDA التكامل: تأكد من أن PyTorch يمكن الاستفادة من CUDA عن طريق تشغيل
import torch; print(torch.cuda.is_available())
في محطة طرفية Python . إذا عادت "صواب"، يتم إعداد PyTorch لاستخدام CUDA. -
تنشيط البيئة: تأكد من أنك في البيئة الصحيحة حيث يتم تثبيت جميع الحزم الضرورية.
-
قم بتحديث حزمك: قد لا تكون الحزم القديمة غير متوافقة مع GPU. حافظ على تحديثها.
-
Program Configuration: Check if the program or code specifies GPU usage. In YOLO11, this might be in the settings or configuration.
-
قضايا التدريب النموذجية
سيتناول هذا القسم المشكلات الشائعة التي تمت مواجهتها أثناء التدريب والتفسيرات والحلول الخاصة بكل منها.
التحقق من إعدادات التكوين
أصدرأنت غير متأكد مما إذا كانت إعدادات التكوين في .yaml
بشكل صحيح أثناء تدريب النموذج.
حلإعدادات التكوين في .yaml
يجب تطبيق الملف عند استخدام model.train()
دالة. للتأكد من تطبيق هذه الإعدادات بشكل صحيح، اتبع الخطوات التالية:
- تأكد من أن المسار إلى
.yaml
ملف التكوين صحيح. - تأكد من تمرير المسار إلى
.yaml
ك ملفdata
حجة عند الاتصالmodel.train()
، كما هو موضح أدناه:
تسريع التدريب باستخدام وحدات معالجة رسومات متعددة
مشكلة: التدريب بطيء على وحدة واحدة GPU ، وتريد تسريع العملية باستخدام وحدات معالجة رسومات متعددة.
Solution: Increasing the batch size can accelerate training, but it's essential to consider GPU memory capacity. To speed up training with multiple GPUs, follow these steps:
-
تأكد من توفر العديد من وحدات معالجة الرسومات.
-
قم بتعديل ملف تكوين .yaml الخاص بك لتحديد عدد وحدات معالجة الرسومات التي يجب استخدامها ، على سبيل المثال ، وحدات معالجة الرسومات: 4.
-
قم بزيادة حجم الدفعة وفقا لذلك للاستفادة الكاملة من وحدات معالجة الرسومات المتعددة دون تجاوز حدود الذاكرة.
-
قم بتعديل أمر التدريب الخاص بك لاستخدام وحدات معالجة رسومات متعددة:
# Adjust the batch size and other settings as needed to optimize training speed
model.train(data="/path/to/your/data.yaml", batch=32, multi_scale=True)
معلمات المراقبة المستمرة
المشكلة: تريد معرفة المعلمات التي يجب مراقبتها باستمرار أثناء التدريب ، بصرف النظر عن الخسارة.
الحل: على الرغم من أن الخسارة مقياس مهم يجب مراقبته ، إلا أنه من الضروري أيضا تتبع المقاييس الأخرى لتحسين أداء النموذج. تتضمن بعض المقاييس الرئيسية التي يجب مراقبتها أثناء التدريب ما يلي:
- دقة
- استذكر
- Mean Average Precision (mAP)
يمكنك الوصول إلى هذه المقاييس من سجلات التدريب أو باستخدام أدوات مثل TensorBoard أو wandb للتصور. يمكن أن يساعدك تنفيذ التوقف المبكر بناء على هذه المقاييس في تحقيق نتائج أفضل.
أدوات لتتبع تقدم التدريب
المشكلة: أنت تبحث عن توصيات بشأن أدوات لتتبع تقدم التدريب.
الحل: لتتبع تقدم التدريب وتصوره ، يمكنك التفكير في استخدام الأدوات التالية:
- TensorBoard: TensorBoard is a popular choice for visualizing training metrics, including loss, accuracy, and more. You can integrate it with your YOLO11 training process.
- Comet: Comet يوفر مجموعة أدوات شاملة لتتبع التجربة والمقارنة. يسمح لك بتتبع المقاييس والمعلمات الفائقة وحتى أوزان النموذج. التكامل مع YOLO النماذج واضحة أيضا ، حيث توفر لك نظرة عامة كاملة على دورة تجربتك.
- Ultralytics المحور: Ultralytics يوفر HUB بيئة متخصصة للتتبع YOLO النماذج، مما يمنحك نظاما أساسيا شاملا لإدارة المقاييس ومجموعات البيانات وحتى التعاون مع فريقك. نظرا لتركيزها المصمم على YOLO، فإنه يوفر المزيد من خيارات التتبع المخصصة.
تقدم كل من هذه الأدوات مجموعة المزايا الخاصة بها ، لذلك قد ترغب في مراعاة الاحتياجات المحددة لمشروعك عند اتخاذ القرار.
كيفية التحقق مما إذا كان التدريب يتم على GPU
المشكلة: قيمة "الجهاز" في سجلات التدريب هي "لاغية"، وأنت غير متأكد مما إذا كان التدريب يحدث على GPU.
الحل: عادةً ما تعني قيمة "الجهاز" التي تكون "فارغة" أن عملية التدريب يتم تعيينها لاستخدام GPU المتاح تلقائيًا، وهو السلوك الافتراضي. لضمان حدوث التدريب على GPU محدد، يمكنك تعيين قيمة 'الجهاز' يدويًا إلى فهرس GPU (على سبيل المثال، '0' لأول GPU) في ملف التكوين .yaml الخاص بك:
سيؤدي ذلك إلى تعيين عملية التدريب بشكل صريح إلى GPU المحدد. إذا كنت ترغب في التدريب على CPU ، قم بتعيين 'الجهاز' إلى 'cpu'.
راقب مجلد "التشغيل" بحثا عن السجلات والمقاييس لمراقبة تقدم التدريب بشكل فعال.
الاعتبارات الرئيسية للتدريب النموذجي الفعال
فيما يلي بعض الأشياء التي يجب وضعها في الاعتبار ، إذا كنت تواجه مشكلات تتعلق بتدريب النموذج.
تنسيق مجموعة البيانات والتسميات
-
Importance: The foundation of any machine learning model lies in the quality and format of the data it is trained on.
-
التوصية: تأكد من التزام مجموعة البيانات المخصصة والتصنيفات المرتبطة بها بالتنسيق المتوقع. من الضروري التحقق من دقة التعليقات التوضيحية وجودتها العالية. يمكن أن تؤدي التعليقات التوضيحية غير الصحيحة أو دون المستوى إلى إخراج عملية تعلم النموذج عن مسارها ، مما يؤدي إلى نتائج غير متوقعة.
تقارب النموذج
-
Importance: Achieving model convergence ensures that the model has sufficiently learned from the training data.
-
Recommendation: When training a model 'from scratch', it's vital to ensure that the model reaches a satisfactory level of convergence. This might necessitate a longer training duration, with more epochs, compared to when you're fine-tuning an existing model.
Learning Rate and Batch Size
-
الأهمية: تلعب هذه المعلمات الفائقة دورا محوريا في تحديد كيفية تحديث النموذج لأوزانه أثناء التدريب.
-
توصية: قم بتقييم ما إذا كان معدل التعلم المختار وحجم الدفعة هما الأمثل لمجموعة البيانات المحددة الخاصة بك. يمكن للمعلمات التي لا تتوافق مع خصائص مجموعة البيانات أن تعيق أداء النموذج.
توزيع الصف
-
الأهمية: يمكن أن يؤثر توزيع الفئات في مجموعة البيانات الخاصة بك على ميول التنبؤ الخاصة بالنموذج.
-
توصية: قم بتقييم توزيع الفئات بانتظام داخل مجموعة البيانات الخاصة بك. إذا كان هناك اختلال في التوازن الطبقي ، فهناك خطر من أن النموذج سيطور تحيزا تجاه الطبقة الأكثر انتشارا. يمكن أن يكون هذا التحيز واضحا في مصفوفة الارتباك ، حيث قد يتنبأ النموذج في الغالب بفئة الأغلبية.
التحقق من الأوزان المدربة مسبقا
-
الأهمية: يمكن أن توفر الاستفادة من الأوزان المدربة مسبقا نقطة انطلاق قوية لتدريب النموذج ، خاصة عندما تكون البيانات محدودة.
-
توصية: كخطوة تشخيصية ، ضع في اعتبارك تدريب نموذجك باستخدام نفس البيانات ولكن تهيئته باستخدام أوزان مدربة مسبقا. إذا أسفر هذا النهج عن مصفوفة ارتباك جيدة التكوين ، فقد يشير إلى أن نموذج "من الصفر" قد يتطلب مزيدا من التدريب أو التعديلات.
المشكلات المتعلقة بتنبؤات النموذج
سيتناول هذا القسم المشكلات الشائعة التي تواجهها أثناء التنبؤ بالنموذج.
Getting Bounding Box Predictions With Your YOLO11 Custom Model
Issue: When running predictions with a custom YOLO11 model, there are challenges with the format and visualization of the bounding box coordinates.
الحل:
- Coordinate Format: YOLO11 provides bounding box coordinates in absolute pixel values. To convert these to relative coordinates (ranging from 0 to 1), you need to divide by the image dimensions. For example, let's say your image size is 640x640. Then you would do the following:
# Convert absolute coordinates to relative coordinates
x1 = x1 / 640 # Divide x-coordinates by image width
x2 = x2 / 640
y1 = y1 / 640 # Divide y-coordinates by image height
y2 = y2 / 640
- اسم الملف: للحصول على اسم ملف الصورة التي تتوقع عليها، قم بالوصول إلى مسار ملف الصورة مباشرة من الكائن الناتج داخل حلقة التنبؤ الخاصة بك.
Filtering Objects in YOLO11 Predictions
Issue: Facing issues with how to filter and display only specific objects in the prediction results when running YOLO11 using the Ultralytics library.
الحل: للكشف عن فئات معينة ، استخدم وسيطة classes لتحديد الفئات التي تريد تضمينها في الإخراج. على سبيل المثال ، لاكتشاف السيارات فقط (بافتراض أن "السيارات" لها مؤشر الفئة 2):
Understanding Precision Metrics in YOLO11
Issue: Confusion regarding the difference between box precision, mask precision, and confusion matrix precision in YOLO11.
Solution: Box precision measures the accuracy of predicted bounding boxes compared to the actual ground truth boxes using IoU (Intersection over Union) as the metric. Mask precision assesses the agreement between predicted segmentation masks and ground truth masks in pixel-wise object classification. Confusion matrix precision, on the other hand, focuses on overall classification accuracy across all classes and does not consider the geometric accuracy of predictions. It's important to note that a bounding box can be geometrically accurate (true positive) even if the class prediction is wrong, leading to differences between box precision and confusion matrix precision. These metrics evaluate distinct aspects of a model's performance, reflecting the need for different evaluation metrics in various tasks.
Extracting Object Dimensions in YOLO11
Issue: Difficulty in retrieving the length and height of detected objects in YOLO11, especially when multiple objects are detected in an image.
Solution: To retrieve the bounding box dimensions, first use the Ultralytics YOLO11 model to predict objects in an image. Then, extract the width and height information of bounding boxes from the prediction results.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Specify the source image
source = "https://ultralytics.com/images/bus.jpg"
# Make predictions
results = model.predict(source, save=True, imgsz=320, conf=0.5)
# Extract bounding box dimensions
boxes = results[0].boxes.xywh.cpu()
for box in boxes:
x, y, w, h = box
print(f"Width of Box: {w}, Height of Box: {h}")
تحديات النشر
GPU مشكلات النشر
المشكلة: يمكن أن يؤدي نشر النماذج في بيئة متعددةGPU في بعض الأحيان إلى سلوكيات غير متوقعة مثل الاستخدام غير المتوقع للذاكرة، والنتائج غير المتسقة عبر وحدات معالجة الرسومات، وما إلى ذلك.
الحل: تحقق من التهيئة الافتراضية GPU . قد تقوم بعض أطر العمل، مثل PyTorch ، بتهيئة عمليات CUDA على الافتراضية GPU قبل الانتقال إلى وحدات معالجة الرسومات المعينة. لتجاوز عمليات التهيئة الافتراضية غير المتوقعة، حدد GPU مباشرةً أثناء النشر والتنبؤ. بعد ذلك، استخدم أدوات لمراقبة استخدام GPU واستخدام الذاكرة لتحديد أي حالات شاذة في الوقت الفعلي. تأكد أيضًا من استخدام أحدث إصدار من إطار العمل أو المكتبة.
مشكلات تحويل / تصدير النموذج
أصدر: أثناء عملية تحويل نماذج التعلم الآلي أو تصديرها إلى تنسيقات أو أنظمة أساسية مختلفة، قد يواجه المستخدمون أخطاء أو سلوكيات غير متوقعة.
حل:
-
التحقق من التوافق: تأكد من أنك تستخدم إصدارات المكتبات وأطر العمل المتوافقة مع بعضها البعض. يمكن أن تؤدي الإصدارات غير المتطابقة إلى أخطاء غير متوقعة أثناء التحويل.
-
إعادة تعيين البيئة: إذا كنت تستخدم بيئة تفاعلية مثل Jupyter أو Colab ، ففكر في إعادة تشغيل بيئتك بعد إجراء تغييرات أو عمليات تثبيت كبيرة. يمكن أن تؤدي البداية الجديدة في بعض الأحيان إلى حل المشكلات الأساسية.
-
الوثائق الرسمية: ارجع دائما إلى الوثائق الرسمية للأداة أو المكتبة التي تستخدمها للتحويل. وغالبا ما يحتوي على مبادئ توجيهية محددة وأفضل الممارسات لتصدير النماذج.
-
دعم المجتمع: تحقق من المستودع الرسمي للمكتبة أو إطار العمل بحثا عن مشكلات مماثلة أبلغ عنها مستخدمون آخرون. ربما قدم المشرفون أو المجتمع حلولا أو حلولا بديلة في سلاسل المناقشة.
-
التحديث بانتظام: تأكد من أنك تستخدم أحدث إصدار من الأداة أو المكتبة. يقوم المطورون بشكل متكرر بإصدار تحديثات تعمل على إصلاح الأخطاء المعروفة أو تحسين الوظائف.
-
الاختبار بشكل تدريجي: قبل إجراء تحويل كامل، اختبر العملية باستخدام نموذج أو مجموعة بيانات أصغر لتحديد المشكلات المحتملة في وقت مبكر.
المجتمع والدعم
Engaging with a community of like-minded individuals can significantly enhance your experience and success in working with YOLO11. Below are some channels and resources you may find helpful.
منتديات وقنوات للحصول على المساعدة
GitHub Issues: The YOLO11 repository on GitHub has an Issues tab where you can ask questions, report bugs, and suggest new features. The community and maintainers are active here, and it's a great place to get help with specific problems.
Ultralytics خادم الفتنة: Ultralytics يحتوي على خادم Discord حيث يمكنك التفاعل مع المستخدمين الآخرين والمطورين.
الوثائق والموارد الرسمية
Ultralytics YOLO11 Docs: The official documentation provides a comprehensive overview of YOLO11, along with guides on installation, usage, and troubleshooting.
These resources should provide a solid foundation for troubleshooting and improving your YOLO11 projects, as well as connecting with others in the YOLO11 community.
استنتاج
Troubleshooting is an integral part of any development process, and being equipped with the right knowledge can significantly reduce the time and effort spent in resolving issues. This guide aimed to address the most common challenges faced by users of the YOLO11 model within the Ultralytics ecosystem. By understanding and addressing these common issues, you can ensure smoother project progress and achieve better results with your computer vision tasks.
تذكر أن Ultralytics المجتمع هو مورد قيم. يمكن أن يوفر التعامل مع زملائك المطورين والخبراء رؤى وحلولا إضافية قد لا يتم تغطيتها في الوثائق القياسية. استمر دائما في التعلم والتجريب ومشاركة خبراتك للمساهمة في المعرفة الجماعية للمجتمع.
استكشاف الأخطاء وإصلاحها سعيدة!
الأسئلة المتداولة
How do I resolve installation errors with YOLO11?
قد ترجع أخطاء التثبيت غالبًا إلى مشكلات في التوافق أو التبعيات المفقودة. تأكد من استخدام Python 3.8 أو أحدث وتثبيت PyTorch .8 1.8 أو أحدث. من المفيد استخدام البيئات الافتراضية لتجنب التعارضات. للحصول على دليل التثبيت خطوة بخطوة، اتبع دليل التثبيت الرسمي الخاص بنا. إذا واجهت أخطاء في الاستيراد، فجرّب تثبيتًا جديدًا أو قم بتحديث المكتبة إلى أحدث إصدار.
Why is my YOLO11 model training slow on a single GPU?
قد يكون التدريب على موقع GPU واحد بطيئًا بسبب أحجام الدفعات الكبيرة أو عدم كفاية الذاكرة. لتسريع التدريب، استخدم وحدات معالجة رسومات متعددة. تأكد من أن نظامك يحتوي على وحدات معالجة رسومات متعددة متاحة واضبط .yaml
ملف التكوين لتحديد عدد وحدات معالجة الرسومات، على سبيل المثال, gpus: 4
. قم بزيادة حجم الدفعة وفقًا لذلك للاستفادة الكاملة من وحدات معالجة الرسومات دون تجاوز حدود الذاكرة. مثال على الأمر:
How can I ensure my YOLO11 model is training on the GPU?
إذا كانت قيمة 'الجهاز' تظهر 'فارغة' في سجلات التدريب، فهذا يعني بشكل عام أن عملية التدريب مضبوطة على استخدام GPU متاح تلقائيًا. لتعيين GPU معين بشكل صريح، قم بتعيين قيمة "الجهاز" في .yaml
ملف التكوين. على سبيل المثال
هذا يضبط عملية التدريب على أول GPU. استشر nvidia-smi
لتأكيد إعداد CUDA الخاص بك .
How can I monitor and track my YOLO11 model training progress?
Tracking and visualizing training progress can be efficiently managed through tools like TensorBoard, Comet, and Ultralytics HUB. These tools allow you to log and visualize metrics such as loss, precision, recall, and mAP. Implementing early stopping based on these metrics can also help achieve better training outcomes.
What should I do if YOLO11 is not recognizing my dataset format?
تأكد من توافق مجموعة البيانات والتسميات مع التنسيق المتوقع. تحقق من أن التعليقات التوضيحية دقيقة وذات جودة عالية. إذا واجهت أي مشاكل، راجع دليل جمع البيانات والتع ليقات التوضيحية للاطلاع على أفضل الممارسات. لمزيد من الإرشادات الخاصة بمجموعة البيانات، راجع قسم مجموعات البيانات في الوثائق.