Meet YOLO26: next-gen vision AI.

Link to this sectionDémarre avec YOLOv5 🚀 dans Docker#

Bienvenue dans le guide de démarrage rapide Docker pour YOLOv5 d'Ultralytics ! Ce tutoriel fournit des instructions étape par étape pour configurer et exécuter YOLOv5 au sein d'un conteneur Docker. L'utilisation de Docker te permet d'exécuter YOLOv5 dans un environnement isolé et cohérent, simplifiant ainsi le déploiement et la gestion des dépendances sur différents systèmes. Cette approche exploite la conteneurisation pour regrouper l'application et ses dépendances.

Pour d'autres méthodes de configuration, consulte notre Notebook Colab Open In Colab Open In Kaggle, ou nos guides pour GCP Deep Learning VM ou Amazon AWS. Pour un aperçu général de l'utilisation de Docker avec les modèles Ultralytics, consulte le Guide de démarrage rapide Docker d'Ultralytics.

Link to this sectionPrérequis#

Avant de commencer, assure-toi d'avoir installé les éléments suivants :

  1. Docker : Télécharge et installe Docker depuis le site officiel de Docker. Docker est essentiel pour créer et gérer des conteneurs.
  2. Pilotes NVIDIA (Requis pour la prise en charge des GPU) : Assure-toi d'avoir installé les pilotes NVIDIA version 455.23 ou supérieure. Tu peux télécharger les pilotes les plus récents sur le site de NVIDIA.
  3. NVIDIA Container Toolkit (Requis pour la prise en charge du GPU) : Ce kit d'outils permet aux conteneurs Docker d'accéder aux GPU NVIDIA de ta machine hôte. Suis le guide d'installation officiel du NVIDIA Container Toolkit pour des instructions détaillées.

Link to this sectionConfiguration du NVIDIA Container Toolkit (Utilisateurs de GPU)#

Tout d'abord, vérifie que tes pilotes NVIDIA sont correctement installés en exécutant :

nvidia-smi

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

Ensuite, installe le NVIDIA Container Toolkit. Les commandes ci-dessous sont typiques des systèmes basés sur Debian comme Ubuntu et des systèmes basés sur RHEL comme Fedora/CentOS, mais réfère-toi au guide officiel lié ci-dessus pour des instructions spécifiques à 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 paquet nvidia-container-toolkit :

sudo apt-get update

Installe la version la plus récente de nvidia-container-toolkit :

sudo apt-get install -y nvidia-container-toolkit \
  nvidia-container-toolkit-base libnvidia-container-tools \
  libnvidia-container1
Facultatif : Installer une version spécifique de nvidia-container-toolkit

Tu peux éventuellement installer une version spécifique de nvidia-container-toolkit en définissant la variable d'environnement NVIDIA_CONTAINER_TOOLKIT_VERSION :

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
  nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Link to this sectionVérifier le runtime NVIDIA avec Docker#

Exécute docker info | grep -i runtime pour t'assurer que nvidia apparaît dans la liste des runtimes :

docker info | grep -i runtime

Tu devrais voir nvidia listé comme l'un des runtimes disponibles.

Link to this sectionÉtape 1 : Récupérer l'image Docker de YOLOv5#

Ultralytics fournit des images officielles de YOLOv5 sur Docker Hub. Le tag latest suit le commit le plus récent du dépôt, te garantissant d'avoir toujours la version la plus nouvelle. Récupère l'image en utilisant 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 sur le dépôt Docker Hub de YOLOv5 d'Ultralytics.

Link to this sectionÉtape 2 : Exécuter le conteneur Docker#

Une fois l'image récupérée, tu peux l'exécuter en tant que conteneur.

Link to this sectionUtilisation du CPU uniquement#

Pour exécuter une instance de conteneur interactive en utilisant uniquement le CPU, utilise le flag -it. Le flag --ipc=host permet de partager l'espace de nom 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

Link to this sectionUtilisation du GPU#

Pour activer l'accès au GPU dans le conteneur, utilise le flag --gpus. Cela nécessite que le NVIDIA Container Toolkit soit correctement installé.

# Run with access to all available GPUs
sudo docker run -it --runtime=nvidia --ipc=host --gpus all $t

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

Consulte la documentation Docker sur la commande run pour plus de détails sur les options de commande.

Link to this sectionMonter des répertoires locaux#

Pour travailler avec tes fichiers locaux (jeux de données, poids de modèles, etc.) à l'intérieur du conteneur, utilise le flag -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 --runtime=nvidia --ipc=host --gpus 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é à l'intérieur du conteneur Docker (par exemple, /usr/src/datasets).

Link to this sectionÉtape 3 : Utiliser YOLOv5 🚀 dans le conteneur Docker#

Tu es maintenant à l'intérieur du conteneur Docker YOLOv5 en cours d'exécution ! À partir de là, tu peux exécuter les commandes YOLOv5 standards 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

Explore la documentation pour une utilisation détaillée des différents modes :

Apprends-en plus sur les métriques d'évaluation comme la Précision, le Rappel et le mAP. Comprends les différents formats d'exportation comme ONNX, CoreML et TFLite, et explore les diverses Options de déploiement de modèles. N'oublie pas de gérer efficacement tes poids de modèles.

Running YOLOv5 inside a Docker container on GCP

Tu as configuré et exécuté avec succès YOLOv5 au sein d'un conteneur Docker.

Commentaires