Share via


部署空間分析 Web 應用程式

使用本文來瞭解如何部署 Web 應用程式,以從 IoT 中樞 收集空間分析資料/深入解析,並將其可視化。 這在各種案例和產業中都有實用的應用程式。 例如,如果公司想要優化其房地產空間的使用,他們可以快速建立具有不同案例的解決方案。

在本教學課程中,您將瞭解如何:

  • 部署空間分析容器
  • 設定作業和相機
  • 在 Web 應用程式中設定 IoT 中樞 連線
  • 部署及測試 Web 應用程式

應用程式將展示下列案例:

  • 進入和離開空間/商店的人員計數
  • 進出結帳區域/區域的人員計數,以及結帳線所花費的時間(停留時間)
  • 戴面罩的人計數
  • 違反社會距離準則的人計數

必要條件

部署空間分析容器

請遵循主計算機安裝程式來設定主計算機,並將IoT Edge裝置連線至 Azure IoT 中樞。

在您的訂用帳戶中部署 Azure IoT 中樞 服務

首先,使用標準定價層 (S1) 或免費層 (S0) 建立 Azure IoT 中樞 服務的實例。 請遵循這些指示,使用 Azure CLI 建立此實例。

填入必要的參數:

  • 訂用帳戶:Azure 訂用帳戶的名稱或標識碼
  • 資源群組:為您的資源群組建立名稱
  • IoT 中樞名稱:為您的 IoT 中樞 建立名稱
  • IoTHub 名稱:您所建立 IoT 中樞 的名稱
  • Edge 裝置名稱:為您的Edge裝置建立名稱
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

在主電腦上的 Azure IoT Edge 上部署容器

下一個步驟是使用 Azure CLI,將空間分析容器部署為主電腦上的 IoT 模組。 部署程式需要部署指令清單檔案,其中概述部署所需的容器、變數和組態。 您可以在DeploymentManifest.json找到範例部署指令清單,其中包含所有案例的預先建置組態。

設定環境變數

大部分 IoT Edge 模組的環境變數都已設定於上述連結的範例DeploymentManifest.json檔案中。 在 檔案中,搜尋 ENDPOINTAPIKEY 環境變數,如下所示。 將值取代為您稍早建立的端點 URI 和 API 金鑰。 確定 EULA 值設定為 「accept」。

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

設定作業參數

如果您使用 範例DeploymentManifest.json ,其中已經具有所有必要的組態(作業、錄製的視訊檔案 URL 和區域等),則可以跳至 [執行部署 ] 區段。

現在空間分析容器的初始設定已完成,下一個步驟是設定作業參數,並將其新增至部署。

第一個步驟是更新範例 DeploymentManifest.json 並設定所需的作業。 例如,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.}]}"
    }
},

更新部署指令清單之後,請遵循相機製造商的指示來安裝相機、設定相機 URL,以及設定使用者名稱和密碼。

接下來,將 設定 VIDEO_URL 為相機的 RTSP URL,以及連線到相機的認證。

如果邊緣裝置有多個 GPU,請選取要在其中執行此作業的 GPU。 請確定您一次在單一 GPU 上執行不超過 8 個作業的作業進行負載平衡。

接下來,設定您要計算人員的區域。 若要設定區域多邊形,請先遵循製造商的指示,從相機擷取框架。 若要判斷多邊形的每個頂點,請選取框架上的點,取得相對於框架左邊、框架左上角的 x、y 圖元座標,並除以對應的框架維度。 將結果設定為頂點的 x,y 座標。 您可以在欄位設定區域多邊形組態 SPACEANALYTICS_CONFIG

這是示範頂點座標如何針對大小為 1920/1080 的框架計算的範例影片畫面。 Sample video frame

您也可以選取偵測到人員計數併產生事件時的信賴閾值。 如果您想要輸出所有事件,請將閾值設定為 0。

執行部署

現在部署指令清單已完成,請在 Azure CLI 中使用此命令,將主電腦上的容器部署為 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>"

填入必要的參數:

  • IoT 中樞 名稱:您的 Azure IoT 中樞 名稱
  • DeploymentManifest.json:部署檔案的名稱
  • IoT Edge 裝置名稱:主計算機的IoT Edge裝置名稱
  • 訂用帳戶:您的訂用帳戶標識碼或名稱

此命令將會開始部署,您可以在 Azure 入口網站 的 Azure IoT 中樞 實例中檢視部署狀態。 狀態可能會顯示為 417 – 在裝置完成下載容器映像並開始執行之前,不會設定 裝置的部署組態。

驗證部署是否成功

在ioT Edge模組 設定 中,找出 Azure 入口網站 上 IoT 中樞 實例中空間分析模組的運行時間狀態。 執行時間狀態所需的值報告值應該會顯示 Running。 請參閱下方,以瞭解 Azure 入口網站 上的外觀。

Example deployment verification

此時,空間分析容器正在執行作業。 它會針對作業發出 AI 深入解析,並將這些深入解析當作遙測路由傳送至您的 Azure IoT 中樞 實例。 若要設定其他相機,您可以更新部署指令清單檔案,然後再次執行部署。

建置 Web 應用程式

空間分析 Web 應用程式可讓開發人員快速設定範例 Web 應用程式、將其裝載在其 Azure 環境中,並使用應用程式來驗證 E2E 事件。

建置 Docker 映像

遵循指南,在訂用帳戶中建置映像並將其推送至 Azure Container Registry。

設定 Docker 容器

若要安裝容器,請建立新的 Azure App 服務 並填入必要的參數。 然後移至 [Docker] 索引標籤,然後選取 [單一容器],然後選取 [Azure Container Registry]。 使用您在上面推送映像的 Azure Container Registry 實例。

Enter image details

輸入上述參數之後,請選取 [檢閱 + 建立] 並建立應用程式。

設定應用程式

等候安裝程式完成,然後流覽至 Azure 入口網站 中的資源。 移至組 區段,並新增下列兩個 應用程式設定

  • EventHubConsumerGroup– Azure IoT 中樞 取用者群組的字串名稱,您可以在 IoT 中樞 中建立新的取用者群組,或使用預設群組。
  • IotHubConnectionString– Azure IoT 中樞 連接字串,您可以從 Azure IoT 中樞 資源的索引鍵區段擷取。Configure Parameters

新增這 2 個設定之後,請選取 [儲存]。 然後選取左側導覽功能表中的 [驗證/授權],並使用所需的驗證層級加以更新。 我們建議使用 Microsoft Entra ID express。

測試應用程式

移至 Azure 服務,並確認部署成功,且 Web 應用程式正在執行。 流覽至已設定的 URL: <yourapp>.azurewebsites.net 以檢視執行中的應用程式。

Test the deployment

取得 PersonCount 原始程式碼

如果您想要檢視或修改此應用程式的原始程式碼,您可以在 GitHub找到它。

下一步