画像キャプション

imagetext は、画像キャプションをサポートするモデルの名前です。imagetext は、指定された言語に基づいて、指定された画像から字幕を生成します。このモデルは、英語(en)、ドイツ語(de)、フランス語(fr)、スペイン語(es)、イタリア語(it)の言語をサポートしています。

コンソールでこのモデルを調べるには、Model Garden に移動して Image Captioning モデルカードを確認します。

Model Garden に移動

ユースケース

画像キャプションの一般的なユースケースは次のとおりです。

  • クリエイターが、アップロードされた画像や動画に字幕(動画シーケンスの簡単な説明など)を生成する
  • 商品を説明する字幕を生成する
  • API を使用して字幕をアプリに統合し、新しいエクスペリエンスを創出する

HTTP リクエスト

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

リクエストの本文

{
  "instances": [
    {
      "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,
    "storageUri": string,
    "language": string,
    "seed": integer
  }
}

Imagen モデル imagetext では、次のパラメータを使用します。詳細については、視覚的キャプションを使用して画像説明を取得するをご覧ください。

パラメータ 説明 使用できる値
instances 情報を取得する画像の詳細を含むオブジェクトを含む配列。 配列(1 つの画像オブジェクトを含めることができる
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
storageUri 省略可。生成されたテキスト レスポンスを保存する Cloud Storage のロケーション。 string
language 省略可。レスポンスをガイドするためのテキスト プロンプト。 文字列: en(デフォルト)、defrites

リクエストの例

REST

Vertex AI API を使用してテキスト プロンプトをテストするには、パブリッシャー モデル エンドポイントに POST リクエストを送信します。

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

  • PROJECT_ID: Google Cloud プロジェクト ID
  • LOCATION: プロジェクトのリージョン。たとえば、us-central1europe-west2asia-northeast3 です。使用可能なリージョンの一覧については、Vertex AI の生成 AI のロケーションをご覧ください。
  • B64_IMAGE: 字幕を取得する画像。画像は base64 でエンコードされたバイト文字列として指定する必要があります。サイズ制限: 10 MB。
  • RESPONSE_COUNT: 生成する画像キャプションの数。指定できる整数値: 1~3。
  • LANGUAGE_CODE: サポートされている言語コードのいずれか。サポートされている言語:
    • 英語(en
    • フランス語(fr
    • ドイツ語(de
    • イタリア語(it
    • スペイン語(es

HTTP メソッドと URL:

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

リクエストの本文(JSON):

{
  "instances": [
    {
      "image": {
          "bytesBase64Encoded": "B64_IMAGE"
      }
    }
  ],
  "parameters": {
    "sampleCount": RESPONSE_COUNT,
    "language": "LANGUAGE_CODE"
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

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 を含むリクエストに対するものです。レスポンスは 2 つの予測文字列を返します。

英語(en):

{
  "predictions": [
    "a yellow mug with a sheep on it sits next to a slice of cake",
    "a cup of coffee with a heart shaped latte art next to a slice of cake"
  ],
  "deployedModelId": "DEPLOYED_MODEL_ID",
  "model": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID",
  "modelDisplayName": "MODEL_DISPLAYNAME",
  "modelVersionId": "1"
}

スペイン語(es):

{
  "predictions": [
    "una taza de café junto a un plato de pastel de chocolate",
    "una taza de café con una forma de corazón en la espuma"
  ]
}

レスポンスの本文

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

レスポンスの例

{
  "predictions": [
    "text1",
    "text2"
  ]
}