YOLO Vision 2026:

Começa a usar o YOLOv5 🚀 no Docker#

Bem-vindo ao Guia de início rápido do Docker para Ultralytics YOLOv5! Este tutorial fornece instruções passo a passo para configurar e executar o YOLOv5 num contentor Docker. O uso do Docker permite executar o YOLOv5 num ambiente isolado e consistente, simplificando a implementação e a gestão de dependências em diferentes sistemas. Esta abordagem aproveita a conteinerização para empacotar a aplicação e as respetivas dependências em conjunto.

Para métodos de configuração alternativos, considera o nosso Colab Notebook Open In Colab Open In Kaggle, os guias da GCP Deep Learning VM ou da Amazon AWS. Para uma visão geral da utilização do Docker com modelos Ultralytics, consulta o Ultralytics Docker Quickstart Guide.

Pré-requisitos#

Antes de começares, certifica-te de que tens os seguintes componentes instalados:

  1. Docker: Transfere e instala o Docker a partir do site oficial do Docker. O Docker é essencial para criar e gerir contentores.
  2. Controladores NVIDIA (necessários para suporte de GPU): certifica-te de que tens instalados controladores NVIDIA da versão 455.23 ou superior. Podes transferir os controladores mais recentes a partir do site da NVIDIA.
  3. NVIDIA Container Toolkit (necessário para suporte de GPU): este toolkit permite que os contentores Docker acedam às GPU NVIDIA da máquina anfitriã. Consulta o guia oficial de instalação do NVIDIA Container Toolkit para obteres instruções detalhadas.

Configurar o NVIDIA Container Toolkit (utilizadores de GPU)#

Primeiro, verifica se os controladores NVIDIA estão instalados corretamente executando:

nvidia-smi

Este comando deve apresentar informações sobre a tua GPU (ou GPUs) e a versão do controlador instalado.

Em seguida, instala o NVIDIA Container Toolkit. Os comandos abaixo são típicos de sistemas baseados em Debian, como o Ubuntu, e de sistemas baseados em RHEL, como o Fedora/CentOS, mas consulta o guia oficial indicado acima para obteres instruções específicas da tua distribuição:

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

Atualiza as listas de pacotes e instala o NVIDIA Container Toolkit:

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

Verificar dispositivos CDI com o Docker#

Executa nvidia-ctk cdi list para garantir que os dispositivos GPU CDI estão disponíveis (o serviço nvidia-cdi-refresh do toolkit gera e mantém automaticamente a especificação no toolkit >= 1.18):

nvidia-ctk cdi list

Deves ver entradas como nvidia.com/gpu=0 e nvidia.com/gpu=all. No Linux, os pedidos de dispositivos CDI requerem o Docker >= 28.2.0 e o NVIDIA Container Toolkit >= 1.18. A flag legada --gpus all pode fazer perder o acesso à GPU após recarregamentos do daemon anfitrião, por isso atualiza os hosts Linux mais antigos e usa --device em vez dela.

Passo 1: Obter a imagem Docker do YOLOv5#

A Ultralytics fornece imagens oficiais do YOLOv5 no Docker Hub. A tag latest acompanha o commit mais recente do repositório, garantindo que obténs sempre a versão mais recente. Obtém a imagem usando o seguinte comando:

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

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

Podes consultar todas as imagens disponíveis no repositório Docker Hub do Ultralytics YOLOv5.

Passo 2: Executar o contentor Docker#

Depois de obteres a imagem, podes executá-la como um contentor.

Usar apenas a CPU#

Para executar uma instância de contentor interativa usando apenas a CPU, usa a flag -it. A flag --ipc=host permite partilhar o espaço de nomes IPC do anfitrião, o que é importante para o acesso à memória partilhada.

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

Usar a GPU#

Para ativar o acesso à GPU dentro do contentor, usa a flag CDI --device nvidia.com/gpu=.... Isto requer que o NVIDIA Container Toolkit esteja instalado corretamente.

# 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

Consulta a referência do comando docker run para obteres mais informações sobre as opções de comando.

Montar diretórios locais#

Para trabalhares com os teus ficheiros locais (conjuntos de dados, pesos do modelo, etc.) dentro do contentor, usa a flag -v para montar um diretório do anfitrião no contentor:

# 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

Substitui /path/on/host pelo caminho real na tua máquina e /path/in/container pelo caminho pretendido dentro do contentor Docker (por exemplo, /usr/src/datasets).

Passo 3: Usar o YOLOv5 🚀 dentro do contentor Docker#

Encontras-te agora dentro do contentor Docker do YOLOv5 em execução! A partir daqui, podes executar comandos padrão do YOLOv5 para várias tarefas de Machine Learning e Deep Learning, como a Deteção de objetos.

# 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

Consulta a documentação para obteres informações detalhadas sobre a utilização dos diferentes modos:

Obtém mais informações sobre métricas de avaliação como Precisão, Revocação e mAP. Compreende os diferentes formatos de exportação, como ONNX, CoreML e TFLite, e explora várias Opções de implementação de modelos. Não te esqueças de gerir eficazmente os pesos do modelo.

Running YOLOv5 inside a Docker container on GCP

Configuraste e executaste com sucesso o YOLOv5 dentro de um contentor Docker.

Comentários