YOLO Vision 2026:

البدء باستخدام YOLOv5 🚀 في Docker#

مرحبًا بك في دليل البدء السريع باستخدام Docker لـ Ultralytics YOLOv5! يقدّم هذا البرنامج التعليمي إرشادات خطوة بخطوة لإعداد YOLOv5 وتشغيله داخل حاوية Docker. يتيح لك استخدام Docker تشغيل YOLOv5 في بيئة معزولة ومتسقة، مما يسهّل عملية النشر وإدارة التبعيات عبر الأنظمة المختلفة. ويستفيد هذا النهج من الحاويات لتجميع التطبيق وتبعياته معًا.

بالنسبة إلى طرق الإعداد البديلة، راجع Colab Notebook Open In Colab Open In Kaggle، أو أدلة آلة GCP الافتراضية للتعلّم العميق، أو Amazon AWS. للحصول على نظرة عامة على استخدام Docker مع نماذج Ultralytics، راجع دليل البدء السريع لـ Ultralytics Docker.

المتطلبات الأساسية#

قبل البدء، تأكد من تثبيت ما يلي:

  1. Docker: نزّل Docker وثبّته من موقع Docker الرسمي. يُعد Docker ضروريًا لإنشاء الحاويات وإدارتها.
  2. برامج تشغيل NVIDIA (مطلوبة لدعم GPU): تأكد من تثبيت الإصدار 455.23 أو إصدار أحدث من برامج تشغيل NVIDIA. يمكنك تنزيل أحدث برامج التشغيل من موقع NVIDIA.
  3. NVIDIA Container Toolkit (مطلوب لدعم GPU): تتيح هذه الأدوات لحاويات Docker الوصول إلى وحدات GPU من NVIDIA على الجهاز المضيف. اتبع دليل تثبيت NVIDIA Container Toolkit الرسمي للحصول على إرشادات تفصيلية.

إعداد NVIDIA Container Toolkit (لمستخدمي GPU)#

أولًا، تحقّق من تثبيت برامج تشغيل NVIDIA بشكل صحيح عبر تشغيل ما يلي:

nvidia-smi

من المفترض أن يعرض هذا الأمر معلومات حول وحدة أو وحدات GPU وإصدار برنامج التشغيل المثبّت.

بعد ذلك، ثبّت NVIDIA Container Toolkit. الأوامر أدناه شائعة في الأنظمة المستندة إلى Debian مثل Ubuntu والأنظمة المستندة إلى RHEL مثل Fedora/CentOS، ولكن راجع الدليل الرسمي المرتبط أعلاه للحصول على الإرشادات الخاصة بتوزيعتك:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
    | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

حدّث قوائم الحزم وثبّت NVIDIA Container Toolkit:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

التحقّق من أجهزة CDI باستخدام Docker#

شغّل nvidia-ctk cdi list للتأكّد من توفّر أجهزة GPU من نوع CDI (تُنشئ خدمة nvidia-cdi-refresh الخاصة بمجموعة الأدوات المواصفة وتحافظ عليها تلقائيًا في toolkit >= 1.18):

nvidia-ctk cdi list

من المفترض أن ترى إدخالات مثل nvidia.com/gpu=0 وnvidia.com/gpu=all. في Linux، تتطلب طلبات أجهزة CDI إصدار Docker >= 28.2.0 وإصدار NVIDIA Container Toolkit >= 1.18. يمكن للعلامة القديمة --gpus all أن تتسبب في فقدان الوصول إلى GPU بعد إعادة تحميل خوادم daemon المضيفة، لذا حدّث المضيفات القديمة التي تعمل بنظام Linux واستخدم --device بدلًا منها.

الخطوة 1: سحب صورة Docker لـ YOLOv5#

توفر Ultralytics صور YOLOv5 الرسمية على Docker Hub. تتتبّع العلامة latest أحدث commit في المستودع، مما يضمن حصولك دائمًا على أحدث إصدار. اسحب الصورة باستخدام الأمر التالي:

# Define the image name with tag
t=ultralytics/yolov5:latest

# Pull the latest YOLOv5 image from Docker Hub
sudo docker pull $t

يمكنك استعراض جميع الصور المتاحة في مستودع Ultralytics YOLOv5 على Docker Hub.

الخطوة 2: تشغيل حاوية Docker#

بعد سحب الصورة، يمكنك تشغيلها بوصفها حاوية.

استخدام CPU فقط#

لتشغيل مثيل حاوية تفاعلي باستخدام CPU فقط، استخدم العلامة -it. تتيح العلامة --ipc=host مشاركة مساحة أسماء IPC الخاصة بالمضيف، وهو أمر مهم للوصول إلى الذاكرة المشتركة.

# Run an interactive container instance using CPU
sudo docker run -it --ipc=host $t

استخدام GPU#

لتمكين الوصول إلى GPU داخل الحاوية، استخدم علامة CDI --device nvidia.com/gpu=...CDI. يتطلب ذلك تثبيت NVIDIA Container Toolkit بشكل صحيح.

# Run with access to all available GPUs
sudo docker run -it --ipc=host --device nvidia.com/gpu=all $t

# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --device nvidia.com/gpu=2 --device nvidia.com/gpu=3 $t

راجع مرجع تشغيل Docker لمزيد من التفاصيل حول خيارات الأوامر.

تحميل الأدلة المحلية#

للعمل مع ملفاتك المحلية (مجموعات البيانات وأوزان النماذج وغير ذلك) داخل الحاوية، استخدم العلامة -v لتحميل دليل من المضيف إلى الحاوية:

# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --ipc=host --device nvidia.com/gpu=all -v /path/on/host:/path/in/container $t

استبدل /path/on/host بالمسار الفعلي على جهازك، واستبدل /path/in/container بالمسار المطلوب داخل حاوية Docker (مثلًا، /usr/src/datasets).

الخطوة 3: استخدام YOLOv5 🚀 داخل حاوية Docker#

أنت الآن داخل حاوية YOLOv5 قيد التشغيل باستخدام Docker! من هنا، يمكنك تنفيذ أوامر YOLOv5 القياسية لمختلف مهام تعلّم الآلة والتعلّم العميق، مثل اكتشاف الأجسام.

# Train a YOLOv5 model on your custom dataset (ensure data is mounted or downloaded)
python train.py --data your_dataset.yaml --weights yolov5s.pt --img 640 # Start training

# Validate the trained model's performance (Precision, Recall, mAP)
python val.py --weights path/to/your/best.pt --data your_dataset.yaml # Validate accuracy

# Run inference on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos # Perform detection

# Export the trained model to various formats like ONNX, CoreML, or TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite # Export model

استكشف الوثائق للحصول على تفاصيل حول استخدام الأوضاع المختلفة:

تعرّف على المزيد حول مقاييس التقييم مثل Precision وRecall وmAP. افهم تنسيقات التصدير المختلفة مثل ONNX وCoreML وTFLite، واستكشف خيارات نشر النماذج المتنوعة. وتذكّر إدارة أوزان النموذج بفعالية.

Running YOLOv5 inside a Docker container on GCP

لقد أعددت YOLOv5 وشغّلته بنجاح داخل حاوية Docker.

التعليقات