このページでは、Vertex AI Vision のアプリ プラットフォームで使用するために、アプリを作成し、コンポーネント(入力ストリーム、分析用モデル、ストレージ用ウェアハウスなど)を組み合わせる方法について説明します。
アプリを構築するには、データソース、実行する分析、結果の保存方法を検討する必要があります。エンドツーエンドのアプリは、ユースケースに応じてさまざまな形態をとることができます。したがって、アプリの作成方法は目的によって異なります。
始める前に、責任ある AI の観点からユースケースと目的を評価し、モデルやアプリケーションが適切でない場合にエンドユーザーに及ぼす影響について検討します。公平性についてユースケースを評価する際の最初のステップについて詳細をご確認ください。また、Vertex AI Vision の使用が Google Cloudの利用規約またはオフライン バリアント、および組み込まれた URL 規約( Google Cloudの利用規定など)に準拠していることを確認してください。
アプリケーションを作成する際は、AI ビジョン テクノロジーが不公平なバイアスを強化または導入し、基本的人権に影響する可能性があることに留意してください。アプリケーションを開発する際には、会社の価値観に基づく倫理的な反省と、リスクの高いユースケースを含む特定のユースケースに対する法的デューデリジェンスを行う必要があります。他のテクノロジーと同様に、テクノロジーを導入する地域で AI/ML テクノロジーの使用を規制するすべての法律と規制を考慮する必要があります。特定の地域でリスクが高いと見なされるユースケースを実装するために必要なデューデリジェンスは、お客様の責任で行う必要があります。
新しいアプリケーションを作成する
ストリームやモデルなどのコンポーネントをアプリに追加する前に、アプリ自体を作成する必要があります。デプロイするには、すべてのアプリに以下が含まれている必要があります。
- ストリーム入力ノード(データソース)。
- モデルやウェアハウスなど、他のコンポーネント ノードが少なくとも 1 つ。
新しいカスタム アプリケーションを作成する
Console
Google Cloud コンソールでアプリを作成します。
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
[
作成] ボタンをクリックします。アプリ名を入力し、リージョンを選択します。サポートされているリージョン。
[作成] をクリックします。
テンプレートを使用してアプリを作成する
Console
Google Cloud コンソールでアプリを作成します。
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
[
作成] ボタンをクリックします。アプリ名を入力し、リージョンを選択します。サポートされているリージョン。
[作成] をクリックします。
アプリケーション ビルダー ページで、[アプリケーション テンプレート] ノードをクリックします。
サイドの設定パネルで、[モデルを選択] ボタンをクリックします。
プルダウン メニューからモデルを選択します。
ストリーム入力を追加する
アプリには動画ストリーム ノードを含める必要があります。Streams ノードを追加しないと、アプリケーションをデプロイできません。
アプリがデプロイされていない場合、ストリーム入力の更新は自動的にアプリに適用されます。アプリがすでにデプロイされている場合は、デプロイを解除して更新してから、変更を適用する必要があります。詳しくは、アプリを更新するをご覧ください。
Console
Google Cloud コンソールでアプリにストリームを追加します。
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
アプリの [アプリを表示] をクリックします。
コンポーネントのサイドリストで、[コネクタ] のリストから [動画ストリーム] を選択します。ストリームノードがアプリグラフに追加され、サイドの [動画ストリーム] メニューが開きます。
[動画ストリームを追加] を選択します。
[既存のストリームから選択] を選択した場合は、既存のストリームを選択し、[ストリームを追加] を選択します。
[新しいストリームを登録] を選択した場合は、新しいストリームの名前を追加して [ストリームを追加] を選択します。
REST
アプリにストリームを追加するには、projects.locations.applications.addStreamInput メソッドを使用して POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 実際の Google Cloud プロジェクト ID またはプロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。例:
us-central1
、europe-west4
。利用可能なリージョンをご覧ください。 - APPLICATION_ID: ターゲット アプリケーションの ID。
- STREAM_ID: ターゲット ストリームの ID。
HTTP メソッドと URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
リクエストの本文(JSON):
{ "applicationStreamInputs": [ { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } }, { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
ノード アノテーションを使用してストリーム入力を追加する
アプリケーション入力ストリームを作成するときに、Vertex AI Vision API を使用してストリームにアノテーションを追加できます。Google Cloud コンソールでノードにアノテーションを追加することもできます。
Console
次のサンプルでは、使用可能なアノテーション(STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
と STREAM_ANNOTATION_TYPE_CROSSING_LINE
)を占有人数モデルに追加します。
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーション名の横にある [アプリを表示] を選択します。
アプリケーション ビルダー ページで、アノテーションを追加するストリーム入力を含むモデルを選択します。
サイドモデル設定パネルで、[詳細設定] セクションを開きます。セクションを開いたら、[アクティブ ゾーン/ラインを作成] ボタンをクリックします。
ストリーム ギャラリー ビューで、入力ストリームを選択してアクティブ ゾーンまたはラインを描画します。
エディタ ビューで、[マルチポイント ラインを追加] または [シンプルなポリゴンを追加] を選択して、アノテーションを追加します。サイドパネルを使用して、ゾーン名またはライン名の名前を変更したり、既存のゾーン/ラインを削除したり、ラインの向きを切り替えたりできます。
REST とコマンドライン
次のコードは、ストリーム アノテーションを追加します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 実際の Google Cloud プロジェクト ID またはプロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。例:
us-central1
、europe-west4
。利用可能なリージョンをご覧ください。 - APPLICATION_ID: ターゲット アプリケーションの ID。
- STREAM_ID: ターゲット ストリームの ID。
- NODE_NAME: アプリグラフのターゲット ノードの名前。例:
builtin-occupancy-count
。 - ANNOTATION_ID: ターゲット アノテーションの ID。
- ANNOTATION_DISPLAYNAME: ターゲット アノテーションのユーザー指定の表示名。
- ANNOTATION_TYPE: 使用可能な列挙値のいずれか。このタイプは、
annotation_payload
オブジェクト(activeZone
またはcrossingLine
)と一致している必要があります。使用可能な値は次のとおりです。STREAM_ANNOTATION_TYPE_UNSPECIFIED
STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
STREAM_ANNOTATION_TYPE_CROSSING_LINE
normalizedVertices
: 各頂点は、x と y の座標値で指定します。座標は、元の画像を基準とした正規化された浮動小数点数 [0,1] です。0.0 は X_MIN または Y_MIN、1.0 は X_MAX または Y_MAX です。
HTTP メソッドと URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
リクエストの本文(JSON):
{ "applicationStreamInputs": [ { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID", "nodeAnnotations": [ { "node": "NODE_NAME", "annotations": [ { "id": "ANNOTATION_ID", "displayName": "ANNOTATION_DISPLAYNAME", "sourceStream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID", "type": ANNOTATION_TYPE, "activeZone": { "normalizedVertices": { "x": 0.07434944, "y": 0.18061674 }, "normalizedVertices": { "x": 0.64684016, "y": 0.16079295 }, "normalizedVertices": { "x": 0.6047088, "y": 0.92070484 }, "normalizedVertices": { "x": 0.1251549, "y": 0.76651984 } } } ] } ] } } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
ストリーム入力を削除する
REST
アプリからストリームを削除するには、projects.locations.applications.removeStreamInput メソッドを使用して POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: 実際の Google Cloud プロジェクト ID またはプロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。例:
us-central1
、europe-west4
。利用可能なリージョンをご覧ください。 - APPLICATION_ID: ターゲット アプリケーションの ID。
- STREAM_ID: ターゲット ストリームの ID。
HTTP メソッドと URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput
リクエストの本文(JSON):
{ "targetStreamInputs": [ { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" }, { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
事前トレーニング済みの Vertex AI Vision モデルを追加する
アプリを作成したら、モデルを追加して、ストリーム、他のモデル、メディア ウェアハウスに接続できます。
モデルには、事前トレーニング済みモデルとユーザー トレーニング モデルの 2 種類があります。同様に、ユーザーがトレーニングするモデルには、AutoML とカスタム トレーニングの 2 種類があります。
- 事前トレーニング済みモデルは、特定の目的を実行し、一般化されたデータでトレーニングされ、すぐに使用できます。
- ユーザーがトレーニングする AutoML モデルまたはカスタム トレーニング モデルでは、サンプルデータを特定して提供し、独自のユースケースに適したモデルをトレーニングする必要があります。これらのモデルは、Vertex AI を使用してトレーニングします。Vertex AI は、AutoML トレーニング モデルとカスタム トレーニング モデルの 2 つのトレーニング オプションを備えたプロダクトです。詳細については、トレーニング方法を選択するをご覧ください。
以下の手順で、事前トレーニング済みの Vertex AI Vision モデルをアプリグラフに追加します。
Console
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーション名の横にある [アプリを表示] を選択します。
アプリケーション ビルダー ページで、[AI モデル] リストから追加するモデルを選択します。各モデルには個別の構成設定があります。
このモデルを入力ソースノードに接続するには、ソースノードを選択し、[
出力を追加] を選択します。[使用可能なノード] のリストから、新しく作成した AI モデルノードを選択します。
ユーザーがトレーニングした Vertex AI モデルを追加する
アプリを作成したら、モデルを追加して、ストリーム、他のモデル、メディア ウェアハウスに接続できます。
モデルには、事前トレーニング済みモデルとユーザー トレーニング モデルの 2 種類があります。同様に、ユーザーがトレーニングするモデルには、AutoML とカスタム トレーニングの 2 種類があります。
- 事前トレーニング済みモデルは、特定の目的を実行し、一般化されたデータでトレーニングされ、すぐに使用できます。
- ユーザーがトレーニングする AutoML モデルまたはカスタム トレーニング モデルでは、サンプルデータを特定して提供し、独自のユースケースに適したモデルをトレーニングする必要があります。これらのモデルは、Vertex AI を使用してトレーニングします。Vertex AI は、AutoML トレーニング モデルとカスタム トレーニング モデルの 2 つのトレーニング オプションを備えたプロダクトです。詳細については、トレーニング方法を選択するをご覧ください。
Vertex AI AutoML オブジェクト検出ストリーミング モデルを追加する
トレーニングした Vertex AI AutoML オブジェクト検出ストリーミング モデルをアプリグラフに追加する手順は次のとおりです。
Vertex AI AutoML モデルをトレーニングする前に、オブジェクト検出データを準備し、データセットを作成する必要があります。
Vertex AI Vision で使用するモデルをトレーニングする
Vertex AI で代表的なデータコレクションを含むデータセットを作成したら、Vertex AI Vision で使用するモデルをトレーニングできます。
Console
Google Cloud コンソールの Vertex AI ダッシュボードで、[データセット] ページに移動します。
モデルのトレーニングに使用するデータセットの名前をクリックして、詳細ページを開きます。
目的のデータ型でアノテーション セットが使用されている場合は、モデルで使用するアノテーション セットを選択します。
[新しいモデルのトレーニング] をクリックします。
[新しいモデルをトレーニング] ページで、AutoML 画像オブジェクト検出モデルに次の手順を完了します。
[モデルのトレーニング方法] セクションで、[
AutoML] を選択します。[モデルを使用する場所の選択] セクションで、[
Vertex AI Vision] を選択します。[続行] をクリックします。
[モデルの詳細]、[トレーニング オプション]、[コンピューティングと料金] セクションに値を入力します。詳細については、AutoML モデルをトレーニングする(Google Cloud コンソール)をご覧ください。
[トレーニングを開始] をクリックします。
データのサイズ、複雑さ、トレーニング予算(指定された場合)に応じて、モデルのトレーニングに何時間もかかることがあります。このタブを閉じて、後で戻ることもできます。モデルのトレーニングが完了すると、メールが送られてきます。
トレーニング済みモデルをアプリに追加する
モデルのトレーニングが完了したら、Vertex AI Vision アプリに追加できます。
Console
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーション名の横にある [アプリを表示] を選択します。
アプリケーション ビルダー ページで、サイド コンポーネントのリストから [Vertex AI モデルを追加] を選択します。このオプションを選択すると、サイドメニューが開きます。
[Vertex AI モデルを追加] メニューで、[Vertex AI からトレーニング済みモデルをインポートする
] オプションをオンのままにして、既存の Vertex AI AutoML モデルのリストからモデルを選択します。インポートするモデルを選択したら、[モデルを追加] を選択します。
[モデルを追加] ボタンをクリックすると、グラフビルダー ページの横に保留中のモデルが表示されます。数秒後にモデルを使用できるようになります。
Vertex AI カスタムモデルを追加する
Vertex AI カスタム トレーニング モデルを Vertex AI Vision にインポートして、データ分析に使用することもできます。これらのカスタム トレーニング モデルには、次のプロパティが必要です。
- モデル入力は異なるアプリケーション インスタンス(ストリーム)から取得される画像であり、順序が異なる可能性があるため、モデルはステートレスである必要があります。ステートフル ストリーミング処理が必要な場合は、独自のコンテナ内に状態を保持する必要があります。
- モデルへの入力サイズは 1.5 MB に制限されています。したがって、Vertex AI Vision は元の RGB 画像を JPG などの非可逆形式に圧縮する必要があります。
次の手順で、トレーニング済みの既存の Vertex AI カスタム トレーニング動画モデルをアプリグラフに追加します。
カスタム コンテナを使用して Vertex AI カスタム トレーニング モデルを作成する方法については、予測にカスタム コンテナを使用するをご覧ください。
インスタンスの YAML ファイルを指定する
Vertex AI カスタム トレーニング モデルを追加する場合は、Cloud Storage に保存されているインスタンス YAML ファイル(instances.yaml
)を指定する必要があります。このファイルには、モデル コンテナへの想定される入力を指定します。
Vertex AI は、次の形式で予測リクエストを送信します。
{
"instances": [
<value>|<simple/nested list>|<object>,
...
]
}
ここで、instances.yaml
はペイロードのスキーマを定義します。詳細については、カスタム トレーニング モデルからオンライン予測を取得するをご覧ください。
Vertex AI Vision は、名前付き予測入力が 1 つしかないカスタム トレーニング モデルのみをサポートしています。この入力タイプは、エンコードされた JPEG 文字列である必要があります。予測入力のスキーマは、インスタンス スキーマの YAML ファイルで指定する必要があります。このスキーマ YAML ファイルは、OpenAPI スキーマ オブジェクトの形式である必要があります。
たとえば、次のスキーマでは、image_bytes
を呼び出すフィールドにイメージがエンコードされたリクエストを受信します。
properties:
image_bytes:
type: string
カスタムモデルは、次の形式で予測入力を受け取ります。
{
"instances": [
{
"image_bytes" : {
"b64": "BASE64_ENCODED_IMAGE_BYTES"
}
}
]
}
モデルを Vertex AI Vision にインポートする前に、この入力でモデルが正しく動作することを確認します。
予測 YAML ファイルを指定する
Vertex AI カスタム トレーニング モデルを追加する場合は、Cloud Storage に保存されている予測 YAML ファイル(predictions.yaml
)を指定できます。このファイルには、モデル コンテナの出力を指定します。
このファイルは省略可能ですが、Vertex AI Vision にモデルの出力構造を通知することをおすすめします。たとえば、次の classification_1.0.0.yaml
ファイルは、画像分類モデルのモデル出力情報を記述しています。
title: Classification
type: object
description: >
The predicted AnnotationSpecs.
properties:
ids:
type: array
description: >
The resource IDs of the AnnotationSpecs that had been identified.
items:
type: integer
format: int64
enum: [0] # As values of this enum all AnnotationSpec IDs the Model
# was trained on will be populated.
displayNames:
type: array
description: >
The display names of the AnnotationSpecs that had been identified,
order matches the IDs.
items:
type: string
enum: [""] # As values of this enum all AnnotationSpec display_names
# the Model was trained on will be populated.
confidences:
type: array
description: >
The Model's confidences in correctness of the predicted IDs, higher
value means higher confidence. Order matches the Ids.
items:
type: number
format: float
minimum: 0.0
maximum: 1.0
カスタム トレーニング モデルを追加する
次のサンプルを使用して、Vertex AI カスタム トレーニング モデルをアプリに追加します。
Console
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーション名の横にある [アプリを表示] を選択します。
アプリケーション ビルダー ページで、サイド コンポーネントのリストから [Vertex AI モデルを追加] を選択します。このオプションを選択すると、サイドメニューが開きます。
[Vertex AI モデルを追加] メニューで、[Vertex AI からトレーニング済みモデルをインポートする
] オプションをオンのままにして、既存の Vertex AI AutoML モデルのリストからモデルを選択します。モデルの名前を指定します。
予測リクエストと説明リクエストで使用される単一インスタンスの形式を定義する、Cloud Storage 内のインスタンス YAML ファイルを指定します。
省略可: 単一の予測または説明の形式を定義する Cloud Storage 内の予測スキーマ YAML ファイルを指定します。
モデル名、インスタンス、予測情報を指定したら、[モデルを追加] を選択します。
[モデルを追加] ボタンをクリックすると、グラフビルダー ページの横に保留中のモデルが表示されます。数秒後にモデルを使用できるようになります。
省略可。アプリケーション メタデータを添付する
画像バイトに加えて、attach_application_metadata
を設定して、カスタム コンテナに送信するアプリケーションのメタデータを含めるように Vertex AI Vision アプリ プラットフォームにリクエストすることもできます。
メタデータのスキーマは次のとおりです。
'appPlatformMetadata': {
'application': STRING;
'instanceId': STRING;
'node': STRING;
'processor': STRING;
}
省略可。動的構成の Pub/Sub トピックを追加する
Vertex Custom Operator が動画フレームを頂点カスタム コンテナに送信するフレームレートを動的に制御するには、Pub/Sub トピックを作成します。ノードの設定の Dynamic Configuration
セクションに追加します。
Pub/Sub トピックが構成されている場合、初期フレームレートは 0 です。動画処理中に、次の形式で Pub/Sub メッセージを Pub/Sub トピックにリアルタイムで送信して、フレームレートを変更できます。
{
"stream_id": "input-stream-id",
"fps": 5,
}
stream_id
フィールドは、アプリケーションの入力ストリームの ID と一致する必要があります。
サービス アカウントと権限
カスタム コンテナのデフォルトのサービス認証情報は、Vertex AI Vision アプリ プラットフォームの Google 所有のサービス アカウントに構成されています。コンテナから他の Google Cloudサービスにアクセスするには、service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com
に適切な権限を付与します。
省略可。Cloud Run 関数と Pub/Sub を使用してイベント通知をモデル化する
Vertex AI Vision では、モデルはカメラなどのデバイスからメディアデータを受信し、データに対して AI 予測を実行し、アノテーションを継続的に生成します。多くの場合、処理されたデータをメディア ウェアハウスや BigQuery などのデータの宛先(「データシンク」)に送信して、さらに分析ジョブを実行します。ただし、一部のアノテーションを別途処理する必要がある場合や、アノテーションのニーズが時間に敏感な場合があります。Cloud Run functions と Pub/Sub との統合は、これらのニーズに対応するのに役立ちます。
サポートされているモデル
次のモデルでは、Cloud Run functions イベント生成と Pub/Sub イベント通知の統合が提供されます。
- 利用人数の分析モデル
- Vertex AI のカスタム トレーニング モデル
モデル出力を処理するように Cloud Run functions を構成する
イベントベースの通知をトリガーするには、まず、モデル出力を処理してイベントを生成する Cloud Run functions 関数を設定する必要があります。
Cloud Run 関数はモデルに接続し、出力をポスト処理アクションとしてリッスンします。Cloud Run 関数は AppPlatformCloudFunctionResponse
を返す必要があります。イベント(appplatformeventbody
)は、次の手順で構成する Pub/Sub トピックに送信されます。
Cloud Run 関数の例については、Cloud Functions と Pub/Sub でモデルイベント通知を有効にするをご覧ください。
次の手順で、モデル出力ストリームを Cloud Run 関数に送信します。
Console
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーション名の横にある
[アプリを表示] を選択します。サポートされているモデルをクリックして、モデルの詳細サイドパネルを開きます。
[イベント通知] セクションの [後処理] リストで、既存の Cloud Run 関数を選択するか、新しい関数を作成します。
Pub/Sub でモデルイベント通知を有効にする
モデル出力を処理してイベントを生成する Cloud Run 関数を設定したら、Pub/Sub でイベント通知を設定できます。トピックからメッセージを読み取るには、Pub/Sub サブスクリプションを選択して作成することも必要です。
Console
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーション名の横にある
[アプリを表示] を選択します。サポートされているモデルをクリックして、モデルの詳細サイドパネルを開きます。
[イベント通知] セクションで、[イベント通知を設定] を選択します。
開いた [イベント通知用に Pub/Sub を設定する] オプション ウィンドウで、既存の Pub/Sub トピックを選択するか、新しいトピックを作成します。
[Frequency] フィールドに、同じタイプのイベントの通知を送信できる頻度(秒単位)の整数値を設定します。
[設定] をクリックします。
モデルの出力をダウンストリーム ノードに接続する
モデルノードを作成したら、その出力を別のノードに接続できます。
Console
Vertex AI Vision ダッシュボードの [アプリケーション] タブを開きます。
リストからアプリケーション名の横にある [アプリを表示] を選択します。
アプリケーション グラフビルダーでデータを出力するモデルノード(Occupancy Count モデルノードなど)をクリックします。
サイドの設定パネルで、[出力を追加] ボタンをクリックします。
[新しい出力を追加] をクリックして、追加する新しい出力ノードを選択するか、出力を送信する既存の使用可能なノードを選択します。
出力をデータの宛先に接続する
データ取り込みストリームを作成して処理ノードをアプリに追加したら、処理済みデータを送信する場所を選択する必要があります。このデータの宛先は、ストリーム データを生成せずにストリーム データを受け入れるアプリグラフのエンドポイントです。選択するデスティネーションは、アプリの出力データをどのように使用するかに応じて異なります。

アプリの出力データを次のデータの宛先に接続できます。
Vision Warehouse: 表示およびクエリ可能な元の動画データまたは分析された動画データを保存します。
アプリの出力データを Vision ウェアハウスに送信する方法については、ウェアハウスに接続してデータを保存するをご覧ください。
BigQuery: BigQuery にデータを保存して、オフライン分析機能を使用します。
アプリの出力データを BigQuery に送信する方法については、BigQuery に接続してデータを保存するをご覧ください。
ライブ配信データ: リアルタイム分析をより細かく制御したい場合は、アプリからライブ出力を受け取ることができます。
アプリの出力データを直接ストリーミングする方法について詳しくは、ライブ ストリーム出力を有効にするをご覧ください。
アプリを更新する
デプロイされていないアプリ
アプリに変更を加えます(コンポーネント ノードの追加や削除など)。Vertex AI Vision によって変更が自動的に保存されます。
次のステップ
- アプリをデプロイしてデータを取り込み、分析する方法については、アプリケーションをデプロイするをご覧ください。
- アプリの入力ストリームからデータの取り込みを開始する方法については、ストリームの作成と管理をご覧ください。
- アプリを一覧表示し、デプロイされたアプリのインスタンスを表示する方法については、アプリケーションの管理をご覧ください。
- 取り込みストリームまたは分析済みモデルの出力データからアプリ入力データを読み取る方法については、ストリームデータを読み取るをご覧ください。