Démarre 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 dans 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 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 web officiel de Docker. Docker est essentiel pour créer et gérer des conteneurs.
- Pilotes NVIDIA (Requis pour la prise en charge du GPU) : Assure-toi d'avoir installé les pilotes NVIDIA version 455.23 ou supérieure. Tu peux télécharger les derniers pilotes depuis le site web de NVIDIA.
- 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 obtenir des instructions détaillées.
Configuration du 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 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.listMets à jour les listes de paquets et installe le NVIDIA Container Toolkit :
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitVérifie tes périphériques CDI avec Docker#
Exécute nvidia-ctk cdi list pour t'assurer que les périphériques CDI du GPU sont disponibles (le service nvidia-cdi-refresh de la boîte à outils génère et maintient automatiquement la spécification sur les versions de la boîte à outils >= 1.18) :
nvidia-ctk cdi listTu devrais voir des entrées telles que nvidia.com/gpu=0 et nvidia.com/gpu=all. Sous Linux, les requêtes de périphériques CDI nécessitent Docker >= 28.2.0 et NVIDIA Container Toolkit >= 1.18. L'ancien fanion --gpus all peut faire perdre l'accès au GPU après les rechargements du démon hôte, mets donc à niveau les hôtes Linux plus anciens et utilise plutôt --device.
Étape 1 : Récupérer l'image Docker de YOLOv5#
Ultralytics propose des images YOLOv5 officielles sur Docker Hub. Le tag latest suit le commit le plus récent du dépôt, ce qui te garantit d'obtenir toujours la version la plus récente. 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 $tTu peux parcourir toutes les images disponibles sur le dépôt Docker Hub d'Ultralytics YOLOv5.
É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 fanion -it. Le fanion --ipc=host permet le partage de 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 $tUtilisation du GPU#
Pour activer l'accès au GPU dans le conteneur, utilise le fanion CDI --device nvidia.com/gpu=.... Cela nécessite que le NVIDIA Container Toolkit soit correctement installé.
# 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 $tConsulte 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 fanion -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 --ipc=host --device nvidia.com/gpu=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 telles que 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 davantage sur les métriques d'évaluation telles que Precision, Recall et mAP. Comprends les différents formats d'exportation comme ONNX, CoreML et TFLite, et explore diverses options de déploiement de modèles. N'oublie pas de gérer efficacement tes poids de modèles.

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