Bildbeschreibungen mit der visuellen Untertitelung abrufen

Mit der Untertiteloption können Sie relevante Beschreibungen für Bilder erstellen. Sie können diese Informationen für verschiedene Zwecke verwenden:

  • Rufen Sie detailreichere Metadaten zu Bildern zum Speichern und Suchen ab.
  • Automatisch Untertitel für Anwendungsfälle im Bereich der Barrierefreiheit zu generieren.
  • Kurze Beschreibungen zu Produkten und visuellen Assets erhalten.
Beispiel für ein Bild mit Untertitel

Bildquelle: Santhosh Kumar auf Unsplash (abgeschnitten)

Untertitel (Kurzform): Ein blaues, weiß gepunktetes Hemd hängt an einem Haken

Unterstützte Sprachen

Die visuelle Untertitelung ist in folgenden Sprachen verfügbar:

  • Englisch (en)
  • Französisch (fr)
  • Deutsch (de)
  • Italienisch (it)
  • Spanisch (es)

Leistung und Einschränkungen

Die folgenden Limits gelten, wenn Sie das -Modell verwenden:

Limits Wert
Maximale Anzahl an API-Anfragen (Kurzform) pro Minute und Projekt 500
Maximale Anzahl an Tokens, die als Antwort zurückgegeben werden (Kurzform) 64 Tokens
Maximale Anzahl der in der Anfrage akzeptierten Tokens (nur VQA-Kurzform) 80 Tokens
Maximale Anzahl an Tokens, die als Antwort zurückgegeben werden (Langform) 512 Tokens

Die folgenden Schätzungen der Dienstlatenz gelten, wenn Sie dieses Modell verwenden. Diese Werte dienen zur Veranschaulichung und sind kein Dienstversprechen:

Latenz Wert
API-Anfragen (Kurzform) 1,5 Sekunden
API-Anfragen (Langform) 4,5 Sekunden

Standorte

Ein Standort ist eine Region, die Sie in einer Anfrage angeben können, um zu steuern, wo Daten im Ruhezustand gespeichert werden. Eine Liste der verfügbaren Regionen finden Sie unter Generative AI an Vertex AI-Standorten.

Sicherheitsfilter für verantwortungsbewusste KI

Das Featuremodell für Bilduntertitel und VQA (Visual Question Answering) unterstützt keine vom Nutzer konfigurierbaren Sicherheitsfilter. Die gesamte Imagen-Sicherheitsfilterung erfolgt jedoch für die folgenden Daten:

  • Nutzereingabe
  • Modellausgabe

Daher kann Ihre Ausgabe von der Beispielausgabe abweichen, wenn Imagen diese Sicherheitsfilter anwendet. Betrachten Sie hierzu folgende Beispiele.

Gefilterte Eingabe

Wenn die Eingabe gefiltert ist, sieht die Antwort in etwa so aus:

{
  "error": {
    "code": 400,
    "message": "Media reasoning failed with the following error: The response is blocked, as it may violate our policies. If you believe this is an error, please send feedback to your account team. Error Code: 63429089, 72817394",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: Media reasoning failed with the following error: The response is blocked, as it may violate our policies. If you believe this is an error, please send feedback to your account team. Error Code: 63429089, 72817394 [google.rpc.error_details_ext] { message: \"Media reasoning failed with the following error: The response is blocked, as it may violate our policies. If you believe this is an error, please send feedback to your account team. Error Code: 63429089, 72817394\" }"
      }
    ]
  }
}

Gefilterte Ausgabe

Wenn die Anzahl der zurückgegebenen Antworten kleiner als die von Ihnen angegebene Anzahl ist, bedeutet dies, dass die fehlenden Antworten von der Responsible AI gefiltert werden. Das folgende Beispiel zeigt eine Antwort auf eine Anfrage mit "sampleCount": 2, eine der Antworten wird jedoch herausgefiltert:

{
  "predictions": [
    "cappuccino"
  ]
}

Wenn die gesamte Ausgabe gefiltert wird, ist die Antwort ein leeres Objekt ähnlich dem folgenden:

{}

Kurze Bilduntertitel erhalten

Verwenden Sie folgende Beispiele, um kurze Untertitel für ein Bild zu generieren.

REST

Weitere Informationen zu imagetext-Modellanfragen finden Sie in der imagetextAPI-Referenz des Modells.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID.
  • LOCATION: Die Region Ihres Projekts. Beispiel: us-central1, europe-west2 oder asia-northeast3. Eine Liste der verfügbaren Regionen finden Sie unter Generative AI an Vertex AI-Standorten.
  • B64_IMAGE: Das Bild, dem Text hinzugefügt werden soll. Das Bild muss als base64-codierter Bytestring angegeben werden. Größenbeschränkung: 10 MB.
  • RESPONSE_COUNT: Die Anzahl der Bilduntitel, die Sie generieren möchten. Zulässige Ganzzahlwerte: 1–3.
  • LANGUAGE_CODE: Einer der unterstützten Sprachcodes. Unterstützte Sprachen:
    • Englisch (en)
    • Französisch (fr)
    • Deutsch (de)
    • Italienisch (it)
    • Spanisch (es)

HTTP-Methode und URL:

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

JSON-Text der Anfrage:

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

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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
Die folgenden Beispielantworten beziehen sich auf eine Anfrage mit "sampleCount": 2. Die Antwort gibt zwei Vorhersagestrings zurück.

Englisch (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"
}

Spanisch (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"
  ]
}

Python

Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

In diesem Beispiel verwenden Sie die Methode load_from_file, um auf eine lokale Datei als Basis-Image zu verweisen, für die ein Untertitel abgerufen werden soll. Nachdem Sie das Basis-Image angegeben haben, verwenden Sie die Methode get_captions in der ImageTextModel und drucken die Ausgabe.


import vertexai
from vertexai.preview.vision_models import Image, ImageTextModel

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
# input_file = "my-input.png"

vertexai.init(project=project_id, location="us-central1")

model = ImageTextModel.from_pretrained("imagetext@001")
source_img = Image.load_from_file(location=input_file)

captions = model.get_captions(
    image=source_img,
    # Optional parameters
    language="en",
    number_of_results=1,
)

print(captions)

Parameter für Bilduntertitel verwenden

In Sachen Bilduntertitel gibt es je nach Anwendungsfall mehrere einstellbare Parameter.

Anzahl der Ergebnisse

Verwenden Sie die Anzahl der Ergebnisparameter, um die Anzahl der Untertitel zu begrenzen, die pro gesendeter Anfrage zurückgegeben werden. Weitere Informationen finden Sie in der API-Referenz des Modells imagetext (Bilduntertitelung).

Quell-Nummer

Eine Zahl, die Sie einer Anfrage hinzufügen, um generierte Beschreibungen deterministisch zu machen. Durch Hinzufügen einer Quell-Nummer zu Ihrer Anfrage können Sie sicher sein, dass Sie jedes Mal dieselben Vorhersagen (Antworten) erhalten. Die Bilduntertitel werden jedoch nicht unbedingt in derselben Reihenfolge zurückgegeben. Weitere Informationen finden Sie in der API-Referenz des Modells imagetext (Bilduntertitelung).

Nächste Schritte