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

Abirami Vina

5 min. de leitura

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 por computador envolve mais passos do que simplesmente treinar e testar um modelo. De facto, uma das partes mais entusiasmantes da criação de modelos de vanguarda é ver o seu impacto em ambientes do mundo real. A utilização da IA de visão para resolver problemas leva naturalmente à implementação dos modelos de visão por computador que desenvolve na produção.

A implementação de modelos envolve várias etapas, incluindo a otimização de modelos para fiabilidade, escalabilidade e desempenho em diversas condições. Um fluxo de trabalho de implementaçã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 YOLO11, existem várias técnicas e opções de implantação que você pode escolher, e isso depende do aplicativo específico que você está criando. Por exemplo, técnicas como a conteinerização podem simplificar o fluxo de trabalho de implantação. 

A conteinerização ajuda a empacotar um modelo e suas dependências, como bibliotecas, estruturas e configurações, em uma unidade única e independente chamada de contêiner. Uma das maneiras mais eficientes e populares de fazer isso é com o Docker, uma plataforma de código aberto que facilita a criação, o envio e a execução de aplicativos em contêineres.

Neste artigo, exploraremos como a conteinerização e o Docker simplificam a implantação de modelos, garantindo escalabilidade e eficiência contínuas em aplicativos Vision AI do mundo real.

O que é a implantação de modelos?

A implementação do modelo é a fase final do ciclo de vida da aprendizagem automática, em que o modelo treinado é introduzido num ambiente de produção para fazer previsões no mundo real. Uma implementação bem sucedida é uma parte essencial do desempenho fiável do modelo em condições práticas. 

Por exemplo, considere-se um modelo de visão por computador concebido para identificar matrículas para a cobrança automática de portagens. Embora possa atingir uma elevada precisão num ambiente controlado com conjuntos de dados bem rotulados, a sua implementação em câmaras de estrada pode introduzir problemas de latência devido a factores como o processamento de imagens de alta resolução, atrasos na rede, limitações de hardware e restrições de inferência em tempo real. 

Previsões lentas podem levar a atrasos no processamento de portagens, congestionamento ou mesmo a detecções perdidas. Estratégias adequadas de implementação de modelos podem ajudar a reduzir a latência, melhorar a eficiência e suportar um desempenho fiável em aplicações reais.

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

Além disso, há várias considerações a ter em conta aquando da implementação dos modelos. Uma delas é a escalabilidade, em que os modelos têm um bom desempenho durante a formação, mas podem ter dificuldades em lidar com dados em grande escala.

Outra é a incompatibilidade ambiental, como as diferenças de hardware, quando um modelo é treinado em GPUs (unidades de processamento gráfico) de alto desempenho, mas implementado em dispositivos com capacidade de processamento limitada. Essas inconsistências na implantação podem levar a um comportamento imprevisto do modelo. Soluções avançadas como a contentorização podem ser utilizadas para resolver estes desafios.

Contentorização

A contentorização pode ser comparada à embalagem da lancheira, que contém tudo o que é necessário para uma refeição, como alimentos, talheres e condimentos. Pode comer em qualquer lugar sem se preocupar em encontrar uma cozinha ou utensílios específicos. 

Da mesma forma, a conteinerização empacota um modelo com todas as suas dependências, como bibliotecas, estruturas e configurações, em uma única unidade chamada de 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 transportam sistemas operativos inteiros, os contentores são leves e portáteis, o que os torna uma alternativa eficiente.

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

Eis algumas das principais vantagens da contentorização:

  • Controlo de versões: Com a contentorização, podem coexistir diferentes versões de um modelo ou pilha de software, permitindo rollbacks e actualizações fáceis sem perturbar os sistemas de produção.
  • Segurança: Os contentores isolam as aplicações do sistema subjacente, reduzindo o risco de conflitos, vulnerabilidades e acesso não autorizado.
  • Implantação rápida: As imagens de contentor pré-configuradas permitem implementações rápidas e repetíveis, reduzindo o tempo de configuração e minimizando os erros de implementação.

