YOLO Vision 2026:

Inizia con YOLOv5 🚀 in Docker#

Benvenuto nella guida di avvio rapido Docker per Ultralytics YOLOv5! Questo tutorial fornisce istruzioni dettagliate 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 diversi sistemi. Questo approccio sfrutta la containerization per raggruppare l'applicazione e le sue dipendenze.

Per metodi di configurazione alternativi, considera le nostre guide Colab Notebook Open In Colab Open In Kaggle, GCP Deep Learning VM o Amazon AWS. Per una panoramica generale sull'uso di Docker con i modelli Ultralytics, consulta la Ultralytics Docker Quickstart Guide.

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 la creazione e la gestione dei contenitori.
  2. Driver NVIDIA (richiesti per il supporto GPU): assicurati di avere installato i driver NVIDIA versione 455.23 o successiva. Puoi scaricare i driver più recenti dal sito Web di NVIDIA.
  3. NVIDIA Container Toolkit (richiesto per il supporto GPU): questo toolkit consente ai contenitori Docker di accedere alle GPU NVIDIA della macchina host. Segui la guida all'installazione ufficiale di NVIDIA Container Toolkit per istruzioni dettagliate.

Configurazione di NVIDIA Container Toolkit (Utenti GPU)#

Per prima cosa, verifica che i driver NVIDIA siano installati correttamente eseguendo:

nvidia-smi

Questo comando dovrebbe visualizzare le informazioni sulla tua/e GPU e sulla versione del driver installata.

Successivamente, installa NVIDIA Container Toolkit. I comandi seguenti sono tipici per i sistemi basati su Debian come Ubuntu e per i sistemi basati su RHEL come Fedora/CentOS, ma fai riferimento alla guida ufficiale collegata sopra per le istruzioni specifiche per la tua distribuzione:

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

Aggiorna gli elenchi dei pacchetti e installa il NVIDIA Container Toolkit:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

Verifica i dispositivi CDI con Docker#

Esegui nvidia-ctk cdi list per assicurarti che i dispositivi CDI della GPU siano disponibili (il servizio nvidia-cdi-refresh del toolkit genera e mantiene automaticamente la specifica sui toolkit >= 1.18):

nvidia-ctk cdi list

Dovresti visualizzare voci come nvidia.com/gpu=0 e nvidia.com/gpu=all. Su Linux, le richieste di dispositivi CDI richiedono Docker >= 28.2.0 e NVIDIA Container Toolkit >= 1.18. Il flag legacy --gpus all può causare la perdita dell'accesso alla GPU dopo i riavvii del daemon host, quindi aggiorna i vecchi host Linux e usa invece --device.

Passaggio 1: Scarica l'immagine Docker di YOLOv5#

Ultralytics fornisce immagini YOLOv5 ufficiali su Docker Hub. Il tag latest traccia il commit del repository più recente, assicurandoti di ottenere sempre la versione più recente. Scarica 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 esplorare tutte le immagini disponibili nel repository Docker Hub di Ultralytics YOLOv5.

Passaggio 2: Esegui il contenitore Docker#

Una volta scaricata l'immagine, puoi eseguirla come un contenitore.

Utilizzo solo CPU#

Per eseguire un'istanza di contenitore interattiva utilizzando solo la CPU, usa il flag -it. Il flag --ipc=host 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 contenitore, usa il flag CDI --device nvidia.com/gpu=.... Ciò richiede che NVIDIA Container Toolkit sia installato correttamente.

# 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 $t

Fai riferimento alla guida di riferimento di Docker run per ulteriori dettagli sulle opzioni di comando.

Montaggio di directory locali#

Per lavorare con i tuoi file locali (dataset, pesi del modello, ecc.) all'interno del contenitore, usa il flag -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 --device nvidia.com/gpu=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 contenitore Docker (ad esempio, /usr/src/datasets).

Passaggio 3: Usa YOLOv5 🚀 all'interno del contenitore Docker#

Ora ti trovi all'interno del contenitore Docker di YOLOv5 in esecuzione! Da qui, puoi eseguire i comandi standard di YOLOv5 per vari compiti 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 uso dettagliato delle diverse modalità:

Scopri di più sulle metriche di valutazione come Precision, Recall e mAP. Comprendi i diversi formati di esportazione come ONNX, CoreML e TFLite ed esplora le varie opzioni di distribuzione del modello. Ricordati di gestire efficacemente i pesi del modello.

Running YOLOv5 inside a Docker container on GCP

Hai configurato ed eseguito con successo YOLOv5 all'interno di un contenitore Docker.

Commenti