Wdrażanie aplikacji internetowej analizy przestrzennej

Skorzystaj z tego artykułu, aby dowiedzieć się, jak wdrożyć aplikację internetową, która zbiera dane/szczegółowe informacje analizy przestrzennej z usługi IoT Hub i wizualizuje ją. Może to mieć przydatne aplikacje w wielu różnych scenariuszach i branżach. Jeśli na przykład firma chce zoptymalizować wykorzystanie przestrzeni nieruchomości, może szybko utworzyć rozwiązanie z różnymi scenariuszami.

Niniejszy samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Wdrażanie kontenera analizy przestrzennej
  • Konfigurowanie operacji i aparatu
  • Konfigurowanie połączenia usługi IoT Hub w aplikacji internetowej
  • Wdrażanie i testowanie aplikacji internetowej

Aplikacja zaprezentuje następujące scenariusze:

  • Liczba osób wchodzących i wychodzących z miejsca/sklepu
  • Liczba osób wchodzących do obszaru kasy/strefy i czasu spędzonego w kolejce kasowej (czas zamieszkania)
  • Liczba osób ubranych w maskę twarzy
  • Liczba osób naruszających wytyczne dotyczące różnic społecznych

Wymagania wstępne

Wdrażanie kontenera analizy przestrzennej

Postępuj zgodnie z instrukcjami Konfiguracja komputera hosta, aby skonfigurować komputer hosta i połączyć urządzenie usługi IoT Edge z usługą Azure IoT Hub.

Wdrażanie usługi Azure IoT Hub w ramach subskrypcji

Najpierw utwórz wystąpienie usługi Azure IoT Hub z warstwą cenową Standardowa (S1) lub warstwą bezpłatną (S0). Postępuj zgodnie z tymi instrukcjami, aby utworzyć to wystąpienie przy użyciu interfejsu wiersza polecenia platformy Azure.

Wypełnij wymagane parametry:

  • Subskrypcja: nazwa lub identyfikator subskrypcji platformy Azure
  • Grupa zasobów: utwórz nazwę grupy zasobów
  • Nazwa centrum IoT: Tworzenie nazwy centrum IoT Hub
  • Nazwa usługi IoTHub: nazwa utworzonego centrum IoT Hub
  • Nazwa urządzenia brzegowego: utwórz nazwę urządzenia brzegowego
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

Wdrażanie kontenera w usłudze Azure IoT Edge na komputerze hosta

Następnym krokiem jest wdrożenie kontenera analizy przestrzennej jako modułu IoT na komputerze hosta przy użyciu interfejsu wiersza polecenia platformy Azure. Proces wdrażania wymaga pliku manifestu wdrożenia, który zawiera opis wymaganych kontenerów, zmiennych i konfiguracji wdrożenia. Przykładowy manifest wdrożenia można znaleźć w DeploymentManifest.json , który zawiera wstępnie utworzone konfiguracje dla wszystkich scenariuszy.

Ustawianie zmiennych środowiskowych

Większość zmiennych środowiskowych modułu usługi IoT Edge jest już ustawiona w przykładowych plikach DeploymentManifest.json połączonych powyżej. W pliku wyszukaj ENDPOINT zmienne środowiskowe i APIKEY pokazane poniżej. Zastąp wartości identyfikatorem URI punktu końcowego i utworzonym wcześniej kluczem interfejsu API. Upewnij się, że wartość umowy EULA jest ustawiona na "accept".

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

Konfigurowanie parametrów operacji

Jeśli używasz przykładowej DeploymentManifest.json , która ma już wszystkie wymagane konfiguracje (operacje, zarejestrowane adresy URL plików wideo i strefy itp.), możesz przejść do sekcji Wykonywanie wdrożenia .

Po zakończeniu początkowej konfiguracji kontenera analizy przestrzennej następnym krokiem jest skonfigurowanie parametrów operacji i dodanie ich do wdrożenia.

Pierwszym krokiem jest zaktualizowanie przykładowej DeploymentManifest.json i skonfigurowanie żądanej operacji. Na przykład poniżej przedstawiono konfigurację elementu cognitiveservices.vision.spatialanalysis-personcount:

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

Po zaktualizowaniu manifestu wdrożenia postępuj zgodnie z instrukcjami producenta aparatu, aby zainstalować aparat, skonfigurować adres URL aparatu i skonfigurować nazwę użytkownika i hasło.

Następnie ustaw VIDEO_URL adres URL RTSP aparatu i poświadczenia na potrzeby nawiązywania połączenia z aparatem.

Jeśli urządzenie brzegowe ma więcej niż jeden procesor GPU, wybierz procesor GPU, na którym ma zostać uruchomiona ta operacja. Upewnij się, że obciążenie jest równoważące operacje, w których nie ma więcej niż 8 operacji uruchomionych na jednym procesorze GPU w danym momencie.

Następnie skonfiguruj strefę, w której chcesz liczyć osoby. Aby skonfigurować wielokąt strefy, najpierw postępuj zgodnie z instrukcjami producenta, aby pobrać ramkę z aparatu. Aby określić każdy wierzchołek wielokąta, wybierz punkt na ramce, weź współrzędne x,y pikseli punktu względem lewego, górnego rogu ramki i podziel je według odpowiednich wymiarów ramki. Ustaw wyniki jako współrzędne x,y wierzchołka. W polu można ustawić konfigurację SPACEANALYTICS_CONFIG wielokąta strefy.

