Comece com o YOLOv5 🚀 no Docker
Bem-vindo ao guia de início rápido do Docker para o Ultralytics YOLOv5! Este tutorial oferece instruções passo a passo para configurar e executar o YOLOv5 dentro de um Docker contêiner. Usar o Docker permite que você execute o YOLOv5 em um ambiente isolado e consistente, simplificando a implementação e o gerenciamento de dependências em diferentes sistemas. Esta abordagem aproveita a containerização para empacotar a aplicação e suas dependências juntas.
Para métodos de configuração alternativos, considere nossos guias de Colab Notebook
, GCP Deep Learning VM, ou Amazon AWS para uma visão geral sobre o uso do Docker com modelos Ultralytics, veja o Ultralytics Docker Quickstart Guide.
Antes de começar, certifique-se de que você tem acesso a um workspace do AzureML. Se você ainda não tem um, pode criar um novo
Antes de começar, certifique-se de ter o seguinte instalado:
- Docker: Baixe e instale o Docker a partir do site oficial do Docker. O Docker é essencial para criar e gerenciar contêineres.
- NVIDIA Drivers (Necessário para suporte a GPU): Certifique-se de ter os drivers NVIDIA versão 455.23 ou superior instalados. Você pode baixar os drivers mais recentes no site da NVIDIA.
- NVIDIA Container Toolkit (Necessário para suporte a GPU): Este toolkit permite que contêineres Docker acessem as GPUs NVIDIA da sua máquina hospedeira. Siga o guia de instalação do NVIDIA Container Toolkit para instruções detalhadas.
Configurando o NVIDIA Container Toolkit (Usuários de GPU)
Primeiro, verifique se seus drivers NVIDIA estão instalados corretamente executando:
nvidia-smiEste comando deve exibir informações sobre sua(s) GPU(s) e a versão do driver instalado.
Em seguida, instale 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 consulte o guia oficial vinculado acima para instruções específicas da sua 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.listAtualiza as listas de pacotes e instala o pacote nvidia-container-toolkit:
sudo apt-get updateInstale 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-container1Opcional: 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 environment variable:
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 dockerVerificando o Runtime NVIDIA com Docker
Executa docker info | grep -i runtime para garantir que nvidia aparece na lista de runtimes:
docker info | grep -i runtimeVocê deve ver nvidia listado como um dos runtimes disponíveis.
Passo 1: Baixe a imagem Docker do YOLOv5
O Ultralytics fornece imagens oficiais do YOLOv5 no Docker Hub. O latest A tag rastreia o commit mais recente do repositório, garantindo que você sempre obtenha a versão mais nova. Baixe 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 $tVocê pode navegar por todas as imagens disponíveis no repositório Ultralytics YOLOv5 Docker Hub.
Passo 2: Execute o contêiner Docker
Uma vez que a imagem tenha sido baixada, você pode executá-la como um contêiner.
Usando apenas CPU
Para executar uma instância de contêiner interativa usando apenas a CPU, use a flag -it. A flag --ipc=host permite o compartilhamento do namespace IPC do host, o que é importante para o acesso à memória compartilhada.
# Run an interactive container instance using CPU
sudo docker run -it --runtime=nvidia --ipc=host $tUsando GPU
Para habilitar o acesso à GPU dentro do contêiner, use a flag --gpus. Isso 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"' $tConsulta o Referência de execução do Docker para mais detalhes sobre opções de comando.
Montando diretórios locais
Para trabalhar com seus arquivos locais (datasets, pesos de modelos, etc.) dentro do contêiner, use a flag -v para montar um diretório do host no contêiner:
# 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 $tSubstitui /path/on/host com o caminho real na sua máquina e /path/in/container com o caminho desejado dentro do contêiner Docker (ex: /usr/src/datasets).
Passo 3: Use o YOLOv5 🚀 dentro do contêiner Docker
Você agora está dentro do contêiner Docker em execução do YOLOv5! A partir daqui, você pode executar comandos padrão do YOLOv5 para várias tarefas de Machine Learning e Deep Learning como Detecçã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 modelExplore a documentação para o uso detalhado de diferentes modos:
Aprenda mais sobre métricas de avaliação como Precisão, Recall, e mAP. Entenda diferentes formatos de exportação como ONNX, CoreML, e TFLite, e explore vários Opções de Implantação de Modelo. Lembre-se de gerenciar seus pesos de modelo de forma eficaz.

Você configurou e executou com sucesso o YOLOv5 dentro de um contêiner Docker.