空間分析コンテナーをインストールして実行する (プレビュー)

空間分析コンテナーを使用すると、リアルタイムのストリーミング ビデオを分析して、人物間の空間的な関係、人物間の動き、物理環境内におけるオブジェクトとの相互作用を把握できます。 コンテナーは、特定のセキュリティ要件とデータ ガバナンス要件を満たすのに役立ちます。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • 責任ある AI のご契約条件に同意してリソースを作成するためには、Azure アカウントに Cognitive Services Contributor ロールが割り当てられている必要があります。 このロールをアカウントに割り当てるには、ロールの割り当てに関するドキュメントの手順に従うか、管理者にお問い合わせください。
  • Azure サブスクリプションを入手したら、Azure portal で Standard S1 レベルの Computer Vision リソースを作成し、キーとエンドポイントを取得します。 デプロイされたら、 [リソースに移動] を選択します。
    • 空間分析コンテナーを実行するには、作成したリソースのキーとエンドポイントが必要です。 後でキーとエンドポイントを使用します。

空間分析コンテナーの要件

空間分析コンテナーを実行するには、NVIDIA CUDA Compute Capable GPU 6.0 以降 (たとえば、NVIDIA Tesla T4、A2、1080Ti、または 2080Ti) を搭載したコンピューティング デバイスが必要です。 GPU アクセラレーションを備えた Azure Stack Edge を使用することをお勧めしますが、コンテナーは最小要件を満たす他のどのデスクトップ コンピューターでも実行できます。 このデバイスをホスト コンピューターと呼びます。

Azure Stack Edge は、サービスとしてのハードウェア ソリューションであり、ネットワーク データ転送機能を備えた AI 対応の Edge コンピューティング デバイスです。 準備とセットアップの詳細な手順については、Azure Stack Edge のドキュメントを参照してください。

要件 説明
カメラ 空間分析コンテナーは、特定のカメラ ブランドに関係していません。 カメラ デバイスは、リアルタイム ストリーミング プロトコル (RTSP) と H.264 エンコードをサポートし、ホスト コンピューターからアクセスでき、15FPS の解像度 1080p でストリーミングできる必要があります。
Linux OS 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 portalローカル UI を使用して Azure Stack Edge デバイスを構成する必要があります。
    1. Azure Stack Edge デバイスでコンピューティング機能を有効にします。 コンピューティングを有効にするには、デバイスの Web インターフェイスで [コンピューティング] ページに移動します。
    2. コンピューティングに対して有効にするネットワーク インターフェイスを選択して、[有効] を選択します。 これにより、そのネットワーク インターフェイス上のデバイスに仮想スイッチが作成されます。
    3. Kubernetes テスト ノードの IP アドレスと Kubernetes 外部サービスの IP アドレスは空白のままにします。
    4. [適用] を選択します。 この操作には 2 分ほどかかることがあります。

Configure compute

Azure Stack Edge ロールを設定し、IoT Hub リソースを作成する

Azure portal で、お使いの Azure Stack Edge リソースに移動します。 [概要] ページまたはナビゲーション リストで、Edge コンピューティングの [開始] ボタンを選択します。 [Edge コンピューティングの構成] タイルで、[構成]を選択します。

Link

[Edge コンピューティングの構成] ページで、既存の IoT ハブを選択するか、新しいものを作成します。 既定では、IoT Hub リソースの作成には Standard (S1) 価格レベルが使用されます。 Free レベルの IoT Hub リソースを使用するには、それを作成してから選択します。 IoT Hub リソースによって、Azure Stack Edge リソースで使用されるのと同じサブスクリプションとリソース グループが使用されます

[作成] を選択します IoT Hub リソースの作成は数分かかることがあります。 IoT Hub リソースが作成された後、[Edge コンピューティングの構成] タイルが更新され、新しい構成が表示されます。 Edge コンピューティング ロールが構成されたことを確認するには、 [コンピューティングの構成] タイルの [構成の表示] を選択します。

Edge デバイスで Edge コンピューティング ロールが設定されると、2 つのデバイスが作成されます (IoT デバイスと IoT Edge デバイス)。 IoT Hub リソースでは、両方のデバイスを表示できます。 Azure IoT Edge ランタイムは、IoT Edge デバイス上で既に実行されています。

Note

Azure Stack Edge での MPS を有効にする

