Installera och köra containern för rumslig analys (förhandsversion)

Med containern för rumslig analys kan du analysera strömmande video i realtid för att förstå rumsliga relationer mellan människor, deras rörelser och interaktioner med objekt i fysiska miljöer. Containrar är bra för specifika säkerhets- och datastyrningskrav.

Förutsättningar

  • Azure-prenumeration – Skapa en kostnadsfritt
  • Ditt Azure-konto måste ha en tilldelad Cognitive Services för att du ska kunna godkänna de ansvarsfulla AI-villkoren och skapa en resurs. Kontakta administratören för att få den här rollen tilldelad till ditt konto.
  • När du har din Azure-prenumeration skapar du en Visuellt innehåll-resurs för att skapa en Visuellt innehåll-resurs för din nyckel och slutpunkt. När den har distribuerats klickar du på Gå till resurs.
    • Du behöver nyckeln och slutpunkten från resursen du skapar för att köra containern spatial analys. Du kommer att använda din nyckel och slutpunkt senare.

Containerkrav för rumslig analys

Om du vill köra containern för rumslig analys behöver du en beräkningsenhet med en NVIDIA Tesla T4 GPU. Vi rekommenderar att du Azure Stack Edge med GPU-acceleration, men containern körs på andra stationära datorer som uppfyller minimikraven. Vi refererar till den här enheten som värddator.

Azure Stack Edge är en lösning för maskinvara som en tjänst och en AI-aktiverad edge-databehandlingsenhet med funktioner för dataöverföring i nätverket. Detaljerade anvisningar för förberedelser och konfiguration finns i Azure Stack Edge dokumentationen.

Krav Beskrivning
Kamera Containern för rumslig analys är inte kopplad till ett specifikt kameramärke. Kameraenheten måste: stödja Real-Time Streaming Protocol (RTSP) och H.264-kodning, vara tillgänglig för värddatorn och kunna strömma med 15FPS- och 1080p-upplösning.
Linux OS Ubuntu Desktop 18.04 LTS måste vara installerat på värddatorn.

Konfigurera värddatorn

Vi rekommenderar att du använder en Azure Stack Edge för värddatorn. Klicka på Dator om du konfigurerar en annan enhet eller Virtuell dator om du använder en virtuell dator.

Konfigurera beräkning på Azure Stack Edge portalen

Rumslig analys använder beräkningsfunktionerna i Azure Stack Edge för att köra en AI-lösning. Om du vill aktivera beräkningsfunktionerna kontrollerar du att:

  • Du har anslutit och aktiverat Azure Stack Edge enhet.
  • Du har ett Windows klientsystem som kör PowerShell 5.0 eller senare för att komma åt enheten.
  • Om du vill distribuera ett Kubernetes-kluster måste du konfigurera Azure Stack Edge enhet via det lokala användargränssnittetAzure Portal:
    1. Aktivera beräkningsfunktionen på din Azure Stack Edge enhet. Om du vill aktivera beräkning går du till sidan Beräkning i webbgränssnittet för din enhet.
    2. Välj ett nätverksgränssnitt som du vill aktivera för beräkning och klicka sedan på Aktivera. Detta skapar en virtuell växel på enheten i det nätverksgränssnittet.
    3. Lämna KUBernetes-testnodens IP-adresser och Kubernetes externa tjänsters IP-adresser tomma.
    4. Klicka på Applicera. Den här åtgärden kan ta ungefär två minuter.

Konfigurera beräkning

Konfigurera en Edge-beräkningsroll och skapa en IoT Hub resurs

I Azure Portalnavigerar du till Azure Stack Edge resurs. På sidan Översikt eller i navigeringslistan klickar du på knappen Edge compute Get started (Kom igång med Edge-beräkning). I panelen  Konfigurera Edge-beräkning   klickar du på Konfigurera.

Länk

På sidan Konfigurera Edge-beräkning   väljer du en befintlig IoT Hub eller väljer att skapa en ny. Som standard används prisnivån Standard (S1) för att skapa en IoT Hub resurs. Om du vill använda en kostnadsfri IoT Hub resurs skapar du en och väljer den sedan. Den IoT Hub resursen använder samma prenumeration och resursgrupp som används av den Azure Stack Edge resursen

Klicka på Skapa. Det IoT Hub några minuter att skapa resursen. När den IoT Hub resursen har skapats uppdateras panelen Konfigurera Edge-beräkning så att den nya konfigurationen visas. Bekräfta att Edge-beräkningsrollen har konfigurerats genom att välja Visa konfiguration på panelen Konfigurera   beräkning.

När Edge-beräkningsrollen har konfigurerats på Edge-enheten så skapas två enheter: en IoT-enhet och en IoT Edge-enhet. Bägge enheter kan visas i IoT Hub-resursen. Den Azure IoT Edge Runtime körs redan på den IoT Edge enheten.

