Visual Captioning vous permet de générer une description pertinente pour une image. Vous pouvez utiliser ces informations pour diverses utilisations :
- Obtenir des métadonnées plus détaillées sur les vidéos pour le stockage et la recherche.
- Générez des sous-titres automatiques pour faciliter les cas d'utilisation de l'accessibilité.
- Recevoir des descriptions rapides des produits et des éléments visuels.
Source de l'image : Santhosh Kumar sur Unsplash (recadrée)
Légende (courte) : une chemise bleue à pois blancs est suspendue à un crochet
Langues disponibles
Visual Captioning est disponible dans les langues suivantes :
- Anglais (
en
) - Français (
fr
) - Allemand (
de
) - Italien (
it
) - Espagnol (
es
)
Performances et limites
Les limites suivantes s'appliquent lorsque vous utilisez le modèle :
Limites | Valeur |
---|---|
Nombre maximal de requêtes API (version courte) par minute et par projet | 500 |
Nombre maximal de jetons renvoyés dans la réponse (version courte) | 64 jetons |
Nombre maximal de jetons acceptés dans la requête (version courte VQA uniquement) | 80 jetons |
Les estimations de latence de service suivantes s'appliquent lorsque vous utilisez ce modèle. Ces valeurs sont fournies à titre indicatif et ne constituent pas une promesse de service :
Latence | Valeur |
---|---|
Requêtes API (version courte) | 1,5 secondes |
Emplacements
Un emplacement est une région que vous pouvez spécifier dans une requête pour contrôler l'emplacement de stockage des données au repos. Pour obtenir la liste des régions disponibles, consultez la section Emplacements AI générative sur Vertex AI.
Filtrage Sécurité de l'IA responsable
Le modèle de fonctionnalité de sous-titrage et de systèmes visuels de questions-réponses d'images (Visual Question Answering, VQA) n'est pas compatible avec les filtres de sécurité configurables par l'utilisateur. Toutefois, le filtrage de sécurité global d'Imagen s'effectue sur les données suivantes :
- Entrée utilisateur
- Sortie du modèle
Par conséquent, votre résultat peut différer de l'exemple si Imagen applique ces filtres de sécurité. Prenons les exemples suivants.
Entrée filtrée
Si l'entrée est filtrée, la réponse se présente comme suit :
{
"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\" }"
}
]
}
}
Résultat filtré
Si le nombre de réponses renvoyées est inférieur au nombre d'échantillons spécifié, cela signifie que les réponses manquantes sont filtrées par l'IA responsable. Par exemple, voici une réponse à une requête comportant "sampleCount": 2
, mais pour laquelle l'une des réponses a été filtrée :
{
"predictions": [
"cappuccino"
]
}
Si l'ensemble du résultat est filtré, la réponse est un objet vide semblable à ce qui suit :
{}
Obtenir des légendes d'image courtes
Utilisez les exemples suivants pour générer des légendes courtes pour une image.
REST
Pour en savoir plus sur les requêtes de modèle imagetext
, consultez la
documentation de référence de l'API de modèle imagetext
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : L'ID de votre projet Google Cloud.
- LOCATION : région de votre projet. Par exemple,
us-central1
,europe-west2
ouasia-northeast3
. Pour obtenir la liste des régions disponibles, consultez la section Emplacements IA générative sur Vertex AI. - B64_IMAGE : image pour laquelle vous souhaitez obtenir une légende. L'image doit être spécifiée en tant que chaîne d'octets encodée en base64. Limite de taille : 10 Mo
- RESPONSE_COUNT : nombre de sous-titres d'images que vous souhaitez générer. Valeurs entières acceptées : 1-3.
- LANGUAGE_CODE : l'un des codes de langue acceptés. Langages acceptés :
- Anglais (
en
) - Français (
fr
) - Allemand (
de
) - Italien (
it
) - Espagnol (
es
)
- Anglais (
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict
Corps JSON de la requête :
{ "instances": [ { "image": { "bytesBase64Encoded": "B64_IMAGE" } } ], "parameters": { "sampleCount": RESPONSE_COUNT, "language": "LANGUAGE_CODE" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
. La réponse renvoie deux chaînes de prédiction.
Anglais (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" }
Espagnol (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
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Python.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Dans cet exemple, la méthode load_from_file
vous permet de référencer un fichier local en tant qu'Image
de base à sous-titrer. Après avoir spécifié l'image de base, vous utilisez la méthode get_captions
sur ImageTextModel
et imprimez le résultat.
Utiliser les paramètres pour le sous-titrage d'images
Lorsque vous obtenez des sous-titres d'images, vous pouvez définir plusieurs paramètres en fonction de votre cas d'utilisation.
Nombre de résultats
Utilisez le paramètre Nombre de résultats pour limiter la quantité de sous-titres renvoyés pour chaque requête que vous envoyez. Pour en savoir plus, consultez la documentation de référence de l'API du modèle imagetext
(sous-titrage d'images).
Numéro source
Nombre que vous ajoutez à une requête pour rendre les descriptions générées déterministes.
L'ajout d'un nombre source à votre requête vous permet d'obtenir la même prédiction (descriptions) à chaque fois. Cependant, les sous-titres d'image ne sont pas nécessairement renvoyés dans le même ordre. Pour en savoir plus, consultez la documentation de référence de l'API du modèle imagetext
(sous-titrage d'images).
Étapes suivantes
- Regardez des vidéos décrivant les modèles de fondation de Vertex AI, y compris Imagen, le modèle de fondation de texte sur image qui vous permet de générer et de modifier des images :
- Consultez les articles de blog décrivant Imagen et l'IA générative sur Vertex AI :