Pesquisa visual computacional de ponta a ponta na borda para fabricação

Fábrica de dados do Azure
Azure IoT Edge
Hub IoT do Azure
Azure Machine Learning
Azure Pipelines

Este exemplo de arquitetura mostra uma abordagem de ponta a ponta para a pesquisa visual computacional de IoT (Internet das Coisas) na fabricação.

Arquitetura

Diagram showing the end-to-end approach to computer vision from the edge to the cloud and back.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

  1. O módulo personalizado do IoT Edge captura a transmissão de vídeo ao vivo, divide-a em quadros e executa inferência nos dados da imagem para determinar se ocorreu um incidente.
  2. O módulo personalizado também usa métodos do SDK de Armazenamento do Microsoft Azure ou a API de blob para carregar os arquivos de vídeo brutos no Armazenamento do Microsoft Azure, que atua como um repositório de mídia bruto.
  3. O módulo personalizado envia os resultados e metadados de inferência para Hub IoT do Azure, que atua como um hub central de mensagens para comunicações em ambas as direções.
  4. Os Aplicativos Lógicos do Azure monitoram o Hub IoT em busca de mensagens sobre eventos de incidentes. Os Aplicativos Lógicos roteiam os resultados e os metadados de inferência para o Microsoft Dataverse para armazenamento.
  5. Quando ocorre um incidente, os Aplicativos Lógicos enviam notificações por SMS e email para o engenheiro do site. O engenheiro do site usa um aplicativo móvel baseado no Power Apps para reconhecer e resolver o incidente.
  6. O Power Apps efetua pull dos resultados e dos metadados de inferência do Dataverse e dos arquivos de vídeo brutos do Armazenamento de Blobs para exibir informações relevantes sobre o incidente. O Power Apps atualiza o Dataverse com a resolução de incidentes fornecida pelo engenheiro de site. Esta etapa atua como validação com human-in-the-loop para fins de retreinamento de modelo.
  7. O Azure Data Factory é o orquestrador de dados que busca arquivos de vídeo brutos do repositório de mídia bruto e obtém os resultados e os metadados correspondentes do Dataverse.
  8. O Data Factory armazena os arquivos de vídeo brutos, além dos metadados, no Azure Data Lake, o que serve como um arquivo de vídeo para fins de auditoria.
  9. O Data Factory divide arquivos de vídeo brutos em quadros, converte os resultados de inferência em rótulos e carrega os dados no Armazenamento de Blobs, que atua como o armazenamento de dados do ML.
  10. As alterações no código do modelo disparam automaticamente o pipeline do orquestrador de modelo do Azure Pipelines, que os operadores também podem disparar manualmente. As alterações de código também iniciam o processo de treinamento e validação do modelo de ML no Azure Machine Learning.
  11. O Azure Machine Learning começa a treinar o modelo validando os dados do armazenamento de dados do ML e copiando os conjuntos de dados necessários para o Armazenamento de Blobs Premium do Azure. Essa camada de desempenho fornece um cache de dados para agilizar um treinamento de modelo.
  12. O Azure Machine Learning usa o conjunto de dados no cache de dados Premium para treinar o modelo, validar o desempenho do modelo treinado, pontuar em relação ao modelo recém-treinado e registrar o modelo no registro do Azure Machine Learning.
  13. O orquestrador de modelos do Azure Pipelines examina o desempenho do modelo de ML recém-treinado e determina se ele é melhor do que os modelos anteriores. Se o novo modelo tiver um desempenho melhor, o pipeline baixará o modelo do Azure Machine Learning e criará uma versão do módulo de inferência de ML para publicar no Registro de Contêiner do Azure.
  14. Quando um novo módulo de inferência de ML está pronto, o Azure Pipelines implanta o contêiner do módulo do Registro de Contêiner no módulo do IoT Edge no Hub IoT.
  15. O Hub IoT atualiza o dispositivo do IoT Edge com o novo módulo de inferência de ML.

