Démarrer avec YOLOv5 🚀 dans Docker
Bienvenue dans le guide de démarrage rapide Docker d'Ultralytics YOLOv5 ! 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 tire parti de la conteneurisation pour regrouper l'application et ses dépendances.
Pour d'autres méthodes de configuration, consulte nos guides Colab Notebook
, 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.
Prérequis
Avant de commencer, assure-toi d'avoir installé les éléments suivants :
- Docker : Télécharge et installe Docker depuis le site officiel de Docker. Docker est essentiel pour créer et gérer des conteneurs.
- Pilotes NVIDIA (Requis pour la prise en charge des GPU) : Assure-toi d'avoir installé les pilotes NVIDIA en version 455.23 ou supérieure. Tu peux télécharger les derniers pilotes sur le site de NVIDIA.
- NVIDIA Container Toolkit (Requis pour la prise en charge des GPU) : Ce toolkit permet aux conteneurs Docker d'accéder aux GPU NVIDIA de ta machine hôte. Suis le guide d'installation officiel de NVIDIA Container Toolkit pour des instructions détaillées.
Configuration de NVIDIA Container Toolkit (Utilisateurs de GPU)
Tout d'abord, vérifie que tes pilotes NVIDIA sont correctement installés en exécutant :
nvidia-smiCette commande devrait afficher des informations sur ton/tes GPU et la version du pilote installé.
Ensuite, installe le NVIDIA Container Toolkit. Les commandes ci-dessous sont typiques pour les systèmes basés sur Debian comme Ubuntu et les 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.listMets à jour les listes de paquets et installe le paquet nvidia-container-toolkit :
sudo apt-get updateInstalle la dernière version de nvidia-container-toolkit :
sudo apt-get install -y nvidia-container-toolkit \
nvidia-container-toolkit-base libnvidia-container-tools \
libnvidia-container1Optionnel : Installer une version spécifique de nvidia-container-toolkit
Tu peux éventuellement installer une version spécifique du 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 dockerVérification du 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 runtimeTu devrais voir nvidia listé comme l'un des runtimes disponibles.
Étape 1 : Récupérer l'image Docker de YOLOv5
Ultralytics fournit des images officielles YOLOv5 sur Docker Hub. Le tag latest suit le commit le plus récent du dépôt, garantissant que tu obtiens toujours la version la plus récente. 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 $tTu peux parcourir toutes les images disponibles sur le dépôt Docker Hub de YOLOv5 d'Ultralytics.
Étape 2 : Exécuter le conteneur Docker
Une fois l'image récupéré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 le flag -it. Le flag --ipc=host permet le partage de 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 --runtime=nvidia --ipc=host $tUtilisation 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"' $tRéfère-toi à la référence d'exécution Docker pour plus de détails sur les options de commande.
Monter 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 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 $tRemplace /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).
É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 des 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 modelExplore 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 la 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 tes poids de modèles efficacement.

Tu as configuré et exécuté YOLOv5 avec succès dans un conteneur Docker.