Yolo Vision Shenzhen
Shenzhen
Junte-se agora

Containerização usando Docker para otimizar a implantação de modelos

Abirami Vina

Leitura de 5 minutos

5 de fevereiro de 2025

Saiba como a utilização do Docker para contentorização torna a implementação de modelos de visão computacional como o Ultralytics YOLO11 mais eficiente e direta.

O processo de construção de uma solução de visão computacional envolve mais etapas do que simplesmente treinar e testar um modelo. Na verdade, uma das partes mais emocionantes da criação de modelos de ponta é vê-los causar impacto em ambientes do mundo real. Usar a Visão de IA para resolver problemas leva naturalmente à implantação dos modelos de visão computacional que você desenvolve em produção.

A implantação de modelos envolve várias etapas, incluindo a otimização de modelos para confiabilidade, escalabilidade e desempenho em diversas condições. Um fluxo de trabalho de implantação bem estruturado preenche a lacuna entre o desenvolvimento do modelo e o modelo que tem um impacto significativo que faz a diferença. 

Muitas vezes, ao implantar modelos de visão computacional como o Ultralytics YOLO11existem várias técnicas e opções de implantação que podem ser escolhidas, e isso depende do aplicativo específico que está sendo criado. Por exemplo, técnicas como a conteinerização podem simplificar o fluxo de trabalho de implantação. 

A contentorização ajuda a empacotar um modelo e as suas dependências, como bibliotecas, frameworks e configurações, numa única unidade autónoma chamada contentor. Uma das formas mais eficientes e populares de o fazer é com o Docker, uma plataforma de código aberto que facilita a construção, o envio e a execução de aplicações contentorizadas.

Neste artigo, exploraremos como a conteinerização e o Docker agilizam a implantação de modelos, garantindo escalabilidade e eficiência perfeitas em aplicações de Visão de IA do mundo real.

O que é implantação de modelo?

A implantação de modelos é o estágio final do ciclo de vida do aprendizado de máquina, onde o modelo treinado é introduzido em um ambiente de produção para fazer previsões no mundo real. A implantação bem-sucedida é uma parte fundamental para que o modelo tenha um desempenho confiável em condições práticas. 

Por exemplo, considere um modelo de visão computacional projetado para identificar placas de veículos para cobrança automática de pedágio. Embora possa atingir alta precisão em um ambiente controlado com conjuntos de dados bem rotulados, a implantação em câmeras rodoviárias pode introduzir problemas de latência devido a fatores como processamento de imagem de alta resolução, atrasos de rede, limitações de hardware e restrições de inferência em tempo real. 

Previsões lentas podem levar a atrasos no processamento de pedágios, congestionamento ou até mesmo detecções perdidas. Estratégias adequadas de implantação de modelos podem ajudar a reduzir a latência, melhorar a eficiência e suportar um desempenho confiável em aplicações do mundo real.

__wf_reserved_inherit
Fig. 1. Deteção de matrículas com YOLO11.

Além disso, existem várias considerações a serem lembradas ao implementar modelos. Uma delas é a escalabilidade, onde os modelos têm um bom desempenho durante o treinamento, mas podem ter dificuldades para lidar com dados em grande escala.

Outro são as incompatibilidades ambientais, como diferenças de hardware, quando um modelo é treinado em GPUs (Unidades de Processamento Gráfico) de alto desempenho, mas implantado em dispositivos com poder de processamento limitado. Essas inconsistências na implantação podem levar a um comportamento imprevisível do modelo. Soluções avançadas como a conteinerização podem ser usadas para enfrentar esses desafios.

Containerização

A Containerização pode ser comparada a embalar sua lancheira, que contém tudo o que você precisa para uma refeição, como comida, talheres e condimentos. Você pode comer em qualquer lugar sem se preocupar em encontrar uma cozinha ou utensílios específicos. 

Da mesma forma, o empacotamento em contêineres agrupa um modelo com todas as suas dependências, como bibliotecas, frameworks e configurações, em uma única unidade chamada contêiner. Esses contêineres garantem que o modelo seja executado de forma consistente, fornecendo as mesmas dependências em qualquer sistema, independentemente do ambiente subjacente. Ao contrário das máquinas virtuais, que carregam sistemas operacionais inteiros, os contêineres são leves e portáteis, tornando-os uma alternativa eficiente.

__wf_reserved_inherit
Fig. 2. Uma visão geral da contentorização.

