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änssnittet på Azure Portal:
- 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.
- 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.
- Lämna KUBernetes-testnodens IP-adresser och Kubernetes externa tjänsters IP-adresser tomma.
- Klicka på Applicera. Den här åtgärden kan ta ungefär två minuter.

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.

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.
Kör en Windows PowerShell-session som administratör.
Kontrollera att Windows Remote Management-tjänsten körs på klienten. Skriv följande i kommandotolken:
winrm quickconfigMer information finns i Installation och konfiguration för Windows Remote Management.
Tilldela en variabel till anslutningssträngen som används i
hostsfilen.$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.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 -ForceStarta en Windows PowerShell-session på enheten:
Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSLOm 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.
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.

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.
