Azure と Azure Stack Hub を使用して AI ベースの足取り検出ソリューションをデプロイするDeploy an AI-based footfall detection solution using Azure and Azure Stack Hub

この記事では、Azure、Azure Stack Hub、Custom Vision AI Dev Kit を使用して、実際のアクションから分析情報を生成する AI ベースのソリューションをデプロイする方法について説明します。This article describes how to deploy an AI-based solution that generates insights from real world actions by using Azure, Azure Stack Hub, and the Custom Vision AI Dev Kit.

このソリューションでは、次の方法を学習します。In this solution, you learn how to:

  • エッジに Cloud Native Application Bundles (CNAB) をデプロイする。Deploy Cloud Native Application Bundles (CNAB) at the edge.
  • クラウドの境界をまたぐアプリをデプロイします。Deploy an app that spans cloud boundaries.
  • エッジでの推論に Custom Vision AI Dev Kit を使用する。Use the Custom Vision AI Dev Kit for inference at the edge.

ヒント

ハイブリッドの柱の図Hybrid pillars diagram
Microsoft Azure Stack Hub は Azure の拡張機能です。Microsoft Azure Stack Hub is an extension of Azure. Azure Stack Hub により、オンプレミス環境にクラウド コンピューティングの機敏性とイノベーションがもたらされ、ハイブリッド アプリをビルドし、どこにでもデプロイできる唯一のハイブリッド クラウドが可能になります。Azure Stack Hub brings the agility and innovation of cloud computing to your on-premises environment, enabling the only hybrid cloud that allows you to build and deploy hybrid apps anywhere.

ハイブリッド アプリの設計の考慮事項に関する記事では、ハイブリッド アプリを設計、デプロイ、および運用するためのソフトウェア品質の重要な要素 (配置、スケーラビリティ、可用性、回復性、管理容易性、およびセキュリティ) についてレビューしています。The article Hybrid app design considerations reviews pillars of software quality (placement, scalability, availability, resiliency, manageability, and security) for designing, deploying, and operating hybrid apps. これらの設計の考慮事項は、ハイブリッド アプリの設計を最適化したり、運用環境での課題を最小限に抑えたりするのに役立ちます。The design considerations assist in optimizing hybrid app design, minimizing challenges in production environments.

前提条件Prerequisites

このデプロイ ガイドの使用を開始する前に、必ず次のことを行ってください。Before getting started with this deployment guide, make sure you:

ハイブリッド クラウド アプリをデプロイするDeploy the hybrid cloud app

まず、Porter CLI を使用して資格情報セットを生成してから、クラウド アプリをデプロイします。First you use the Porter CLI to generate a credential set, then deploy the cloud app.

  1. https://github.com/azure-samples/azure-intelligent-edge-patterns からソリューション サンプル コードを複製するか、ダウンロードします。Clone or download the solution sample code from https://github.com/azure-samples/azure-intelligent-edge-patterns.

  2. Porter によって、アプリのデプロイを自動化する一連の資格情報が生成されます。Porter will generate a set of credentials that will automate deployment of the app. 資格情報の生成コマンドを実行する前に、次のものを使用できるようにしておく必要があります。Before running the credential generation command, be sure to have the following available:

    • Azure リソースにアクセスするためのサービス プリンシパル (サービス プリンシパル ID、キー、テナント DNS など)。A service principal for accessing Azure resources, including the service principal ID, key, and tenant DNS.
    • ご利用の Azure サブスクリプションのサブスクリプション ID。The subscription ID for your Azure subscription.
    • Azure Stack Hub リソースにアクセスするためのサービス プリンシパル (サービス プリンシパル ID、キー、テナント DNS など)。A service principal for accessing Azure Stack Hub resources, including the service principal ID, key, and tenant DNS.
    • ご利用の Azure Stack Hub サブスクリプションのサブスクリプション ID。The subscription ID for your Azure Stack Hub subscription.
    • ご利用の Azure Cognitive Services Face API キーとリソース エンドポイント URL。Your Azure Cognitive Services Face API key and resource endpoint URL.
  3. Porter 資格情報生成プロセスを実行し、画面の指示に従います。Run the Porter credential generation process and follow the prompts:

    porter creds generate --tag intelligentedge/footfall-cloud-deployment:0.1.0
    
  4. Porter では、実行するパラメーターのセットも必要です。Porter also requires a set of parameters to run. パラメーター テキスト ファイルを作成し、次の名前と値のペアを入力します。Create a parameter text file and enter the following name/value pairs. 必要な値についてサポートが必要な場合は、Azure Stack Hub 管理者に問い合わせてください。Ask your Azure Stack Hub administrator if you need assistance with any of the required values.

    注意

    resource suffix 値は、デプロイのリソースが Azure 全体で一意の名前になることを保証するために使用されます。The resource suffix value is used to ensure that your deployment's resources have unique names across Azure. これは、8 文字以内の文字と数字の一意の文字列である必要があります。It must be a unique string of letters and numbers, no longer than 8 characters.

    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"
    

    テキスト ファイルを保存し、パスをメモしておきます。Save the text file and make a note of its path.

  5. これで、Porter を使用してハイブリッド クラウド アプリをデプロイする準備ができました。You're now ready to deploy the hybrid cloud app using Porter. インストール コマンドを実行し、Azure と Azure Stack Hub にリソースがデプロイされる様子を確認します。Run the install command and watch as resources are deployed to Azure and 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"
    
  6. デプロイが完了したら、次の値をメモしておきます。Once deployment is complete, make note of the following values:

    • カメラの接続文字列。The camera's connection string.
    • 画像ストレージ アカウントの接続文字列。The image storage account connection string.
    • リソース グループ名。The resource group names.

