Installare ed eseguire il contenitore analisi spaziale (anteprima)

Il contenitore Analisi spaziale consente di analizzare video in streaming in tempo reale per comprendere le relazioni spaziali tra le persone, il loro movimento e le interazioni con gli oggetti negli ambienti fisici. I contenitori consentono di soddisfare specifici requisiti di sicurezza e governance dei dati.

Prerequisiti

  • Sottoscrizione di Azure: creare un account gratuito
  • L'account Azure deve avere un Cognitive Services Contributor ruolo assegnato per consentire all'utente di accettare le condizioni di intelligenza artificiale responsabili e creare una risorsa. Per assegnare questo ruolo all'account, seguire la procedura descritta nella documentazione Assegnare ruoli oppure contattare l'amministratore.
  • Dopo aver creato la sottoscrizione di Azure, creare una risorsa Visione artificiale per il livello Standard S1 nel portale di Azure per ottenere la chiave e l'endpoint. Al termine della distribuzione, fare clic su Vai alla risorsa.
    • Sarà necessaria la chiave e l'endpoint della risorsa creata per eseguire il contenitore Analisi spaziale. La chiave e l'endpoint verranno usati in un secondo momento.

Requisiti dei contenitori di analisi spaziale

Per eseguire il contenitore Di analisi spaziale, è necessario un dispositivo di calcolo con GPU con supporto per le risorse di calcolo NVIDIA CUDA 6.0 o versione successiva, ad esempio NVIDIA Tesla T4, A2, 1080Ti o 2080Ti. È consigliabile usare Azure Stack Edge con l'accelerazione GPU, ma il contenitore viene eseguito in qualsiasi altro computer desktop che soddisfi i requisiti minimi. Questo dispositivo viene indicato come computer host.

Azure Stack Edge è una soluzione hardware come servizio e un dispositivo di elaborazione perimetrale abilitato per l'intelligenza artificiale con funzionalità di trasferimento dei dati di rete. Per istruzioni dettagliate sulla preparazione e la configurazione, vedere la documentazione di Azure Stack Edge.

Requisito Descrizione
Fotocamera Il contenitore Analisi spaziale non è associato a un marchio specifico della fotocamera. Il dispositivo fotocamera deve: supportare la codifica RTSP (Real-Time Streaming Protocol) e H.264, essere accessibile al computer host ed essere in grado di eseguire lo streaming alla risoluzione 15FPS e 1080p.
Sistema operativo Linux Ubuntu Desktop 18.04 LTS deve essere installato nel computer host.

Configurare il computer host

È consigliabile usare un dispositivo Azure Stack Edge per il computer host. Selezionare Computer desktop se si sta configurando un dispositivo diverso o una macchina virtuale se si usa una macchina virtuale.

Configurare il calcolo nel portale di Azure Stack Edge

L'analisi spaziale usa le funzionalità di calcolo di Azure Stack Edge per eseguire una soluzione di intelligenza artificiale. Per abilitare le funzionalità di calcolo, assicurarsi che:

  • Il dispositivo Azure Stack Edge è stato connesso e attivato .
  • Per accedere al dispositivo, si dispone di un sistema client Windows che esegue PowerShell 5.0 o versione successiva.
  • Per distribuire un cluster Kubernetes, è necessario configurare il dispositivo Azure Stack Edge tramite l'interfaccia utente locale nel portale di Azure:
    1. Abilitare la funzionalità di calcolo nel dispositivo Azure Stack Edge. Per abilitare il calcolo, passare alla pagina Calcolo nell'interfaccia Web per il dispositivo.
    2. Selezionare un'interfaccia di rete che si vuole abilitare per il calcolo, quindi selezionare Abilita. In questo modo viene creato un commutatore virtuale nel dispositivo, su tale interfaccia di rete.
    3. Lasciare vuoti gli indirizzi IP del nodo di test kubernetes e gli indirizzi IP dei servizi esterni Kubernetes.
    4. Selezionare Applica. Questa operazione può richiedere circa due minuti.

Configure compute

Configurare il ruolo Azure Stack Edge e creare una risorsa hub IoT

Nella portale di Azure passare alla risorsa Azure Stack Edge. Nella pagina Panoramica o nell'elenco di spostamento selezionare il pulsante Introduzione all'ambiente di calcolo Edge. Nel riquadro Configura calcolo Edge selezionareConfigura.

Link

Nella pagina Configura calcolo Edge scegliere un hub IoT esistente o scegliere di crearne uno nuovo. Per impostazione predefinita, viene usato un piano tariffario Standard (S1) per creare una risorsa hub IoT. Per usare un livello gratuito hub IoT risorsa, crearne uno e quindi selezionarlo. La risorsa hub IoT usa la stessa sottoscrizione e lo stesso gruppo di risorse usato dalla risorsa Azure Stack Edge

