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 permettono di soddisfare gli specifici requisiti di sicurezza e governance dei dati.

Prerequisiti

  • Sottoscrizione di Azure: creare un account gratuito
  • Dopo aver creato la sottoscrizione di Azure, creare una risorsa di 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 accelerazione GPU, ma il contenitore viene eseguito in qualsiasi altro computer desktop che soddisfi i requisiti minimi. Questo dispositivo verrà 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 IA. 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. Ciò crea un commutatore sul 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.

Configurare il ruolo di calcolo

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

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

Collega

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 dell'hub IoT. Per usare una risorsa hub IoT di livello gratuito, crearne una e quindi selezionarla. La risorsa dell'hub IoT usa la stessa sottoscrizione e lo stesso gruppo di risorse usato dalla risorsa Azure Stack Edge

Seleziona Crea. La creazione di risorse dell'hub IoT può richiedere alcuni minuti. Dopo aver creato la risorsa dell'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. Avviare 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 di Gestione remota Windows.

  3. Assegnare una variabile alla stringa di connessione usata nel file hosts.

    $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 questa 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. Fornire la password quando viene 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 macchina virtuale 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; Verbose 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; Verbose Livello di registrazione, selezionare uno dei due valori
OMP_WAIT_POLICY PASSIVE Non modificare
QT_X11_NO_MITSHM 1 Non modificare
APIKEY la chiave API Raccogliere questo valore dal portale di Azure dalla risorsa Visione. È possibile trovarla nella sezione Chiave ed endpoint per la risorsa.
FATTURAZIONE URI dell'endpoint Raccogliere questo valore dal 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 Chiave di crittografia ambiente del servizio app 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 dispositiviAzure Stack Edge, un computer desktop o macchina virtuale di Azure con GPU con le proprie impostazioni e la selezione delle operazioni, è possibile usare il comando seguente 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 dell'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 dell'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 nelle Impostazioni del modulo IoT Edge per il modulo Analisi spaziale nell'istanza dell'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.

Verifica della distribuzione di esempio

Una volta completata la distribuzione e il contenitore è in esecuzione, il computer host inizierà a inviare eventi all'hub IoT di Azure. Se è stata usata la versione .debug 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 in modo da usare fotocamere connesse, configurare le operazioni e altro ancora. Per ogni dispositivo con videocamera configurato, le operazioni per l'analisi spaziale genereranno un flusso di output di messaggi JSON inviati all'istanza dell'hub IoT di Azure.

Usare l'output generato dal contenitore

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

  • Usare l’Hub eventi di Azure SDK per il linguaggio di programmazione scelto per connettersi all'endpoint dell'hub IoT di Azure e ricevere gli eventi. Per altre informazioni, vedere Leggere messaggi da dispositivo a cloud dall'endpoint predefinito.
  • Configurare Il routing dei messaggi nell'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 Azure AI, è possibile provare a usare il contenitore per la diagnostica di Microsoft. Usare questo contenitore per diagnosticare gli errori comuni nell'ambiente di distribuzione che potrebbero impedire il funzionamento previsto dei contenitori di Azure per intelligenza artificiale.

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

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

Quindi, eseguire il contenitore. Sostituire {ENDPOINT_URI} con l'endpoint e {API_KEY} con la chiave per la risorsa:

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

Il contenitore eseguirà il test della connettività di rete per l'endpoint di fatturazione.

Fatturazione

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

I contenitori di Azure AI non possiedono la licenza per l'esecuzione senza connessione all'endpoint di misurazione o fatturazione. È sempre necessario abilitare i contenitori per comunicare le informazioni di fatturazione con l'endpoint di fatturazione. I contenitori di Azure AI non inviano a Microsoft i dati dei clienti, ad esempio il video o l'immagine analizzati.

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 Container 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