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

空間分析容器可讓您分析即時串流影片,以了解人員之間的空間關聯性、其移動,以及在實體環境中與對象互動。 容器可協助您符合特定的安全性和數據控管需求。

必要條件

  • Azure 訂用帳戶 - 免費建立一個訂用帳戶
  • Azure 帳戶必須已獲指派 Cognitive Services Contributor 角色,您才能同意負責任的 AI 條款並建立資源。 若要將此角色指派給您的帳戶,請遵循指派角色檔中的步驟,或連絡您的系統管理員。
  • 擁有 Azure 訂用帳戶之後,請在 Azure 入口網站 中為標準 S1 層建立 電腦視覺 資源,以取得您的密鑰和端點。 部署之後,請選取 [移至資源]。
    • 您需要從您建立的資源取得密鑰和端點,才能執行空間分析容器。 您稍後會使用金鑰和端點。

空間分析容器需求

若要執行空間分析容器,您需要具有 NVIDIA CUDA Compute Enable 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. 選取套用。 這項作業可能需要大約兩分鐘的時間。

Configure compute

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

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

Link

在 [設定 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 domain of the device> 取代<Node serial number>為您裝置的節點序號和 DNS 網域。 您可以從裝置本機 Web UI 中的 [裝置] 頁面,從 [憑證] 頁面和 [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模組所使用的各種環境變數。 您也可以使用 env 中的屬性,在上述連結的部署指令清單中 spatialanalysis設定它們:

設定名稱 Description
ARCHON_LOG_LEVEL 資訊;詳細 記錄層級,選取兩個值的其中一個
ARCHON_SHARED_BUFFER_LIMIT 377487360 請勿修改
ARCHON_PERF_MARKER false 針對效能記錄將此設定為 true,否則應該是 false
ARCHON_NODES_LOG_LEVEL 資訊;詳細 記錄層級,選取兩個值的其中一個
OMP_WAIT_POLICY 被動 請勿修改
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是模糊字串,請新增此環境變數

重要

Eula必須指定、 BillingApiKey 選項來執行容器,否則容器將不會啟動。 如需詳細資訊,請參閱 計費

當您使用自己的設定和選取作業來更新 Azure Stack Edge 裝置的部署指令清單桌面電腦或 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模組 設定 中找到運行時間狀態驗證運行時間狀態的所需值報告值是否正在執行中。

Example deployment verification

部署完成且容器正在執行之後,主計算機就會開始將事件傳送至 Azure IoT 中樞。 如果您使用 .debug 作業的版本,您會看到您在部署指令清單中設定之每個相機的可視化檢視視窗。 您現在可以在部署指令清單中定義您想要監視的行和區域,並遵循指示再次部署。

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

您必須使用 空間分析作業 來設定容器以使用連線的相機、設定作業等等。 針對您設定的每個攝影機裝置,空間分析的作業會產生 JSON 訊息的輸出數據流,並傳送至您的實例 Azure IoT 中樞。

使用容器所產生的輸出

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

  • 使用您所選程序設計語言的 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 模組的形式執行。
  • 設定容器,並將其部署在主計算機上。

下一步