空間分析コンテナーをインストールして実行する (プレビュー)
重要
2025 年 3 月 30 日に、Azure AI Vision Spatial Analysis は廃止されます。 明記された日付より前に、Azure AI Video Indexer または別のオープン ソース ソリューションに移行してください。 Azure AI Video Indexer のより豊富なメリットを活用できるように、なるべく早期に切り替えることをお勧めします。 ご利用の馴染みの機能に加えて、Azure AI Vision Spatial Analysis と Azure AI Video Indexer の簡単な比較を示します。
機能 | Azure AI Vision 空間分析 | Azure AI Video Indexer |
---|---|---|
Edge のサポート | はい | はい |
オブジェクトの検出 | 人物と車両の検出のみ | 1000 以上のオブジェクトを検出 |
オーディオ/音声処理 | サポートされていません | サポートされている (音声の文字起こし、翻訳、要約を含む) サポートされている > (音声の文字起こしおよび感情分析を含む) |
イベントの検出とトラッキング | サポートされている (人物と車両のトラッキング、イベント検出) | Edge ではまだサポートされていません。 クラウドで部分的にサポートされています。 |
Azure Arc のサポート | サポートされていません | ネイティブ サポート |
フォーカス領域 | 特殊なトラッキングを使用した視覚化分析 | オーディオとビジュアルの両方のコンテンツの包括的な分析 |
現時点から 2025 年 3 月 30 日までは、Azure AI Vision Spatial Analysis を引き続き使用することも、明記された日付より前に Azure AI Video Indexer に移行することもできます。 2025 年 3 月 30 日以降、Spatial Analysis コンテナーはサポートされなくなり、新しいストリームの処理が停止されます。
空間分析コンテナーを使用すると、リアルタイムのストリーミング ビデオを分析して、人物間の空間的な関係、人物間の動き、物理環境内におけるオブジェクトとの相互作用を把握できます。 コンテナーは、特定のセキュリティ要件とデータ ガバナンス要件を満たすのに役立ちます。
前提条件
- Azure サブスクリプション - 無料アカウントを作成します
- 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 デバイスを構成する必要があります。
- Azure Stack Edge デバイスでコンピューティング機能を有効にします。 コンピューティングを有効にするには、デバイスの Web インターフェイスで [コンピューティング] ページに移動します。
- コンピューティングに対して有効にするネットワーク インターフェイスを選択して、[有効] を選択します。 これにより、そのネットワーク インターフェイス上のデバイスに仮想スイッチが作成されます。
- Kubernetes テスト ノードの IP アドレスと Kubernetes 外部サービスの IP アドレスは空白のままにします。
- [適用] を選択します。 この操作には 2 分ほどかかることがあります。
Azure Stack Edge ロールを設定し、IoT Hub リソースを作成する
Azure portal で、お使いの Azure Stack Edge リソースに移動します。 [概要] ページまたはナビゲーション リストで、Edge コンピューティングの [開始] ボタンを選択します。 [Edge コンピューティングの構成] タイルで、[構成]を選択します。
[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
- 現時点では、IoT Edge デバイスでサポートされているのは Linux プラットフォームのみです。 Azure Stack Edge デバイスのトラブルシューティングについては、ロギングとトラブルシューティングの記事を参照してください。
- プロキシサーバー経由で通信するように IoT Edge デバイスを構成する方法の詳細については、「IoT Edge デバイスを構成してプロキシ サーバー経由で通信する」を参照してください
Azure Stack Edge での MPS を有効にする
Windows クライアントからリモートで接続するには、次の手順に従います。
Windows PowerShell セッションを管理者として実行します。
Windows リモート管理サービスがクライアントで実行されていることを確認します。 コマンド プロンプトに、次のコマンドを入力します。
winrm quickconfig
詳細については、「Windows リモート管理のためのインストールと構成」をご覧ください。
hosts
ファイルで使用される接続文字列に変数を割り当てます。$Name = "<Node serial number>.<DNS domain of the device>"
<Node serial number>
と<DNS domain of the device>
は、デバイスのノードのシリアル番号と DNS ドメインに置き換えます。 ノードのシリアル番号の値は、デバイスのローカル Web UI の [証明書] ページから、そして DNS ドメインは [デバイス] ページから取得できます。デバイスの接続文字列をクライアントの信頼されたホスト一覧に追加するために、次のコマンドを入力します。
Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
デバイスの Windows PowerShell セッションを開始します。
Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
信頼関係に関連するエラーが表示された場合は、デバイスにアップロードされたノード証明書の署名チェーンが、デバイスにアクセスしているクライアントにもインストールされているかどうかを確認します。
パスワードの入力を求められたら、入力します。 ローカル 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
属性を使用して、上のリンク先の配置マニフェストで設定することもできます。
設定名 | 値 | 説明 |
---|---|---|
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 が難読化された文字列の場合は、この環境変数を追加します |
重要
コンテナーを実行するには、Eula
、Billing
、ApiKey
の各オプションを指定する必要があります。そうしないと、コンテナーが起動しません。 詳細については、「課金」を参照してください。
独自の設定と操作の選択によって 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 モジュール設定でランタイム ステータスを見つけます。 [ランタイムの状態] の [必要な値] と [報告された値] が、 [実行中] であることを検証します。
デプロイが完了し、コンテナーが実行中になると、ホスト コンピューターから Azure IoT ハブへのイベント送信が始まります。 .debug
バージョンの操作を使用した場合は、配置マニフェストで構成した各カメラのビジュアライザー ウィンドウが表示されます。 これで、監視する回線とゾーンを配置マニフェストで定義し、指示に従って再度デプロイすることができます。
空間分析で実行される操作を構成する
接続されたカメラを使用するようにコンテナーを構成したり、操作を構成したりするには、空間分析操作を使用する必要があります。 空間分析の操作によって、構成したカメラ デバイスごとに Azure IoT Hub のインスタンスに送信される JSON メッセージの出力ストリームが生成されます。
コンテナーによって生成された出力を使用する
コンテナーによって生成された出力の使用を開始する場合は、次の記事を参照してください。
- 選択したプログラミング言語の Azure Event Hub SDK を使用して、Azure IoT Hub エンドポイントに接続し、イベントを受信します。 詳細については、「デバイスからクラウドへのメッセージを組み込みのエンドポイントから読み取る」をご覧ください。
- イベントを他のエンドポイントに送信したり、イベントを Azure Blob Storage に保存したりするには、Azure IoT ハブにメッセージ ルーティングを設定します。
トラブルシューティング
コンテナーの開始時または実行時に問題が発生した場合は、テレメトリとトラブルシューティングに関するページを参照して、一般的な問題に対処するステップを確認してください。 この記事には、ログの生成と収集とシステムおよびシステム正常性の収集に関する情報も含まれています。
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 モジュールとして実行されます。
- コンテナーを構成し、ホスト マシンにデプロイします。