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
, 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:
- Docker: Descarrega e instala o Docker a partir do official Docker website. O Docker é essencial para criar e gerir contentores.
- 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.
- 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-smiEste 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.listAtualize as listas de pacotes e instale o NVIDIA Container Toolkit:
sudo apt-get updatesudo apt-get install -y nvidia-container-toolkitVerifica 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 listDeverá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 $tPodes 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 $tUsando 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 $tConsulta 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 $tSubstitui /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 modelExplora 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.

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