Verwenden Sie VQA (Visual Question Answering), um Bildinformationen zu erhalten.

Mit VQA (Visual Question Answering) können Sie dem Modell ein Bild zur Verfügung stellen und eine Frage zum Inhalt des Bildes stellen. In Reaktion auf Ihre Frage erhalten Sie eine oder mehrere Antworten in natürlicher Sprache.

Beispiel-VQA-Bild, Frage und Antworten in der Console
Bildquelle (in der Google Cloud Console angezeigt): Sharon Pittaway auf Unsplash
Prompt-Frage: Welche Objekte befinden sich im Bild?
Antwort 1: Murmeln
Antwort 2: Glasmurmeln

Unterstützte Sprachen

VQA ist in folgenden Sprachen verfügbar:

  • Englisch (en)

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.

VQA für ein Bild verwenden (Kurzform-Antworten)

Verwenden Sie folgende Beispiele, um eine Frage zu stellen und eine Antwort zu einem Bild zu erhalten.

Console

  1. Öffnen Sie in der Google Cloud Console den Tab Vertex AI Studio > Vision im Vertex AI-Dashboard.

    Zum Tab Vertex AI Studio

  2. Klicken Sie im unteren Menü auf Visuelles Q & A.

  3. Klicken Sie auf Bild hochladen, um ein lokales Bild zur Untertitelung auszuwählen.

  4. Wählen Sie im Bereich Parameter die Anzahl der Untertitel und die Sprache.

  5. Geben Sie im Prompt-Feld eine Frage zu dem hochgeladenen Bild ein.

  6. Klicken Sie auf Senden.

REST

Weitere Informationen zu imagetext-Modellanfragen finden Sie in der API-Referenz des imagetext-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.
  • VQA_PROMPT: Die Frage, die Sie zu Ihrem Bild beantworten lassen möchten.
    • Welche Farbe hat der Schuh?
    • Welche Art von Ärmeln hat das Hemd?
  • B64_IMAGE: Das Bild, dem Text hinzugefügt werden soll. Das Bild muss als base64-codierter Bytestring angegeben werden. Größenbeschränkung: 100 MB.
  • RESPONSE_COUNT: Die Anzahl der Antworten, die Sie generieren möchten. Zulässige Ganzzahlwerte: 1–3.

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": [
    {
      "prompt": "VQA_PROMPT",
      "image": {
          "bytesBase64Encoded": "B64_IMAGE"
      }
    }
  ],
  "parameters": {
    "sampleCount": RESPONSE_COUNT
  }
}

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 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 und "prompt": "What is this?". Die Antwort gibt zwei Vorhersagestringantworten zurück.
{
  "predictions": [
    "cappuccino",
    "coffee"
  ],
  "deployedModelId": "DEPLOYED_MODEL_ID",
  "model": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID",
  "modelDisplayName": "MODEL_DISPLAYNAME",
  "modelVersionId": "1"
}

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, zu der Sie Informationen abrufen. Nachdem Sie das Basis-Image angegeben haben, verwenden Sie die Methode ask_question in der ImageTextModel und drucken die Antworten.


import argparse

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

def get_short_form_image_responses(
    project_id: str, location: str, input_file: str, question: str
) -> list:
    """Get short-form responses to a question about a local image.
    Args:
      project_id: Google Cloud project ID, used to initialize Vertex AI.
      location: Google Cloud region, used to initialize Vertex AI.
      input_file: Local path to the input image file.
      question: The question about the contents of the image."""

    vertexai.init(project=project_id, location=location)

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

    answers = model.ask_question(
        image=source_img,
        question=question,
        # Optional parameters
        number_of_results=1,
    )

    print(answers)

    return answers

Parameter für VQA verwenden

Wenn Sie VQA-Antworten erhalten, gibt es je nach Anwendungsfall mehrere Parameter.

Anzahl der Ergebnisse

Verwenden Sie die Anzahl der Ergebnisparameter, um die Anzahl der Antworten zu begrenzen, die pro gesendeter Anfrage zurückgegeben werden. Weitere Informationen finden Sie in der API-Referenz für das Modell imagetext (VQA).

Quell-Nummer

Eine Zahl, die Sie einer Anfrage hinzufügen, um generierte Antworten 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 Antworten werden jedoch nicht unbedingt in derselben Reihenfolge zurückgegeben. Weitere Informationen finden Sie in der API-Referenz für das Modell imagetext (VQA).

Nächste Schritte