Componentes

  • O serviço do Azure IoT Edge analisa os dados do dispositivo localmente para enviar menos dados para a nuvem, reagir rapidamente a eventos e operar em condições de baixa conectividade. Um módulo de ML do IoT Edge pode extrair insights acionáveis de dados de vídeo de streaming.
  • O Hub IoT do Azure é um serviço gerenciado que permite uma comunicação bidirecional confiável e segura entre milhões de dispositivos IoT e um back-end baseado em nuvem. O IoT Hub fornece autenticação por dispositivo, roteamento de mensagens, integração com outros serviços do Azure e gerenciamento de recursos para controlar e configurar os dispositivos do IoT.
  • Os Aplicativos Lógicos do Azure são um serviço de nuvem sem servidor para criar e executar fluxos de trabalho automatizados que integram aplicativos, dados, serviços e sistemas. Os desenvolvedores podem usar um designer visual para agendar e orquestrar fluxos de tarefas comuns. Os Aplicativos Lógicos têm conectores para muitos serviços de nuvem populares, produtos locais e outros aplicativos de SaaS (software como serviço). Nesta solução, os Aplicativos Lógicos executam o fluxo de trabalho de notificação automatizado que envia alertas de SMS e de email aos engenheiros do site.
  • O Power Apps é uma plataforma de dados e um conjunto de aplicativos, serviços e conectores. Ele serve como um ambiente do método RAD. A plataforma de dados subjacente é o Microsoft Dataverse.
  • O Dataverse é uma plataforma de armazenamento baseada em nuvem para o Power Apps. O Dataverse dá suporte a notificações human-in-the-loop e armazena metadados associados ao pipeline de dados do MLOps.
  • O Armazenamento de Blobs do Azure é um armazenamento de objetos escalonável e seguro para dados não estruturados. Você pode usá-lo para arquivos, data lakes, computação de alto desempenho, machine learning e cargas de trabalho nativas de nuvem. Nesta solução, o armazenamento de Blobs fornece um armazenamento de dados locais para o do ML e um cache de dados Premium para treinar o modelo de ML. A camada premium do Armazenamento de Blobs serve para cargas de trabalho que exigem tempos de resposta rápidos e altas taxas de transação, como a rotulagem de vídeo do tipo human-in-the-loop neste exemplo.
  • O Data Lake Storage é um serviço de armazenamento extremamente escalonável e seguro para cargas de trabalho de análise de alto desempenho. Normalmente, os dados vêm de várias fontes heterogêneas e podem ser estruturados, semiestruturados ou não estruturados. O Azure Data Lake Storage Gen2 combina as funcionalidades do Azure Data Lake Storage Gen1 com o Armazenamento de Blobs e fornece semântica do sistema de arquivos, segurança no nível do arquivo e escala. Ele também oferece as funcionalidades de armazenamento em camadas, de alta disponibilidade e de recuperação de desastre do Armazenamento de Blobs. Nesta solução, o Data Lake Storage fornece o repositório de vídeo de arquivamento para os arquivos de vídeo brutos e metadados.
  • O Azure Data Factory é uma solução sem servidor e totalmente gerenciada para a integração de dados e os fluxos de trabalho de transformação. Ele fornece uma interface do usuário sem código e um painel de monitoramento fácil de usar. O Azure Data Factory usa pipelines para movimentação de dados. Os fluxos de dados de mapeamento executam várias tarefas de transformação, como ETL (extração, transformação e carregamento) e ELT (extração, carregamento e transformação). Neste exemplo, o Data Factory orquestra os dados em um pipeline de ETL para os dados de inferência, que ele armazena para fins de retreinamento.
  • O Azure Machine Learning é um serviço de machine learning de nível corporativo para criar e implantar modelos rapidamente. Ele fornece aos usuários em todos os níveis de habilidade um designer de código baixo, machine learning automatizado e um ambiente do Jupyter Notebook hospedado que dá suporte a vários IDEs.
  • O Azure Pipelines, parte dos serviços de desenvolvedor baseados em equipe do Azure DevOps, cria pipelines de CI (integração contínua) e CD (implantação contínua). Neste exemplo, o orquestrador de modelos do Azure Pipelines valida o código de ML, dispara pipelines de tarefas sem servidor, compara modelos de ML e cria o contêiner de inferência.
  • O Registro de Contêiner cria e gerencia o registro do Docker para criar, armazenar e gerenciar imagens de contêiner do Docker, incluindo modelos de ML em contêineres.
  • O Azure Monitor coleta telemetria de recursos do Azure, para que as equipes possam identificar problemas proativamente e maximizar o desempenho e a confiabilidade.

Alternativas

