Démarrer avec YOLOv5 🚀 dans Docker
Bienvenue dans le guide de démarrage rapide Docker YOLOv5 d'Ultralytics ! Ce tutoriel fournit des instructions étape par étape pour configurer et exécuter YOLOv5 dans un conteneur Docker. L'utilisation de Docker vous 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 exploite la conteneurisation pour regrouper l'application et ses dépendances.
Pour d'autres méthodes de configuration, considérez notre Notebook Colab
, VM Deep Learning GCP, ou Amazon AWS guides. Pour une vue d’ensemble de l’utilisation de Docker avec les modèles Ultralytics, consultez le Guide de démarrage rapide Docker Ultralytics.
Prérequis
Avant de commencer, assurez-vous que les éléments suivants sont installés :
- Docker : Téléchargez et installez 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 GPU) : Assurez-vous que la version 455.23 ou supérieure des pilotes NVIDIA est installée. Vous pouvez télécharger les derniers pilotes à partir du site Web de NVIDIA.
- NVIDIA Container Toolkit (Requis pour la prise en charge du GPU) : Cet ensemble d’outils permet aux conteneurs Docker d’accéder aux GPU NVIDIA de votre machine hôte. Suivez le guide d’installation officiel de NVIDIA Container Toolkit pour obtenir des instructions détaillées.
Configuration de NVIDIA Container Toolkit (utilisateurs de GPU)
Tout d'abord, vérifiez que vos pilotes NVIDIA sont correctement installés en exécutant :
nvidia-smi
Cette commande doit afficher des informations sur votre ou vos GPU et la version du pilote installé.
Ensuite, installez le NVIDIA Container Toolkit. Les commandes ci-dessous sont typiques des systèmes basés sur Debian comme Ubuntu, mais consultez le guide officiel lié ci-dessus pour obtenir des instructions spécifiques à votre distribution :
# Add NVIDIA package repositories (refer to official guide for latest setup)
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
# Update package list and install the toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# Configure Docker to use the NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker
# Restart Docker service to apply changes
sudo systemctl restart docker
Enfin, vérifiez que l'environnement d'exécution NVIDIA est configuré et disponible pour Docker :
docker info | grep -i runtime
Vous devriez voir nvidia
répertorié comme l'un des environnements d'exécution disponibles.
Étape 1 : Extraire l'image Docker YOLOv5
Ultralytics fournit des images YOLOv5 officielles sur Docker Hub. Le latest
le tag suit le commit le plus récent du référentiel, vous assurant ainsi d'obtenir toujours la version la plus récente. Tirez 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
Vous pouvez parcourir toutes les images disponibles sur le référentiel Ultralytics YOLOv5 Docker Hub.
Étape 2 : Exécuter le conteneur Docker
Une fois l'image extraite, vous pouvez l'exécuter en tant que conteneur.
Utilisation du CPU uniquement
Pour exécuter une instance de conteneur interactive en utilisant uniquement le CPU, utilisez la commande suivante : -it
l'indicateur. --ipc=host
L'indicateur 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 $t
Utilisation du GPU
Pour activer l'accès au GPU dans le conteneur, utilisez la commande suivante : --gpus
l'indicateur. Cela nécessite que le NVIDIA Container Toolkit soit correctement installé.
# Run with access to all available GPUs
sudo docker run -it --ipc=host --gpus all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t
Consultez la référence d'exécution Docker pour plus de détails sur les options de commande.
Montage de répertoires locaux
Pour travailler avec vos fichiers locaux (ensembles de données, poids du modèle, etc.) à l'intérieur du conteneur, utilisez le -v
l'indicateur 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 --gpus all -v /path/on/host:/path/in/container $t
Remplacez /path/on/host
avec le chemin d'accès réel sur votre machine et /path/in/container
avec le chemin souhaité à l'intérieur du conteneur Docker (par exemple, /usr/src/datasets
).
Étape 3 : Utiliser YOLOv5 🚀 dans le conteneur Docker
Vous êtes maintenant dans le conteneur Docker YOLOv5 en cours d’exécution ! À partir de là, vous pouvez exécuter les commandes YOLOv5 standard pour diverses tâches d’apprentissage automatique et d’apprentissage profond 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
Explorez la documentation pour une utilisation détaillée des différents modes :
Apprenez-en davantage sur les mesures d'évaluation comme la Précision, le Rappel et le mAP. Comprenez les différents formats d'exportation comme ONNX, CoreML et TFLite, et explorez diverses Options de déploiement de modèle. N'oubliez pas de gérer efficacement les poids de votre modèle.
Félicitations ! Vous avez correctement configuré et exécuté YOLOv5 dans un conteneur Docker.