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 ter aplicações úteis em uma ampla gama de cenários e setores. Por exemplo, se uma empresa quiser otimizar o uso do seu espaço imobiliário, pode criar rapidamente uma solução com diferentes cenários.

Neste tutorial, ficará a saber como:

  • Implantar o contêiner 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 que entram e saem de um espaço/loja
  • Contagem de pessoas que entram e saem de uma área/zona de checkout e o tempo gasto na fila de checkout (tempo de permanência)
  • Contagem de pessoas usando máscara facial
  • Contagem de pessoas que violam as diretrizes de distanciamento social

Pré-requisitos

Implantar o contêiner Análise Espacial

Siga a Configuração do Computador Host para configurar o computador host e conectar um dispositivo 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 a Camada de Preço Padrão (S1) ou a Camada Gratuita (S0). Siga estas instruções para criar esta instância usando a CLI do Azure.

Preencha os parâmetros necessários:

  • Subscrição: O nome ou ID da sua Subscrição do Azure
  • Grupo de recursos: crie um nome para o grupo de recursos
  • Nome do Hub IoT: crie um nome para seu Hub IoT
  • IoTHub Name: O nome do Hub IoT que você criou
  • Nome do dispositivo de borda: crie um nome para seu 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 no computador host

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

Definir variáveis de ambiente

A maioria das variáveis de ambiente para o IoT Edge Module já está definida no exemplo DeploymentManifest.json arquivos vinculados acima. No arquivo, procure as ENDPOINT variáveis e APIKEY de ambiente, mostradas abaixo. Substitua os valores pelo URI do ponto de extremidade e pela chave de API que você criou anteriormente. Certifique-se de que o valor do EULA está definido como "aceitar".

"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 de operação

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

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

O primeiro passo é atualizar o DeploymentManifest.json de exemplo e configurar a operação desejada. Por exemplo, a configuração para cognitiveservices.vision.spatialanalysis-personcount é mostrada 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.}]}"
    }
},

Depois que o manifesto de implantação for atualizado, siga as instruções do fabricante da câmera para instalar a câmera, configurar o URL da câmera e configurar o nome de usuário e a senha.

Em seguida, defina VIDEO_URL o URL RTSP da câmera e as credenciais para se conectar à câmera.

Se o dispositivo de borda tiver mais de uma GPU, selecione a GPU na qual executar essa operação. Certifique-se de equilibrar a carga das operações em que não há mais de 8 operações em execução em uma única GPU de cada vez.

Em seguida, configure a zona na qual você deseja contar pessoas. Para configurar o polígono de zona, primeiro siga as instruções do fabricante para recuperar um quadro da câmera. Para determinar cada vértice do polígono, selecione um ponto no quadro, pegue as coordenadas de pixel x,y do ponto em relação ao canto superior esquerdo do quadro e divida pelas dimensões correspondentes do quadro. Defina os resultados como coordenadas x,y do vértice. Você pode definir a configuração do polígono SPACEANALYTICS_CONFIG de zona no campo.

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

Você também pode selecionar um limite de confiança para quando as pessoas detetadas são contadas e os eventos são gerados. Defina o limite como 0 se quiser que todos os eventos sejam produzidos.

Executar a implantação

Agora que o manifesto de implantação está concluído, use este comando na CLI do Azure para implantar o contêiner no computador host como um Módulo 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: seu nome do Hub IoT do Azure
  • DeploymentManifest.json: O nome do arquivo de implantação
  • Nome do dispositivo IoT Edge: o nome do dispositivo IoT Edge do seu computador host
  • Subscrição: o seu ID ou nome de subscrição

Este comando iniciará a implantação e você poderá exibir o status da implantação em sua instância do Hub IoT do Azure no portal do Azure. O status pode aparecer como 417 – A configuração de implantação do dispositivo não é definida até que o dispositivo termine de baixar as imagens do contêiner e comece a ser executado.

Validar se a implantação foi bem-sucedida

Localize o Status do Tempo de Execução nas Configurações do Módulo IoT Edge para o módulo de análise espacial em sua instância do Hub IoT no portal do Azure. O Valor Desejado e o Valor Relatado para o Status do Tempo de Execução devem dizer Running. Veja abaixo como isso será no portal do Azure.

Example deployment verification

Neste ponto, o contêiner de análise espacial está executando a operação. Ele emite insights de IA para as operações e roteia esses insights como telemetria para sua instância do Hub IoT do Azure. Para configurar câmeras adicionais, você pode atualizar o arquivo de manifesto de implantação e executar a implantação novamente.

Criar o aplicativo Web

O aplicativo Web de 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 criar e enviar a imagem para um Registro de Contêiner do Azure em sua assinatura.

Configurar o contêiner do docker

Para instalar o contêiner, crie um novo Serviço de Aplicativo do Azure e preencha os parâmetros necessários. Em seguida, vá para a guia Docker e selecione Contêiner único e, em seguida , Registro de contêiner do Azure. Use sua instância do Registro de Contêiner do Azure onde você enviou a imagem acima.

Enter image details

Depois de inserir os parâmetros acima, selecione Revisão+Criar e crie o aplicativo.

Configurar o aplicativo

Aguarde a conclusão da configuração e navegue até o recurso no portal do Azure. Vá para a seção de configuração e adicione as duas configurações de aplicativo a seguir.

  • EventHubConsumerGroup – O nome da cadeia de caracteres do grupo de consumidores do seu Hub IoT do Azure, você pode criar um novo grupo de consumidores no seu Hub IoT ou usar o grupo padrão.
  • IotHubConnectionString – A cadeia de conexão para seu Hub IoT do Azure, isso pode ser recuperado da seção de chaves do seu recurso do Hub IoT do Azure Configure Parameters

Depois que essas 2 configurações forem adicionadas, selecione Salvar. Em seguida, selecione Autenticação/Autorização no menu de navegação esquerdo e atualize-o com o nível de autenticação desejado. Recomendamos o Microsoft Entra ID express.

Testar a aplicação

Vá para o Serviço do Azure e verifique se a implantação foi bem-sucedida e se o aplicativo Web está em execução. Navegue até o url configurado: <yourapp>.azurewebsites.net para visualizar o aplicativo em execução.

Test the deployment

Obter o código-fonte PersonCount

Se você quiser visualizar ou modificar o código-fonte deste aplicativo, você pode encontrá-lo no GitHub.

Próximos passos