Instalar e executar o contêiner Análise Espacial (visualização)

O contêiner Análise Espacial permite analisar streaming de vídeo em tempo real para entender as relações espaciais entre as pessoas, seus movimentos e interações com 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

  • Subscrição do Azure - Criar uma gratuitamente
  • Sua conta do Azure deve ter uma Cognitive Services Contributor função atribuída para que você concorde com os termos de IA responsável e crie um recurso. Para atribuir essa função à sua conta, siga as etapas na documentação Atribuir funções ou entre em contato com o administrador.
  • Depois de ter sua assinatura do Azure, crie um recurso de Visão Computacional para a camada Standard S1 no portal do Azure para obter sua chave e ponto de extremidade. Depois de implantar, 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á sua chave e ponto de extremidade mais tarde.

Requisitos do recipiente de Análise Espacial

Para executar o contêiner de Análise Espacial, você precisa de um dispositivo de computação com uma GPU NVIDIA CUDA Compute Capable 6.0 ou superior (por exemplo, NVIDIA Tesla T4, A2, 1080Ti ou 2080Ti). Recomendamos que você use o Azure Stack Edge com aceleração de GPU, no entanto, o contêiner é executado em qualquer outra máquina de desktop que atenda aos requisitos mínimos. Referimo-nos a este dispositivo como o computador anfitrião.

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

Requisito Description
Câmara O contêiner Análise Espacial não está vinculado a uma marca de câmera específica. O dispositivo da câmera precisa: suportar Real-Time Streaming Protocol (RTSP) e codificação H.264, ser acessível ao computador host e ser capaz de transmitir em resolução de 15FPS e 1080p.
SO Linux Ubuntu Desktop 18.04 LTS deve ser instalado no computador host.

Configurar o computador host

Recomendamos que você use um dispositivo Azure Stack Edge para seu computador host. Selecione Máquina 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, certifique-se de que:

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

Configure compute

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

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

Link

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

Selecione Criar. A criação de recursos do Hub IoT pode levar alguns minutos. Depois que o recurso do Hub IoT for criado, o bloco de computação Configurar Borda será atualizado para mostrar a nova configuração. Para confirmar se 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 Edge é configurada no dispositivo Edge, ela cria dois dispositivos: um dispositivo IoT e um dispositivo IoT Edge. Ambos os dispositivos podem ser visualizados no recurso Hub IoT. O Azure IoT Edge Runtime já estará em execução no dispositivo IoT Edge.

Nota

Habilitar MPS no Azure Stack Edge

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

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

  2. Certifique-se de que o serviço de Gestão Remota do Windows está em execução no seu cliente. Na linha de comandos, escreva:

    winrm quickconfig
    

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

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

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

    Substitua <Node serial number> e pelo número de série do nó e <DNS domain of the device> 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 no domínio DNS na página Dispositivo na interface do usuário da Web local do seu dispositivo.

  4. Para adicionar essa 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 vir um erro relacionado com a relação de confiança, verifique se a cadeia de assinatura do certificado de nó carregado para o dispositivo também está instalada no cliente que acede ao dispositivo.

  6. Forneça a senha quando solicitado. Use a mesma senha usada para entrar na interface do usuário da Web local. A senha padrão da interface do usuário da Web local é Password1. Quando você se conecta com êxito ao dispositivo usando o PowerShell remoto, você vê a seguinte saída de exemplo:

    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 da IoT

Para simplificar a implantação de 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 de contêiner e as variáveis de ambiente. Você pode encontrar um exemplo de um manifesto de implantação para o Azure Stack Edge, outras máquinas de desktop e VM do Azure com GPU no GitHub.

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