Aqui estão algumas das principais vantagens da containerização:

  • Controlo de versão: Com a contentorização, diferentes versões de um modelo ou stack de software podem coexistir, permitindo rollbacks e atualizações fáceis sem interromper os sistemas de produção.
  • Segurança: Os contêineres isolam as aplicações do sistema subjacente, reduzindo o risco de conflitos, vulnerabilidades e acesso não autorizado.
  • Implantação rápida: Imagens de contêiner pré-configuradas permitem implantações rápidas e repetíveis, reduzindo o tempo de configuração e minimizando erros de implantação.

Docker: simplificando a containerização

Embora a conteinerização seja uma ótima maneira de executar aplicativos em ambientes isolados, configurá-la pode ser complicado. É aí que o Docker entra. O Docker é uma plataforma de código aberto que simplifica a construção, a implantação e o gerenciamento de aplicativos conteinerizados.

Fornece um ambiente consistente e isolado, juntamente com as ferramentas e estruturas necessárias para testar o modelo. Especificamente, o Docker é conhecido pelo seu ecossistema forte e facilidade de uso. Facilita a implementação de modelos de IA, simplificando o processo, funcionando perfeitamente com plataformas de nuvem e permitindo que modelos de IA sejam executados de forma eficiente em dispositivos de borda para resultados mais rápidos.

Muitas indústrias estão utilizando ativamente essa tecnologia para implementar e gerenciar aplicações containerizadas de forma eficiente. A implementação de modelos baseada em Docker geralmente envolve três componentes principais:

  • Dockerfile: Um arquivo de configuração baseado em texto que atua como um projeto para criar uma imagem Docker. Ele contém todas as instruções necessárias, incluindo a imagem base, dependências necessárias, configurações de ambiente e comandos para executar o modelo.
  • Imagens Docker: Arquivos de pacote pré-configurados que incluem tudo o que é necessário para a execução do modelo - como código, bibliotecas, ambientes de tempo de execução e dependências. Essas imagens garantem que o modelo seja executado com a mesma configuração em qualquer sistema.
  • Containers Docker: Execução de instâncias de imagens Docker que fornecem um ambiente isolado e seguro para a execução do modelo. Dentro deste ambiente, o modelo pode ser treinado, testado e ajustado sem interferir com outras aplicações ou com o sistema host.
__wf_reserved_inherit
Fig 3. Compreendendo os principais componentes do Docker.

Explorando uma aplicação de visão computacional usando o Docker

Digamos que uma cidade pretende implementar um sistema de monitorização do tráfego que utiliza a visão por computador para detect e classify veículos em tempo real. A implementação deste sistema em vários locais, cada um com diferentes condições de hardware e de rede, pode ser um desafio. Problemas de compatibilidade, conflitos de dependência e ambientes inconsistentes podem levar a um desempenho não fiável.

Ao utilizar o Docker, os programadores podem empacotar todo o modelo de visão por computador, juntamente com as suas dependências (tais como estruturas de IA como o TensorFlow e scripts personalizados), num contentor. Isto garante que o modelo é executado de forma consistente em diferentes ambientes, desde o desenvolvimento local a servidores baseados na nuvem ou mesmo dispositivos de ponta instalados em câmaras de trânsito.

__wf_reserved_inherit
Fig 4. Como o Docker funciona.

Por exemplo, ao implementar modelos de visão computacional Dockerizados em vários cruzamentos, a cidade pode analisar o fluxo de tráfego, detect violações e otimizar os sinais de trânsito. Como o Docker facilita um ambiente padronizado em todos os locais, a manutenção é mais fácil, as atualizações são contínuas e o desempenho permanece consistente.

Implantação do YOLO11 usando o Docker

YOLO11, com a sua capacidade de realizar tarefas complexas de visão por computador, pode ser utilizado em várias indústrias, como a indústria transformadora, os cuidados de saúde, a condução autónoma e a agricultura. 

Por exemplo, YOLO11 pode processar feeds de vídeo em aplicações de fitness para track exercícios como flexões utilizando a estimativa de pose. Ao detetar os movimentos do corpo e contar as repetições em tempo real, ajuda a melhorar o acompanhamento dos exercícios e a análise do desempenho.

__wf_reserved_inherit
Fig. 5. Monitorização de um exercício físico utilizando YOLO11.

Se quisermos implantar esse modelo em aplicações do mundo real, precisamos gerenciar dependências, otimizar o hardware e garantir um desempenho consistente em diferentes ambientes. O uso do Docker simplifica esse processo ao empacotar YOLO11 com todas as bibliotecas e configurações necessárias, tornando a implantação mais eficiente, escalável e confiável.