Em vez de usar o pipeline de dados para dividir o fluxo de vídeo em quadros de imagem, você pode implantar um módulo do Armazenamento de Blobs do Azure no dispositivo IoT Edge. Em seguida, o módulo de inferência carrega os quadros de imagem de inferência para o módulo de armazenamento no dispositivo de borda. O módulo de armazenamento determina quando carregar os quadros diretamente no armazenamento de dados do ML. A vantagem dessa abordagem é que ela remove uma etapa do pipeline de dados. A compensação é que o dispositivo de borda é firmemente acoplado ao Armazenamento de Blobs do Azure.

Para orquestração de modelo, você pode usar o Azure Pipelines ou o Azure Data Factory.

  • A vantagem do Azure Pipelines é que ele tem laços estreitos com o código do modelo de ML. Você pode disparar o pipeline de treinamento facilmente com alterações de código por meio de CI/CD.
  • O benefício do Data Factory é que cada pipeline pode provisionar os recursos de computação necessários. O Data Factory não retém os agentes do Azure Pipelines para executar o treinamento de ML, o que pode congestionar o fluxo de CI/CD normal.

Detalhes do cenário

Fábricas inteligentes totalmente automatizadas usam IA (inteligência artificial) e ML (machine learning) para analisar dados, executar sistemas e aprimorar processos ao longo do tempo.

Neste exemplo, as câmeras enviam imagens para um dispositivo do Azure IoT Edge que executa um modelo de ML. O modelo calcula inferências e envia saída acionável para a nuvem para processamento adicional. As intervenções humanas fazem parte da inteligência que o modelo de ML captura. O processo de ML é um ciclo contínuo de treinamento, teste, ajuste e validação dos algoritmos de ML.

Possíveis casos de uso

Os processos de fabricação usam a pesquisa visual computacional de IoT em aplicativos de segurança e de garantia de qualidade. Os sistemas de pesquisa visual computacional de IoT podem:

  • Ajudar a garantir a conformidade com as diretrizes de fabricação, como rotulagem adequada.
  • Identificar os defeitos de fabricação, como superfície desigual.
  • Aprimorar a segurança monitorando a construção ou as entradas da área.
  • Defender a segurança do trabalhador detectando o uso de EPI (equipamento de proteção individual) e outras práticas de segurança.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.

Disponibilidade

Os aplicativos baseados em ML normalmente exigem um conjunto de recursos para treinamento e outro para atendimento. Os recursos de treinamento geralmente não precisam de alta disponibilidade, já que as solicitações de produção em tempo real não os usam diretamente. Os recursos necessários para atender às solicitações precisam de alta disponibilidade.

Operações

Essa solução é dividida em três áreas operacionais:

  • Em operações de IoT, um modelo de ML no dispositivo de borda que usa imagens em tempo real de câmeras conectadas para inferência de quadros de vídeo. O dispositivo de borda também envia fluxos de vídeo armazenados em cache para o armazenamento em nuvem para uso na auditoria e no retreinamento de modelos. Após o treinamento de ML, o Hub IoT do Azure atualiza o dispositivo de borda com o novo módulo de inferência de ML.

  • O MLOps usa práticas de DevOps para orquestrar operações de treinamento, de teste e de implantação de modelo. O gerenciamento do ciclo de vida do MLOps automatiza o processo de uso de modelos de ML para tomada de decisão complexa ou produção dos modelos. É crucial para o MLOps a coordenação estreita entre as equipes que criam, treinam, avaliam e implantam os modelos de ML.

  • As operações human-in-the-loop notificam pessoas para intervir em determinadas etapas na automação. Em transações human-in-the-loop, os trabalhadores verificam e avaliam os resultados das previsões de machine learning. As intervenções humanas tornam-se parte da inteligência que o modelo de ML captura e ajudam a validar o modelo.

    As seguintes funções humanas fazem parte desta solução:

    • Os engenheiros do site recebem as notificações de incidente que os Aplicativos Lógicos enviam e validam manualmente os resultados ou previsões do modelo de ML. Por exemplo, o engenheiro de site pode examinar uma válvula que o modelo previu ter falhado.

    • Os rotuladores de dados rotulam os conjuntos de dados para retreinamento para concluir o loop da solução de ponta a ponta. O processo de rotulagem de dados é especialmente importante para dados de imagem, pois é a primeira etapa no treinamento de um modelo confiável por meio de algoritmos. Neste exemplo, o Azure Data Factory organiza os quadros de vídeo em agrupamentos de positivos e falsos positivos, o que facilita o trabalho do rotulador de dados.

    • Os cientistas de dados usam os conjuntos de dados rotulados para treinar os algoritmos para fazer previsões corretas da vida real. Os cientistas de dados usam MLOps com o GitHub Actions ou o Azure Pipelines em um processo de CI para treinar e validar automaticamente um modelo. O treinamento pode ser disparado manualmente ou automaticamente verificando novos dados ou scripts de treinamento. Os cientistas de dados trabalham em um workspace do Azure Machine Learning que pode registrar, implantar e gerenciar modelos automaticamente.

    • Os engenheiros de IoT usam o Azure Pipelines para publicar módulos do IoT Edge em contêineres no Registro de Contêiner. Os engenheiros podem implantar e escalar a infraestrutura sob demanda usando um pipeline de CD.

    • Os auditores de segurança analisam fluxos de vídeo arquivados para detectar anomalias, avaliar a conformidade e confirmar resultados quando surgirem dúvidas sobre as previsões de um modelo.

    Nesta solução, o Hub IoT ingere telemetria das câmeras e envia as métricas para o Azure Monitor, para que os engenheiros de site possam investigar e solucionar problemas. O Azure Machine Learning envia métricas de observabilidade e telemetria de modelo para o Azure Monitor, ajudando os engenheiros de IoT e os cientistas de dados a otimizar as operações.

