Vai al contenuto

Inizia con YOLOv5 🚀 in Docker

Benvenuto nella guida rapida di Ultralytics YOLOv5 Docker! Questo tutorial fornisce istruzioni dettagliate per la configurazione e l'esecuzione di YOLOv5 all'interno di un container Docker. L'utilizzo di Docker consente di eseguire YOLOv5 in un ambiente isolato e coerente, semplificando la distribuzione e la gestione delle dipendenze tra diversi sistemi. Questo approccio sfrutta la containerizzazione per impacchettare l'applicazione e le sue dipendenze insieme.

Per metodi di configurazione alternativi, considera il nostro Notebook Colab Apri in Colab Apri in Kaggle, VM di Deep Learning GCP, oppure Amazon AWS guide. Per una panoramica generale sull'utilizzo di Docker con i modelli Ultralytics, consultare Guida rapida di Ultralytics Docker.

Prerequisiti

Prima di iniziare, assicurati di avere installato quanto segue:

  1. Docker: Scarica e installa Docker dal sito web ufficiale di Docker. Docker è essenziale per creare e gestire container.
  2. Driver NVIDIA (Richiesti per il supporto GPU): Assicurarsi di avere installato i driver NVIDIA versione 455.23 o successiva. È possibile scaricare i driver più recenti dal sito web di NVIDIA.
  3. NVIDIA Container Toolkit (Richiesto per il supporto GPU): Questo toolkit consente ai container Docker di accedere alle GPU NVIDIA della macchina host. Seguire la guida ufficiale all'installazione di NVIDIA Container Toolkit per istruzioni dettagliate.

Configurazione di NVIDIA Container Toolkit (Utenti GPU)

Innanzitutto, verifica che i tuoi driver NVIDIA siano installati correttamente eseguendo:

nvidia-smi

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

Successivamente, installa NVIDIA Container Toolkit. I comandi seguenti sono tipici per i sistemi basati su Debian come Ubuntu, ma consulta la guida ufficiale collegata sopra per istruzioni specifiche per la tua distribuzione:

# 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, verifica che il runtime NVIDIA sia configurato e disponibile per Docker:

docker info | grep -i runtime

Dovresti vedere nvidia elencato come uno dei runtime disponibili.

Passaggio 1: Scarica l'immagine Docker di YOLOv5

Ultralytics fornisce immagini YOLOv5 ufficiali su Docker Hub. latest il tag tiene traccia del commit del repository più recente, assicurandoti di ottenere sempre la versione più recente. Estrai l'immagine usando 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

Puoi sfogliare tutte le immagini disponibili nel repository Ultralytics YOLOv5 Docker Hub.

Fase 2: Esecuzione del container Docker

Una volta che l'immagine è stata scaricata, puoi eseguirla come container.

Utilizzo della sola CPU

Per eseguire un'istanza di container interattiva utilizzando solo la CPU, usa il comando -it flag. Il --ipc=host flag consente la condivisione dello spazio dei nomi IPC dell'host, il che è 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 container, usa il comando --gpus flag. Ciò richiede che NVIDIA Container Toolkit sia installato correttamente.

# 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

Fare riferimento al riferimento Docker run per maggiori dettagli sulle opzioni di comando.

Montaggio di directory locali

Per lavorare con i tuoi file locali (dataset, pesi del modello, ecc.) all'interno del container, usa il -v flag per montare una directory host nel container:

# 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

Sostituisci /path/on/host con il percorso effettivo sulla tua macchina e /path/in/container con il percorso desiderato all'interno del container Docker (ad esempio, /usr/src/datasets).

Fase 3: Utilizzo di YOLOv5 🚀 all'interno del container Docker

Ora ti trovi all'interno del container Docker YOLOv5 in esecuzione! Da qui, puoi eseguire i comandi standard 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

Esplora la documentazione per un utilizzo dettagliato delle diverse modalità:

Scopri di più sulle metriche di valutazione come Precisione, Recall e mAP. Comprendi i diversi formati di esportazione come ONNX, CoreML e TFLite ed esplora le varie Opzioni di deployment del modello. Ricorda di gestire efficacemente i tuoi pesi del modello.

Esecuzione di YOLOv5 all'interno di un container Docker su GCP

Congratulazioni! Hai configurato ed eseguito con successo YOLOv5 all'interno di un container Docker.



📅 Creato 1 anno fa ✏️ Aggiornato 4 mesi fa

Commenti