Aqui está uma visão rápida dos benefícios da implantação do YOLO11 usando o Docker:

  • Manutenção simplificada: O Docker simplifica o processo de atualização e manutenção YOLO11 e das suas dependências. As actualizações podem ser aplicadas à imagem do contentor sem afetar o sistema anfitrião, garantindo uma gestão de modelos suave e eficiente.
  • Colaboração simplificada: Desenvolvedores e pesquisadores podem facilmente compartilhar contêineres Docker pré-configurados, garantindo que as equipes trabalhem com o mesmo ambiente e evitando problemas de compatibilidade.
  • Eficiência de recursos: Ao contrário das máquinas virtuais tradicionais, os contêineres Docker compartilham o SO do host, reduzindo a sobrecarga e melhorando a utilização de recursos, o que é crucial para tarefas de inferência em tempo real.

Aplicações YOLO11 que podem ser implantadas utilizando o Docker

Vamos analisar alguns exemplos de aplicações de visão computacional que podem ser criadas usando YOLO11 e o Docker. 

Monitorização do tráfego com o YOLO11

Anteriormente, falámos da monitorização do tráfego através da visão computacional. Curiosamente, o suporte do YOLO11para o seguimento de objectos pode ajudar a criar um sistema de gestão de tráfego abrangente. Como é que isto funciona?

YOLO11 pode analisar as transmissões de vídeo em direto das câmaras de trânsito para detect e track os veículos em tempo real. Ao identificar continuamente as posições dos veículos, as velocidades e os padrões de movimento, o sistema pode monitorizar os níveis de congestionamento, detect infracções de trânsito (como passar o sinal vermelho ou fazer curvas ilegais) e otimizar os sinais de trânsito com base em dados em tempo real.

Além disso, a implementação do YOLO11 em dispositivos periféricos ou plataformas baseadas na nuvem com a ajuda do Docker garante um processamento e uma escalabilidade eficientes, tornando-o numa ferramenta valiosa para a gestão inteligente do tráfego urbano.

__wf_reserved_inherit
Fig. 6. Localização e contagem de veículos utilizando YOLO11.

Fisioterapia melhorada com YOLO11

Quando se trata de saúde, a fisioterapia é crucial para a reabilitação, e a postura e o movimento adequados são vitais para uma recuperação bem-sucedida. O feedback em tempo real de um sistema de monitoramento de pacientes baseado em visão pode ajudar os terapeutas a identificar problemas como ângulos articulares incorretos ou desequilíbrios musculares. 

Por exemplo, se um doente estiver a realizar uma elevação do ombro mas não estiver a levantar o braço à altura correta ou estiver a compensar com uma postura incorrecta, o sistema pode detect estes erros e fornecer correcções instantâneas. Isto permite aos terapeutas ajustar os tratamentos em tempo real.

As capacidades de estimativa de pose do YOLO11podem ser utilizadas para detect pontos-chave do corpo e analisar os movimentos das articulações. Pode processar feeds de vídeo em direto para fornecer feedback instantâneo, ajudando os terapeutas a corrigir a postura, a melhorar a precisão dos movimentos e a prevenir lesões. Isto facilita a criação de planos de tratamento personalizados com base no progresso de cada paciente.

__wf_reserved_inherit
Fig. 7. Um exemplo de monitorização de fisioterapia com YOLO11.

Com relação à implantação desse tipo de solução, o uso do Docker pode garantir uma operação tranquila em diferentes ambientes, seja em clínicas ou para monitoramento remoto de pacientes. O Docker simplifica a implantação, aumenta a escalabilidade e mantém a consistência do sistema, tornando as ferramentas de fisioterapia baseadas em IA mais confiáveis e acessíveis.

Principais conclusões

A implantação de um modelo de visão computacional é uma etapa crítica para levá-lo do desenvolvimento ao uso no mundo real. Um processo de implantação tranquilo garante que o modelo treinado tenha um desempenho confiável em aplicações práticas. Ferramentas como Docker e a conteinerização facilitaram este processo, removendo muitos desafios tradicionais. 

Com a sua natureza leve, portátil e escalável, estas tecnologias estão a mudar a forma como modelos como o YOLO11 são criados e implementados. Ao utilizar a contentorização, as empresas podem poupar tempo, reduzir custos e melhorar a eficiência, garantindo simultaneamente que os modelos são executados de forma consistente em diferentes ambientes.

Junte-se à nossa comunidade e consulte o nosso repositório GitHub para saber mais sobre IA. Leia sobre várias aplicações da visão computacional nos cuidados de saúde e da IA no fabrico. Explore nossas opções de licenciamento yolo para começar a usar o Vision AI.

Vamos construir o futuro
da IA juntos!

Comece sua jornada com o futuro do aprendizado de máquina

Comece gratuitamente