Instalar e executar o contêiner de Análise Espacial (versão prévia)

O contêiner de Análise Espacial permite que você analise vídeos de streaming em tempo real para entender as relações espaciais entre as pessoas, a movimentação delas e a interação delas com os objetos em ambientes físicos. Os contêineres ajudam você a atender a requisitos específicos de segurança e governança de dados.

Pré-requisitos

  • Assinatura do Azure – Criar uma gratuitamente
  • Sua conta do Azure deve ter uma função Cognitive Services Contributor atribuída para que você concorde com os termos de IA responsável e criar um recurso. Para que essa função seja atribuída à sua conta, siga as etapas descritas na documentação Atribuir funções ou entre em contato com o administrador.
  • Depois de obter sua assinatura do Azure, crie um recurso de Pesquisa Visual Computacional da camada Standard S1 no portal do Azure para obter a chave e o ponto de extremidade. Após a implantação, selecione Ir para recurso.
    • Você precisará da chave e do ponto de extremidade do recurso criado para executar o contêiner de Análise Espacial. Você usará a chave e ponto de extremidade mais tarde.

Requisitos do contêiner de Análise Espacial

Para executar o contêiner de análise espacial, você precisa de um dispositivo de computação com uma GPU com capacidade de computação NVIDIA CUDA 6.0 ou superior (por exemplo, NVIDIA Tesla T4, A2, 1080Ti ou 2080Ti). É recomendado que você use o Azure Stack Edge com aceleração de GPU. No entanto, o contêiner pode ser executado em qualquer outro computador desktop que atenda aos requisitos mínimos. Chamamos esse dispositivo de computador host.

O Azure Stack Edge é uma solução de hardware como serviço e um dispositivo de computação de borda habilitado para IA com funcionalidades de transferência de dados de rede. Para obter instruções detalhadas de preparação e configuração, confira a Documentação do Azure Stack Edge.

Requisito Descrição
Câmera O contêiner de Análise Espacial não está vinculado a uma marca de câmera específica. O dispositivo de câmera precisa: dar suporte ao protocolo RTSP (Real-Time Streaming Protocol) e à codificação H.264, ser acessível ao computador host e ser capaz de fazer streaming a 15 FPS e com a resolução de 1080p.
Sistema operacional Linux O Ubuntu Desktop 18.04 LTS precisa ser instalado no computador host.

Configurar o computador host

É recomendado que você use um dispositivo do Azure Stack Edge para o computador host. Selecione Computador Desktop se estiver configurando um dispositivo diferente ou Máquina Virtual se estiver utilizando uma VM.

Configurar a computação no portal do Azure Stack Edge

A Análise Espacial usa os recursos de computação do Azure Stack Edge para executar uma solução de IA. Para habilitar os recursos de computação, verifique se:

  • Você conectou e ativou o dispositivo do Azure Stack Edge.
  • Você tem um sistema cliente Windows executando o PowerShell 5.0 ou posterior, para acessar o dispositivo.
  • Para implantar um cluster do Kubernetes, você precisa configurar o dispositivo do Azure Stack Edge por meio da IU Local no portal do Azure:
    1. Habilite o recurso de computação no dispositivo do Azure Stack Edge. Para habilitar a computação, acesse a página Computação na interface da Web do dispositivo.
    2. Selecione o adaptador de rede que você deseja habilitar para a computação e selecione Habilitar. Isso cria um comutador virtual no dispositivo, nesse adaptador de rede.
    3. Deixe em branco os endereços IP do nó de teste do Kubernetes e os endereços IP dos serviços externos do Kubernetes.
    4. Escolha Aplicar. Essa operação pode demorar cerca de dois minutos.

Configure compute

Configurar uma função do Azure Stack Edge e criar um recurso do Hub IoT

No portal do Azure, navegue até o recurso do Azure Stack Edge. Na página Visão geral ou na lista de navegação, selecione o botão Introdução da computação de borda. No bloco Configurar computação de borda, selecione Configurar.

Link

Na página Configurar a computação de borda, escolha um Hub IoT existente ou escolha criar outro. Por padrão, um tipo de preço Standard (S1) é usado para criar um recurso de Hub IoT. Para usar um recurso de Hub IoT de camada gratuita, crie e selecione-o. O recurso de Hub IoT usa a mesma assinatura e o mesmo grupo de recursos usados pelo recurso do Azure Stack Edge

Selecione Criar. A criação do recurso de Hub IoT demora alguns minutos. Depois que o recurso de Hub IoT for criado, o bloco Configurar a computação de borda será atualizado para mostrar a nova configuração. Para confirmar que a função de computação de borda foi configurada, selecione Exibir configuração no bloco Configurar computação.

