Comece a usar o YOLOv5 🚀 no Docker
Bem-vindo ao Guia de Início Rápido do Docker do YOLOv5 da Ultralytics! Este tutorial fornece instruções passo a passo para configurar e executar o YOLOv5 dentro de um contêiner Docker. O uso do Docker permite que você execute o YOLOv5 em um ambiente isolado e consistente, simplificando a implantação e o gerenciamento de dependências em diferentes sistemas. Esta abordagem aproveita a containerização para empacotar o aplicativo e suas dependências juntos.
Para métodos de configuração alternativos, considere nossos Notebook Colab
, VM de Deep Learning do GCP, ou Amazon AWS guias. Para uma visão geral do uso do Docker com modelos Ultralytics, veja o Guia de Início Rápido do Docker da Ultralytics.
Pré-requisitos
Antes de começar, certifique-se de que tem o seguinte instalado:
- Docker: Baixe e instale o Docker do site oficial do Docker. O Docker é essencial para criar e gerenciar contêineres.
- Drivers NVIDIA (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 os contêineres Docker acessem as GPUs NVIDIA da sua máquina host. Siga o guia de instalação oficial do NVIDIA Container Toolkit para obter instruções detalhadas.
Configurando o NVIDIA Container Toolkit (Usuários de GPU)
Primeiro, verifique se seus drivers NVIDIA estão instalados corretamente executando:
nvidia-smi
Este 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 o Ubuntu, mas consulte o guia oficial vinculado acima para obter instruções específicas para sua distribuição:
# Add NVIDIA package repositories (refer to official guide for latest setup)
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
# Update package list and install the toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# Configure Docker to use the NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker
# Restart Docker service to apply changes
sudo systemctl restart docker
Finalmente, verifique se o runtime NVIDIA está configurado e disponível para o Docker:
docker info | grep -i runtime
Você deverá ver nvidia
listado como um dos runtimes disponíveis.
Passo 1: Puxe a imagem Docker YOLOv5
A Ultralytics fornece imagens oficiais do YOLOv5 em Docker Hub. O latest
A tag rastreia o commit mais recente do repositório, garantindo que você sempre obtenha a versão mais nova. Puxe 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
Você pode navegar por todas as imagens disponíveis no repositório Ultralytics YOLOv5 Docker Hub.
Passo 2: Execute o contêiner Docker
Depois que a imagem for extraída, 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 o -it
flag. A --ipc=host
flag 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 --ipc=host $t
Usando GPU
Para habilitar o acesso à GPU dentro do contêiner, use o --gpus
flag. Isso requer que o NVIDIA Container Toolkit esteja instalado corretamente.
# Run with access to all available GPUs
sudo docker run -it --ipc=host --gpus all $t
# Run with access to specific GPUs (e.g., GPUs 2 and 3)
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t
Consulte a referência de execução do Docker para obter mais detalhes sobre as opções de comando.
Montagem de Diretórios Locais
Para trabalhar com os seus arquivos locais (conjuntos de dados, pesos do modelo, etc.) dentro do contêiner, use o -v
flag 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 --ipc=host --gpus all -v /path/on/host:/path/in/container $t
Substitua /path/on/host
com o caminho real na sua máquina e /path/in/container
com o caminho desejado dentro do contêiner Docker (por exemplo, /usr/src/datasets
).
Passo 3: Use YOLOv5 🚀 dentro do Contêiner Docker
Agora você está dentro do contêiner Docker YOLOv5 em execução! A partir daqui, você pode executar comandos YOLOv5 padrão 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 model
Explore a documentação para obter informações detalhadas sobre o uso de diferentes modos:
Saiba mais sobre métricas de avaliação como Precisão, Recall e mAP. Compreenda diferentes formatos de exportação como ONNX, CoreML e TFLite, e explore várias Opções de Implantação de Modelo. Lembre-se de gerenciar seus pesos do modelo de forma eficaz.
Parabéns! Você configurou e executou com sucesso o YOLOv5 dentro de um contêiner Docker.