Anteckning

  • För närvarande stöds endast Linux-plattformen för IoT Edge enheter. Hjälp med att felsöka Azure Stack Edge finns i artikeln om loggning och felsökning.
  • Mer information om hur du konfigurerar en IoT Edge-enhet för kommunikation via en proxyserver finns i Konfigurera en IoT Edge-enhet för att kommunicera via en proxyserver

Aktivera MPS på Azure Stack Edge

Följ dessa steg om du vill fjärransluta från en Windows klient.

  1. Kör en Windows PowerShell-session som administratör.

  2. Kontrollera att Windows Remote Management-tjänsten körs på klienten. Skriv följande i kommandotolken:

    winrm quickconfig
    

    Mer information finns i Installation och konfiguration för Windows Remote Management.

  3. Tilldela en variabel till anslutningssträngen som används i hosts filen.

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

    Ersätt <Node serial number> och <DNS domain of the device> med nodserienumret och DNS-domänen för enheten. Du kan hämta värdena för nodens serienummer från sidan Certifikat och DNS-domänen från sidan Enhet i enhetens lokala webbgränssnitt.

  4. Om du vill lägga till den här anslutningssträngen för enheten i klientens lista över betrodda värdar skriver du följande kommando:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Starta en Windows PowerShell-session på enheten:

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

    Om du ser ett fel som rör förtroenderelation kontrollerar du om signeringskedjan för nodcertifikatet som laddats upp till enheten också är installerad på klienten som har åtkomst till enheten.

  6. Ange lösenordet när du uppmanas att göra det. Använd samma lösenord som används för att logga in på det lokala webbgränssnittet. Standardlösenordet för det lokala webbgränssnittet är Password1. När du har lyckats ansluta till enheten med fjärr-PowerShell visas följande exempelutdata:

    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>
    

Manifest för IoT-distribution

Om du vill effektivisera containerdistributionen på flera värddatorer kan du skapa en distributionsmanifestfil för att ange alternativ för att skapa containrar och miljövariabler. Du hittar ett exempel på ett distributionsmanifest för Azure Stack Edge, andra stationäradatorer och virtuella Azure-datorer med GPU på GitHub.

I följande tabell visas de olika miljövariabler som används av IoT Edge modulen. Du kan också ange dem i distributionsmanifestet som är länkat ovan med hjälp av env attributet i spatialanalysis :

Inställningsnamn Värde Beskrivning
ARCHON_LOG_LEVEL Information; Utförlig Loggningsnivå, välj ett av de två värdena
ARCHON_SHARED_BUFFER_LIMIT 377487360 Ändra inte
ARCHON_PERF_MARKER falskt Ange detta till sant för prestandaloggning, annars ska detta vara falskt
ARCHON_NODES_LOG_LEVEL Information; Utförlig Loggningsnivå, välj ett av de två värdena
OMP_WAIT_POLICY PASSIV Ändra inte
QT_X11_NO_MITSHM 1 Ändra inte
APIKEY din API-nyckel Samla in det här värdet Azure Portal från Visuellt innehåll resurs. Du hittar den i avsnittet Nyckel och slutpunkt för din resurs.
FAKTURERING din slutpunkts-URI Samla in det här värdet Azure Portal från Visuellt innehåll resurs. Du hittar den i avsnittet Nyckel och slutpunkt för din resurs.
EULA Acceptera Det här värdet måste anges för att containern ska kunna köras
VISA :1 Det här värdet måste vara samma som utdata echo $DISPLAY för på värddatorn. Azure Stack Edge enheter inte har någon skärm. Den här inställningen är inte tillämplig
ARCHON_GRAPH_READY_TIMEOUT 600 Lägg till den här miljövariabeln om din GPU inte är T4 eller NVIDIA 2080 Ti
ORT_TENSORRT_ENGINE_CACHE_ENABLE 0 Lägg till den här miljövariabeln om din GPU inte är T4 eller NVIDIA 2080 Ti
KEY_ENV ASE-krypteringsnyckel Lägg till den här miljövariabeln Video_URL är en fördedd sträng
IV_ENV Initieringsvektor Lägg till den här miljövariabeln Video_URL är en fördedd sträng

Viktigt

Alternativen Eula Billing , och måste anges för att ApiKey köra containern. Annars startar inte containern. Mer information finns i Fakturering.

När du har uppdaterat distributionsmanifestet för Azure Stack Edge-enheter , en stationär dator eller virtuell Azure-dator med GPU med dina egna inställningar och val av åtgärder kan du använda Azure CLI-kommandot nedan för att distribuera containern på värddatorn som en IoT Edge-modul.

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 Beskrivning
--hub-name Ditt Azure IoT Hub namn.
--content Namnet på distributionsfilen.
--target-condition Din IoT Edge enhetsnamn för värddatorn.
-–subscription Prenumerations-ID eller namn.

Det här kommandot startar distributionen. Gå till sidan för din Azure IoT Hub instans i Azure Portal för att se distributionsstatusen. Statusen kan visas som 417 – Enhetens distributionskonfiguration har inte angetts förrän enheten har laddat ned containeravbildningarna och börjar köras.

Kontrollera att distributionen har lyckats

