Een webtoepassing voor ruimtelijke analyse implementeren

Gebruik dit artikel voor meer informatie over het implementeren van een web-app waarmee ruimtelijke analysegegevens/inzichten uit IoT Hub worden verzameld en gevisualiseerd. Dit kan nuttige toepassingen hebben in een breed scala aan scenario's en branches. Als een bedrijf bijvoorbeeld het gebruik van de vastgoedruimte wil optimaliseren, kunnen ze snel een oplossing maken met verschillende scenario's.

In deze zelfstudie leert u het volgende:

  • De container ruimtelijke analyse implementeren
  • De bewerking en camera configureren
  • De IoT Hub-verbinding configureren in de webtoepassing
  • De webtoepassing implementeren en testen

De app toont de volgende scenario's:

  • Aantal personen dat een ruimte/winkel binnenkomt en verlaat
  • Het aantal personen dat een kassa/zone binnenkomt en verlaat en de tijd die is besteed aan de kassalijn (woningtijd)
  • Aantal mensen dat een gezichtsmasker draagt
  • Aantal personen dat de richtlijnen voor sociale afstand schendt

Vereisten

De container ruimtelijke analyse implementeren

Volg de installatie van de hostcomputer om de hostcomputer te configureren en een IoT Edge-apparaat te verbinden met Azure IoT Hub.

Een Azure IoT Hub-service implementeren in uw abonnement

Maak eerst een exemplaar van een Azure IoT Hub-service met de Standard-prijscategorie (S1) of de gratis laag (S0). Volg deze instructies om dit exemplaar te maken met behulp van de Azure CLI.

Vul de vereiste parameters in:

  • Abonnement: de naam of id van uw Azure-abonnement
  • Resourcegroep: Een naam maken voor uw resourcegroep
  • IoT Hub-naam: een naam maken voor uw IoT Hub
  • IoTHub-naam: de naam van de IoT Hub die u hebt gemaakt
  • Edge-apparaatnaam: een naam maken voor uw Edge-apparaat
az login
az account set --subscription <name or ID of Azure Subscription>
az group create --name "<Resource Group Name>" --location "WestUS"

az iot hub create --name "<IoT Hub Name>" --sku S1 --resource-group "test-resource-group"

az iot hub device-identity create --hub-name "<IoT Hub Name>" --device-id "<Edge Device Name>" --edge-enabled

De container implementeren in Azure IoT Edge op de hostcomputer

De volgende stap is het implementeren van de container voor ruimtelijke analyse als een IoT-module op de hostcomputer met behulp van de Azure CLI. Het implementatieproces vereist een implementatiemanifestbestand waarin de vereiste containers, variabelen en configuraties voor uw implementatie worden beschreven. Een voorbeeldimplementatiemanifest vindt u in DeploymentManifest.json met vooraf gebouwde configuraties voor alle scenario's.

Omgevingsvariabelen instellen

De meeste omgevingsvariabelen voor de IoT Edge-module zijn al ingesteld in de voorbeeldbestanden DeploymentManifest.json hierboven zijn gekoppeld. Zoek in het bestand naar de ENDPOINT en APIKEY omgevingsvariabelen, die hieronder worden weergegeven. Vervang de waarden door de eindpunt-URI en de API-sleutel die u eerder hebt gemaakt. Zorg ervoor dat de waarde van de gebruiksrechtovereenkomst is ingesteld op 'accepteren'.

"EULA": { 
    "value": "accept"
},
"BILLING":{ 
    "value": "<Use the endpoint from your Vision resource>"
},
"APIKEY":{
    "value": "<Use a key from your Vision resource>"
}

De bewerkingsparameters configureren