Nome da Definição valor Description
ARCHON_LOG_LEVEL Informação; Verbose Nível de registo, selecione um dos dois valores
ARCHON_SHARED_BUFFER_LIMIT 377487360 Não modificar
ARCHON_PERF_MARKER false Defina isso como true para o log de desempenho, caso contrário, isso deve ser false
ARCHON_NODES_LOG_LEVEL Informação; Verbose Nível de registo, selecione um dos dois valores
OMP_WAIT_POLICY PASSIVO Não modificar
QT_X11_NO_MITSHM 5 Não modificar
APIKEY sua chave de API Colete esse valor do portal do Azure do seu recurso Visão. Você pode encontrá-lo na seção Chave e ponto final do seu recurso.
FATURAÇÃO seu URI do ponto de extremidade Colete esse valor do portal do Azure do seu recurso Visão. Você pode encontrá-lo na seção Chave e ponto final do seu recurso.
EULA aceitar Esse valor precisa ser definido para aceitar para que o contêiner seja executado
APRESENTAR 1: Esse valor precisa ser o mesmo que a saída de echo $DISPLAY no computador host. Os dispositivos do Azure Stack Edge não têm uma exibição. Esta definição não é aplicável
KEY_ENV Chave de encriptação ASE Adicione esta variável de ambiente se Video_URL for uma cadeia de caracteres ofuscada
IV_ENV Initialization vector Adicione esta variável de ambiente se Video_URL for uma cadeia de caracteres ofuscada

Importante

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

Depois de atualizar o manifesto de Implantação para dispositivos Azure Stack Edge, uma máquina desktop ou VM do Azure com GPU com suas próprias configurações e seleção de operações, você pode usar o comando abaixo da CLI do Azure para implantar o contêiner no computador host, como um Módulo 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 Description
--hub-name Seu nome do Hub IoT do Azure.
--content O nome do arquivo de implantação.
--target-condition O nome do dispositivo IoT Edge para o computador host.
-–subscription ID ou nome da subscrição.

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

Há várias maneiras de validar se o contêiner está em execução. Localize o Status do Tempo de Execução nas Configurações do Módulo IoT Edge para o módulo Análise Espacial em sua instância do Hub IoT do Azure no portal do Azure. Valide se o Valor Desejado e o Valor Relatado para o Status do Tempo de Execução estão em Execução.

Example deployment verification

Quando a implantação estiver concluída e o contêiner estiver em execução, o computador host começará a enviar eventos para o Hub IoT do Azure. Se você usou a .debug versão 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 zonas que deseja monitorar no manifesto de implantação e seguir as instruções para implantar novamente.

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

Você precisa usar operações de 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 para Análise Espacial geram um fluxo de saída de mensagens JSON, enviadas para sua instância do Hub IoT do Azure.

Use a saída gerada pelo contêiner

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

  • Use o SDK dos Hubs de Eventos do Azure para sua linguagem de programação escolhida para se conectar ao ponto de extremidade do Hub IoT do Azure e receber os eventos. Para obter mais informações, consulte Ler mensagens do dispositivo para a nuvem a partir do ponto de extremidade interno.
  • Configure o Roteamento de Mensagens em seu Hub IoT do Azure para enviar os eventos para outros pontos de extremidade ou salvar os eventos no Armazenamento de Blobs do Azure, etc.

Resolução de Problemas

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

Se você estiver tendo problemas para executar um contêiner de serviços de IA do Azure, tente usar o contêiner de diagnóstico da Microsoft. Use esse contêiner para diagnosticar erros comuns em seu 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 docker pull comando:

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

Em seguida, execute o contêiner. Substitua {ENDPOINT_URI} pelo ponto de extremidade e substitua {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 faturamento.

Faturação

O contêiner Análise Espacial envia informações de cobrança para o Azure, usando um recurso Visão em sua conta do Azure. A utilização da Análise Espacial em pré-visualização pública é atualmente gratuita.

Os contêineres de IA do Azure não são licenciados para serem executados sem estarem conectados ao ponto de extremidade de medição/cobrança. Você sempre deve habilitar os contêineres para comunicar informações de faturamento com o ponto de extremidade de faturamento. Os contêineres de IA do Azure não enviam dados do cliente, como o vídeo ou a imagem que está sendo analisada, para a Microsoft.

Resumo

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

  • Análise Espacial é um contêiner Linux para Docker.
  • As imagens de contêiner são baixadas do Microsoft Container Registry.
  • As imagens de contêiner são executadas como Módulos IoT no Azure IoT Edge.
  • Configure o contêiner e implante-o em uma máquina host.

Próximos passos