Custom Vision AI DevKit を準備するPrepare the Custom Vision AI DevKit

次に、Vision AI DevKit のクイックスタートに示されているように、Custom Vision AI Dev Kit を設定します。Next, set up the Custom Vision AI Dev Kit as shown in the Vision AI DevKit quickstart. また、前の手順で指定した接続文字列を使用して、カメラを設定し、テストします。You also set up and test your camera, using the connection string provided in the previous step.

カメラ アプリをデプロイするDeploy the camera app

Porter CLI を使用して資格情報セットを生成してから、カメラ アプリをデプロイします。Use the Porter CLI to generate a credential set, then deploy the camera app.

  1. Porter によって、アプリのデプロイを自動化する一連の資格情報が生成されます。Porter will generate a set of credentials that will automate deployment of the app. 資格情報の生成コマンドを実行する前に、次のものを使用できるようにしておく必要があります。Before running the credential generation command, be sure to have the following available:

    • Azure リソースにアクセスするためのサービス プリンシパル (サービス プリンシパル ID、キー、テナント DNS など)。A service principal for accessing Azure resources, including the service principal ID, key, and tenant DNS.
    • ご利用の Azure サブスクリプションのサブスクリプション ID。The subscription ID for your Azure subscription.
    • クラウド アプリをデプロイしたときに指定した画像ストレージ アカウントの接続文字列。The image storage account connection string provided when you deployed the cloud app.
  2. Porter 資格情報生成プロセスを実行し、画面の指示に従います。Run the Porter credential generation process and follow the prompts:

    porter creds generate --tag intelligentedge/footfall-camera-deployment:0.1.0
    
  3. Porter では、実行するパラメーターのセットも必要です。Porter also requires a set of parameters to run. パラメーター テキスト ファイルを作成し、次のテキストを入力します。Create a parameter text file and enter the following text. わからない必要な値がいくつかある場合は、Azure Stack Hub 管理者に問い合わせてください。Ask your Azure Stack Hub administrator if you don't know some of the required values.

    注意

    deployment suffix 値は、デプロイのリソースが Azure 全体で一意の名前になることを保証するために使用されます。The deployment suffix value is used to ensure that your deployment's resources have unique names across Azure. これは、8 文字以内の文字と数字の一意の文字列である必要があります。It must be a unique string of letters and numbers, no longer than 8 characters.

    iot_hub_name="Name of the IoT Hub deployed"
    deployment_suffix="Unique string here"
    

    テキスト ファイルを保存し、パスをメモしておきます。Save the text file and make a note of its path.

  4. これで、Porter を使用してカメラ アプリをデプロイする準備ができました。You're now ready to deploy the camera app using Porter. インストール コマンドを実行し、IoT Edge デプロイが作成される様子を確認します。Run the install command and watch as the IoT Edge deployment is created.

    porter install footfall-camera –tag intelligentedge/footfall-camera-deployment:0.1.0 –creds footfall-camera-deployment –param-file "path-to-camera-parameters-file.txt"
    
  5. https://<camera-ip>:3000/ でカメラ フィードを表示して、カメラのデプロイが完了したことを確認します。ここで、<camara-ip> はカメラの IP アドレスです。Verify that the camera's deployment is complete by viewing the camera feed at https://<camera-ip>:3000/, where <camara-ip> is the camera IP address. この手順には最大で 10 分かかる場合があります。This step may take up to 10 minutes.

