Editar

Partilhar via


Ingestão de vídeo e deteção de objetos na borda e na nuvem

Azure Stack Edge
Azure Kubernetes Service (AKS)
Azure SQL Edge
Azure Container Registry

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

Diagrama que mostra uma arquitetura para ingestão de vídeo e deteção de objetos.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de Trabalho

Este fluxo de trabalho descreve como o sistema processa os dados recebidos:

  1. Uma câmera instalada no robô transmite vídeo em tempo real usando o protocolo RTSP (Real Time Streaming Protocol).

  2. 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.

  3. As imagens são armazenadas na conta de armazenamento local do Azure Stack Edge.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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 é usado para hospedar serviços do Azure em execução no local, perto do local onde ocorre a deteção de anomalias, o que reduz a latência.

  • O Serviço Kubernetes do Azure no Azure Stack Edge é usado para executar um cluster Kubernetes de contêineres que contêm a lógica do sistema no Azure Stack Edge de forma simples e gerenciada.

  • O Azure Arc controla o cluster do Kubernetes que é executado no dispositivo de borda.

  • O Azure AI Vision é usado para detetar objetos em quadros-chave do fluxo de vídeo.

  • O Armazenamento de Blobs do Azure é usado para armazenar imagens de quadros-chave extraídos do fluxo de vídeo.

  • O Azure SQL Edge é usado para armazenar dados na borda, perto do serviço que os consome e processa.

  • O Registro de Contêiner do Azure é usado para armazenar imagens de contêiner do Docker.

  • O Azure Key Vault fornece armazenamento de segurança aprimorado para quaisquer segredos ou chaves criptográficas usadas pelo sistema.

  • O Azure Monitor fornece observabilidade para o sistema.

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:

Outros contribuidores:

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos

Documentação do produto:

Percurso de aprendizagem orientado: