Vai al contenuto

Iniziare con YOLOv5 🚀 in Docker

Benvenuti nella guida rapida di Ultralytics YOLOv5 Docker! Questa guida fornisce istruzioni passo-passo per la configurazione e l'esecuzione di YOLOv5 all'interno di un contenitore Docker. L'uso di Docker consente di eseguire YOLOv5 in un ambiente isolato e coerente, semplificando la distribuzione e la gestione delle dipendenze su sistemi diversi. Questo approccio sfrutta la containerizzazione per raggruppare l'applicazione e le sue dipendenze.

Per metodi di impostazione alternativi, considerare il nostro Taccuino Colab Aprire in Colab Aprire in Kaggle, GCP Deep Learning VM, o Amazon AWS guide. Per una panoramica generale sull'uso di Docker con i modelli di Ultralytics , si veda il documento Guida rapida di Ultralytics Docker.

Prerequisiti

Prima di iniziare, accertarsi che siano installati i seguenti elementi:

  1. Docker: Scaricare e installare Docker dal sito ufficiale di Docker. Docker è essenziale per creare e gestire i container.
  2. DriverNVIDIA (necessari per GPU ): Assicurarsi di avere installato i driver NVIDIA versione 455.23 o superiore. È possibile scaricare i driver più recenti dal sito Web diNVIDIA.
  3. NVIDIA Container Toolkit (richiesto per il supporto GPU ): Questo toolkit permette ai container Docker di accedere alle GPU NVIDIA della macchina host. Seguire la guida ufficiale all'installazione diNVIDIA Container Toolkit per istruzioni dettagliate.

Impostazione di NVIDIA Container ToolkitGPU utenti diGPU )

Innanzitutto, verificare che i driver NVIDIA siano installati correttamente eseguendo:

nvidia-smi

Questo comando dovrebbe visualizzare informazioni sulle GPU e sulla versione del driver installato.

Successivamente, installare NVIDIA Container Toolkit. I comandi riportati di seguito sono tipici dei sistemi basati su Debian come Ubuntu, ma per le istruzioni specifiche della vostra distribuzione fate riferimento alla guida ufficiale linkata sopra:

# 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

Infine, verificare che il runtime NVIDIA sia configurato e disponibile per Docker:

docker info | grep -i runtime

Si dovrebbe vedere nvidia tra i runtime disponibili.

Passo 1: Estrarre l'immagine Docker di YOLOv5

Ultralytics fornisce le immagini ufficiali di YOLOv5 su Hub Docker. Il latest tiene traccia del commit più recente del repository, garantendo sempre la versione più recente. Estrarre l'immagine con il seguente comando:

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

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

È possibile consultare tutte le immagini disponibili nel repositoryUltralytics YOLOv5 Docker Hub.

Passo 2: Eseguire il contenitore Docker

Una volta estratta l'immagine, è possibile eseguirla come contenitore.

Utilizzo della sola CPU

Per eseguire un'istanza interattiva di un contenitore usando solo la CPU, usare l'opzione -it bandiera. Il --ipc=host permette di condividere lo spazio dei nomi IPC dell'host, importante per l'accesso alla memoria condivisa.

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

Utilizzo della GPU

Per abilitare l'accesso alla GPU all'interno del contenitore, utilizzare l'opzione --gpus flag. Ciò richiede la corretta installazione di NVIDIA Container Toolkit.

# 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

Per maggiori dettagli sulle opzioni di comando, consultare il riferimento all'esecuzione di Docker.

Montaggio delle directory locali

Per lavorare con i file locali (set di dati, pesi del modello, ecc.) all'interno del contenitore, utilizzare l'opzione -v per montare una directory host nel contenitore:

# 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

Sostituire /path/on/host con il percorso effettivo della macchina e /path/in/container con il percorso desiderato all'interno del contenitore Docker (ad es, /usr/src/datasets).

Passo 3: Utilizzare YOLOv5 🚀 all'interno del contenitore Docker

Ora siete all'interno del contenitore Docker YOLOv5 in esecuzione! Da qui è possibile eseguire i comandi standard di YOLOv5 per varie attività di Machine Learning e Deep Learning, come il rilevamento di oggetti.

# 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

Per un utilizzo dettagliato delle diverse modalità, consultare la documentazione:

Imparare di più sulle metriche di valutazione come Precision, Recall e mAP. Comprendere i diversi formati di esportazione come ONNX, CoreMLe TFLite ed esplorare le varie opzioni di distribuzione dei modelli. Ricordate di gestire efficacemente i pesi del modello.

Esecuzione di YOLOv5 in un contenitore Docker su GCP

Congratulazioni! Si è riusciti a configurare ed eseguire YOLOv5 in un contenitore Docker.

📅C reato 1 anno fa ✏️ Aggiornato 5 giorni fa

Commenti