Inizia con YOLOv5 🚀 in Docker
Benvenuto nella guida rapida a Docker per Ultralytics YOLOv5! Questo tutorial fornisce istruzioni passo-passo per configurare ed eseguire YOLOv5 all'interno di un container Docker. L'utilizzo di Docker ti permette di eseguire YOLOv5 in un ambiente isolato e coerente, semplificando il deployment e la gestione delle dipendenze su sistemi diversi. Questo approccio sfrutta la containerizzazione per impacchettare l'applicazione e le sue dipendenze insieme.
Per metodi di configurazione alternativi, prendi in considerazione le nostre guide Colab Notebook
, GCP Deep Learning VM o Amazon AWS. Per una panoramica generale sull'uso di Docker con i modelli Ultralytics, consulta la Guida rapida a Docker per Ultralytics.
Prerequisiti
Prima di iniziare, assicurati di aver installato quanto segue:
- Docker: Scarica e installa Docker dal sito ufficiale di Docker. Docker è essenziale per creare e gestire i container.
- 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 web di NVIDIA.
- NVIDIA Container Toolkit (Richiesto per il supporto GPU): Questo toolkit consente ai container Docker di accedere alle GPU NVIDIA del tuo computer host. Segui la guida all'installazione ufficiale 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-smiQuesto comando dovrebbe visualizzare informazioni sulla tua/e 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 e i sistemi basati su RHEL come Fedora/CentOS, ma fai riferimento alla guida ufficiale indicata sopra per 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.listAggiorna gli elenchi dei pacchetti e installa il pacchetto nvidia-container-toolkit:
sudo apt-get updateInstalla l'ultima versione di nvidia-container-toolkit:
sudo apt-get install -y nvidia-container-toolkit \
nvidia-container-toolkit-base libnvidia-container-tools \
libnvidia-container1Opzionale: 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 dockerVerifica del runtime NVIDIA con Docker
Esegui docker info | grep -i runtime per assicurarti che nvidia appaia nell'elenco dei runtime:
docker info | grep -i runtimeDovresti vedere nvidia elencato come uno dei runtime disponibili.
Passaggio 1: Scarica (pull) l'immagine Docker di YOLOv5
Ultralytics fornisce immagini ufficiali di YOLOv5 su Docker Hub. Il tag latest segue il commit più recente del repository, garantendoti di avere sempre la versione più nuova. 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 $tPuoi sfogliare tutte le immagini disponibili presso il repository Docker Hub di Ultralytics YOLOv5.
Passaggio 2: Esegui il container Docker
Una volta scaricata l'immagine, puoi eseguirla come container.
Utilizzo della sola CPU
Per eseguire un'istanza di container 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 --runtime=nvidia --ipc=host $tUtilizzo della GPU
Per abilitare l'accesso alla GPU all'interno del container, 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"' $tConsulta il riferimento per Docker run per ulteriori dettagli sulle opzioni del comando.
Montaggio di directory locali
Per lavorare con i tuoi file locali (dataset, pesi del modello, ecc.) all'interno del container, usa il flag -v 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 --runtime=nvidia --ipc=host --gpus all -v /path/on/host:/path/in/container $tSostituisci /path/on/host con il percorso effettivo sulla tua macchina e /path/in/container con il percorso desiderato all'interno del container Docker (es. /usr/src/datasets).
Passaggio 3: Usa YOLOv5 🚀 all'interno del container Docker
Ora sei all'interno del container Docker di YOLOv5 in esecuzione! Da qui, puoi eseguire i comandi standard di YOLOv5 per varie attività di Machine Learning e Deep Learning come il rilevamento 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 modelEsplora 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 varie opzioni di deployment del modello. Ricorda di gestire efficacemente i tuoi pesi del modello.

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