視覚的な質問と回答(VQA)

キャプションと VQA 用の Imagen(imagetext)は、画像に関する質問と回答をサポートするモデルの名前です。キャプションと VQA 用の Imagen は、特定の画像に与えられた質問に回答します。これには、モデルがこれまでに見たことのない画像も含まれます。

このモデルをコンソールで確認するには、Model Garden に移動して「キャプションと VQA 用の Imagen」モデルカードをご覧ください。

Model Garden に移動

ユースケース

画像に関する質問と回答の一般的なユースケースには、次のようなものがあります。

  • Q&A により、ユーザーの関心の高い視覚的なコンテンツを提供する。
  • 小売アプリやウェブサイトに表示される商品画像に関心を持たせるようにする。
  • 視覚障がいのあるユーザー向けにユーザー補助機能を提供する。

HTTP リクエスト

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagetext:predict

リクエストの本文

{
  "instances": [
    {
      "prompt": string,
      "image": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      }
    }
  ],
  "parameters": {
    "sampleCount": integer,
    "seed": integer
  }
}

視覚的な Q&A 生成モデル imagetext では、次のパラメータを使用します。詳しくは、視覚的な質問応答(VQA)を使用するをご覧ください。

パラメータ 説明 使用できる値
instances 情報を取得するプロンプトと画像の詳細を含むオブジェクトを含む配列。 配列(1 つの画像オブジェクトを含めることができる
prompt 回答を得たい画像に関する質問。 文字列(最大 80 トークン)
bytesBase64Encoded 情報を取得する画像。 base64 でエンコードされた画像文字列(PNG または JPEG、最大 20 MB)
gcsUri 情報を取得する画像の Cloud Storage URI。 Cloud Storage 内の画像ファイルの文字列 URI(PNG または JPEG、最大 20 MB)
mimeType 省略可。指定する画像の MIME タイプ。 文字列(image/jpeg または image/png
sampleCount 生成されるテキスト文字列の数。 Int 値: 1~3
seed 省略可。乱数ジェネレータ(RNG)に対するシード。入力を使用するリクエストの RNG シードが同じであれば、予測結果は同じになります。 integer

リクエストの例

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクト ID
  • LOCATION: プロジェクトのリージョン。たとえば、us-central1europe-west2asia-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"
  ]
}

レスポンスの本文


{
  "predictions": [
    string
  ]
}
レスポンス要素 説明
predictions VQA の回答を表すテキスト文字列のリスト。信頼度で並べ替えられています。

レスポンスの例

次のサンプル レスポンスは、"sampleCount": 2"prompt": "What is this?" を含むリクエストに対するものです。レスポンスは回答として 2 つの予測文字列を返します。

{
  "predictions": [
    "cappuccino",
    "coffee"
  ],
  "deployedModelId": "DEPLOYED_MODEL_ID",
  "model": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID",
  "modelDisplayName": "MODEL_DISPLAYNAME",
  "modelVersionId": "1"
}