Docker: simplificar a contentorização

‍Emboraa contentorização seja uma excelente forma de executar aplicações em ambientes isolados, a sua configuração pode ser complicada. É aí que entra o Docker. O Docker é uma plataforma de código aberto que simplifica a criação, a implantação e o gerenciamento de aplicativos em contêineres.

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

Muitas indústrias estão a utilizá-lo ativamente para implementar e gerir aplicações em contentores de forma eficiente. A implementação de modelos baseados em Docker envolve geralmente três componentes principais:

  • Dockerfile: Um arquivo de configuração baseado em texto que atua como um modelo para criar uma imagem do Docker. Ele contém todas as instruções necessárias, incluindo a imagem base, as dependências necessárias, as configurações de ambiente e os comandos para executar o modelo.
  • Imagens do Docker: Arquivos de pacotes 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.
  • Contentores Docker: Instâncias em execução de imagens do Docker que fornecem um ambiente isolado e seguro para a execução do modelo. Neste ambiente, o modelo pode ser treinado, testado e ajustado sem interferir com outras aplicações ou com o sistema anfitrião.
__wf_reserved_inherit
Figura 3. Compreender os principais componentes do Docker.

Explorar uma aplicação de visão computacional utilizando o Docker

Digamos que uma cidade pretende implementar um sistema de monitorização do tráfego que utiliza a visão por computador para detetar e classificar 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
Figura 4. Como funciona o Docker.

Por exemplo, ao implementar modelos de visão computacional Dockerizados em vários cruzamentos, a cidade pode analisar o fluxo de tráfego, detetar 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

O 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, o YOLO11 pode processar feeds de vídeo em aplicações de fitness para acompanhar 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 com o 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 o 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 do 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: Os programadores e investigadores podem partilhar facilmente contentores Docker pré-configurados, garantindo que as equipas trabalham com o mesmo ambiente e evitando problemas de compatibilidade.
  • Eficiência de recursos: Ao contrário das máquinas virtuais tradicionais, os contentores Docker partilham o SO anfitrião, reduzindo as despesas gerais e melhorando a utilização dos recursos, o que é crucial para as 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 o 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 YOLO11 para o seguimento de objectos pode ajudar a criar um sistema de gestão de tráfego abrangente. Como é que isto funciona?

O YOLO11 pode analisar as transmissões de vídeo em direto das câmaras de trânsito para detetar e seguir 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, detetar 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 o YOLO11.

Fisioterapia melhorada com YOLO11

No que diz respeito aos cuidados de saúde, a fisioterapia é crucial para a reabilitação, e a postura e o movimento corretos são vitais para uma recuperação bem sucedida. O feedback em tempo real de um sistema de monitorização do doente baseado na visão pode ajudar os terapeutas a detetar problemas como ângulos incorrectos das articulações 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 detetar 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 YOLO11 podem ser utilizadas para detetar 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.

No que diz respeito à implementação deste tipo de solução, a utilização do Docker pode garantir um funcionamento sem problemas em diferentes ambientes, seja em clínicas ou para monitorização remota de pacientes. O Docker simplifica a implementação, melhora a escalabilidade e mantém a consistência do sistema, tornando as ferramentas de fisioterapia alimentadas por IA mais fiáveis e acessíveis.

Principais conclusões

A implementação de um modelo de visão por computador é um passo crítico para o levar do desenvolvimento à utilização no mundo real. Um processo de implantação tranquilo garante que o modelo treinado funcione de forma confiável em aplicações práticas. Ferramentas como o Docker e a conteinerização tornaram esse processo mais fácil, 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 as nossas opções de licenciamento yolo para começar a utilizar o Vision AI.

Vamos construir juntos o futuro
da IA!

Comece a sua viagem com o futuro da aprendizagem automática

Comece gratuitamente
Ligação copiada para a área de transferência