Ottenere le descrizioni delle immagini usando le didascalie visive

Le didascalie visive consentono di generare una descrizione pertinente per un'immagine. Puoi utilizzare queste informazioni per diversi usi:

  • Ottieni metadati più dettagliati sulle immagini per l'archiviazione e la ricerca.
  • Genera sottotitoli automatici per supportare casi d'uso di accessibilità.
  • Ricevi brevi descrizioni dei prodotti e delle risorse visive.
Immagine di esempio con didascalia

Fonte immagine: Santhosh Kumar su Unsplash (ritagliato)

Sottotitolo (breve): una camicia blu a pois bianchi appesa a un gancio

Lingue supportate

I sottotitoli codificati sono disponibili nelle seguenti lingue:

  • Inglese (en)
  • Francese (fr)
  • Tedesco (de)
  • Italiano (it)
  • Spagnolo (es)

Prestazioni e limitazioni

Quando utilizzi questo modello, si applicano i seguenti limiti:

Limiti Valore
Numero massimo di richieste API (formato breve) al minuto per progetto 500
Numero massimo di token restituiti nella risposta (formato breve) 64 token
Numero massimo di token accettati nella richiesta (solo VQA nel formato breve) 80 token
Numero massimo di token restituiti in risposta (formato lungo) 512 token

Quando utilizzi questo modello, vengono applicate le seguenti stime di latenza del servizio. Questi valori hanno scopo illustrativo e non sono una promessa di servizio:

Latenza Valore
Richieste API (formato breve) 1,5 secondi
Richieste API (formato lungo) 4,5 secondi

Località

Una località è una regione che puoi specificare in una richiesta per controllare dove sono archiviati i dati at-rest. Per un elenco delle regioni disponibili, consulta Generative AI on Vertex AI località.

Creare didascalie per le immagini nel formato breve

Utilizza i seguenti esempi per generare didascalie brevi per un'immagine.

Console

  1. Nella console Google Cloud, apri la scheda Vertex AI Studio > Vision nella dashboard Vertex AI.

    Vai alla scheda Vertex AI Studio

  2. Nel menu in basso, fai clic su Sottotitolo.

  3. Fai clic su Carica immagine per selezionare l'immagine locale da aggiungere alla didascalia.

  4. Nel riquadro Parametri, scegli Numero di sottotitoli e Lingua.

  5. Fai clic su Genera didascalia.

REST

Per ulteriori informazioni sulle richieste del modello imagetext, consulta la documentazione di riferimento dell'API del modello imagetext.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione del tuo progetto. Ad esempio, us-central1, europe-west2 o asia-northeast3. Per un elenco delle regioni disponibili, consulta la pagina relativa all'IA generativa sulle località di Vertex AI.
  • B64_IMAGE: l'immagine per la quale ottenere i sottotitoli codificati. L'immagine deve essere specificata come una stringa di byte codificata in Base64. Dimensioni massime: 10 MB.
  • RESPONSE_COUNT: il numero di didascalie delle immagini che vuoi generare. Valori interi accettati: 1-3.
  • LANGUAGE_CODE: uno dei codici lingua supportati. Lingue supportate:
    • Inglese (en)
    • Francese (fr)
    • Tedesco (de)
    • Italiano (it)
    • Spagnolo (es)

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

arricciatura

Salva il corpo della richiesta in un file denominato request.json ed esegui questo comando:

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

Salva il corpo della richiesta in un file denominato request.json ed esegui questo comando:

$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
Le seguenti risposte di esempio si riferiscono a una richiesta con "sampleCount": 2. La risposta restituisce due stringhe di previsione.

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

Spagnolo (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

Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python Vertex AI.

Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

In questo esempio utilizzerai il metodo load_from_file per fare riferimento a un file locale come base Image per cui ottenere una didascalia. Dopo aver specificato l'immagine di base, utilizza il metodo get_captions su ImageTextModel e stampa l'output.


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)

Utilizzare i parametri per le didascalie delle immagini

Quando visualizzi le didascalie delle immagini, puoi impostare diversi parametri a seconda del caso d'uso.

Numero risultati

Utilizza il parametro del numero di risultati per limitare la quantità di sottotitoli restituiti per ogni richiesta inviata. Per maggiori informazioni, consulta il riferimento sull'API del modello imagetext (titolaggio delle immagini).

Numero di origine

Un numero che aggiungi a una richiesta per rendere deterministiche le descrizioni generate. L'aggiunta di un numero seed alla richiesta è un modo per assicurarti di ricevere ogni volta le stesse previsioni (descrizioni). Tuttavia, le didascalie delle immagini non restituiscono necessariamente nello stesso ordine. Per maggiori informazioni, consulta il riferimento sull'API del modello imagetext (titolaggio delle immagini).

Passaggi successivi