De ruimtelijke analysecontainer installeren en uitvoeren (preview)

Met de container ruimtelijke analyse kunt u realtime streamingvideo analyseren om inzicht te krijgen in ruimtelijke relaties tussen personen, hun verplaatsing en interactie met objecten in fysieke omgevingen. Containers zijn ideaal voor specifieke vereisten voor beveiliging en gegevensbeheer.

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement
  • Aan uw Azure-account moet Cognitive Services rol Inzender zijn toegewezen, zodat u akkoord kunt gaan met de verantwoordelijke AI-voorwaarden en een resource kunt maken. Neem contact op met uw beheerder om deze rol aan uw account toe te laten.
  • Zodra u een Azure-abonnement hebt, maakt u een Computer Vision-resource en maakt u een Computer Vision-resource voor de op te halen. Nadat de app is geïmplementeerd, klikt u op Ga naar resource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om de ruimtelijke analysecontainer uit te voeren. U gebruikt uw sleutel en eindpunt later.

Vereisten voor ruimtelijke analysecontainers

Als u de container ruimtelijke analyse wilt uitvoeren, hebt u een rekenapparaat met een NVIDIA Tesla T4 GPU nodig. We raden u aan om Azure Stack Edge GPU-versnelling te gebruiken, maar de container wordt uitgevoerd op een andere desktopcomputer die voldoet aan de minimale vereisten. We verwijzen naar dit apparaat als de hostcomputer.

Azure Stack Edge is een Hardware-as-a-Service-oplossing en een edge-computingapparaat met AI met mogelijkheden voor netwerkgegevensoverdracht. Zie de documentatie voor Azure Stack Edge voor gedetailleerde voorbereidings- en installatie-instructies.

Vereiste Beschrijving
Camera De ruimtelijke analysecontainer is niet gekoppeld aan een specifiek cameramerk. Het cameraapparaat moet: ondersteuning bieden voor Real-Time Streaming Protocol (RTSP) en H.264-codering, toegankelijk zijn voor de hostcomputer en kunnen streamen met een resolutie van 15FPS en 1080p.
Linux-besturingssysteem Ubuntu Desktop 18.04 LTS moet op de hostcomputer zijn geïnstalleerd.

De hostcomputer instellen

U wordt aangeraden een Azure Stack Edge voor uw hostcomputer te gebruiken. Klik op Desktopcomputer als u een ander apparaat configureert of op Virtuele machine als u een virtuele machine gebruikt.

Rekenkracht configureren in de Azure Stack Edge portal

Ruimtelijke analyse maakt gebruik van de rekenfuncties van de Azure Stack Edge om een AI-oplossing uit te voeren. Als u de rekenfuncties wilt inschakelen, moet u ervoor zorgen dat:

  • U hebt uw apparaat verbonden en geactiveerd Azure Stack Edge apparaat.
  • U hebt een Windows-clientsysteem met PowerShell 5.0 of hoger om toegang te krijgen tot het apparaat.
  • Als u een Kubernetes-cluster wilt implementeren, moet u uw Azure Stack Edge configureren via de lokale gebruikersinterface op de Azure Portal:
    1. Schakel de rekenfunctie in op uw Azure Stack Edge apparaat. Als u compute wilt inschakelen, gaat u naar de pagina Compute in de webinterface voor uw apparaat.
    2. Selecteer een netwerkinterface die u wilt inschakelen voor compute en klik vervolgens op Inschakelen. Hiermee maakt u een virtuele switch op uw apparaat op die netwerkinterface.
    3. Laat de IP-adressen van het Kubernetes-test-knooppunt en de IP-adressen van de externe Kubernetes-services leeg.
    4. Klik op Toepassen. Deze bewerking kan ongeveer twee minuten duren.

Rekenproces configureren

Een Edge-rekenrol instellen en een IoT Hub maken

Navigeer in Azure Portalnaar uw Azure Stack Edge resource. Klik op de pagina Overzicht of navigatielijst op de knop Aan de slag met Edge-rekenkracht. Klik in  de tegel Edge-rekenkracht   configureren op Configureren.

Koppeling

Kies op de pagina Edge-rekenkracht   configureren een bestaand IoT Hub of kies ervoor om een nieuwe te maken. Standaard wordt een Prijscategorie Standard (S1) gebruikt om een resource IoT Hub maken. Als u een gratis laag wilt IoT Hub resource, maakt u er een en selecteert u deze. De IoT Hub resource maakt gebruik van hetzelfde abonnement en dezelfde resourcegroep die wordt gebruikt door de Azure Stack Edge resource

