Azure と Azure Stack Hub を使用して AI ベースの足取り検出ソリューションをデプロイする
この記事では、Azure、Azure Stack Hub、Custom Vision AI Dev Kit を使用して、実際のアクションから分析情報を生成する AI ベースのソリューションをデプロイする方法について説明します。
このソリューションでは、次の方法を学習します。
- エッジに Cloud Native Application Bundles (CNAB) をデプロイする。
- クラウドの境界をまたぐアプリをデプロイします。
- エッジでの推論に Custom Vision AI Dev Kit を使用する。
ヒント
Microsoft Azure Stack Hub は Azure の拡張機能です。 Azure Stack Hub により、オンプレミス環境にクラウド コンピューティングの機敏性とイノベーションがもたらされ、ハイブリッド アプリをビルドし、どこにでもデプロイできる唯一のハイブリッド クラウドが可能になります。
ハイブリッド アプリの設計の考慮事項に関する記事では、ハイブリッド アプリを設計、デプロイ、および運用するためのソフトウェア品質の重要な要素 (配置、スケーラビリティ、可用性、回復性、管理容易性、およびセキュリティ) についてレビューしています。 これらの設計の考慮事項は、ハイブリッド アプリの設計を最適化したり、運用環境での課題を最小限に抑えたりするのに役立ちます。
前提条件
このデプロイ ガイドの使用を開始する前に、必ず次のことを行ってください。
- 足取り検出のアーキテクチャをレビューします。
- 次のものがある、Azure Stack Development Kit (ASDK) または Azure Stack Hub 統合システム インスタンスへのユーザー アクセス権を取得します。
- Azure App Service on Azure Stack Hub リソース プロバイダーがインストールされている。 インストールには、Azure Stack Hub インスタンスへのオペレーター アクセス、または管理者と協力する必要があります。
- App Service とストレージ クォータを提供するオファーに対するサブスクリプション。 オファーを作成するには、オペレーター アクセスが必要です。
- Azure サブスクリプションへのアクセスを取得します。
- Azure サブスクリプションがない場合は、始める前に無料試用版アカウントにサインアップしてください。
- ディレクトリに 2 つのサービス プリンシパルを作成します。
- 1 つは、Azure サブスクリプションのスコープでアクセスする、Azure リソースで使用するように設定します。
- 1 つは、Azure Stack Hub サブスクリプションのスコープでアクセスする、Azure Stack Hub リソースで使用するように設定します。
- サービス プリンシパルの作成とアクセスの承認の詳細については、アプリ ID を使用してリソースにアクセスするに関するページを参照してください。 Azure CLI を使用する場合は、「Azure CLI で Azure サービス プリンシパルを作成する」を参照してください。
- Azure Cognitive Services を Azure または Azure Stack Hub にデプロイします。
- まず、Cognitive Services の詳細について説明します。
- 次に、「Azure Cognitive Services を Azure Stack にデプロイする」にアクセスして、Azure Stack Hub 上に Cognitive Services をデプロイします。 プレビューにアクセスするには、まず、サインアップする必要があります。
- 未構成の Azure Custom Vision AI Dev Kit をクローンまたはダウンロードします。 詳細については、Vision AI DevKit を参照してください。
- Power BI アカウントにサインアップする。
- Azure Cognitive Services Face API サブスクリプション キーとエンドポイント URL。 どちらも「Cognitive Services を試す」の無料試用版を使用して取得できます。 または、Cognitive Services アカウントの作成の手順に従います。
- 次の開発リソースをインストールします。
- Azure CLI 2.0
- Docker CE
- Porter。 提供されている CNAB バンドル マニフェストを使用してクラウド アプリをデプロイするには、Porter を使用します。
- Visual Studio Code
- Visual Studio Code 用の Azure IoT Tools
- Visual Studio Code 用の Python 拡張機能
- Python
ハイブリッド クラウド アプリをデプロイする
まず、Porter CLI を使用して資格情報セットを生成してから、クラウド アプリをデプロイします。
ソリューションのサンプル コードを含むリポジトリを複製またはダウンロードします。
Porter によって、アプリのデプロイを自動化する一連の資格情報が生成されます。 資格情報の生成コマンドを実行する前に、次のものを使用できるようにしておく必要があります。
- Azure リソースにアクセスするためのサービス プリンシパル (サービス プリンシパル ID、キー、テナント DNS など)。
- ご利用の Azure サブスクリプションのサブスクリプション ID。
- Azure Stack Hub リソースにアクセスするためのサービス プリンシパル (サービス プリンシパル ID、キー、テナント DNS など)。
- ご利用の Azure Stack Hub サブスクリプションのサブスクリプション ID。
- ご利用の Azure Cognitive Services Face API キーとリソース エンドポイント URL。
Porter 資格情報生成プロセスを実行し、画面の指示に従います。
porter creds generate --tag intelligentedge/footfall-cloud-deployment:0.1.0
Porter では、実行するパラメーターのセットも必要です。 パラメーター テキスト ファイルを作成し、次の名前と値のペアを入力します。 必要な値についてサポートが必要な場合は、Azure Stack Hub 管理者に問い合わせてください。
注意
resource suffix
値は、デプロイのリソースが Azure 全体で一意の名前になることを保証するために使用されます。 これは、8 文字以内の文字と数字の一意の文字列である必要があります。azure_stack_tenant_arm="Your Azure Stack Hub tenant endpoint" azure_stack_storage_suffix="Your Azure Stack Hub storage suffix" azure_stack_keyvault_suffix="Your Azure Stack Hub keyVault suffix" resource_suffix="A unique string to identify your deployment" azure_location="A valid Azure region" azure_stack_location="Your Azure Stack Hub location identifier" powerbi_display_name="Your first and last name" powerbi_principal_name="Your Power BI account email address"
テキスト ファイルを保存し、パスをメモしておきます。
これで、Porter を使用してハイブリッド クラウド アプリをデプロイする準備ができました。 インストール コマンドを実行し、Azure と Azure Stack Hub にリソースがデプロイされる様子を確認します。
porter install footfall-cloud –tag intelligentedge/footfall-cloud-deployment:0.1.0 –creds footfall-cloud-deployment –param-file "path-to-cloud-parameters-file.txt"
デプロイが完了したら、次の値をメモしておきます。
- カメラの接続文字列。
- 画像ストレージ アカウントの接続文字列。
- リソース グループ名。
Custom Vision AI DevKit を準備する
次に、Vision AI DevKit のクイックスタートに示されているように、Custom Vision AI Dev Kit を設定します。 また、前の手順で指定した接続文字列を使用して、カメラを設定し、テストします。
カメラ アプリをデプロイする
Porter CLI を使用して資格情報セットを生成してから、カメラ アプリをデプロイします。
Porter によって、アプリのデプロイを自動化する一連の資格情報が生成されます。 資格情報の生成コマンドを実行する前に、次のものを使用できるようにしておく必要があります。
- Azure リソースにアクセスするためのサービス プリンシパル (サービス プリンシパル ID、キー、テナント DNS など)。
- ご利用の Azure サブスクリプションのサブスクリプション ID。
- クラウド アプリをデプロイしたときに指定した画像ストレージ アカウントの接続文字列。
Porter 資格情報生成プロセスを実行し、画面の指示に従います。
porter creds generate --tag intelligentedge/footfall-camera-deployment:0.1.0
Porter では、実行するパラメーターのセットも必要です。 パラメーター テキスト ファイルを作成し、次のテキストを入力します。 わからない必要な値がいくつかある場合は、Azure Stack Hub 管理者に問い合わせてください。
注意
deployment suffix
値は、デプロイのリソースが Azure 全体で一意の名前になることを保証するために使用されます。 これは、8 文字以内の文字と数字の一意の文字列である必要があります。iot_hub_name="Name of the IoT Hub deployed" deployment_suffix="Unique string here"
テキスト ファイルを保存し、パスをメモしておきます。
これで、Porter を使用してカメラ アプリをデプロイする準備ができました。 インストール コマンドを実行し、IoT Edge デプロイが作成される様子を確認します。
porter install footfall-camera –tag intelligentedge/footfall-camera-deployment:0.1.0 –creds footfall-camera-deployment –param-file "path-to-camera-parameters-file.txt"
https://<camera-ip>:3000/
でカメラ フィードを表示して、カメラのデプロイが完了したことを確認します。ここで、<camara-ip>
はカメラの IP アドレスです。 この手順には最大で 10 分かかる場合があります。
Azure Stream Analytics の構成
これでデータがカメラから Azure Stream Analytics に流れるようになりました。Power BI と通信するには、これを手動で承認する必要があります。
Azure portal から、[すべてのリソース] を開き、process-footfall[yoursuffix] ジョブを開きます。
[Stream Analytics ジョブ] ウィンドウの [ジョブ トポロジ] セクションで、 [出力] オプションを選択します。
traffic-output 出力シンクを選択します。
[承認の更新] を選択して、自分の Power BI アカウントにサインインします。
出力の設定を保存します。
[概要] ウィンドウにアクセスし、 [開始] を選択して Power BI へのデータの送信を開始します。
ジョブ出力の開始時刻に [現在] を選択し、 [開始] を選択します。 通知バーでジョブの状態を確認できます。
Power BI ダッシュボードを作成する
ジョブが成功したら Power BI に移動し、職場または学校アカウントを使用してサインインします。 Stream Analytics ジョブ クエリによる結果の出力が進行中の場合、作成した footfall-dataset データセットは [データセット] タブにあります。
Power BI ワークスペースで [+ 作成] を選択し、Footfall Analysis という名前の新しいダッシュボードを作成します。
ウィンドウの上部にある [タイルの追加] を選択します。 次に、 [カスタム ストリーミング データ] と [次に] を選択します。 [データセット] の下で footfall-dataset を選択します。 [視覚化タイプ] ドロップダウンで [カード] を選択し、年齢を [フィールド] に追加します。 [次へ] を選択してタイルに名前を入力し、 [適用] を選択してタイルを作成します。
必要に応じて、フィールドとカードを追加できます。
ソリューションをテストする
さまざまな人がカメラの前を歩いたときに、Power BI で作成したカードのデータがどのように変化するかを観察します。 推論は、記録されてから表示されるまで最大 20 秒かかることがあります。
ソリューションを削除する
ソリューションを削除する場合は、Porter を使用して、デプロイ用に作成したのと同じパラメーター ファイルを使用して次のコマンドを実行します。
porter uninstall footfall-cloud –tag intelligentedge/footfall-cloud-deployment:0.1.0 –creds footfall-cloud-deployment –param-file "path-to-cloud-parameters-file.txt"
porter uninstall footfall-camera –tag intelligentedge/footfall-camera-deployment:0.1.0 –creds footfall-camera-deployment –param-file "path-to-camera-parameters-file.txt"
次のステップ
- ハイブリッド アプリの設計上の考慮事項の詳細を確認する
- GitHub でこのサンプルのコードを確認し、改善点を提案する
- Azure Well-Architected Framework の「ハイブリッド ワークロードの概要」を参照してください。
- Azure のクラウド導入フレームワークのハイブリッドおよびマルチクラウドのシナリオを参照してください。
関連リソース
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示