YOLO Vision 2026 :

Bien démarrer avec YOLOv5 🚀 dans Docker#

Bienvenue dans le guide de démarrage rapide Docker d’Ultralytics pour YOLOv5 ! Ce tutoriel fournit des instructions étape par étape pour configurer et exécuter YOLOv5 dans un conteneur Docker. Docker te permet d’exécuter YOLOv5 dans un environnement isolé et cohérent, ce qui simplifie le déploiement et la gestion des dépendances sur différents systèmes. Cette approche s’appuie sur la conteneurisation pour regrouper l’application et ses dépendances.

Pour découvrir d’autres méthodes de configuration, consulte le Notebook Colab Open In Colab Open In Kaggle, les guides GCP Deep Learning VM ou Amazon AWS. Pour une vue d’ensemble de l’utilisation de Docker avec les modèles Ultralytics, consulte le Guide de démarrage rapide Docker d’Ultralytics.

Prérequis#

Avant de commencer, vérifie que les éléments suivants sont installés :

  1. Docker : télécharge et installe Docker depuis le site officiel de Docker. Docker est indispensable pour créer et gérer des conteneurs.
  2. Pilotes NVIDIA (requis pour la prise en charge du GPU) : vérifie que la version 455.23 ou ultérieure des pilotes NVIDIA est installée. Tu peux télécharger les derniers pilotes depuis le site web de NVIDIA.
  3. NVIDIA Container Toolkit (requis pour la prise en charge du GPU) : cette boîte à outils permet aux conteneurs Docker d’accéder aux GPU NVIDIA de ta machine hôte. Consulte le guide d’installation officiel de NVIDIA Container Toolkit pour obtenir des instructions détaillées.

Configuration de NVIDIA Container Toolkit (utilisateurs de GPU)#

Commence par vérifier que tes pilotes NVIDIA sont correctement installés en exécutant :

nvidia-smi

Cette commande doit afficher des informations sur ton ou tes GPU ainsi que sur la version du pilote installé.

Installe ensuite NVIDIA Container Toolkit. Les commandes ci-dessous sont généralement adaptées aux systèmes basés sur Debian, comme Ubuntu, et aux systèmes basés sur RHEL, comme Fedora/CentOS, mais consulte le guide officiel indiqué plus haut pour obtenir les instructions propres à ta distribution :

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

Mets à jour les listes de paquets et installe le NVIDIA Container Toolkit :

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

Vérifier les appareils CDI avec Docker#

Exécute nvidia-ctk cdi list pour t'assurer que les appareils GPU CDI sont disponibles (le service nvidia-cdi-refresh du toolkit génère et gère automatiquement la spécification avec toolkit >= 1.18) :

nvidia-ctk cdi list

Tu devrais voir des entrées telles que nvidia.com/gpu=0 et nvidia.com/gpu=all. Sous Linux, les demandes de périphériques CDI nécessitent Docker >= 28.2.0 et NVIDIA Container Toolkit >= 1.18. L’option héritée --gpus all peut entraîner la perte de l’accès au GPU après le rechargement des démons de l’hôte ; mets donc à niveau les anciens hôtes Linux et utilise plutôt --device.

Étape 1 : télécharger l’image Docker YOLOv5#

Ultralytics fournit des images officielles YOLOv5 sur Docker Hub. Le tag latest suit le commit le plus récent du dépôt, ce qui te garantit de toujours obtenir la dernière version. Télécharge l’image à l’aide de la commande suivante :

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

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

Tu peux parcourir toutes les images disponibles dans le dépôt Docker Hub Ultralytics YOLOv5.

Étape 2 : exécuter le conteneur Docker#

Une fois l’image téléchargée, tu peux l’exécuter en tant que conteneur.

Utilisation du CPU uniquement#

Pour exécuter une instance de conteneur interactive en utilisant uniquement le CPU, utilise l’option -it. L’option --ipc=host permet de partager l’espace de noms IPC de l’hôte, ce qui est important pour l’accès à la mémoire partagée.

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

Utilisation du GPU#

Pour activer l’accès au GPU dans le conteneur, utilise l’option CDI --device nvidia.com/gpu=... CDI. NVIDIA Container Toolkit doit être correctement installé pour que cela fonctionne.

# 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

Consulte la référence de la commande Docker run pour plus d’informations sur les options de commande.

Monter des répertoires locaux#

Pour travailler avec tes fichiers locaux (jeux de données, poids du modèle, etc.) dans le conteneur, utilise l’option -v pour monter un répertoire de l’hôte dans le conteneur :

# 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

Remplace /path/on/host par le chemin réel sur ta machine et /path/in/container par le chemin souhaité dans le conteneur Docker (par exemple, /usr/src/datasets).

Étape 3 : utiliser YOLOv5 🚀 dans le conteneur Docker#

Tu te trouves maintenant dans le conteneur Docker YOLOv5 en cours d’exécution ! Tu peux à présent exécuter les commandes YOLOv5 standard pour diverses tâches de machine learning et de deep learning, comme la détection d’objets.

# 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

Consulte la documentation pour découvrir en détail les différents modes d’utilisation :

En savoir plus sur les métriques d’évaluation telles que la précision, le rappel et la mAP. Découvre les différents formats d’exportation comme ONNX, CoreML et TFLite, ainsi que les différentes options de déploiement des modèles. Pense à gérer efficacement tes poids de modèle.

Running YOLOv5 inside a Docker container on GCP

Tu as correctement configuré et exécuté YOLOv5 dans un conteneur Docker.

Commentaires