Une fois que vous avez créé votre ensemble de produits et que celui-ci a été indexé, vous pouvez l'interroger à l'aide de l'API Cloud Vision.
Rechercher des produits correspondants
Pour rechercher des produits semblables à une image donnée, transmettez l'URI Google Cloud Storage, l'URL Web ou la chaîne encodée en base64 de l'image à la fonctionnalité de recherche de produits de l'API Vision. Consultez la page Limites d'utilisation pour connaître la taille maximale des requêtes et obtenir des informations sur les quotas.
Pour obtenir des exemples de détection d'un seul produit et de détection de plusieurs produits dans une image, consultez la section Comprendre les réponses des recherches et la multidétection.
Effectuer une recherche à l'aide d'une image locale
Les exemples suivants lisent un fichier local et interrogent l'API en intégrant dans la requête les octets bruts de l'image (qui est encodée en base64).
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- BASE64_ENCODED_IMAGE : représentation en base64 (chaîne ASCII) de vos données d'image binaires. Cette chaîne doit ressembler à la chaîne suivante :
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- PROJECT_ID : ID de votre projet Google Cloud.
- LOCATION_ID : identifiant d'emplacement valide. Les identifiants d'emplacement valides sont :
us-west1
,us-east1
,europe-west1
etasia-east1
. - PRODUCT_SET_ID : ID de l'ensemble de produits sur lequel vous souhaitez exécuter l'opération.
Remarque sur les champs :
features.maxResults
: nombre maximal de résultats à afficher.imageContext.productCategories
: catégorie de produits dans laquelle effectuer la recherche. Actuellement, vous ne pouvez spécifier qu'une seule catégorie de produits : "homegoods" (articles de maison), "apparel" (vêtements), "toys" (jouets), "packaged goods" (biens de consommation courante) et "general" (général).imageContext.filter
(facultatif) - Expression (ou expressions multiples) de filtrage par clé-valeur pour le libellé de produit. Format : "key
=value
". Le filtrage des paires clé-valeur peut être lié aux expressions AND ou OR : "color
=blue
ANDstyle
=mens
" ou "color
=blue
ORcolor
=black
". Si vous utilisez l'expression OR, toutes les clés de l'expression doivent être identiques.
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/images:annotate
Corps JSON de la requête :
{ "requests": [ { "image": { "content": base64-encoded-image }, "features": [ { "type": "PRODUCT_SEARCH", "maxResults": 5 } ], "imageContext": { "productSearchParams": { "productSet": "projects/project-id/locations/location-id/productSets/product-set-id", "productCategories": [ "apparel" ], "filter": "style = womens" } } } ] }
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 "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
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"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
Si la requête aboutit, le serveur affiche un code d'état HTTP 200 OK
et la réponse au format JSON.
La réponse JSON inclut les deux types de résultats suivants :
productSearchResults
: contient une liste de produits correspondants pour l'image entière. Dans l'exemple de réponse, les produits correspondants sont : product_id65, product_id35, product_id34, product_id62, product_id32.productGroupedResults
: contient les coordonnées du cadre de délimitation et les éléments correspondants pour chaque produit identifié dans l'image. Dans la réponse suivante, un seul produit a été identifié, suivi des produits correspondants dans l'exemple d'ensemble de produits : product_id65, product_id35, product_id34, product_id93, product_id62.
Notez que, même s'il existe un chevauchement dans les deux types de résultats, il peut également y avoir des différences (par exemple, product_id32 et product_id93 dans la réponse).
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Go.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, 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.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Java.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, 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.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Node.js.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, 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.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Python.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, 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.
Langues supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec Ruby.
Rechercher sur la base d'une image distante
Vous avez également la possibilité de rechercher des produits similaires à une image en spécifiant l'URI Cloud Storage de l'image.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- CLOUD_STORAGE_IMAGE_URI : chemin d'accès à un fichier image valide dans un bucket Cloud Storage. Il faut au minimum disposer des droits en lecture sur le fichier.
Exemple :
gs://storage-bucket/filename.jpg
- PROJECT_ID : ID de votre projet Google Cloud.
- LOCATION_ID : identifiant d'emplacement valide. Les identifiants d'emplacement valides sont :
us-west1
,us-east1
,europe-west1
etasia-east1
. - PRODUCT_SET_ID : ID de l'ensemble de produits sur lequel vous souhaitez exécuter l'opération.
Remarque sur les champs :
features.maxResults
: nombre maximal de résultats à afficher.imageContext.productCategories
: catégorie de produits dans laquelle effectuer la recherche. Actuellement, vous ne pouvez spécifier qu'une seule catégorie de produits : "homegoods" (articles de maison), "apparel" (vêtements), "toys" (jouets), "packaged goods" (biens de consommation courante) et "general" (général).imageContext.filter
(facultatif) - Expression (ou expressions multiples) de filtrage par clé-valeur pour le libellé de produit. Format : "key
=value
". Le filtrage des paires clé-valeur peut être lié aux expressions AND ou OR : "color
=blue
ANDstyle
=mens
" ou "color
=blue
ORcolor
=black
". Si vous utilisez l'expression OR, toutes les clés de l'expression doivent être identiques.
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/images:annotate
Corps JSON de la requête :
{ "requests": [ { "image": { "source": { "gcsImageUri": "cloud-storage-image-uri" } }, "features": [ { "type": "PRODUCT_SEARCH", "maxResults": 5 } ], "imageContext": { "productSearchParams": { "productSet": "projects/project-id/locations/location-id/productSets/product-set-id", "productCategories": [ "apparel" ], "filter": "style = womens" } } } ] }
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 "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
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"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
Si la requête aboutit, le serveur affiche un code d'état HTTP 200 OK
et la réponse au format JSON.
La réponse JSON inclut les deux types de résultats suivants :
productSearchResults
: contient une liste de produits correspondants pour l'image entière. Dans l'exemple de réponse, les produits correspondants sont : product_id65, product_id35, product_id34, product_id62, product_id32.productGroupedResults
: contient les coordonnées du cadre de délimitation et les éléments correspondants pour chaque produit identifié dans l'image. Dans la réponse suivante, un seul produit a été identifié, suivi des produits correspondants dans l'exemple d'ensemble de produits : product_id65, product_id35, product_id34, product_id93, product_id62.
Notez que, même s'il existe un chevauchement dans les deux types de résultats, il peut également y avoir des différences (par exemple, product_id32 et product_id93 dans la réponse).
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Go.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, 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.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Java.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, 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.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Node.js.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, 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.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour la recherche de produits de l'API Vision, consultez la page Bibliothèques clientes de la recherche de produits de l'API Vision. Pour en savoir plus, consultez la documentation de référence sur les API de la recherche de produits de l'API Vision en langage Python.
Pour vous authentifier auprès de la recherche de produits de l'API Vision, 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.
Langues supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la recherche de produits via l'API Vision avec Ruby.