Share via


Implantar um aplicativo Web de Análise Espacial

Use este artigo para saber como implantar um aplicativo Web que coleta dados/insights de Análise Espacial do Hub IoT e os visualiza. Isso pode ser útil em uma ampla gama de cenários e setores. Por exemplo, se uma empresa quiser otimizar o uso de seu espaço imobiliário, ela poderá criar rapidamente uma solução com cenários diferentes.

Neste tutorial, você aprenderá a:

  • Implantar o contêiner de Análise Espacial
  • Configurar a operação e a câmera
  • Configurar a conexão do Hub IoT no aplicativo Web
  • Implantar e testar o aplicativo Web

O aplicativo mostrará os seguintes cenários:

  • Contagem de pessoas entrando e saindo de um espaço ou uma loja
  • Contagem de pessoas entrando e saindo de uma área ou uma zona de check-out e o tempo gasto na linha de check-out (tempo de permanência)
  • Contagem de pessoas usando máscara no rosto
  • Contagem de pessoas violando as diretrizes de distanciamento social

Pré-requisitos

Implantar o contêiner de Análise Espacial

Siga a Configuração do Computador Host para configurar o computador host e conectar um dispositivo do IoT Edge ao Hub IoT do Azure.

Implantar um serviço do Hub IoT do Azure em sua assinatura

Primeiro, crie uma instância de um serviço do Hub IoT do Azure com o Tipo de Preço Standard (S1) ou a Camada Gratuita (S0). Siga estas instruções para criar essa instância usando a CLI do Azure.

Preencha os parâmetros necessários:

  • Assinatura: o nome ou a ID de sua assinatura do Azure
  • Grupo de recursos: crie um nome para o grupo de recursos
  • Nome do Hub IoT: crie um nome para o Hub IoT
  • Nome do Hub IoT: o nome do Hub IoT criado
  • Nome do dispositivo de borda: crie um nome para o dispositivo de borda
az login
az account set --subscription <name or ID of Azure Subscription>
az group create --name "<Resource Group Name>" --location "WestUS"

az iot hub create --name "<IoT Hub Name>" --sku S1 --resource-group "test-resource-group"

az iot hub device-identity create --hub-name "<IoT Hub Name>" --device-id "<Edge Device Name>" --edge-enabled

Implantar o contêiner no Azure IoT Edge do computador host

A próxima etapa é implantar o contêiner de análise espacial como um Módulo de IoT no computador host usando a CLI do Azure. O processo de implantação requer um arquivo de Manifesto de Implantação que descreverá os contêineres, as variáveis e as configurações necessários para a implantação. Um exemplo de Manifesto de Implantação pode ser encontrado em DeploymentManifest.json, que inclui as configurações predefinidas para todos os cenários.

Definir variáveis de ambiente

A maioria das Variáveis de Ambiente do Módulo do IoT Edge já está definida nos arquivos DeploymentManifest.json de exemplo indicados acima. No arquivo, pesquise as variáveis de ambiente ENDPOINT e APIKEY mostradas abaixo. Substitua os valores pelo URI do Ponto de Extremidade e a Chave de API criados anteriormente. Verifique se o valor dos termos de licença está definido como "accept".

"EULA": { 
    "value": "accept"
},
"BILLING":{ 
    "value": "<Use the endpoint from your Vision resource>"
},
"APIKEY":{
    "value": "<Use a key from your Vision resource>"
}

Configurar os parâmetros da operação

Se você estiver usando o DeploymentManifest.json de exemplo no qual já há todas as configurações necessárias (operações, URLs de arquivos de vídeo gravados e zonas etc.), você pode pular para a seção Executar a implantação.

Agora que a configuração inicial do contêiner de análise espacial foi concluída, a próxima etapa será configurar os parâmetros das operações e adicioná-los à implantação.

A primeira etapa é atualizar o DeploymentManifest.json de exemplo e configurar a operação desejada. Por exemplo, a configuração para cognitiveservices.vision.spatialanalysis-personcount é exibida abaixo:

"personcount": {
    "operationId": "cognitiveservices.vision.spatialanalysis-personcount",
    "version": 1,
    "enabled": true,
    "parameters": {
        "VIDEO_URL": "<Replace RTSP URL here>",
        "VIDEO_SOURCE_ID": "<Replace with friendly name>",
        "VIDEO_IS_LIVE":true,
        "DETECTOR_NODE_CONFIG": "{ \"gpu_index\": 0 }",
        "SPACEANALYTICS_CONFIG": "{\"zones\":[{\"name\":\"queue\",\"polygon\":[<Replace with your values>], \"events\": [{\"type\":\"count\"}], \"threshold\":<use 0 for no threshold.}]}"
    }
},

Após atualizar o manifesto de implantação, siga as instruções do fabricante da câmera para instalar a câmera, configurar a URL da câmera, bem como configurar o nome de usuário e a senha.

Depois, defina VIDEO_URL para a URL RTSP da câmera e as credenciais para estabelecer uma conexão com a câmera.

