共用方式為


安裝並執行空間分析容器 (預覽版)

空間分析容器可讓您分析即時串流影片,以瞭解實體環境中人與人之間的空間關聯性、其移動和與物件的互動。 容器可幫助您達成特定的安全性和資料控管需求。

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶
  • 擁有 Azure 訂用帳戶之後,在 Azure 入口網站的標準 S1 階層中建立電腦視覺資源,以取得您的金鑰和端點。 在其部署後,選取 [前往資源]
    • 您將需要來自您所建立資源的金鑰和端點,以執行空間分析容器。 您稍後將會使用金鑰和端點。

空間分析容器需求

若要執行空間分析容器,您需要具有 NVIDIA CUDA Compute Capable GPU 6.0 或更高版本的計算裝置,(例如 NVIDIA Tesla T4、A2、1080Ti 或 2080Ti)。 建議您使用具有 GPU 加速的 Azure Stack Edge,不過,容器可在任何其他滿足對最低需求的桌上型機器上執行。 我們將此裝置稱為主機電腦。

Azure Stack Edge 是一個硬體即服務解決方案,也是具有網路資料傳輸功能的 AI 邊緣計算裝置。 如需詳細的準備和設定指示,請參閱 Azure Stack Edge 文件

需求 描述
相機 空間分析容器未繫結至特定的相機品牌。 相機裝置必須:支援即時串流通訊協定 (RTSP) 和 H.264 編碼,可供主機電腦存取,而且能夠以15FPS 和 1080p 解析度進行串流處理。
Linux 作業系統 您必須在主機電腦上安裝 Ubuntu Desktop 18.04 LTS

準備主機電腦

建議針對您的主機電腦使用 Azure Stack Edge 裝置。 如果您要設定不同的裝置,請按一下 [桌上型電腦] ,如果您要使用 VM,請按一下 [虛擬機器]

在 Azure Stack Edge 入口網站上設定計算

空間分析會使用 Azure Stack Edge 的計算功能來執行 AI 解決方案。 若要啟用計算功能,請確定:

  • 您已連線並啟用 Azure Stack Edge 裝置。
  • 您有一個執行 PowerShell 5.0 或更新版本的 Windows 用戶端系統來存取裝置。
  • 若要部署 Kubernetes 叢集,您必須透過 Azure 入口網站上的本機 UI 來設定 Azure Stack Edge 裝置:
    1. 在 Azure Stack Edge 裝置上啟用計算功能。 若要啟用計算,請移至您裝置的 web 介面中的 [計算] 頁面。
    2. 請選取您想要為計算啟用的網路介面,然後按一下 [啟用] 。 這會在您的裝置上,於該網路介面上建立虛擬交換器。
    3. 將 [Kubernetes 測試節點 IP 位址] 和 [Kubernetes 外部服務 IP 位址] 保留空白。
    4. 選取套用。 這種作業可能需要大約兩分鐘的時間。

設定計算

設定 Azure Stack Edge 角色並建立 IoT 中樞資源

Azure 入口網站中,移至 Azure Stack Edge 資源。 在 [概觀] 頁面或導覽清單中,按一下 Edge 計算 [開始] 按鈕。 在 [設定 Edge 計算] 圖格上,選取 [設定]

連結

在 [設定 Edge 計算] 頁面中,選擇現有的 IoT 中樞,或選擇建立新的中樞。 根據預設,會使用標準 (S1) 定價層來建立 IoT 中樞資源。 若要使用免費層 IoT 中樞資源,請建立資源,然後加以選取。 IoT 中樞資源會使用 Azure Stack Edge 資源所用的相同訂用帳戶和資源群組

選取 建立。 建立 IoT 中樞資源可能需要幾分鐘的時間。 建立 IoT 中樞資源之後,[設定 Edge 計算] 圖格會更新以顯示新的設定。 若要確認已設定 Edge 計算角色,請選取 [設定計算] 圖格上的 [檢視設定]

在 Edge 裝置上設定 Edge 計算角色時,其會建立兩個裝置:一個 IoT 裝置和一個 IoT Edge 裝置。 這兩個裝置都可以在 IoT 中樞資源中檢視。 Azure IoT Edge 執行階段將已在 IoT Edge 裝置上執行。

注意

在 Azure Stack Edge 上啟用 MPS

請遵循下列步驟從 Windows 用戶端進行遠端連接。

  1. 以管理員身分執行 Windows PowerShell 工作階段。

  2. 請確定您的用戶端上正在執行 Windows 遠端管理服務。 在命令提示字元中,輸入:

    winrm quickconfig
    

    如需詳細資訊,請參閱 Windows 遠端管理的安裝和設定

  3. 將變數指派給 hosts 檔案中使用的連接字串。

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

    以裝置的節點序號和 DNS 網域取代 <Node serial number><DNS domain of the device>。 您可以從裝置的本機 web 使用者介面中的 [裝置] 頁面,取得 [憑證] 頁面和 [DNS 網域] 中節點序號的值。

  4. 若要將您裝置的此連接字串新增至用戶端的信任主機清單,請輸入下列命令:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. 在裝置上啟動 Windows PowerShell 工作階段:

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

    如果您看到與信任關係相關的錯誤,請檢查上傳至您裝置的節點憑證簽署鏈是否也安裝在存取您裝置的用戶端上。

  6. 出現提示時,請提供密碼。 使用與用來登入本機 Web UI 相同的密碼。 預設本機 Web UI 密碼為 Password1。 當您使用遠端 PowerShell 成功連接到裝置時,您會看到下列範例輸出:

    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>
    

IoT 部署資訊清單