Klik op Create. Het IoT Hub resource kan enkele minuten duren. Nadat de IoT Hub resource is gemaakt, wordt de tegel Edge-rekenkracht configureren bijgewerkt om de nieuwe configuratie weer te geven. Als u wilt controleren of de Edge-rekenrol is geconfigureerd, selecteert u Configuratie weergeven op de tegel Rekenkracht   configureren.

Wanneer de Edge-rekenprocesrol wordt geconfigureerd op het Edge-apparaat, worden er twee apparaten aangemaakt: een IoT-apparaat en een IoT Edge-apparaat. Beide apparaten kunnen worden weergegeven in de IoT Hub-resource. De Azure IoT Edge Runtime wordt al uitgevoerd op het IoT Edge apparaat.

Notitie

  • Momenteel wordt alleen het Linux-platform ondersteund voor IoT Edge apparaten. Zie het artikel logboekregistratie en probleemoplossing Azure Stack Edge hulp bij het oplossen van problemen met het apparaat.
  • Zie Configure an IoT Edge device to communicate through a proxy server (Een IoT Edge-apparaat configureren om te communiceren via een proxyserver) voor meer informatie over het configureren van een IoT Edge-apparaat om te communiceren via een proxyserver

MPS inschakelen op Azure Stack Edge

Volg deze stappen om op afstand verbinding te maken vanaf een Windows client.

  1. Voer een Windows PowerShell als beheerder uit.

  2. Zorg ervoor dat de Windows Remote Management-service wordt uitgevoerd op uw client. Typ in de opdrachtprompt:

    winrm quickconfig
    

    Zie Installatie en configuratie voor Windows Remote Management voor meer informatie.

  3. Wijs een variabele toe aan de connection string in het bestand wordt hosts gebruikt.

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

    Vervang <Node serial number> en door het serienummer van het <DNS domain of the device> knooppunt en het DNS-domein van uw apparaat. U kunt de waarden voor het serienummer van het knooppunt op de pagina Certificaten en het DNS-domein op de pagina Apparaat in de lokale webinterface van uw apparaat verkrijgen.

  4. Als u deze connection string voor uw apparaat wilt toevoegen aan de lijst met vertrouwde hosts van de client, typt u de volgende opdracht:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Start een Windows PowerShell sessie op het apparaat:

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

    Als er een fout wordt weergegeven met betrekking tot de vertrouwensrelatie, controleert u of de ondertekeningsketen van het knooppuntcertificaat dat is geüpload naar uw apparaat, ook is geïnstalleerd op de client die toegang heeft tot uw apparaat.

  6. Geef het wachtwoord op wanneer u hier om wordt gevraagd. Gebruik hetzelfde wachtwoord dat wordt gebruikt om u aan te melden bij de lokale webgebruikersinterface. Het standaardwachtwoord voor de lokale webinterface is Password1. Wanneer u verbinding met het apparaat hebt gemaakt met behulp van externe PowerShell, ziet u de volgende voorbeelduitvoer:

    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>
    

IoT-implementatiemanifest

Als u de implementatie van containers op meerdere hostcomputers wilt stroomlijnen, kunt u een distributiemanifestbestand maken om de opties voor het maken van containers en omgevingsvariabelen op te geven. U vindt een voorbeeld van een implementatiemanifest voor Azure Stack Edge, andere desktopcomputersen Azure VM met GPU op GitHub.

In de volgende tabel ziet u de verschillende omgevingsvariabelen die worden gebruikt door de IoT Edge Module. U kunt ze ook instellen in het hierboven gekoppelde implementatiemanifest met behulp van env het kenmerk in spatialanalysis :