Quando a função de computação de borda está configurada no dispositivo de borda, são criados dois dispositivos: um dispositivo IoT e um dispositivo IoT Edge. Os dois dispositivos podem ser exibidos no recurso do Hub IoT. O runtime do Azure IoT Edge já estará em execução no dispositivo do IoT Edge.

Observação

Habilitar o MPS no Azure Stack Edge

Siga estas etapas para conectar-se remotamente a partir de um cliente Windows.

  1. Execute uma sessão do Windows PowerShell como administrador.

  2. Verifique se o serviço de Gerenciamento Remoto do Windows está em execução no cliente. No prompt de comando, digite:

    winrm quickconfig
    

    Para obter mais informações, confira Instalação e configuração para Gerenciamento Remoto do Windows.

  3. Atribua uma variável à cadeia de conexão usada no arquivo hosts.

    $Name = "<Node serial number>.<DNS domain of the device>"
    

    Substitua <Node serial number> e <DNS domain of the device> pelo número de série do nó e pelo domínio DNS do seu dispositivo. Você pode obter os valores para o número de série do nó na página Certificados e do domínio DNS na página Dispositivo na interface do usuário da Web local do seu dispositivo.

  4. Para adicionar a cadeia de conexão do seu dispositivo à lista de hosts confiáveis do cliente, digite o seguinte comando:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Inicie uma sessão do Windows PowerShell no dispositivo:

    Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
    

    Se você vir um erro relacionado à relação de confiança, verifique se a cadeia de assinatura do certificado de nó carregado no dispositivo também está instalada no cliente que está acessando seu dispositivo.

  6. Forneça a senha quando solicitada. Use a mesma senha usada para entrar na IU da Web local. A senha padrão da IU da Web local é Password1. Ao se conectar com êxito ao dispositivo usando o PowerShell remoto, você verá o seguinte exemplo de saída:

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    PS C:\WINDOWS\system32> winrm quickconfig
    WinRM service is already running on this machine.
    PS C:\WINDOWS\system32> $Name = "1HXQG13.wdshcsso.com"
    PS C:\WINDOWS\system32> Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
    
    WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing. Changes made through this interface without involving Microsoft Support could result in an unsupported configuration.
    [1HXQG13.wdshcsso.com]: PS>
    

Manifesto de implantação de IoT

Para simplificar a implantação do contêiner em vários computadores host, você pode criar um arquivo de manifesto de implantação para especificar as opções de criação do contêiner e as variáveis de ambiente. Veja no GitHub um exemplo de um manifesto de implantação para o Azure Stack Edge, outros computadores desktop e a VM do Azure com GPU.

A tabela a seguir mostra as diversas variáveis de ambiente usadas pelo Módulo do IoT Edge. Você também pode defini-las no manifesto de implantação vinculado acima, usando o atributo env em spatialanalysis:

Nome da Configuração Valor Descrição
ARCHON_LOG_LEVEL Info; Verbose Nível de registros em log. Selecione um dos dois valores
ARCHON_SHARED_BUFFER_LIMIT 377487360 Não modifique o valor
ARCHON_PERF_MARKER false Defina esse valor como true para log de desempenho, caso contrário, defina-o como false
ARCHON_NODES_LOG_LEVEL Info; Verbose Nível de registros em log. Selecione um dos dois valores
OMP_WAIT_POLICY PASSIVE Não modifique o valor
QT_X11_NO_MITSHM 1 Não modifique o valor
APIKEY sua chave de API Colete esse valor no portal do Azure, no recurso de Serviço Cognitivo do Azure para Visão. Encontre-o na seção Chave e ponto de extremidade do recurso.
COBRANÇA seu URI de ponto de extremidade Colete esse valor no portal do Azure, no recurso de Serviço Cognitivo do Azure para Visão. Encontre-o na seção Chave e ponto de extremidade do recurso.
EULA accept Esse valor precisa ser definido como accept para que o contêiner seja executado
DISPLAY :1 Esse valor precisa ser igual ao da saída de echo $DISPLAY no computador host. Os dispositivos do Azure Stack Edge não têm nenhuma exibição. Essa configuração não é aplicável
KEY_ENV Chave de criptografia do ASE Adicione essa variável de ambiente se Video_URL for uma cadeia de caracteres oculta
IV_ENV Vetor de inicialização Adicione essa variável de ambiente se Video_URL for uma cadeia de caracteres oculta

Importante

As opções Eula, Billing e ApiKey devem ser especificadas para executar o contêiner; caso contrário, o contêiner não será iniciado. Para mais informações, consulte Faturamento.

