Visual Question & Answering(VQA)機能を使用すると、モデルに画像を渡して画像の内容について質問できます。質問に対して、自然言語の回答が 1 つ以上返されます。
サポートされている言語
VQA は以下の言語でご利用いただけます。
- English (en)
パフォーマンスと制限事項
このモデルを使用するときは次の上限が適用されます。
上限 | 値 |
---|---|
各プロジェクト 1 分あたりの最大 API リクエスト数(短形式) | 500 |
レスポンスで返されるトークンの最大数(短形式) | 64 トークン |
リクエストで受け入れられるトークンの最大数(VQA の短形式のみ) | 80 トークン |
レスポンスで返されるトークンの最大数(長形式) | 512 トークン |
このモデルを使用する場合は、次のサービス レイテンシの見積もりが適用されます。これらの値は例示を目的としたものであり、サービスを約束するものではありません。
レイテンシ | 値 |
---|---|
API リクエスト(短形式) | 1.5 秒 |
API リクエスト(長形式) | 4.5 秒 |
ロケーション
ロケーションは、データの保存場所を制御するためにリクエストで指定できるリージョンです。使用可能なリージョンの一覧については、Vertex AI の生成 AI のロケーションをご覧ください。
画像で VQA を使用する(短形式のレスポンス)
次のサンプルを使用して画像について質問し、回答を得てみましょう。
コンソール
Google Cloud コンソールの Vertex AI ダッシュボードで [Vertex AI Studio] > [ビジョン] タブを開きます。
下部のメニューで [Visual Q&A] をクリックします。
[画像のアップロード] をクリックして、キャプションを付けるローカル画像を選択します。
[パラメータ] パネルで、キャプション数と言語を選択します。
プロンプトのフィールドに、アップロードした画像に関する質問を入力します。
[
Submit] をクリックします。
REST
imagetext
モデル リクエストの詳細については、imagetext
モデル API リファレンスをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクト ID。
- LOCATION: プロジェクトのリージョン。たとえば、
us-central1
、europe-west2
、asia-northeast3
です。使用可能なリージョンの一覧については、Vertex AI の生成 AI のロケーションをご覧ください。 - VQA_PROMPT: 回答を得たい画像に関する質問。
- この靴は何色?
- シャツの袖の種類を教えて。
- B64_IMAGE: 字幕を取得する画像。画像は base64 でエンコードされたバイト文字列として指定する必要があります。サイズの上限: 10 MB。
- RESPONSE_COUNT: 生成したい回答の数。指定できる整数値: 1~3。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict
リクエストの本文(JSON):
{ "instances": [ { "prompt": "VQA_PROMPT", "image": { "bytesBase64Encoded": "B64_IMAGE" } } ], "parameters": { "sampleCount": RESPONSE_COUNT } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict" | Select-Object -Expand Content
"sampleCount": 2
と "prompt": "What is this?"
を含むリクエストに対するものです。レスポンスは回答として 2 つの予測文字列を返します。{ "predictions": [ "cappuccino", "coffee" ] }
Python
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Vertex AI Python API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
このサンプルでは、load_from_file
メソッドを使用して、情報の取得対象となるベース Image
としてローカル ファイルを参照します。ベース画像を指定したら、ImageTextModel
で ask_question
メソッドを使用して、回答を表示します。
VQA 用パラメータを使用する
VQA のレスポンスを受け取るとき、ユースケースに応じていくつかのパラメータを設定できます。
検索結果の表示件数
検索結果の表示件数のパラメータを使用して、送信するリクエストごとに返される回答の数を制限できます。詳細については、imagetext
(VQA)モデル API リファレンスをご覧ください。
シード番号
生成される回答を確定するためリクエストに追加する数値。リクエストにシード番号を追加すると、毎回確実に同じ予測(回答)が得られます。ただし、回答が同じ順序で返されるとは限りません。詳細については、imagetext
(VQA)モデル API リファレンスをご覧ください。
次のステップ
- テキストから画像を生成して編集できる基盤モデル(Imagen)など、Vertex AI 基盤モデルを説明する次の動画をご覧ください。
- Vertex AI の Imagen と Vertex AI の生成 AI について説明する以下のブログ投稿を確認する。