NVIDIA DeepStream Graph Composer の概要
前に、NVIDIA DeepStream SDK を紹介しました。 開発者はこれを使用して、最適化されたインテリジェントなビデオ解析 (IVA) アプリケーションを作成できます。これは、複数のビデオ入力ソースを取り込み、処理されたフレームに対して連鎖推論を適用し、Microsoft Azure などのクラウド サービスに発行できるテレメトリを生成できます。
構成ファイル駆動型の方法を使用した、NVIDIA DeepStream SDK でのアプリケーションの開発について見てきました。 この方法は IVA 開発に対して大いに有効な戦略ですが、NVIDIA Graph Composer はこの方法をさらに促進します。 これを使用すると、ビジュアル エディターを使用したコンポーネントのドラッグ アンド ドロップにより、DeepStream と互換性のある IVA パイプラインを生成できます。 このメカニズムを使用すると、開発をさらに簡素化できる一方で、コンポーネント相互の関連を対話型グラフに表示することもできます。
使用可能なコンポーネントは、前に構成グループを使用したために、親近感が感じられるかもしれません。 これらのコンポーネントと構成グループはどちらも、DeepStream SDK の C ライブラリに用意されている関数から派生しています。 これらのコンポーネントは、NVIDIA によって提供される拡張機能をプルして格納するローカル レジストリを使用することで、Composer アプリケーションで使用できるようになります。 Composer アプリケーションでは、コンポーネントをサポートするカスタム拡張機能をインポートすることもできます。
グラフの実稼働準備が整ったら、開発者は、付属の Container Builder ツールを使用して、Composer のグラフを、x86 または ARM64 のデバイスで実行できるコンテナー ワークロードにパッケージ化できます。 この機能を Graph Composer とともに使用して、サーバー クラスまたはエッジ対応のデバイスにデプロイできるコンテナー化された IVA パイプラインを構築できます。
このワークフローのプロセス全体を次に示します。
コンテナー化された Graph Composer ワークロードを Azure IoT サービスと統合する
DeepStream Graph Composer ワークロードをコンテナーにパッケージ化することにより、IVA アプリケーションは次のようなさまざまな機能があるエッジからクラウドへのシナリオで実行できます。
- デバイスからクラウドへのメッセージング。
- クラウドからデバイスへのメッセージング。
- デバイスの監視。
- リモート更新。
- Azure IoT Edge との統合によるスケーラブルなデプロイ。
このサービス内容を使用すると、コンテナー化されたワークロードのオーケストレーションを提供するランタイムと、IoT ハブと呼ばれるインジェスト ポイントへの安全な接続を持つ高機能デバイスをインストルメント化できます。
IoT Edge ランタイムは、コンテナー化されたワークロードが "モジュール" と呼ばれる物理デバイスで実行されます。 これらのモジュールは、メッセージ ルーティングを使用して相互に通信できます。 たとえば、あるモジュールがテレメトリを生成し、別のモジュールがエッジで Azure Stream Analytics を使用して最初のメッセージからメッセージを集計できます。 次に、このモジュールからのメッセージを、IoT ハブへの接続経由でクラウドに直接発行できます。
IoT ハブからデバイスを登録して安全に管理することで、更新されたワークロードをデバイスにシームレスにデプロイでき、システム全体の接続状態を監視することもできます。 その結果、ソフトウェア開発ライフサイクルのすべての段階に対するサポートを含めて、DeepStream Graph Composer アプリケーションを実稼働に移行できます。 これらの領域には、Azure DevOps のプラグイン サポート、"モジュール ツイン" を使用した実行中のワークロードの変更機能、およびデバイスのメタデータに基づいてターゲットを定めたデプロイが含まれます。
このモジュールでは、DeepStream Graph Composer を使用してアプリケーションを開発する方法について説明します。 次に、その出力をコンテナー化されたワークロードにパッケージ化します。 最後に、このコンテナーを Azure Container Registry のインスタンスに発行することによって、実稼働用に準備します。 フォローアップ モジュールでは、安全なコンテナー レジストリからそのワークロードをプルし、IoT Edge を実行する NVIDIA を搭載した組み込みデバイスにデプロイする方法について説明します。
次の操作を試してみてください
レストランに入る人の数をカウントする IVA アプリケーションを開発することを依頼されたとします。 ここで、CEO があなたの POC を気に入り、世界中の 1,000 か所にこのアプリケーションをデプロイすることを希望したとします。 このデプロイを遂行するための戦略を設計するにはどうすればよいですか? 開発とテストのサイクルを高速化するためにどのようなツールを使用できますか?