Instellingsnaam Waarde Beschrijving
ARCHON_LOG_LEVEL Info; Uitgebreide Niveau van logboekregistratie, selecteer een van de twee waarden
ARCHON_SHARED_BUFFER_LIMIT 377487360 Niet wijzigen
ARCHON_PERF_MARKER onjuist Stel dit in op true voor logboekregistratie van prestaties, anders zou dit onwaar moeten zijn
ARCHON_NODES_LOG_LEVEL Info; Uitgebreide Niveau van logboekregistratie, selecteer een van de twee waarden
OMP_WAIT_POLICY PASSIEVE Niet wijzigen
QT_X11_NO_MITSHM 1 Niet wijzigen
APIKEY uw API-sleutel Verzamel deze waarde van Azure Portal van uw Computer Vision resource. U vindt deze in de sectie Sleutel en eindpunt voor uw resource.
FACTURERING uw eindpunt-URI Verzamel deze waarde van Azure Portal van uw Computer Vision resource. U vindt deze in de sectie Sleutel en eindpunt voor uw resource.
OVEREENKOMST Accepteren Deze waarde moet worden ingesteld om te accepteren dat de container wordt uitgevoerd
WEERGEVEN :1 Deze waarde moet gelijk zijn aan de uitvoer van echo $DISPLAY op de hostcomputer. Azure Stack Edge apparaten hebben geen weergave. Deze instelling is niet van toepassing
ARCHON_GRAPH_READY_TIMEOUT 600 Voeg deze omgevingsvariabele toe als uw GPU niet T4 of NVIDIA 2080 Ti is
ORT_TENSORRT_ENGINE_CACHE_ENABLE 0 Voeg deze omgevingsvariabele toe als uw GPU niet T4 of NVIDIA 2080 Ti is
KEY_ENV ASE-versleutelingssleutel Voeg deze omgevingsvariabele toe Video_URL een niet-verdukte tekenreeks is
IV_ENV Initialisatievector Voeg deze omgevingsvariabele toe Video_URL een niet-verdukte tekenreeks is

Belangrijk

De opties , en moeten worden opgegeven om de container uit te voeren. Anders Eula wordt de container niet Billing ApiKey start. Zie Facturering voor meer informatie.

Zodra u het distributiemanifest voor Azure Stack Edge-apparaten,een desktopcomputer of Azure-VM met GPU met uw eigen instellingen en selectie van bewerkingen hebt bijgewerkt, kunt u de onderstaande Azure CLI-opdracht gebruiken om de container op de hostcomputer te implementeren als een IoT Edge-module.

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>"
Parameter Beschrijving
--hub-name Uw Azure IoT Hub naam.
--content De naam van het implementatiebestand.
--target-condition De IoT Edge naam van het apparaat voor de hostcomputer.
-–subscription Abonnements-id of -naam.

Met deze opdracht wordt de implementatie starten. Navigeer naar de pagina van Azure IoT Hub exemplaar in de Azure Portal om de implementatiestatus te bekijken. De status kan 417 zijn: de implementatieconfiguratie van het apparaat wordt pas ingesteld als het apparaat klaar is met het downloaden van de containerafbeeldingen en wordt gestart.

Valideren of de implementatie is geslaagd

Er zijn verschillende manieren om te controleren of de container wordt uitgevoerd. Zoek de Runtimestatus in de IoT Edge Module Instellingen voor de module Ruimtelijke analyse in uw Azure IoT Hub-exemplaar op Azure Portal. Controleer of de gewenste waarde en gerapporteerde waarde voor de Runtimestatus Wordt uitgevoerd zijn.

Voorbeeld van implementatieverificatie

Zodra de implementatie is voltooid en de container wordt uitgevoerd, begint de hostcomputer met het verzenden van gebeurtenissen naar de Azure IoT Hub. Als u de versie van de bewerkingen hebt gebruikt, ziet u een visualizer-venster voor elke camera die u .debug hebt geconfigureerd in het implementatiemanifest. U kunt nu de regels en zones definiëren die u wilt bewaken in het implementatiemanifest en de instructies volgen om opnieuw te implementeren.

De bewerkingen configureren die worden uitgevoerd door ruimtelijke analyse

U moet spatial analysis-bewerkingen gebruiken om de container te configureren voor het gebruik van verbonden camera's, het configureren van de bewerkingen en meer. Voor elk cameraapparaat dat u configureert, genereren de bewerkingen voor ruimtelijke analyse een uitvoerstroom van JSON-berichten die worden verzonden naar uw exemplaar van Azure IoT Hub.

De uitvoer gebruiken die is gegenereerd door de container

Zie de volgende artikelen als u de uitvoer wilt gebruiken die door de container is gegenereerd:

  • Gebruik de Azure Event Hub SDK voor de door u gekozen programmeertaal om verbinding te maken met Azure IoT Hub eindpunt en de gebeurtenissen te ontvangen. Zie Apparaat-naar-cloud-berichten lezen vanaf het ingebouwde eindpunt voor meer informatie.
  • Stel berichtroutering op uw Azure IoT Hub om de gebeurtenissen naar andere eindpunten te verzenden of de gebeurtenissen op te slaan in Azure Blob Storage, enzovoort. Zie IoT Hub Message Routing (Berichtroutering) voor meer informatie.

Ruimtelijke analyse uitvoeren met een opgenomen videobestand