Seleziona Crea. La creazione di hub IoT risorsa può richiedere alcuni minuti. Dopo aver creato la risorsa hub IoT, il riquadro Configura calcolo Edge verrà aggiornato per visualizzare la nuova configurazione. Per verificare che il ruolo calcolo Edge sia stato configurato, selezionare Visualizza configurazione nel riquadro Configura calcolo.

Quando il ruolo di calcolo Edge è configurato nel dispositivo Edge, crea due dispositivi: un dispositivo IoT e un dispositivo IoT Edge. Entrambi i dispositivi possono essere visualizzati nella risorsa dell'hub IoT. Il runtime di Azure IoT Edge sarà già in esecuzione nel dispositivo IoT Edge.

Nota

Abilitare MPS in Azure Stack Edge

Seguire questa procedura per connettersi in remoto da un client Windows.

  1. Eseguire una sessione di Windows PowerShell come amministratore.

  2. Assicurarsi che il servizio Gestione remota Windows sia in esecuzione nel client. Al prompt dei comandi digitare:

    winrm quickconfig
    

    Per altre informazioni, vedere Installazione e configurazione per Gestione remota Windows.

  3. Assegnare una variabile al stringa di connessione usato nel hosts file.

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

    Sostituire <Node serial number> e <DNS domain of the device> con il numero di serie del nodo e il dominio DNS del dispositivo. È possibile ottenere i valori per il numero di serie del nodo dalla pagina Certificati e dal dominio DNS dalla pagina Dispositivo nell'interfaccia utente Web locale del dispositivo.

  4. Per aggiungere questo stringa di connessione per il dispositivo all'elenco di host attendibili del client, digitare il comando seguente:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Avviare una sessione di Windows PowerShell nel dispositivo:

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

    Se viene visualizzato un errore correlato alla relazione di trust, verificare se anche la catena di firma del certificato del nodo caricato nel dispositivo viene installata nel client che accede al dispositivo.

  6. Specificare la password quando richiesto. Usare la stessa password usata per accedere all'interfaccia utente Web locale. La password predefinita dell'interfaccia utente Web locale è Password1. Quando si esegue correttamente la connessione al dispositivo usando PowerShell remoto, viene visualizzato l'output di esempio seguente:

    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 della distribuzione IoT

Per semplificare la distribuzione dei contenitori in più computer host, è possibile creare un file manifesto della distribuzione per specificare le opzioni di creazione del contenitore e le variabili di ambiente. È possibile trovare un esempio di manifesto della distribuzione per Azure Stack Edge, altri computer desktop e vm di Azure con GPU in GitHub.

La tabella seguente illustra le varie variabili di ambiente usate dal modulo IoT Edge. È anche possibile impostarli nel manifesto della distribuzione collegato in precedenza, usando l'attributo env in spatialanalysis:

Nome dell'impostazione Valore Descrizione
ARCHON_LOG_LEVEL Informazioni; Dettagliato Livello di registrazione, selezionare uno dei due valori
ARCHON_SHARED_BUFFER_LIMIT 377487360 Non modificare
ARCHON_PERF_MARKER false Impostare questa proprietà su true per la registrazione delle prestazioni; in caso contrario, deve essere false
ARCHON_NODES_LOG_LEVEL Informazioni; Dettagliato Livello di registrazione, selezionare uno dei due valori
OMP_WAIT_POLICY PASSIVO Non modificare
QT_X11_NO_MITSHM 1 Non modificare
APIKEY la chiave API Raccogliere questo valore da portale di Azure dalla risorsa Visione. È possibile trovarla nella sezione Chiave ed endpoint per la risorsa.
FATTURAZIONE URI dell'endpoint Raccogliere questo valore da portale di Azure dalla risorsa Visione. È possibile trovarla nella sezione Chiave ed endpoint per la risorsa.
EULA accept Questo valore deve essere impostato per accettare per l'esecuzione del contenitore
VISUALIZZA 1: Questo valore deve essere uguale all'output di echo $DISPLAY nel computer host. I dispositivi Azure Stack Edge non hanno uno schermo. Questa impostazione non è applicabile
KEY_ENV A edizione Standard Chiave di crittografia Aggiungere questa variabile di ambiente se Video_URL è una stringa offuscata
IV_ENV Initialization vector Aggiungere questa variabile di ambiente se Video_URL è una stringa offuscata

Importante

È necessario specificare le opzioni Eula, Billing e ApiKey per eseguire il contenitore. In caso contrario, il contenitore non si avvia. Per altre informazioni, vedereFatturazione.