Als u de voorbeeld-DeploymentManifest.json gebruikt die al alle vereiste configuraties (bewerkingen, opgenomen URL's en zones voor videobestanden, enzovoort) bevat, kunt u doorgaan naar de sectie De implementatie uitvoeren.

Nu de eerste configuratie van de container voor ruimtelijke analyse is voltooid, is de volgende stap het configureren van de bewerkingsparameters en het toevoegen ervan aan de implementatie.

De eerste stap is het bijwerken van het voorbeeld DeploymentManifest.json en het configureren van de gewenste bewerking. Configuratie voor cognitiveservices.vision.spatialanalysis-personcount wordt bijvoorbeeld hieronder weergegeven:

"personcount": {
    "operationId": "cognitiveservices.vision.spatialanalysis-personcount",
    "version": 1,
    "enabled": true,
    "parameters": {
        "VIDEO_URL": "<Replace RTSP URL here>",
        "VIDEO_SOURCE_ID": "<Replace with friendly name>",
        "VIDEO_IS_LIVE":true,
        "DETECTOR_NODE_CONFIG": "{ \"gpu_index\": 0 }",
        "SPACEANALYTICS_CONFIG": "{\"zones\":[{\"name\":\"queue\",\"polygon\":[<Replace with your values>], \"events\": [{\"type\":\"count\"}], \"threshold\":<use 0 for no threshold.}]}"
    }
},

Nadat het implementatiemanifest is bijgewerkt, volgt u de instructies van de fabrikant van de camera om de camera te installeren, configureert u de URL van de camera en configureert u de gebruikersnaam en het wachtwoord.

VIDEO_URL Stel vervolgens in op de RTSP-URL van de camera en de referenties voor het verbinden met de camera.

Als het edge-apparaat meer dan één GPU heeft, selecteert u de GPU waarop u deze bewerking wilt uitvoeren. Zorg ervoor dat u taakverdeling uitvoert voor de bewerkingen waarbij er niet meer dan 8 bewerkingen tegelijk worden uitgevoerd op één GPU.

Configureer vervolgens de zone waarin u personen wilt tellen. Als u de zone-veelhoek wilt configureren, volgt u eerst de instructies van de fabrikant om een frame van de camera op te halen. Als u elk hoekpunt van de veelhoek wilt bepalen, selecteert u een punt in het frame, neemt u de coördinaten van de x,y pixel van het punt ten opzichte van de linkerbovenhoek van het frame en deelt u deze door de bijbehorende framedimensies. Stel de resultaten in als x,y-coördinaten van het hoekpunt. U kunt de zone veelhoekconfiguratie instellen in het SPACEANALYTICS_CONFIG veld.

Dit is een voorbeeldvideoframe dat laat zien hoe de hoekpuntcoördinaten worden berekend voor een frame van grootte 1920/1080. Sample video frame

U kunt ook een betrouwbaarheidsdrempel selecteren voor wanneer gedetecteerde personen worden geteld en gebeurtenissen worden gegenereerd. Stel de drempelwaarde in op 0 als u wilt dat alle gebeurtenissen worden uitgevoerd.

De implementatie uitvoeren

Nu het implementatiemanifest is voltooid, gebruikt u deze opdracht in de Azure CLI om de container op de hostcomputer te implementeren als een IoT Edge-module.

az login
az extension add --name azure-iot
az iot edge set-modules --hub-name "<IoT Hub name>" --device-id "<IoT Edge device name>" --content DeploymentManifest.json -–subscription "<subscriptionId>"

Vul de vereiste parameters in:

  • IoT Hub-naam: uw Azure IoT Hub-naam
  • DeploymentManifest.json: de naam van uw implementatiebestand
  • IoT Edge-apparaatnaam: de naam van het IoT Edge-apparaat van uw hostcomputer
  • Abonnement: uw abonnements-id of -naam

Met deze opdracht wordt de implementatie gestart en kunt u de implementatiestatus bekijken in uw Azure IoT Hub-exemplaar in Azure Portal. De status kan worden weergegeven als 417: de implementatieconfiguratie van het apparaat is pas ingesteld als het apparaat klaar is met het downloaden van de containerinstallatiekopieën en wordt uitgevoerd.

Controleer of de implementatie is geslaagd

Zoek de runtimestatus in de IoT Edge-module Instellingen voor de module ruimtelijke analyse in uw IoT Hub-exemplaar in Azure Portal. De gewenste waarde en gerapporteerde waarde voor de runtimestatus moeten zeggenRunning. Hieronder ziet u hoe dit eruitziet in Azure Portal.

Example deployment verification

Op dit moment wordt de bewerking uitgevoerd door de container voor ruimtelijke analyse. Het verzendt AI-inzichten voor de bewerkingen en stuurt deze inzichten als telemetrie naar uw Azure IoT Hub-exemplaar. Als u extra camera's wilt configureren, kunt u het manifestbestand voor de implementatie bijwerken en de implementatie opnieuw uitvoeren.

De webtoepassing bouwen

Met de webtoepassing Ruimtelijke analyse kunnen ontwikkelaars snel een voorbeeldweb-app configureren, deze hosten in hun Azure-omgeving en de app gebruiken om E2E-gebeurtenissen te valideren.

Een Docker-installatiekopie maken

Volg de handleiding voor het bouwen en pushen van de installatiekopieën naar een Azure Container Registry in uw abonnement.

De Docker-container instellen

Als u de container wilt installeren, maakt u een nieuwe Azure-app Service en vult u de vereiste parameters in. Ga vervolgens naar het tabblad Docker en selecteer Enkele container en vervolgens Azure Container Registry. Gebruik uw exemplaar van Azure Container Registry waar u de bovenstaande installatiekopieën hebt gepusht.

Enter image details

Nadat u de bovenstaande parameters hebt ingevoerd, selecteert u Beoordelen+maken en maakt u de app.

De app configureren

Wacht tot de installatie is voltooid en navigeer naar uw resource in Azure Portal. Ga naar de configuratiesectie en voeg de volgende twee toepassingsinstellingen toe.

  • EventHubConsumerGroup – De tekenreeksnaam van de consumentengroep uit uw Azure IoT Hub, kunt u een nieuwe consumentengroep maken in uw IoT Hub of de standaardgroep gebruiken.
  • IotHubConnectionString– De verbindingsreeks naar uw Azure IoT Hub. Dit kan worden opgehaald uit de sectie sleutels van uw Azure IoT Hub-resourceConfigure Parameters

Zodra deze 2 instellingen zijn toegevoegd, selecteert u Opslaan. Selecteer vervolgens Verificatie/autorisatie in het linkernavigatiemenu en werk deze bij met het gewenste verificatieniveau. Microsoft Entra ID express wordt aangeraden.

De app testen

Ga naar de Azure-service en controleer of de implementatie is geslaagd en of de web-app wordt uitgevoerd. Navigeer naar de geconfigureerde URL: <yourapp>.azurewebsites.net om de actieve app weer te geven.

Test the deployment

De broncode van PersonCount ophalen

Als u de broncode voor deze toepassing wilt weergeven of wijzigen, kunt u deze vinden op GitHub.

Volgende stappen