リモート ストリーミング入力を使用して人数カウントアプリを作成する

Gemini Enterprise Agent Platform Vision は、動画 データを取り込み、分析、 保存するために使用できる AI を活用したプラットフォームです。Gemini Enterprise Agent Platform Vision を使用すると、AI アプリケーションを構築してデプロイできます。Gemini Enterprise Agent Platform Vision の他のプロダクト コンポーネントとの統合を活用することで、エンドツーエンドの Gemini Enterprise Agent Platform Vision ソリューションを構築できます。

Gemini Enterprise Agent Platform Vision プラットフォームを使用してソリューションの実装を開始するには、Agent Platform Vision の次のコンセプトとコンポーネントを確認してください。

  • ストリーム: ソリューションの動画ストリーミング レイヤを表します。ストリームのソースは、ライブ動画(IP カメラなど)または動画ファイル(MP4 ファイルなど)にできます。

  • アプリケーション: ストリームと AI プロセッサ間の接続を有効にして、動画に対して ML オペレーションを実行します。たとえば、カメラ ストリームを、カメラの前を通過する人数をカウントする AI モデルに接続できます。

  • メディア ウェアハウス: ストリームによって取り込まれた動画を Google Cloud ストレージに保存します。データをこの宛先に保存すると、取り込まれたストリームのデータで使用される AI プロセッサから分析出力とメタデータをクエリできます。

目標

このチュートリアルでは、次の方法を説明します。

  • 利用人数カウント アプリを作成する。
  • アプリをデプロイして使用できるようにする。
  • 動画をストリーミングするリモートマシンを設定する。
  • ストリーミング動画をアプリのストリームノードに取り込む。
  • ストレージ Gemini Enterprise Agent Platform Vision のメディア ウェアハウスで動画を検索する。

費用

このドキュメントでは、課金対象である次のコンポーネントを使用します。 Google Cloud

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。

新規の Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

始める前に

  1. アカウントにログインします Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine and Vision AI APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the following roles to the service account: Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (beta), Storage > Storage Object Viewer.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    7. Click Continue.
    8. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  6. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  7. Google Cloud CLI をインストールします。

  8. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  9. gcloud CLI を初期化するには、次のコマンドを実行します:

    gcloud init
  10. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  11. Verify that billing is enabled for your Google Cloud project.

  12. Enable the Compute Engine and Vision AI APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  13. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the following roles to the service account: Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (beta), Storage > Storage Object Viewer.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    7. Click Continue.
    8. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  14. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  15. Google Cloud CLI をインストールします。

  16. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  17. gcloud CLI を初期化するには、次のコマンドを実行します:

    gcloud init

ロールは、 Cloud Storage バケットからサンプル動画ファイルをコピーする場合にのみ必要です。

利用人数カウント アプリケーションを作成する

環境を設定したら、まずデータを処理するアプリを作成します。 アプリは、次のものを接続する自動パイプラインと考えることができます。

  • データの取り込み: 動画フィードがストリームに取り込まれます。
  • データ分析: 取り込み後に AI モデルを追加できます。取り込まれた動画情報に対して、任意のコンピュータ ビジョン オペレーションを実行できます。
  • データ ストレージ: 動画フィードの 2 つのバージョン(元のストリームと AI モデルで処理されたストリーム)をメディア ウェアハウスに保存できます。

コンソールでは、アプリはグラフとして表されます。 Google Cloud また、Gemini Enterprise Agent Platform Vision では、アプリグラフに少なくとも 2 つのノード(動画ソースノード(ストリーム)と少なくとも 1 つのノード(処理モデルまたは出力先))が必要です。

空白のアプリを作成する

アプリグラフにデータを入力する前に、まず空のアプリを作成する必要があります。

コンソール

コンソールでアプリを作成します。 Google Cloud

  1. Gemini Enterprise Agent Platform Vision ダッシュボードの [アプリケーション] タブを開きます。

    [アプリケーション] タブに移動

  2. [Create] ボタンをクリックします。

  3. アプリ名として「occupancy-count-app」と入力し、リージョンを選択します。

  4. [作成] をクリックします。

アプリ コンポーネント ノードを追加する

空のアプリケーションを作成したら、次の 3 つのノードをアプリグラフに追加できます。

  1. 取り込みノード: 作成した Compute Engine VM インスタンスから送信されたデータを取り込むストリーム リソース。
  2. 処理ノード: 取り込まれたデータに対して動作する利用人数分析モデル。
  3. ストレージ ノード: 処理された動画を保存するメディア ウェアハウス。 メタデータ ストアとしても機能します。ウェアハウスでは、取り込まれた動画データに関する分析 情報を生成できるほか、AI モデルがデータについて推測した情報を保存 できます。

コンソール

コンソールでアプリにコンポーネント ノードを追加します。

  1. Gemini Enterprise Agent Platform Vision ダッシュボードの [アプリケーション] タブを開きます。

    [アプリケーション] タブに移動

  2. occupancy-count-app 行で、 [View graph] を選択します。処理パイプラインのグラフ表示が表示されます。