Dopo aver aggiornato il manifesto della distribuzione per i dispositivi Azure Stack Edge, un computer desktop o una macchina virtuale di Azure con GPU con impostazioni personalizzate e la selezione delle operazioni, è possibile usare il comando seguente dell'interfaccia della riga di comando di Azure per distribuire il contenitore nel computer host, come modulo 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>"
Parametro Descrizione
--hub-name Nome hub IoT di Azure.
--content Nome del file di distribuzione.
--target-condition Nome del dispositivo IoT Edge per il computer host.
-–subscription ID sottoscrizione o nome.

Questo comando avvierà la distribuzione. Passare alla pagina dell'istanza di hub IoT di Azure nel portale di Azure per visualizzare lo stato della distribuzione. Lo stato può essere visualizzato come 417: la configurazione della distribuzione del dispositivo non viene impostata fino al termine del download delle immagini del contenitore e dell'avvio dell'esecuzione del dispositivo.

Verificare che la distribuzione sia riuscita

Per verificare se il contenitore è in esecuzione, sono disponibili diverse opzioni. Individuare lo stato di runtime nel modulo IoT Edge Impostazioni per il modulo Analisi spaziale nell'istanza di hub IoT di Azure nel portale di Azure. Verificare che il valore desiderato e il valore segnalato per lo stato di runtime siano in esecuzione.

Example deployment verification

Una volta completata la distribuzione e il contenitore è in esecuzione, il computer host avvia l'invio di eventi al hub IoT di Azure. Se è stata usata la .debug versione delle operazioni, verrà visualizzata una finestra del visualizzatore per ogni fotocamera configurata nel manifesto della distribuzione. È ora possibile definire le righe e le zone da monitorare nel manifesto della distribuzione e seguire le istruzioni per la distribuzione di nuovo.

Configurare le operazioni eseguite dall'analisi spaziale

È necessario usare le operazioni di analisi spaziale per configurare il contenitore per l'uso di fotocamere connesse, configurare le operazioni e altro ancora. Per ogni dispositivo fotocamera configurato, le operazioni per l'analisi spaziale generano un flusso di output di messaggi JSON, inviati all'istanza di hub IoT di Azure.

Usare l'output generato dal contenitore

Per iniziare a usare l'output generato dal contenitore, vedere gli articoli seguenti:

  • Usare Hub eventi di Azure SDK per il linguaggio di programmazione scelto per connettersi all'endpoint hub IoT di Azure e ricevere gli eventi. Per altre informazioni, vedere Leggere i messaggi da dispositivo a cloud dall'endpoint predefinito.
  • Configurare Routing messaggi nel hub IoT di Azure per inviare gli eventi ad altri endpoint o salvare gli eventi in Archiviazione BLOB di Azure e così via.

Risoluzione dei problemi

Se si verificano problemi durante l'avvio o l'esecuzione del contenitore, vedere Telemetria e risoluzione dei problemi relativi ai problemi comuni. Questo articolo contiene anche informazioni sulla generazione e la raccolta di log e la raccolta dell'integrità del sistema.

Se si verificano problemi durante l'esecuzione di un contenitore di servizi di intelligenza artificiale di Azure, è possibile provare a usare il contenitore di diagnostica Microsoft. Usare questo contenitore per diagnosticare gli errori comuni nell'ambiente di distribuzione che potrebbero impedire il funzionamento dei contenitori di Intelligenza artificiale di Azure come previsto.

Per ottenere il contenitore, usare il comando seguente docker pull :

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

Eseguire quindi il contenitore. Sostituire {ENDPOINT_URI} con l'endpoint e sostituire {API_KEY} con la chiave alla risorsa:

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

Il contenitore verificherà la connettività di rete all'endpoint di fatturazione.

Fatturazione

Il contenitore Analisi spaziale invia informazioni di fatturazione ad Azure usando una risorsa di Visione nell'account Azure. L'uso dell'analisi spaziale in anteprima pubblica è attualmente gratuito.

I contenitori di Intelligenza artificiale di Azure non sono concessi in licenza per l'esecuzione senza essere connessi all'endpoint di misurazione/fatturazione. È sempre necessario abilitare i contenitori per comunicare le informazioni di fatturazione con l'endpoint di fatturazione. I contenitori di Intelligenza artificiale di Azure non inviano dati dei clienti, ad esempio il video o l'immagine da analizzare, a Microsoft.

Riepilogo

In questo articolo sono stati illustrati i concetti e il flusso di lavoro per il download, l'installazione e l'esecuzione del contenitore di analisi spaziale. Riepilogo:

  • Analisi spaziale è un contenitore Linux per Docker.
  • Le immagini del contenitore vengono scaricate dal Registro Contenitori Microsoft.
  • Le immagini del contenitore vengono eseguite come moduli IoT in Azure IoT Edge.
  • Configurare il contenitore e distribuirlo in un computer host.

Passaggi successivi