Meet YOLO26: next-gen vision AI.

Link to this sectionInizia con YOLOv5 🚀 in Docker#

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

Per metodi di configurazione alternativi, consulta il nostro Colab Notebook Open In Colab Open In Kaggle, le guide GCP Deep Learning VM o Amazon AWS. Per una panoramica generale sull'utilizzo di Docker con i modelli Ultralytics, vedi la Guida rapida di Ultralytics per Docker.

Link to this sectionPrerequisiti#

Prima di iniziare, assicurati di avere installato quanto segue:

  1. Docker: Scarica e installa Docker dal sito ufficiale di Docker. Docker è essenziale per creare e gestire i contenitori.
  2. Driver NVIDIA (Richiesti per il supporto GPU): Assicurati di avere installato i driver NVIDIA versione 455.23 o superiore. Puoi scaricare i driver più recenti dal sito di NVIDIA.
  3. NVIDIA Container Toolkit (Richiesto per il supporto GPU): Questo toolkit consente ai contenitori Docker di accedere alle GPU NVIDIA del tuo host. Segui la guida all'installazione ufficiale di NVIDIA Container Toolkit per istruzioni dettagliate.

Link to this sectionConfigurazione 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 pacchetto nvidia-container-toolkit:

sudo apt-get update

Installa l'ultima versione di nvidia-container-toolkit:

sudo apt-get install -y nvidia-container-toolkit \
  nvidia-container-toolkit-base libnvidia-container-tools \
  libnvidia-container1
Opzionale: Installa una versione specifica di nvidia-container-toolkit

Facoltativamente, puoi installare una versione specifica di nvidia-container-toolkit impostando la variabile d'ambiente NVIDIA_CONTAINER_TOOLKIT_VERSION:

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
  nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Link to this sectionVerifica il Runtime NVIDIA con Docker#

Esegui docker info | grep -i runtime per assicurarti che nvidia appaia nell'elenco dei runtime:

docker info | grep -i runtime

Dovresti vedere nvidia elencato come uno dei runtime disponibili.

Link to this sectionPassaggio 1: Scarica l'immagine Docker di YOLOv5#

Ultralytics fornisce le immagini ufficiali di YOLOv5 su Docker Hub. Il tag latest segue il commit più recente del repository, garantendoti di avere sempre la versione più aggiornata. 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 sfogliare tutte le immagini disponibili presso il repository Docker Hub di Ultralytics YOLOv5.

Link to this sectionPassaggio 2: Esegui il contenitore Docker#

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

Link to this sectionUtilizzo solo CPU#

Per eseguire un'istanza di contenitore interattiva usando solo la CPU, usa il flag -it. Il flag --ipc=host consente la condivisione dello spazio dei nomi IPC dell'host, che è importante per l'accesso alla memoria condivisa.

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

Link to this sectionUtilizzo della GPU#

Per abilitare l'accesso alla GPU all'interno del contenitore, usa il flag --gpus. Ciò richiede che NVIDIA Container Toolkit sia installato correttamente.

# Run with access to all available GPUs
sudo docker run -it --runtime=nvidia --ipc=host --gpus all $t

# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --runtime=nvidia --ipc=host --gpus '"device=2,3"' $t

Consulta il riferimento per docker run per ulteriori dettagli sulle opzioni dei comandi.

Link to this sectionMontaggio 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 dell'host nel contenitore:

# Mount /path/on/host (your local machine) to /path/in/container (inside the container)
sudo docker run -it --runtime=nvidia --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 contenitore Docker (es. /usr/src/datasets).

Link to this sectionPassaggio 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 varie attività di Machine Learning e Deep Learning come l'Object Detection.

# 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 Deployment del Modello. Ricordati di gestire efficacemente i tuoi 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