データの取り込みノードを追加する

  1. 入力ストリーム ノードを追加するには、サイドメニューの [コネクタ] セクションで [ストリーム] オプションを選択します。

  2. 開いた [Stream] メニューの [Source] セクションで、 [Add streams] を選択します。

  3. [ストリームを追加] メニューで、 [新しい ストリームを登録] を選択し、occupancy-count-stream をストリーム名として追加します。

  4. ストリームをアプリグラフに追加するには、[ストリームを追加] をクリックします。

データ処理ノードを追加する

  1. 利用人数カウント モデルノードを追加するには、サイドメニューの [特殊モデル] セクションで [利用人数分析] オプションを選択します。

  2. デフォルトの選択 人物車両 はそのままにします。

データ ストレージ ノードを追加する

  1. 出力先(ストレージ)ノードを追加するには、サイドメニューの [コネクタ] セクションで [Gemini Enterprise Agent Platform Vision のメディア ウェアハウス] オプションを選択します。

  2. [Gemini Enterprise Agent Platform Vision のメディア ウェアハウス] メニューで、[ウェアハウスを接続] をクリックします。

  3. [ウェアハウスを接続] メニューで、 [新しい ウェアハウスを作成] を選択します。ウェアハウスに「occupancy-count-warehouse」という名前を付け、TTL の期間を 14 日のままにします。

  4. [作成] ボタンをクリックしてウェアハウスを追加します。

アプリをデプロイして使用できるようにする

必要なコンポーネントをすべて含むエンドツーエンドのアプリを構築したら、アプリを使用するための最後のステップとして、アプリをデプロイします。

コンソール

  1. Gemini Enterprise Agent Platform Vision ダッシュボードの [アプリケーション] タブを開きます。

    [アプリケーション] タブに移動

  2. リストで occupancy-count-app アプリの横にある [グラフを表示] を選択します。

  3. アプリケーション グラフ ビルダー ページで、 [Deploy] ボタンをクリックします。

  4. 次の確認ダイアログで [デプロイ] を選択します。

    デプロイ オペレーションが完了するまでに数分かかることがあります。デプロイが完了すると、ノードの横に緑色のチェックマークが表示されます。

    UI にデプロイされたアプリ

動画をストリーミングするリモートマシンを設定する

ストリーミング データを受信、処理、保存する利用人数カウント アプリをデプロイしたので、実際に動画データをアプリにストリーミングする必要があります。

このチュートリアルでは、動画をホストする Compute Engine VM インスタンスを作成し、そのストリーミング動画データを VM から送信します。

Linux VM を作成

Compute Engine VM インスタンスから動画を送信する最初の手順は、VM インスタンスを作成することです。

コンソール

  1. コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. プロジェクトを選択し、[続行] をクリックします。

  3. [インスタンスを作成] をクリックします。

  4. VM の名前を指定します。詳しくは、リソースの命名規則をご覧ください。

  5. (省略可)この VM のゾーンを変更します。Compute Engine は、複数のゾーンで各リージョンが均等に使用されるように、各リージョン内でゾーンのリストをランダム化します。

  6. 残りのデフォルト オプションはそのままにします。これらの オプションの詳細については、VM を作成して起動するをご覧ください。

  7. VM を作成して起動するには、[作成] をクリックします。

VM 環境を設定する

VM が起動したら、 コンソールを使用してブラウザで SSH 接続を確立できます。この接続を確立したら、vaictl コマンドライン ツールをダウンロードして、動画をアプリに取り込むことができます。

コンソール