Caso o dispositivo de borda tenha mais de uma GPU, selecione a GPU em que você deseja executar essa operação. Lembre-se de balancear carga de operações em que não há mais de oito operações em execução em uma GPU por vez.

Depois, configure a zona em que você deseja contar pessoas. Para configurar o polígono de zona, primeiro siga as instruções do fabricante a fim de recuperar um quadro da câmera. Para determinar cada vértice do polígono, selecione um ponto no quadro, use as coordenadas de pixel x e y do ponto esquerdo no canto superior do quadro, depois divida esse valor pelas dimensões correspondentes do quadro. Defina os resultados como as coordenadas x e y do vértice. É possível definir a configuração do polígono de zona no campo SPACEANALYTICS_CONFIG.

Este é um quadro de vídeo de exemplo que mostrará de que modo as coordenadas do vértice estão sendo calculadas para um quadro de tamanho 1920/1080. Sample video frame

Também é possível selecionar um limite de confiança para ser usado durante a contagem de pessoas detectadas e a geração de eventos. Defina o limite como 0 caso deseje que todos os eventos sejam gerados.

Executar a implantação

Agora que o manifesto de implantação foi concluído, use este comando na CLI do Azure para implantar o contêiner no computador host como um Módulo do IoT Edge.

az login
az extension add --name azure-iot
az iot edge set-modules --hub-name "<IoT Hub name>" --device-id "<IoT Edge device name>" --content DeploymentManifest.json -–subscription "<subscriptionId>"

Preencha os parâmetros necessários:

  • Nome do Hub IoT: o nome do Hub IoT do Azure
  • DeploymentManifest.json: o nome do arquivo de implantação
  • Nome do dispositivo do IoT Edge: o nome do dispositivo do IoT Edge do computador host
  • Assinatura: o nome ou a ID da assinatura

Esse comando iniciará a implantação. Além disso, será possível ver o status da implantação em sua instância do Hub IoT do Azure no portal do Azure. O status poderá exiba a mensagem 417 – A configuração de implantação do dispositivo não está definida até que o dispositivo termine de baixar as imagens de contêiner e inicie a execução.

Verificar se a implantação foi concluída com êxito

Localize o Status do Runtime nas Configurações do Módulo do IoT Edge para verificar o módulo spatial-analysis em sua instância do Hub IoT no portal do Azure. O Valor Desejado e o Valor Relatado no Status do Runtime deverão exibir Running. Veja abaixo de que modo essas informações serão exibidas no portal do Azure.

Example deployment verification

Neste momento, o contêiner de análise espacial executa a operação. Ele emite insights da IA para a operação e os encaminha como dados telemétricos para a sua instância do Hub IoT do Azure. É possível atualizar o arquivo de manifesto de implantação, bem como executar a implantação novamente para configurar câmeras adicionais.

Criar o aplicativo Web

O aplicativo Web análise espacial permite que os desenvolvedores configurem rapidamente um aplicativo Web de exemplo, hospedem-no em seu ambiente do Azure e usem o aplicativo para validar eventos E2E.

Compilar uma imagem do docker

Siga o guia para construir e enviar por push a imagem para um Registro de Contêiner do Azure em sua assinatura.

Configurar o contêiner do Docker

Crie um Serviço de Aplicativo do Azure e preencha os parâmetros necessários para instalar o contêiner. Depois, acesse a guia Docker, selecione Contêiner Único e Registro de Contêiner do Azure. Use a instância do Registro de Contêiner do Azure em que você enviou a imagem acima por push.

Enter image details

Depois de inserir os parâmetros acima, clique em Examinar+Criar e crie o aplicativo.

Configurar o aplicativo

Aguarde a conclusão da instalação e acesse o recurso no portal do Azure. Navegue até a seção de Configuração e adicione as duas configurações de aplicativo abaixo.

  • EventHubConsumerGroup – O nome da cadeia de caracteres do grupo de consumidores do Hub IoT do Azure. É possível criar um grupo de consumidores em seu Hub IoT ou usar o grupo padrão.
  • IotHubConnectionString – A cadeia de conexão usada para acessar o Hub IoT do Azure. Ela pode ser recuperada na seção de chaves do recurso do Hub IoT do Azure em Configure Parameters

Após adicionar essas duas configurações, clique em Salvar. Em seguida, clique em Autenticação/Autorização no menu de navegação esquerdo, depois execute uma atualização usando o nível de autenticação desejado. Recomendamos o Microsoft Entra ID express.

Testar o aplicativo

Acesse o Serviço do Azure, verifique se a implantação foi concluída com êxito e se o aplicativo Web está em execução. Acesse a URL configurada: <yourapp>.azurewebsites.net para ver o aplicativo em execução.

Test the deployment

Obter o código-fonte PersonCount

Caso queira ver ou modificar o código-fonte deste aplicativo, será possível encontrá-lo no GitHub.

Próximas etapas