IoT Edge でビデオ分析ソリューションを作成する

完了

このモジュールでは、Azure Live Video Analytics on IoT Edge を使用して、陳列棚の空きを検出するためのモデルをエッジにデプロイする方法について説明します。 さらに、簡単にカスタム モデルをコンテナーとしてエッジにデプロイし、シミュレートされたライブ ビデオ フィードを分析するための Live Video Analytics の機能について説明します。 Custom Vision を使用して、ビデオ フィードからいくつかの画像をキャプチャしてラベル付けすることで、コンピューター ビジョン モデルを構築してトレーニングします。

以下を行う方法を確認します。

  • Azure リソースを設定する
  • エッジ デバイスにエッジ ワークロードを設定する
  • Custom Vision を使用して、空きスペースを検出するためのモデルをクラウドに構築し、それをエッジにデプロイする
  • ソリューションのデプロイ
  • 結果を調べて解釈する

Azure 仮想マシン (VM) を IoT Edge デバイスとして使用します。ビデオ分析ソリューションは、GitHub リポジトリのサンプルを基にしています。

サンプル ビデオ

このモジュールでは、ボトル陳列棚ビデオ ファイルを使用してライブ ストリームをシミュレートします。 ビデオを再生するには、VLC メディア プレーヤーなどのアプリケーションを使用できます。 ビデオのリンクをコピーして貼り付けます。 カスタム ビジョン モデルは、ビデオから商品の在庫切れを表す陳列棚のすき間を検出するようにトレーニングされます。

ソリューション ワークフロー

まず、エッジ デバイスに IoT Edge ランタイムをインストールして設定する必要があります。 IoT Hub に対してデバイスを構成した後、デプロイ マニフェストをエッジ デバイスに送信する IoT ハブを作成します。

デプロイ マニフェストが送信されると、エッジ デバイス上で実行される IoT Edge エージェントによってコンテナー レジストリから新しいコンテナーが取得され、それらがエッジ デバイス上で起動されます。

  • Web モジュール: このモジュールは、ユーザーが操作する Web アプリケーションです。たとえば、カメラを追加すると、この Web モジュールによって、すべてのカメラ設定を含むグラフがライブ ビデオ分析モジュールに設定されます。 Web モジュールは、ユーザー設定に基づいて、画像を自動的にキャプチャし、customvision.ai アプリケーション プロトコル インターフェイス (API) を使用して再トレーニングするためにそれらを送信できます。
  • Live Video Analytics (LVA): このモジュールでは、すべてのカメラのフレームが解析され、推論モジュールに送信されます。
  • 推論オーケストレーター: このモジュールでは、フレームが予測モジュールに送信され、結果が取得されます。 さらに、結果がカメラ フィードにオーバーレイされ、HTTP ビデオ ストリームが Web モジュールに送信され、ML の結果が Azure IoT ハブに送信されます。
  • ML 予測モジュール: このモジュールでは、onnxruntime を使用してカスタム ビジョン トレーニング済みモデルが実行されます。HTTP または gRPC 経由でフレームが受け取られ、JSON の結果が送信されます。
  • Live Video Analytics では、ユーザーは、Web モジュールを使用して推論結果に基づいてビデオを格納し、それらを Azure 上の用意されたメディア サービス アカウントにプッシュすることもできます。

アーキテクチャ

次に示すのは、Video Analytics ソリューションの全体的なアーキテクチャです。

The illustration shows overview of custom template.

Azure 製品を定義する

ソリューションの設計で次のコンポーネントを使用します。

  • Azure IoT Hub: Azure IoT Hub には、ほぼすべてのデバイスを接続するためのクラウドでホストされたソリューション バックエンドが用意されています。
  • Azure IoT Edge 仮想マシン: ランタイムをインストールするための仮想マシンです。 このモジュールでは、ネットワーク ポート 8181 を開いて、仮想マシンと Web アプリケーション間で通信できるようにします。
  • Live Video Analytics on IoT Edge: 他の Azure エッジ モジュールと組み合わせる機能を備えた IoT Edge モジュールです。 このようなモジュールの例として、Stream Analytics on IoT Edge、Azure AI サービス on IoT Edge、クラウドの Azure サービス (Media Services や Event Hubなど) があります。
  • Custom Vision サービス: Custom Vision を使用すると、画像分類器をビルド、デプロイ、および改善できます。 画像分類器は、視覚特性に基づいて画像に (クラスを表す) ラベルを適用する AI サービスです。
  • Media Services: Azure Media Services は、ライブおよびバッチ ビデオ分析、トランスコーディング、マルチデバイス配信サービス、コンテンツ保護、ライブ イベント ブロードキャストを大規模に実行できるソリューションを作成するための、クラウドおよびエッジでのメディア ワークフロー サービスのコレクションです。

実行する手順

このソリューションを作成するための全体的な手順は次のとおりです。

  1. IoT Hub の作成
  2. 仮想マシンをエッジ デバイスとして作成する
  3. エッジ デバイスを IoT Hub に登録する
  4. Azure Shell インストーラーをインストールして実行する
    1. Azure リソースの設定
    2. IoT Edge デバイスにワークロードを設定する
  5. エッジ デバイスにサンプル ビデオをアップロードする
  6. Web アプリケーションを接続する
  7. サンプル ビデオをフィードするカメラを追加する
  8. ビデオ ストリームから画像をキャプチャし、ラベルをすき間としてタグ付けする
  9. ソリューションのデプロイ方法
  10. 結果を確認する

まとめ

モジュールを完了すると、Custom Vision サービスと Live Video Analytics を使用して陳列棚の空きを検出するビジョン ソリューションがエッジ デバイスにデプロイされます。

次のビデオで Vision on Edge ソリューションの概要を確認して理解してください。