VM への SSH 接続を確立する

  1. コンソールで [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. 作成したインスタンス行の [接続] セクションで、[SSH] をクリックします。新しいブラウザ ウィンドウで SSH 接続が開きます。

    UI の SSH オプション

vaictl コマンドライン ツールをダウンロードする

  1. [ブラウザでの SSH] ウィンドウで、次のコマンドを使用して Gemini Enterprise Agent Platform Vision(vaictl)コマンドライン ツールをダウンロードします。

    wget https://github.com/google/visionai/releases/download/v0.0.5/visionai_0.0-5_amd64.deb
    
  2. 次のコマンドを実行して、 コマンドライン ツールをインストールします。

    sudo apt install ./visionai_0.0-5_amd64.deb
    
  3. 次のコマンドを実行して、インストールをテストできます。

    vaictl --help
    

動画ファイルをアプリに取り込む

VM 環境を設定したら、サンプル動画ファイルをコピーし、vaictl を使用して動画データを利用人数カウント アプリにストリーミングできます。

ブラウザでの SSH

サンプル動画を VM にコピーする

  1. VM の [ブラウザでの SSH] ウィンドウで、次の gcloud storage cp コマンドを使用してサンプル動画をコピーします。次の変数を置き換えます。
    • SOURCE:使用する動画ファイルの場所。独自の動画ファイル ソース(たとえば、gs://BUCKET_NAME/FILENAME.mp4)を使用することも、次のサンプル動画のいずれかを使用することもできます。
      • gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4(人物と車両の動画、 ソース
      • gs://cloud-samples-data/vertex-ai-vision/highway_vehicles.mp4(車両のみの動画、 ソース
    gcloud storage cp SOURCE .

VM から動画をストリーミングしてアプリにデータを取り込む

  1. このローカル動画ファイルをアプリの入力ストリームに送信するには、次のコマンドを使用します。次の変数を置き換える必要があります。
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
    • LOCATION_ID: 地域 ID。例: us-central1。詳細については、 クラウドのロケーションをご覧ください。
    • LOCAL_FILE.EXT: ローカル動画ファイルのファイル名。 例: my-video.mp4
    • --loop フラグ: 省略可。ストリーミングをシミュレートするためにファイルデータをループします。

    このコマンドは、動画ファイルをストリームにストリーミングします。 フラグを使用すると、コマンドを停止するまで動画がストリームにループされます。 --loop

    vaictl -p PROJECT_ID \
        -l LOCATION_ID \
        -c application-cluster-0 \
        --service-endpoint visionai.googleapis.com \
    send video-file to streams 'occupancy-count-stream' --file-path LOCAL_FILE.EXT --loop

vaictl 取り込みオペレーションの開始からダッシュボードに動画が表示されるまで、100 秒ほどかかることがあります。

ストリームの取り込みが完了すると、Gemini Enterprise Agent Platform Vision ダッシュボードの [ストリーム] タブで、occupancy-count-stream ストリームを選択して動画フィードを確認できます。

[ストリーム] タブに移動

UI でライブ動画がストリーミングされている様子
コンソールでストリームに取り込まれる動画のライブビュー。 Google Cloud 動画クレジット: Elizabeth Mavor on Pixabay (ピクセル化を追加).

ストレージ ウェアハウスで動画コンテンツを検索する

動画データを処理アプリに取り込んだら、分析された動画データを表示し、利用人数分析情報に基づいてデータを検索できます。

コンソール

  1. Gemini Enterprise Agent Platform Vision ダッシュボードの [ウェアハウス] タブを開きます。

    [ウェアハウス] タブに移動

  2. リストで occupancy-count-warehouse ウェアハウスを見つけて、 [アセットを表示] をクリックします。

  3. [人数カウント] または [車両カウント] セクションで、[最小] の値を 1 に、[最大] の値を 5 に設定します。

  4. Gemini Enterprise Agent Platform Vision のメディア ウェアハウスに保存されている処理済み動画データをフィルタするには、[検索] をクリックします。

    UI でファセット化された保存済みデータのビュー
    保存済み動画データで検索条件に一致するビュー コンソールで Google Cloud 。動画クレジット: Elizabeth Mavor検索条件を適用Pixabayより。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

プロジェクトを削除する

  1. コンソールで [**リソースの管理**] ページに移動します。 Google Cloud

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。

リソースを個別に削除する

Compute Engine VM インスタンスを削除する

  1. コンソールで、 [VM インスタンス] ページに移動します。 Google Cloud

    [VM インスタンス] に移動

  2. 削除するインスタンスのチェックボックスを選択します。
  3. インスタンスを削除するには、[その他の操作] をクリックし、[削除] をクリックしてから、指示に沿って操作します。

ウェアハウスを削除する

  1. コンソールで、 [**ウェアハウス**] ページに移動します。 Google Cloud

    [ウェアハウス] タブに移動

  2. `` ウェアハウスを探します。 occupancy-count-warehouse
  3. ウェアハウスを削除するには、 [Actions] をクリックし、[Delete warehouse] をクリックしてから、指示に沿って操作します。

ストリームを削除する

  1. コンソールで、 [ストリーム] ページに移動します。 Google Cloud

    [ストリーム] タブに移動

  2. `` ストリームを探します。 occupancy-count-stream
  3. ストリームを削除するには、 [アクション] をクリックし、[ストリームを削除] をクリックしてから、指示に沿って操作します。

アプリを削除する

  1. コンソールで、 [アプリケーション] ページに移動します。 Google Cloud

    [アプリケーション] タブに移動

  2. アプリを探します。 occupancy-count-app削除するアプリのチェックボックスを選択します。
  3. アプリを削除するには、 [アクション] をクリックし、[アプリケーションを削除] をクリックしてから、指示に沿って操作します。

次のステップ

  • 詳しくは、 責任ある AI への取り組みをご覧ください。
  • アプリの構築でアプリに追加できる他のコンポーネントについて確認する。 アプリの構築
  • アプリの出力をデータ接続に接続する で、その他の出力ストレージと処理オプションについて学習する。
  • コンソールでウェアハウス データを 検索する方法を確認する。
  • Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。 Cloud アーキテクチャ センターをご覧ください。