Azure Stream Analytics の構成Configure Azure Stream Analytics

これでデータがカメラから Azure Stream Analytics に流れるようになりました。Power BI と通信するには、これを手動で承認する必要があります。Now that data is flowing to Azure Stream Analytics from the camera, we need to manually authorize it to communicate with Power BI.

  1. Azure portal から、 [すべてのリソース] を開き、process-footfall[yoursuffix] ジョブを開きます。From the Azure portal, open All Resources, and the process-footfall[yoursuffix] job.

  2. [Stream Analytics ジョブ] ウィンドウの [ジョブ トポロジ] セクションで、 [出力] オプションを選択します。In the Job Topology section of the Stream Analytics job pane, select the Outputs option.

  3. traffic-output 出力シンクを選択します。Select the traffic-output output sink.

  4. [承認の更新] を選択して、自分の Power BI アカウントにサインインします。Select Renew authorization and sign in to your Power BI account.

    Power BI で承認プロンプトを更新する

  5. 出力の設定を保存します。Save the output settings.

  6. [概要] ウィンドウにアクセスし、 [開始] を選択して Power BI へのデータの送信を開始します。Go to the Overview pane and select Start to start sending data to Power BI.

  7. ジョブ出力の開始時刻に [現在] を選択し、 [開始] を選択します。Select Now for job output start time and select Start. 通知バーでジョブの状態を確認できます。You can view the job status in the notification bar.

Power BI ダッシュボードを作成するCreate a Power BI Dashboard

  1. ジョブが成功したら Power BI に移動し、職場または学校アカウントを使用してサインインします。Once the job succeeds, go to Power BI and sign in with your work or school account. Stream Analytics ジョブ クエリによる結果の出力が進行中の場合、作成した footfall-dataset データセットは [データセット] タブにあります。If the Stream Analytics job query is outputting results, the footfall-dataset dataset you created exists under the Datasets tab.

  2. Power BI ワークスペースで [+ 作成] を選択し、Footfall Analysis という名前の新しいダッシュボードを作成します。From your Power BI workspace, select + Create to create a new dashboard named Footfall Analysis.

  3. ウィンドウの上部にある [タイルの追加] を選択します。At the top of the window, select Add tile. 次に、 [カスタム ストリーミング データ][次に] を選択します。Then select Custom Streaming Data and Next. [データセット] の下で footfall-dataset を選択します。Choose the footfall-dataset under Your Datasets. [視覚化タイプ] ドロップダウンで [カード] を選択し、年齢[フィールド] に追加します。Select Card from the Visualization type dropdown, and add age to Fields. [次へ] を選択してタイルに名前を入力し、 [適用] を選択してタイルを作成します。Select Next to enter a name for the tile, and then select Apply to create the tile.

  4. 必要に応じて、フィールドとカードを追加できます。You can add additional fields and cards as desired.

ソリューションをテストするTest Your Solution

さまざまな人がカメラの前を歩いたときに、Power BI で作成したカードのデータがどのように変化するかを観察します。Observe how the data in the cards you created in Power BI changes as different people walk in front of the camera. 推論は、記録されてから表示されるまで最大 20 秒かかることがあります。Inferences may take up to 20 seconds to appear once recorded.

ソリューションを削除するRemove Your Solution

ソリューションを削除する場合は、Porter を使用して、デプロイ用に作成したのと同じパラメーター ファイルを使用して次のコマンドを実行します。If you'd like to remove your solution, run the following commands using Porter, using the same parameter files that you created for deployment:

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"

次のステップNext steps