Meet YOLO26: next-gen vision AI.

Link to this sectionComeƧa com o YOLOv5 šŸš€ no Docker#

Bem-vindo ao Guia de Início RÔpido do Ultralytics YOLOv5 no Docker! Este tutorial fornece instruções passo a passo para configurar e executar o YOLOv5 dentro de um container Docker. Usar o Docker permite que executes 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 agrupar a aplicação e as suas dependências.

Para métodos de configuração alternativos, considera o nosso Colab Notebook Abrir no Colab Abrir no Kaggle, ou os guias para GCP Deep Learning VM ou Amazon AWS. Para uma visão geral sobre o uso do Docker com modelos Ultralytics, consulta o Guia de Início RÔpido do Docker Ultralytics.

Link to this sectionPrƩ-requisitos#

Antes de comeƧares, garante que tens o seguinte instalado:

  1. Docker: Transfere e instala o Docker a partir do website oficial do Docker. O Docker Ć© essencial para criar e gerir containers.
  2. Drivers NVIDIA (NecessÔrio para suporte a GPU): Garante que tens os drivers NVIDIA versão 455.23 ou superior instalados. Podes transferir os drivers mais recentes a partir do website da NVIDIA.
  3. NVIDIA Container Toolkit (NecessÔrio para suporte a GPU): Este conjunto de ferramentas permite que os containers Docker acedam às GPUs NVIDIA da tua mÔquina anfitriã. Segue o guia de instalação oficial do NVIDIA Container Toolkit para instruções detalhadas.

Link to this sectionConfigurar 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

Atualiza as listas de pacotes e instala o pacote nvidia-container-toolkit:

sudo apt-get update

Instala a versão mais recente do nvidia-container-toolkit:

sudo apt-get install -y nvidia-container-toolkit \
  nvidia-container-toolkit-base libnvidia-container-tools \
  libnvidia-container1
Opcional: Instalar versão específica do nvidia-container-toolkit

Opcionalmente, podes instalar uma versão específica do nvidia-container-toolkit definindo a variÔvel de 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 sectionVerificar o NVIDIA Runtime com o Docker#

Executa docker info | grep -i runtime para garantir que nvidia aparece na lista de runtimes:

docker info | grep -i runtime

DeverƔs ver nvidia listado como um dos runtimes disponƭveis.

Link to this sectionPasso 1: Fazer o pull da imagem Docker do YOLOv5#

A Ultralytics disponibiliza 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 nova. Faz o pull da 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 explorar todas as imagens disponíveis no repositório Docker Hub do Ultralytics YOLOv5.

Link to this sectionPasso 2: Executar o container Docker#

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

Link to this sectionUsando apenas CPU#

Para executar uma instância de container interativa usando apenas a CPU, usa 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

Link to this sectionUsando GPU#

Para ativar o acesso Ć  GPU dentro do container, usa a flag --gpus. Isto requer que o NVIDIA Container Toolkit esteja instalado corretamente.

# 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 a referência de execução do Docker para mais detalhes sobre as opções de comando.

Link to this sectionMontar diretórios locais#

Para trabalhar com os teus ficheiros locais (datasets, pesos de modelos, etc.) dentro do container, usa a flag -v para montar um diretório do anfitrião no 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 $t

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

Link to this sectionPasso 3: Usar o YOLOv5 šŸš€ dentro do container Docker#

EstÔs agora dentro do container 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 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

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

Aprende mais sobre métricas de avaliação como Precisão, Recall e mAP. Compreende diferentes formatos de exportação como ONNX, CoreML e TFLite, e explora vÔrias Opções de Implementação de Modelos. Lembra-te de gerir eficazmente os teus pesos de modelo.

Running YOLOv5 inside a Docker container on GCP

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

ComentƔrios