U kunt ruimtelijke analyse gebruiken voor zowel opgenomen als live video. Als u ruimtelijke analyse wilt gebruiken voor opgenomen video, probeert u een videobestand op te nemen en op te slaan als mp4-bestand. Maak een Blob Storage-account in Azure of gebruik een bestaand account. Werk vervolgens de volgende blob-opslaginstellingen in de Azure Portal: 1. Veilige overdracht vereist wijzigen in Uitgeschakeld 2. Wijzig Openbare blobtoegang toestaan in Ingeschakeld

Navigeer naar de sectie Container en maak een nieuwe container of gebruik een bestaande container. Upload vervolgens het videobestand naar de container. Vouw de bestandsinstellingen voor het geüploade bestand uit en selecteer SAS genereren. Zorg ervoor dat u de vervaldatum lang genoeg in stelt voor de testperiode. Stel Toegestane protocollen in op HTTP (HTTPS wordt niet ondersteund).

Klik op SAS-token en URL genereren en kopieer de BLOB SAS-URL. Vervang de door https en test de URL in een browser die het afspelen van http video's ondersteunt.

Vervang in het implementatiemanifest voor uw VIDEO_URL Azure Stack Edge, desktopcomputerof Azure VM door GPU door de URL die u hebt gemaakt voor alle grafieken. Stel VIDEO_IS_LIVE in false op enployer de container Ruimtelijke analyse opnieuw met het bijgewerkte manifest. Zie het voorbeeld hieronder.

De module Ruimtelijke analyse gaat videobestand gebruiken en wordt ook continu automatisch afgespeeld.

"zonecrossing": {
    "operationId" : "cognitiveservices.vision.spatialanalysis-personcrossingpolygon",
    "version": 1,
    "enabled": true,
    "parameters": {
        "VIDEO_URL": "Replace http url here",
        "VIDEO_SOURCE_ID": "personcountgraph",
        "VIDEO_IS_LIVE": false,
      "VIDEO_DECODE_GPU_INDEX": 0,
        "DETECTOR_NODE_CONFIG": "{ \"gpu_index\": 0, \"do_calibration\": true }",
        "SPACEANALYTICS_CONFIG": "{\"zones\":[{\"name\":\"queue\",\"polygon\":[[0.3,0.3],[0.3,0.9],[0.6,0.9],[0.6,0.3],[0.3,0.3]], \"events\": [{\"type\": \"zonecrossing\", \"config\": {\"threshold\": 16.0, \"focus\": \"footprint\"}}]}]}"
    }
   },

Problemen oplossen

Als u problemen ondervindt bij het starten of uitvoeren van de container, bekijkt u telemetrie en probleemoplossing voor de stappen voor veelvoorkomende problemen. Dit artikel bevat ook informatie over het genereren en verzamelen van logboeken en het verzamelen van systeemtoestand.

Als u problemen hebt met het uitvoeren van een Cognitive Services-container, kunt u de diagnosecontainer van Microsoft gebruiken. Gebruik deze container om veelvoorkomende fouten in uw implementatieomgeving vast te stellen die kunnen verhinderen dat Cognitive Services-containers werken zoals verwacht.

Gebruik de volgende Docker pull-opdracht om de container op te halen:

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

Voer vervolgens de container uit, {ENDPOINT_URI} vervang door uw eindpunt en vervang door uw sleutel voor uw {API_KEY} resource:

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

De container test op netwerkverbinding met het facturerings-eindpunt.

Billing

De container ruimtelijke analyse verzendt factureringsgegevens naar Azure met behulp van Computer Vision resource in uw Azure-account. Het gebruik van ruimtelijke analyse in openbare preview is momenteel gratis.

Azure Cognitive Services containers hebben geen licentie om te worden uitgevoerd zonder dat ze zijn verbonden met het meting-/facturerings-eindpunt. U moet ervoor zorgen dat de containers te allen tijde factureringsgegevens kunnen communiceren met het facturerings-eindpunt. Cognitive Services containers verzenden geen klantgegevens, zoals de video of afbeelding die wordt geanalyseerd, naar Microsoft.

Samenvatting

In dit artikel hebt u concepten en werkstromen geleerd voor het downloaden, installeren en uitvoeren van de ruimtelijke analysecontainer. Samenvatting:

  • Ruimtelijke analyse is een Linux-container voor Docker.
  • Containerafbeeldingen worden gedownload van de Microsoft Container Registry.
  • Containerafbeeldingen worden uitgevoerd als IoT-modules in Azure IoT Edge.
  • De container configureren en implementeren op een hostmachine.

Volgende stappen