Det finns flera sätt att verifiera att containern körs. Leta upp Körningsstatus i IoT Edge Module Inställningar för modulen Spatial Analysis (Rumslig analys) i Azure IoT Hub instansen på Azure Portal. Kontrollera att Desired Value (Önskat värde) och Reported Value (Rapporterat värde) för Runtime Status (Körningsstatus) körs.

Exempel på verifiering av distribution

När distributionen är klar och containern körs börjar värddatorn skicka händelser till Azure IoT Hub. Om du använde versionen av åtgärderna visas ett visualiserarfönster för varje kamera som .debug du konfigurerade i distributionsmanifestet. Nu kan du definiera de linjer och zoner som du vill övervaka i distributionsmanifestet och följa instruktionerna för att distribuera igen.

Konfigurera de åtgärder som utförs av rumslig analys

Du måste använda åtgärder för rumslig analys för att konfigurera containern så att den använder anslutna kameror, konfigurerar åtgärderna med mera. För varje kameraenhet som du konfigurerar genererar åtgärderna för rumslig analys en utdataström med JSON-meddelanden som skickas till din instans av Azure IoT Hub.

Använda de utdata som genereras av containern

Om du vill börja använda de utdata som genereras av containern kan du läsa följande artiklar:

  • Använd Azure Event Hub SDK för ditt valda programmeringsspråk för att ansluta Azure IoT Hub slutpunkten och ta emot händelserna. Mer information finns i Läsa meddelanden från enhet till moln från den inbyggda slutpunkten.
  • Konfigurera meddelanderoutning på din Azure IoT Hub att skicka händelserna till andra slutpunkter eller spara händelserna till Azure Blob Storage osv. Mer information IoT Hub finns i IoT Hub routning av meddelanden.

Köra rumslig analys med en spelad videofil

Du kan använda rumslig analys med både inspelning och live-video. Om du vill använda rumslig analys för inspelade videor provar du att spela in en videofil och sparar den som en mp4-fil. Skapa ett Blob Storage-konto i Azure eller använd ett befintligt. Uppdatera sedan följande bloblagringsinställningar i Azure Portal: 1. Ändra Säker överföring krävs till Inaktiverad 2. Ändra Tillåt offentlig blobåtkomst till Aktiverad

Gå till avsnittet Container och skapa antingen en ny container eller använd en befintlig. Ladda sedan upp videofilen till containern. Expandera filinställningarna för den uppladdade filen och välj Generera SAS. Se till att ställa in Förfallodatum tillräckligt länge för att täcka testperioden. Ange Tillåtna protokoll till HTTP (HTTPS stöds inte).

Klicka på Generate SAS Token and URL (Generera SAS-token och URL) och kopiera Blob SAS-URL:en. Ersätt med och https http testa URL:en i en webbläsare som stöder videouppspelning.

Ersätt VIDEO_URL i distributionsmanifestet för din Azure Stack Edge,stationär dator eller virtuell Azure-dator med GPU med den URL som du skapade för alla grafer. Ange VIDEO_IS_LIVE till och distribuera om false containern spatial analys med det uppdaterade manifestet. Se exemplet nedan.

Modulen Spatial Analysis börjar använda videofilen och kommer även att spela upp automatiskt.

"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\"}}]}]}"
    }
   },

Felsökning

Om du stöter på problem när du startar eller kör containern kan du gå till telemetri och felsöka för att få anvisningar för vanliga problem. Den här artikeln innehåller också information om hur du genererar och samlar in loggar och samlar in systemhälsa.

Om du har problem med att köra en Cognitive Services-container kan du prova att använda Microsofts diagnostikcontainer. Använd den här containern till att diagnostisera vanliga fel i distributionsmiljön som kan förhindra att Cognitive Services-containrar fungerar som förväntat.

Hämta containern med följande Docker pull-kommando:

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

Kör sedan containern, {ENDPOINT_URI} ersätt med slutpunkten och ersätt {API_KEY} med din nyckel till din resurs:

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

Containern testar nätverksanslutningen till faktureringsslutpunkten.

Fakturering

Containern Spatial Analysis skickar faktureringsinformation till Azure med hjälp av en Visuellt innehåll på ditt Azure-konto. Användningen av rumslig analys i offentlig förhandsversion är för närvarande kostnadsfri.

Azure Cognitive Services-containrar är inte licensierade att köras utan att vara anslutna till slutpunkten för mätning/fakturering. Du måste göra så att containrarna alltid kan kommunicera faktureringsinformation med faktureringsslutpunkten. Cognitive Services-containrar skickar inte kunddata, till exempel video eller bild som analyseras, till Microsoft.

Sammanfattning

I den här artikeln har du lärt dig begrepp och arbetsflöden för att ladda ned, installera och köra containern Spatial Analysis. Sammanfattningsvis:

  • Rumslig analys är en Linux-container för Docker.
  • Containeravbildningar laddas ned från Microsoft Container Registry.
  • Containeravbildningar körs som IoT-moduler i Azure IoT Edge.
  • Så här konfigurerar du containern och distribuerar den på en värddator.

Nästa steg