Windows クライアントからリモートで接続するには、次の手順に従います。

  1. Windows PowerShell セッションを管理者として実行します。

  2. Windows リモート管理サービスがクライアントで実行されていることを確認します。 コマンド プロンプトに、次のコマンドを入力します。

    winrm quickconfig
    

    詳細については、「Windows リモート管理のためのインストールと構成」をご覧ください。

  3. hosts ファイルで使用される接続文字列に変数を割り当てます。

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

    <Node serial number><DNS domain of the device> は、デバイスのノードのシリアル番号と 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 モジュールで使用されるさまざまな環境変数を示しています。 また、spatialanalysisenv 属性を使用して、上のリンク先の配置マニフェストで設定することもできます。

設定名 説明
ARCHON_LOG_LEVEL 情報。詳細 ログ レベルで 2 つの値のいずれかを選択します
ARCHON_SHARED_BUFFER_LIMIT 377487360 変更しないでください
ARCHON_PERF_MARKER false パフォーマンス ログの場合は true に設定します。それ以外の場合は false に設定します
ARCHON_NODES_LOG_LEVEL 情報。詳細 ログ レベルで 2 つの値のいずれかを選択します
OMP_WAIT_POLICY PASSIVE 変更しないでください
QT_X11_NO_MITSHM 1 変更しないでください
APIKEY API キー この値は、Azure portal で Vision リソースから収集します。 お使いのリソースの [キーとエンドポイント] セクションで見つけることができます。
課金 エンドポイント URI この値は、Azure portal で Vision リソースから収集します。 お使いのリソースの [キーとエンドポイント] セクションで見つけることができます。
EULA accept コンテナーを実行するには、この値を accept に設定する必要があります
DISPLAY :1 この値は、ホスト コンピューター上の echo $DISPLAY の出力と同じである必要があります。 Azure Stack Edge デバイスにはディスプレイがありません。 この設定は適用されません
KEY_ENV ASE 暗号化キー。 Video_URL が難読化された文字列の場合は、この環境変数を追加します
IV_ENV 初期化ベクター 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 サブスクリプションの ID または名前。

このコマンドを実行すると、デプロイが開始されます。 Azure portal で Azure IoT Hub インスタンスのページに移動して、デプロイの状態を確認します。 デバイスにコンテナー イメージがダウンロードされ、実行が開始されるまで、417 – デバイスのデプロイ構成が設定されていませんというステータスが表示される場合があります。

デプロイが成功したことを検証する

コンテナーが実行されていることを検証する方法は複数あります。 Azure portal の Azure IoT Hub インスタンスにある空間分析モジュールの IoT Edge モジュール設定ランタイム ステータスを見つけます。 [ランタイムの状態][必要な値][報告された値] が、 [実行中] であることを検証します。

Example deployment verification

デプロイが完了し、コンテナーが実行中になると、ホスト コンピューターから Azure IoT ハブへのイベント送信が始まります。 .debug バージョンの操作を使用した場合は、配置マニフェストで構成した各カメラのビジュアライザー ウィンドウが表示されます。 これで、監視する回線とゾーンを配置マニフェストで定義し、指示に従って再度デプロイすることができます。

空間分析で実行される操作を構成する

接続されたカメラを使用するようにコンテナーを構成したり、操作を構成したりするには、空間分析操作を使用する必要があります。 空間分析の操作によって、構成したカメラ デバイスごとに Azure IoT Hub のインスタンスに送信される JSON メッセージの出力ストリームが生成されます。

コンテナーによって生成された出力を使用する

コンテナーによって生成された出力の使用を開始する場合は、次の記事を参照してください。

トラブルシューティング

コンテナーの開始時または実行時に問題が発生した場合は、テレメトリとトラブルシューティングに関するページを参照して、一般的な問題に対処するステップを確認してください。 この記事には、ログの生成と収集とシステムおよびシステム正常性の収集に関する情報も含まれています。

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 アカウントの Vision リソースを使用して課金情報が Azure に送信されます。 パブリック プレビューでの空間分析は現在、無料でご利用いただけます。

Azure AI コンテナーは、計測エンドポイントまたは課金エンドポイントに接続していないと、実行のライセンスが許可されません。 お客様は、コンテナーが常に課金エンドポイントに課金情報を伝えられるようにする必要があります。 Azure AI コンテナーから、お客様のデータ (解析対象のビデオや画像など) が Microsoft に送信されることはありません。

まとめ

この記事では、空間分析コンテナーの概念とそのダウンロード、インストール、および実行のワークフローについて説明しました。 要約すると:

  • 空間分析は、Docker 用の Linux コンテナーです。
  • コンテナー イメージは Microsoft Container Registry からダウンロードされます。
  • コンテナー イメージは、Azure IoT Edge で IoT モジュールとして実行されます。
  • コンテナーを構成し、ホスト マシンにデプロイします。

次のステップ