Jest to przykładowa ramka wideo przedstawiająca sposób obliczania współrzędnych wierzchołków dla ramki o rozmiarze 1920/1080. Sample video frame

Możesz również wybrać próg ufności dla momentu, gdy wykryte osoby są liczone, a zdarzenia są generowane. Ustaw wartość progową na 0, jeśli chcesz, aby wszystkie zdarzenia miały być danymi wyjściowymi.

Wykonywanie wdrożenia

Teraz, gdy manifest wdrożenia został ukończony, użyj tego polecenia w interfejsie wiersza polecenia platformy Azure, aby wdrożyć kontener na komputerze hosta jako moduł usługi IoT Edge.

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

Wypełnij wymagane parametry:

  • Nazwa centrum IoT: Nazwa usługi Azure IoT Hub
  • DeploymentManifest.json: nazwa pliku wdrożenia
  • Nazwa urządzenia usługi IoT Edge: nazwa urządzenia usługi IoT Edge komputera hosta
  • Subskrypcja: Identyfikator subskrypcji lub nazwa

To polecenie rozpocznie wdrożenie i można wyświetlić stan wdrożenia w wystąpieniu usługi Azure IoT Hub w witrynie Azure Portal. Stan może być wyświetlany jako 417 — konfiguracja wdrożenia urządzenia nie zostanie ustawiona , dopóki urządzenie nie zakończy pobierania obrazów kontenerów i zacznie działać.

Sprawdzanie, czy wdrożenie zakończyło się pomyślnie

Znajdź stan środowiska uruchomieniowego w module usługi IoT Edge Ustawienia dla modułu analizy przestrzennej w wystąpieniu usługi IoT Hub w witrynie Azure Portal. Żądana wartość i wartość zgłoszona dla stanu środowiska uruchomieniowego powinna mieć wartość Running. Zobacz poniżej, jak będzie to wyglądać w witrynie Azure Portal.

Example deployment verification

W tym momencie kontener analizy przestrzennej uruchamia operację. Emituje ona szczegółowe informacje dotyczące sztucznej inteligencji dla operacji i kieruje te szczegółowe informacje jako dane telemetryczne do wystąpienia usługi Azure IoT Hub. Aby skonfigurować dodatkowe kamery, możesz zaktualizować plik manifestu wdrożenia i ponownie wykonać wdrożenie.

Tworzenie aplikacji internetowej

Aplikacja internetowa Analiza przestrzenna umożliwia deweloperom szybkie konfigurowanie przykładowej aplikacji internetowej, hostowanie jej w środowisku platformy Azure i używanie aplikacji do weryfikowania zdarzeń E2E.

Kompilowanie obrazu platformy Docker

Postępuj zgodnie z przewodnikiem , aby skompilować i wypchnąć obraz do usługi Azure Container Registry w ramach subskrypcji.

Konfigurowanie kontenera platformy Docker

Aby zainstalować kontener, utwórz nową usługę aplikacja systemu Azure i wypełnij wymagane parametry. Następnie przejdź do karty Platformy Docker i wybierz pozycję Pojedynczy kontener, a następnie pozycję Azure Container Registry. Użyj swojego wystąpienia usługi Azure Container Registry, w którym wypchnięliśmy powyższy obraz.

Enter image details

Po wprowadzeniu powyższych parametrów wybierz pozycję Przejrzyj i utwórz aplikację.

Konfigurowanie aplikacji

Poczekaj na zakończenie instalacji i przejdź do zasobu w witrynie Azure Portal. Przejdź do sekcji konfiguracji i dodaj następujące dwa ustawienia aplikacji.

  • EventHubConsumerGroup — nazwa ciągu grupy odbiorców z usługi Azure IoT Hub, możesz utworzyć nową grupę odbiorców w usłudze IoT Hub lub użyć grupy domyślnej.
  • IotHubConnectionString— parametry połączenia do usługi Azure IoT Hub, można je pobrać z sekcji kluczy zasobu usługi Azure IoT HubConfigure Parameters

Po dodaniu tych 2 ustawień wybierz pozycję Zapisz. Następnie wybierz pozycję Uwierzytelnianie/autoryzacja w menu nawigacji po lewej stronie i zaktualizuj ją przy użyciu odpowiedniego poziomu uwierzytelniania. Zalecamy wyrażenie Microsoft Entra ID.

Testowanie aplikacji

Przejdź do usługi platformy Azure i sprawdź, czy wdrożenie zakończyło się pomyślnie, a aplikacja internetowa jest uruchomiona. Przejdź do skonfigurowanego adresu URL: <yourapp>.azurewebsites.net aby wyświetlić uruchomioną aplikację.

Test the deployment

Pobieranie kodu źródłowego PersonCount

Jeśli chcesz wyświetlić lub zmodyfikować kod źródłowy dla tej aplikacji, możesz go znaleźć w witrynie GitHub.

Następne kroki