Desempenho

Os dispositivos IoT têm memória e capacidade de processamento limitadas, portanto, é importante limitar o tamanho do contêiner de modelo enviado ao dispositivo. Lembre-se de usar um dispositivo IoT que possa fazer inferência de modelo e produzir resultados em um período de tempo aceitável.

Para otimizar o desempenho para modelos de treinamento, esta arquitetura de exemplo usa o Armazenamento de Blobs Premium do Azure. Esse nível de desempenho foi projetado para cargas de trabalho que exigem tempos de resposta rápidos e altas taxas de transação, como o cenário de rotulagem de vídeo do tipo human-in-the-loop.

Considerações de desempenho também se aplicam ao pipeline de ingestão de dados. O Data Factory maximiza a movimentação de dados fornecendo uma solução com alto desempenho e custo-benefício.

Escalabilidade

A maioria dos componentes usados nesta solução são serviços gerenciados que são dimensionados automaticamente.

A escalabilidade do aplicativo IoT depende de cotas e limitações do Hub IoT. Os fatores a serem considerados incluem:

  • A cota diária máxima de mensagens no Hub IoT.
  • A cota de dispositivos conectados em uma instância do Hub IoT.
  • Taxa de transferência de ingestão e processamento.

No ML, a escalabilidade refere-se a clusters de expansão usados para treinar modelos em grandes conjuntos de dados. A escalabilidade também permite que o modelo de ML atenda às demandas dos aplicativos que o consomem. Para atender a essas necessidades, o cluster de ML precisa fornecer expansão em CPUs e em nós habilitados para GPU (unidade de processamento de gráficos).

Para obter diretrizes gerais sobre como criar soluções escalonáveis, confira a lista de verificação de eficiência de desempenho no Centro de Arquitetura do Azure.

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.

O gerenciamento de acesso no Dataverse e em outros serviços do Azure ajuda a garantir que somente usuários autorizados possam acessar o ambiente, os dados e os relatórios. Essa solução usa o Azure Key Vault para gerenciar senhas e segredos. O armazenamento é criptografado usando chaves gerenciadas pelo cliente.

Para obter diretrizes gerais sobre como criar soluções de IoT seguras, confira a Documentação de Segurança do Azure e a arquitetura de referência de IoT do Azure.

Otimização de custo

A otimização de custos é a análise de maneiras de reduzir as 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.

Em geral, use a calculadora de preços do Azure para estimar os custos. Para outras considerações, confira Otimização de custo.

O Azure Machine Learning também implanta os serviços de Registro de Contêiner, de Armazenamento do Azure e de Azure Key Vault, que incorrem em custos extras. Para obter mais informações, confira Como o Azure Machine Learning funciona: arquitetura e conceitos.

Os preços do Azure Machine Learning incluem encargos para as VMs (máquinas virtuais) usadas para treinar o modelo na nuvem. Para obter informações sobre a disponibilidade do Azure Machine Learning e de VMs por região do Azure, confira Produtos disponíveis por região.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Próximas etapas