Esse 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 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 detecção de objetos.
Arquitetura
Baixe um Arquivo Visio dessa arquitetura.
Workflow
Esse fluxo de trabalho descreve como o sistema processa os dados de entrada:
Uma câmera instalada no robô transmite vídeo em tempo real usando o Protocolo de Streaming em Tempo Real (RTSP).
Um contêiner no cluster do 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.
Sempre que um novo quadro de chaves é salvo na conta de armazenamento, um contêiner da Visão de IA o pega. Para obter informações sobre a separação da lógica em vários contêineres, consulte Detalhes do cenário.
Quando ele carrega um quadro-chave do contêiner de armazenamento, o contêiner da Visão de IA o envia para os serviços de IA do Azure na nuvem. Essa arquitetura usa a Visão de IA do Azure, que permite a detecção de objetos por meio da análise de imagem.
Os resultados da análise de imagem (objetos detectados e uma classificação de confiança) são enviados para o contêiner de detecção de anomalias.
O contêiner de detecção de anomalias armazena os resultados da análise de imagem e detecção de anomalias na instância do banco de dados SQL do Azure Stack Edge local 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 detectar quaisquer anomalias no fluxo de vídeo em tempo real de entrada. Se forem detectadas anomalias, uma interface do usuário front-end mostrará um alerta.
Componentes
O Azure Stack Edge é um dispositivo gerenciado pelo Azure que traz a computação, o armazenamento e a inteligência do Azure para a borda. Essa arquitetura usa-o para hospedar serviços do Azure em execução no local, perto do local onde ocorre a detecção de anomalias, o que reduz a latência.
AKS (Serviço de Kubernetes do Azure) no Azure Stack Edge. O AKS (Serviço de Kubernetes do Azure) é um serviço de Kubernetes gerenciado que você pode usar para implantar e gerenciar aplicativos conteinerizados. 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 para a borda. Ao utilizar o Azure Arc nessa arquitetura, podemos controlar os serviços de borda por meio do portal de nuvem.
A Visão de IA do Azure é um serviço unificado que oferece recursos de pesquisa visual computacional. Nessa arquitetura, o recurso de análise de imagem é usado para detectar 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. Nesta arquitetura, ele é usado para armazenar imagens de quadros-chave extraídos do fluxo de vídeo.
O SQL do Azure no Edge é um mecanismo de SQL de tamanho pequeno e otimizado para a borda com IA integrada. Nessa arquitetura, optamos especificamente pela versão edge do mecanismo SQL para armazenar metadados de análise de imagem, mantendo-a próxima 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 da OCI. Nessa arquitetura, o registro armazena imagens de contêiner do Docker para detecção de anomalias e contêineres de visão de IA.
O Azure Key Vault é um serviço que fornece 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 em que a identidade gerenciada não está disponível.
O Azure Monitor é uma solução de monitoramento abrangente que coleta, analisa e responde aos dados de monitoramento de seus ambientes locais e na nuvem. Nessa arquitetura, esse serviço é a principal plataforma de observabilidade para a carga de trabalho.
Detalhes do cenário
Essa 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, ele poderia ser usado para fornecer inspeções programadas de um perímetro cercado ao redor 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 origem do vídeo. Esse 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 do 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 detecçã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 de detecção de objetos sejam altamente especializados, a abordagem pronta para uso obtida do serviço de Análise de Imagem é suficiente e não requer conhecimento de aprendizado de máquina.
Possíveis casos de uso
Monitoramento da segurança de um perímetro
Detectando um ambiente de trabalho inseguro em uma fábrica
Detecção de anomalias em uma linha de montagem automatizada
Detecção de falta de fluido de degelo em aeronaves
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, um conjunto de princípios orientadores que você pode usar para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.
Confiabilidade
A confiabilidade garante que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, confira 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 um nível regional.
Além disso, executar o sistema em um cluster do Kubernetes permite transferir a responsabilidade de manter os subsistemas íntegros para o sistema de orquestração do Kubernetes.
Segurança
A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira 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ção.
Otimização de custo
A otimização de custos consiste em reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.
Para ver um exemplo de preços para esse cenário, use a Calculadora de preços do Azure. Os componentes mais caros no cenário são o Azure Stack Edge e o Serviço de 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 detecção de objetos varia com base em quanto tempo o sistema é executado. O exemplo de preço anterior é baseado em um sistema que produz uma imagem por segundo e opera por 8 horas por dia. Um FPS é suficiente para esse cenário. No entanto, se o seu sistema precisar ser executado por períodos mais longos, o custo de usar os serviços de IA do Azure será maior:
Eficiência de desempenho
A eficiência do desempenho é a capacidade de dimensionar sua carga de trabalho para atender às demandas colocadas por usuários de maneira eficiente. Para saber mais, confira Visão geral do pilar de eficiência de desempenho.
Como o código é implantado em um cluster do 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. Esse design simplifica significativamente a configuração inicial. À medida que a demanda por processamento de dados cresce, você pode facilmente dimensionar o cluster adicionando nós.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Autor principal:
- Nick Sologoub | Principal Líder de Engenharia de Software
Outros colaboradores:
- Mick Alberts | Redator Técnico
- Frédéric Le Coquil | Engenheiro de Software Principal
Para ver perfis não públicos do LinkedIn, entre no LinkedIn.
Próximas etapas
Documentação do produto:
- Detecção de objetos
- Uso responsável da IA
- O que é o Azure Stack Edge Pro 2?
- Serviço de Kubernetes do Azure
- Visão geral do Azure Arc
Roteiro de aprendizagem guiado:
- Traga a inovação do Azure para seus ambientes híbridos com o Azure Arc
- Introdução ao Serviço de Kubernetes do Azure
- Introdução ao Azure Stack
- Analisar imagens com o serviço de Pesquisa Visual Computacional