YOLO Vision 2026:

Começa com o YOLOv5 🚀 no Docker#

Bem-vindo ao Guia de Início Rápido do Ultralytics YOLOv5 Docker! Este tutorial fornece instruções passo a passo para configurar e executar o YOLOv5 dentro de um contentor Docker. Utilizar o Docker permite-te 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 containerization para empacotar a aplicação e as suas dependências em conjunto.

Para métodos de configuração alternativos, considera os nossos guias do Colab Notebook Open In Colab Open In Kaggle, GCP Deep Learning VM ou 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, garante que tens o seguinte instalado:

  1. Docker: Descarrega e instala o Docker a partir do official Docker website. O Docker é essencial para criar e gerir contentores.
  2. NVIDIA Drivers (Necessário para suporte a GPU): Certifica-te de que tens os controladores NVIDIA versão 455.23 ou superior instalados. Podes descarregar os controladores mais recentes a partir do NVIDIA's website.
  3. NVIDIA Container Toolkit (Necessário para suporte a GPU): Este kit de ferramentas permite que os contentores Docker acedam às GPUs NVIDIA da tua máquina anfitriã. Segue o NVIDIA Container Toolkit installation guide oficial para instruções detalhadas.

Configurar o NVIDIA Container Toolkit (Utilizadores de GPU)#

Primeiro, verifica se os teus drivers NVIDIA estão instalados corretamente ao executar:

nvidia-smi

Este comando deve exibir informações sobre a(s) tua(s) GPU(s) e a versão do driver instalado.

Em seguida, instala o NVIDIA Container Toolkit. Os comandos abaixo são típicos para sistemas baseados em Debian como Ubuntu e sistemas baseados em RHEL como Fedora/CentOS, mas consulta o guia oficial mencionado acima para 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

Atualize as listas de pacotes e instale o NVIDIA Container Toolkit:

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

Verifica os dispositivos CDI com Docker#

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

nvidia-ctk cdi list

Deverás ver entradas como nvidia.com/gpu=0 e nvidia.com/gpu=all. No Linux, os pedidos de dispositivos CDI requerem Docker >= 28.2.0 e NVIDIA Container Toolkit >= 1.18. A flag legada --gpus all pode perder o acesso à GPU após reinícios do daemon anfitrião, por isso atualiza os anfitriões Linux mais antigos e utiliza --device em vez disso.

Passo 1: Fazer o pull da 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. Puxa a imagem utilizando 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 explorar todas as imagens disponíveis no Ultralytics YOLOv5 Docker Hub repository.

Passo 2: Executar o container Docker#

Uma vez feita a imagem, podes executá-la como um container.

Usando apenas CPU#

Para executar uma instância de contentor interativa utilizando apenas a CPU, utiliza a flag -it. A flag --ipc=host permite a partilha do namespace 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

Usando GPU#

Para ativar o acesso à GPU dentro do contentor, utiliza 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 Docker run reference para mais detalhes sobre as opções de comandos.

Montar diretórios locais#

Para trabalhar com os teus ficheiros locais (conjuntos de dados, pesos de modelos, etc.) dentro do contentor, utiliza a flag -v para montar um diretório 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 desejado dentro do contentor Docker (por exemplo, /usr/src/datasets).

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

Estás 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 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

Explora a documentação para o uso detalhado de diferentes modos:

Sabe mais sobre métricas de avaliação como Precision, Recall e mAP. Compreende diferentes formatos de exportação como ONNX, CoreML e TFLite, eexplora várias Model Deployment Options. Lembra-te de gerir os teus model weights de forma eficaz.

Running YOLOv5 inside a Docker container on GCP

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

Comentários