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

完了

このモジュールでは、Azure Live Video Analytics on Azure IoT Edge の AI 拡張機能を使用する方法について説明します。 工場のフロアにいる人を検出するためのモデルをエッジにデプロイします。 また、Live Video Analytics の機能についても説明します。 カスタム モデルをエッジ上のコンテナーとしてシームレスにデプロイし、シミュレートされたライブ ビデオ フィードを分析できるようにします。 事前トレーニング済みの YOLO モデルを使用し、モデルをコンテナーとしてビデオ分析ソリューションにデプロイします。

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

  • Azure リソースを設定する
  • エッジ デバイスにエッジ ワークロードを設定する
  • 推論 YOLO モデルをエッジ デバイスにデプロイしてデプロイする
  • ソリューションのデプロイ
  • 結果を調べて解釈する

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

サンプル

このモジュールでは、employee safety video ファイルを使用してライブ ストリームをシミュレートします。 ビデオの再生には、VLC メディア プレーヤーなどのアプリケーションを使用できます。 ビデオのリンクをコピーして貼り付けてください。 ビデオを見ると、作業者が動いているのが確認できます。

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

このモジュールでは、まず IoT Edge ランタイムがインストールされたエッジ デバイスを設定する必要があります。 IoT Hub に対してデバイスを構成したら、エッジ デバイスにデプロイ マニフェストを送信します。 デプロイ マニフェストがエッジに送信されると、エッジ デバイス上で実行される IoT Edge エージェントによってコンテナー レジストリから新しいコンテナーが取得され、それらがエッジ デバイス上で起動されます。 次のモジュールがデプロイされます。

  • Web モジュール: Web モジュールは、ユーザーが操作する主要な Web アプリケーションを表します。 たとえば、カメラを追加する際には、Web モジュールによって、ライブ ビデオ分析モジュールに対するカメラ設定が管理されます。 デプロイ後、Web モジュールでは、ユーザー設定に基づいて画像を自動的にキャプチャし、customvision.ai アプリケーション プロトコル インターフェイス (API) を使用して、それらを再トレーニングのために送信できます。

  • Live Video Analytics (LVA): このモジュールでは、すべてのカメラのフレームを解析し、それらを推論モジュールに送信します。

  • 推論オーケストレーター: このモジュールは、フレームを予測モジュールに送信し、結果を取得します。 また、結果をカメラ フィードにオーバーレイし、HTTP ビデオ ストリームを Web モジュールに送信して、ML の結果を Azure IoT Hub に送信します。

  • ML 予測モジュール: ML 予測モジュールでは、onnxruntime を使用してトレーニング済みの YOLO モデルが実行されます。HTTP または gRPC 経由でフレームを受け取り、JSON の結果を送信します。

  • Live Video Analytics では、推論結果に基づいて Web モジュールにビデオを格納させ、Azure 上の指定したメディア サービス アカウントにそれらをプッシュすることもできます。

アーキテクチャ

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

The illustration shows the solution architecture.

Azure 製品を定義する

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

  • Azure IoT Hub: Azure IoT Hub は、ほぼすべてのデバイスを接続できる、クラウドホスト型のソリューション バックエンドを提供するものです。

  • Azure IoT Edge 仮想マシン: ランタイムでは、Azure IoT Edge 仮想マシンがインストールされます。 このモジュールでは、仮想マシンと Web アプリケーションの間での通信を可能にするために、ネットワーク ポート 8181 を開きます。

  • Live Video Analytics on IoT Edge: 他の Azure エッジ モジュール (Stream Analytics on IoT Edge や Azure AI services on IoT Edge など) や、クラウド上の Azure サービス (Media Services や Event Hub など) と組み合わせられる機能を備えた、IoT Edge モジュールです。

  • Custom Vision サービス: Custom Vision を使用すると、画像分類器をビルド、デプロイ、および改善できます。 画像分類器は、視覚特性に基づいて画像に (クラスを表す) ラベルを適用する AI サービスです。

  • Media Services: Azure Media Services は、ライブおよびバッチ ビデオ分析、トランスコーディング、マルチデバイス配信サービス、コンテンツ保護、ライブ イベント ブロードキャストを大規模に実行できるソリューションを作成するための、クラウドおよびエッジでのメディア ワークフロー サービスのコレクションです。

実行する手順

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

  1. IoT Hub の作成
  2. 仮想マシンをエッジ デバイスとして作成する
  3. エッジ デバイスを IoT Hub に登録する
  4. Azure Shell インストーラーをインストールして実行する
    1. Live Video Analytics on IoT Edge 用の Azure リソースを設定する
    2. IoT Edge デバイスに対するワークロードを設定する
  5. エッジ デバイスにサンプル ビデオをアップロードする
  6. Azure コンテナー レジストリを作成する
  7. 事前トレーニング済みの YOLO モデルを取得する
  8. YOLO モデルを使用したコンテナー イメージをビルドする
  9. コンテナー イメージを Azure コンテナー レジストリにプッシュする
  10. YOLO モデルをエッジ デバイスにデプロイする
  11. Web アプリケーションを接続する
    1. サンプル ビデオをフィードするためのカメラを追加する
    2. モデルのエンドポイントとラベルを追加する
  12. ソリューションのデプロイ方法
  13. 結果を確認する

まとめ

このモジュールを完了すると、ビジョン ソリューションがエッジ デバイスにデプロイされます。 これにより、シミュレートされたライブ ビデオ ストリームを実行することになります。 このソリューションはエッジデバイスにデプロイされ、YOLO モデルと Live Video Analytics を使用して、ユーザーがリアルタイムに検出されます。

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