Depois de atualizar o manifesto de implantação para dispositivos do Azure Stack Edge, um computador desktop ou uma VM do Azure com GPU com suas configurações e sua seleção de operações, você poderá usar o comando da CLI do Azure abaixo para implantar o contêiner no computador host, como um módulo do IoT Edge.

sudo az login
sudo az extension add --name azure-iot
sudo az iot edge set-modules --hub-name "<iothub-name>" --device-id "<device-name>" --content DeploymentManifest.json --subscription "<name or ID of Azure Subscription>"
Parâmetro Descrição
--hub-name O nome do Hub IoT do Azure.
--content O nome do arquivo de implantação.
--target-condition O nome do dispositivo do IoT Edge para o computador host.
-–subscription ID ou nome da assinatura.

Esse comando iniciará a implantação. Navegue até a página da instância do Hub IoT do Azure no portal do Azure para ver o status da implantação. O status talvez seja mostrado como 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.

Validar se a implantação foi bem-sucedida

Há várias maneiras de validar se um contêiner está em execução. Localize o Status do Runtime nas Configurações do Módulo do IoT Edge do módulo de Análise Espacial na instância do Hub IoT do Azure no portal do Azure. Valide se o Valor desejado e o Valor relatado para o Status do Runtime são Em execução.

Example deployment verification

Depois que a implantação for concluída e o contêiner estiver em execução, o computador host começará a enviar eventos ao Hub IoT do Azure. Se você usou a versão .debug das operações, verá uma janela do visualizador para cada câmera configurada no manifesto de implantação. Agora você pode definir as linhas e as zonas que deseja monitorar no manifesto de implantação e seguir as instruções para fazer uma nova implantação.

Configurar as operações executadas pela Análise Espacial

Você precisa usar as operações da Análise Espacial para configurar o contêiner para usar câmeras conectadas, configurar as operações e muito mais. Para cada dispositivo de câmera configurado, as operações da Análise Espacial geram um fluxo de saída de mensagens JSON enviadas à instância do Hub IoT do Azure.

Usar a saída gerada pelo contêiner

Se você deseja começar a consumir a saída gerada pelo contêiner, confira os seguintes artigos:

  • Use o SDK dos Hubs de Eventos do Azure da linguagem de programação escolhida para se conectar ao ponto de extremidade do Hub IoT do Azure e receber os eventos. Para saber mais, confira Ler as mensagens de dispositivo para nuvem do ponto de extremidade interno.
  • Configure o Roteamento de Mensagens no Hub IoT do Azure para enviar os eventos para outros pontos de extremidade ou salve os eventos no Armazenamento de Blobs do Azure etc.

Solução de problemas

Se você encontrar problemas ao iniciar ou executar o contêiner, confira Telemetria e solução de problemas para conhecer as etapas para solucionar problemas comuns. Este artigo também contém informações sobre como gerar e coletar logs e como coletar a integridade do sistema.

Se você estiver tendo problemas para executar um contêiner dos serviços de IA do Azure, tente usar o contêiner de diagnóstico da Microsoft. Use esse contêiner para diagnosticar erros comuns no ambiente de implantação que podem impedir que os contêineres de IA do Azure funcionem conforme o esperado.

Para obter o contêiner, use o seguinte comando docker pull:

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Em seguida, execute o contêiner. Substitua {ENDPOINT_URI} pelo ponto de extremidade e {API_KEY} pela chave do recurso:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

O contêiner testará a conectividade de rede com o ponto de extremidade de cobrança.

Cobrança

Os contêineres de Análise espacial enviam informações de cobrança ao Azure usando um recurso do Serviço Cognitivo do Azure para Visão na sua conta do Azure. O uso da Análise Espacial na versão prévia pública é gratuito no momento.

Os contêineres de IA do Azure não são licenciados para execução sem estarem conectados ao ponto de extremidade de medição / cobrança. Você sempre precisa permitir que os contêineres comuniquem as informações de cobrança com o ponto de extremidade de cobrança. Os contentores Azure AI não enviam dados do cliente, como o vídeo ou a imagem que está a ser analisada, para a Microsoft.

Resumo

Neste artigo, você aprendeu os conceitos e o fluxo de trabalho para baixar, instalar e executar os contêineres de Análise Espacial. Em resumo:

  • A Análise Espacial é um contêiner do Linux para o Docker.
  • As imagens de contêiner são baixadas do Microsoft Container Registry.
  • As imagens de contêiner são executadas como Módulos de IoT no Azure IoT Edge.
  • Configurar o contêiner e implantá-lo em um computador host.

Próximas etapas