若要簡化多部主機電腦上的容器部署,您可以建立部署資訊清單檔來指定容器的建立選項和環境變數。 您可以在 GitHub 找到 Azure Stack Edge其他桌上型機器具有 GPU 之 Azure VM 的部署資訊清單範例。

下表顯示 IoT Edge 模組所使用的各種環境變數。 您也可以使用 spatialanalysis 中的 env 屬性,在上述連結的部署資訊清單中進行設定:

設定名稱 Description
ARCHON_LOG_LEVEL 資訊;詳細資訊 記錄層級,選取兩個值的其中一個
ARCHON_SHARED_BUFFER_LIMIT 377487360 請勿修改
ARCHON_PERF_MARKER false 將此值設定為 true 以進行效能記錄,否則為 false
ARCHON_NODES_LOG_LEVEL 資訊;詳細資訊 記錄層級,選取兩個值的其中一個
OMP_WAIT_POLICY PASSIVE 請勿修改
QT_X11_NO_MITSHM 1 請勿修改
APIKEY API 金鑰 從視覺資源的 Azure 入口網站收集此值。 您可以在資源的 [金鑰和端點] 區段中找到此值。
計費 端點 URI 從視覺資源的 Azure 入口網站收集此值。 您可以在資源的 [金鑰和端點] 區段中找到此值。
EULA accept 必須將此值設定為 [接受],容器才能執行
顯示 1: 此值必須與主機電腦上的 echo $DISPLAY 輸出相同。 Azure Stack Edge 裝置沒有顯示。 這項設定不適用
KEY_ENV ASE 加密金鑰 如果 Video_URL 是模糊字串,請新增此環境變數
IV_ENV Initialization vector 如果 Video_URL 是模糊字串,請新增此環境變數

重要

必須指定 EulaBillingApiKey 選項以執行容器,否則容器將不會啟動。 如需詳細資訊,請參閱帳單

一旦您更新具有您自己設定和選取作業的 Azure Stack Edge 裝置桌上型機器具有 GPU 的 Azure VM 的部署資訊清單,您可以使用下列 Azure CLI 命令,將容器部署在主機電腦上,作為 IoT Edge 模組。

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>"
參數 描述
--hub-name Azure IoT 中樞名稱。
--content 部署檔案的名稱。
--target-condition 主機電腦的 IoT Edge 裝置名稱。
-–subscription 訂用帳戶識別碼或名稱。

此命令會開始部署。 瀏覽至 Azure 入口網站中 Azure IoT 中樞執行個體的頁面,以查看部署狀態。 狀態可能會顯示為 417 - 裝置的部署設定在裝置完成下載容器映像並開始執行之前未設定。

驗證部署是否成功

有數種方式可驗證容器正在執行。 在 Azure 入口網站上 Azure IoT 中樞執行個體中,於空間分析模組的 IoT Edge 模組設定中找出執行階段狀態。 驗證執行階段狀態所需的值回報值是否是執行中

部署驗證範例

一旦部署完成且容器正在執行,主機電腦就會開始將事件傳送至 Azure IoT 中樞。 如果您使用的是 .debug 版本的作業,您會看到您在部署資訊清單中設定的每個相機的視覺化視窗。 您現在可以在部署資訊清單中定義您想要監視的行和區域,並遵循指示重新部署。

設定空間分析所執行的作業

您將需要使用空間分析作業,以將容器設定為使用連接的相機、設定作業等等。 針對您設定的每個相機裝置,空間分析的作業會產生傳送至您 Azure IoT 中樞執行個體的 JSON 訊息輸出資料流。

使用容器所產生的輸出

如果您想要開始使用容器所產生的輸出,請參閱下列文章:

  • 針對您所選擇的程式設計語言使用 Azure 事件中樞 SDK,以連線至 Azure IoT 中樞端點並接收事件。 如需詳細資訊,請參閱從內建端點讀取裝置到雲端的訊息
  • 在您的 Azure IoT 中樞上設定訊息路由,以便將事件傳送至其他端點,或將事件儲存到 Azure Blob 儲存體等。

疑難排解

如果您在啟動或執行容器時遇到問題,請參閱遙測和疑難排解常見問題的處理步驟。 本文也包含產生和收集記錄以及收集系統健康情況的資訊。

如果您在執行 Azure AI 服務容器時遇到問題,可以嘗試使用 Microsoft 診斷容器。 您可以使用此容器來診斷部署環境中的常見錯誤,這些錯誤可能會導致 Azure AI 容器無法如預期般運作。

若要取得容器,請使用下列 docker pull 命令:

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

接著執行該容器。 將 {ENDPOINT_URI} 取代為您的端點,並將 {API_KEY} 取代為您資源的金鑰:

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

容器會測試帳單端點的網路連線能力。

計費

空間分析容器會使用您 Azure 帳戶上的視覺資源,將計費資訊傳送至 Azure。 在公開預覽中使用空間分析目前免費。

Azure AI 容器在未連線至計量/計費端點的情況下,將無法獲得執行的授權。 您必須讓容器隨時都能與計費端點進行計費資訊的通訊。 Azure AI 容器不會將客戶資料 (例如正在分析的影片或影像) 傳送至 Microsoft。

摘要

在本文中,您已了解下載、安裝及執行空間分析容器的概念和工作流程。 摘要中:

  • 空間分析是適用於 Docker 的 Linux 容器。
  • 容器映像可從 Microsoft Container Registry 下載取得。
  • 容器映像會在 Azure IoT Edge 中以 IoT 模組的形式執行。
  • 設定容器並將其部署在主機機器上。

下一步