Este artigo descreve como usar um robô móvel com uma câmera de transmissão ao vivo para implementar vários casos de uso. A solução implementa um sistema que é executado localmente no Azure Stack Edge para ingerir e processar o fluxo de vídeo e os serviços de IA do Azure que executam a deteção de objetos.
Arquitetura
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de Trabalho
Este fluxo de trabalho descreve como o sistema processa os dados recebidos:
Uma câmera instalada no robô transmite vídeo em tempo real usando o protocolo RTSP (Real Time Streaming Protocol).
Um contêiner no cluster Kubernetes no Azure Stack Edge lê o fluxo de entrada e divide o vídeo em imagens separadas. Uma ferramenta de software de código aberto chamada FFmpeg ingere e processa o fluxo de vídeo.
As imagens são armazenadas na conta de armazenamento local do Azure Stack Edge.
Cada vez que um novo quadro-chave é salvo na conta de armazenamento, um contêiner AI Vision o pega. Para obter informações sobre a separação da lógica em vários contêineres, consulte Detalhes do cenário.
Quando carrega um quadro-chave do contêiner de armazenamento, o contêiner AI Vision o envia para os serviços de IA do Azure na nuvem. Essa arquitetura usa o Azure AI Vision, que permite a deteção de objetos por meio da análise de imagem.
Os resultados da análise de imagem (objetos detetados e uma classificação de confiança) são enviados para o contêiner de deteção de anomalias.
O contêiner de deteção de anomalias armazena os resultados da análise de imagem e da deteção de anomalias na instância local do Banco de Dados SQL do Azure do Azure Stack Edge para referência futura. O uso de uma instância local do banco de dados melhora o tempo de acesso, o que ajuda a minimizar os atrasos no acesso aos dados.
O processamento de dados é executado para detetar quaisquer anomalias no fluxo de vídeo em tempo real recebido. Se forem detetadas anomalias, uma interface do usuário front-end mostrará um alerta.
Componentes
O Azure Stack Edge é um dispositivo gerenciado do Azure que traz a computação, o armazenamento e a inteligência do Azure para a borda. Essa arquitetura a usa para hospedar serviços do Azure localmente, perto do local onde ocorre a deteção de anomalias, o que reduz a latência.
Serviço Kubernetes do Azure (AKS) no Azure Stack Edge. O Serviço Kubernetes do Azure (AKS) é um serviço Kubernetes gerenciado que você pode usar para implantar e gerenciar aplicativos em contêineres. Nessa arquitetura, estamos usando uma versão do AKS que é executada no dispositivo Azure Stack Edge para gerenciar contêineres responsáveis pela lógica do sistema.
O Azure Arc é uma ponte que estende os serviços do Azure até a borda. Ao utilizar o Azure Arc nessa arquitetura, podemos controlar serviços de borda por meio do portal de nuvem.
O Azure AI Vision é um serviço unificado que oferece recursos de visão computacional. Nesta arquitetura, o recurso de análise de imagem é usado para detetar objetos em quadros-chave do fluxo de vídeo.
O Armazenamento de Blobs do Azure é uma solução de armazenamento de objetos da Microsoft para a nuvem. Nessa arquitetura, ele é usado para armazenar imagens de quadros-chave que são extraídos do fluxo de vídeo.
O Azure SQL Edge é um mecanismo SQL otimizado para borda com IA integrada. Nessa arquitetura, optamos especificamente pela versão edge do mecanismo SQL para armazenar metadados de análise de imagem, mantendo-os próximos ao serviço que consome e processa.
O Registro de Contêiner do Azure é um registro de imagens do Docker e da Open Container Initiative (OCI), com suporte para todos os artefatos OCI. Nessa arquitetura, o registro armazena imagens de contêiner do Docker para deteção de anomalias e contêineres de visão de IA.
O Azure Key Vault é um serviço para fornecer gerenciamento seguro de chaves na nuvem. Nessa arquitetura, ele é usado para armazenar segredos e chaves para permitir que a lógica do sistema interaja com serviços externos onde a identidade gerenciada não está disponível.
O Azure Monitor é uma solução de monitorização abrangente para recolher, analisar e responder a dados de monitorização a partir da sua nuvem e ambientes locais. Nessa arquitetura, esse serviço é a principal plataforma de observabilidade para a carga de trabalho.
Detalhes do cenário
Esta arquitetura demonstra um sistema que processa um fluxo de vídeo em tempo real, compara os dados extraídos em tempo real com um conjunto de dados de referência e toma decisões com base nos resultados. Por exemplo, poderia ser usado para fornecer inspeções programadas de um perímetro cercado em torno de um local seguro.
A arquitetura usa o Azure Stack Edge para garantir que os processos que consomem mais recursos sejam executados localmente, perto da fonte do vídeo. Este design melhora significativamente o tempo de resposta do sistema, o que é importante quando uma resposta imediata a uma anomalia é crítica.
Como as partes do sistema são implantadas como contêineres independentes em um cluster Kubernetes, você pode dimensionar apenas os subsistemas necessários de acordo com a demanda. Por exemplo, se você aumentar o número de câmeras para o feed de vídeo, poderá dimensionar o contêiner responsável pela ingestão e processamento de vídeo para lidar com a demanda, mas manter o restante do cluster no nível original.
Descarregar a funcionalidade de deteção de objetos para os serviços de IA do Azure reduz significativamente a experiência necessária para implantar essa arquitetura. A menos que seus requisitos para deteção de objetos sejam altamente especializados, a abordagem pronta para uso que você obtém do serviço de Análise de Imagem é suficiente e não requer conhecimento de aprendizado de máquina.
Potenciais casos de utilização
Monitorização da segurança de um perímetro
Detetar um ambiente de trabalho inseguro numa fábrica
Deteção de anomalias em uma linha de montagem automatizada
Deteção de falta de fluido de degelo em aeronaves
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que você pode usar para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.
Fiabilidade
A confiabilidade garante que seu aplicativo possa atender aos compromissos que você assume com seus clientes. Para obter mais informações, consulte Visão geral do pilar de confiabilidade.
Uma das maiores vantagens de usar o Azure Stack Edge é que você obtém componentes totalmente gerenciados em seu hardware local. Todos os componentes totalmente gerenciados do Azure são automaticamente resilientes em nível regional.
Além disso, executar o sistema em um cluster Kubernetes permite descarregar a responsabilidade de manter os subsistemas saudáveis para o sistema de orquestração do Kubernetes.
Segurança
A segurança oferece garantias contra ataques deliberados e o abuso de seus valiosos dados e sistemas. Para obter mais informações, consulte Visão geral do pilar de segurança.
As identidades gerenciadas do Microsoft Entra fornecem segurança para todos os componentes dessa arquitetura. O uso de identidades gerenciadas elimina a necessidade de armazenar segredos em arquivos de código ou configuração. Ele simplifica o controle de acesso, o gerenciamento de credenciais e a atribuição de funções.
Otimização de custos
A otimização de custos consiste em reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custos.
Para ver um exemplo de definição de preço para este cenário, utilize a calculadora de preços do Azure. Os componentes mais caros no cenário são o Azure Stack Edge e o Serviço Kubernetes do Azure. Esses serviços fornecem capacidade de dimensionamento do sistema para atender ao aumento da demanda no futuro.
O custo de usar os serviços de IA do Azure para deteção de objetos varia com base em quanto tempo o sistema é executado. O exemplo de definição de preço anterior baseia-se num sistema que produz uma imagem por segundo e funciona durante 8 horas por dia. Um FPS é suficiente para este cenário. No entanto, se o seu sistema precisar ser executado por períodos de tempo mais longos, o custo de usar os serviços de IA do Azure é maior:
Eficiência de desempenho
Eficiência de desempenho é a capacidade da sua carga de trabalho para dimensionar para satisfazer as exigências que os utilizadores lhe colocam de forma eficiente. Para obter mais informações, consulte Visão geral do pilar de eficiência de desempenho.
Como o código é implantado em um cluster Kubernetes, você pode aproveitar os benefícios desse poderoso sistema de orquestração. Como os vários subsistemas são separados em contêineres, você pode dimensionar apenas as partes mais exigentes do aplicativo. Em um nível básico, com um feed de vídeo de entrada, o sistema pode conter apenas um nó em um cluster. Este design simplifica significativamente a configuração inicial. À medida que a demanda por processamento de dados cresce, você pode dimensionar facilmente o cluster adicionando nós.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Nick Sologoub - Brasil | Líder Principal de Engenharia de Software
Outros contribuidores:
- Mick Alberts - Brasil | Redator Técnico
- Frédéric Le Coquil - Brasil | Engenheiro de Software Principal
Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.
Próximos passos
Documentação do produto:
- Deteção de objetos
- Utilização responsável da IA
- O que é o Azure Stack Edge Pro 2?
- Azure Kubernetes Service
- Visão geral do Azure Arc
Percurso de aprendizagem orientado:
- Traga a inovação do Azure para os seus ambientes híbridos com o Azure Arc
- Introdução ao Serviço Kubernetes do Azure
- Introdução ao Azure Stack
- Analise imagens com o serviço de Visão por Computador