Les images de référence sont des images contenant différentes vues de vos produits. Les recommandations suivantes s'appliquent :
- Assurez-vous que la taille du fichier ne dépasse pas la taille maximale (20 Mo).
- Optez pour des points de vue qui mettent en évidence le produit de manière logique et qui contiennent des informations visuelles pertinentes.
- Créez des images de référence qui complètent les points de vue manquants. Par exemple, si vous avez uniquement des images de la chaussure droite d'une paire, fournissez des versions en miroir de ces fichiers pour représenter la chaussure gauche.
- Importez l'image avec la plus haute résolution disponible.
- Présentez le produit sur un fond blanc.
- Convertissez les arrière-plans transparents des fichiers PNG en arrière-plans opaques.
Les images doivent être stockées dans un bucket Cloud Storage. Si vous utilisez une clé API pour authentifier l'appel de création d'image, le bucket doit être public. Si l'authentification s'effectue via un compte de service, ce compte doit disposer d'un accès en lecture sur le bucket.
Créer une seule image de référence
Vous pouvez ajouter une image de référence à un produit existant. Cela vous permettra par la suite de le rechercher par son image.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- 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_ID : ID du produit associé à une image de référence. Cet identifiant est défini de manière aléatoire ou spécifié par l'utilisateur lors de la création du produit.
- 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
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages
Corps JSON de la requête :
{ "uri": "cloud-storage-image-uri", "boundingPolys": [ { "vertices": [ { "x": X_MIN, "y": Y_MIN }, { "x": X_MAX, "y": Y_MIN }, { "x": X_MAX, "y": Y_MAX }, { "x": X_MIN, "y": Y_MAX } ] } ] }
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/projects/project-id/locations/location-id/products/product-id/referenceImages"
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/projects/project-id/locations/location-id/products/product-id/referenceImages" | 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.
Un résultat semblable aux lignes suivantes doit s'afficher. L'exemple de requête a spécifié un seul élément boundingPoly
dans l'image. Les sommets du cadre de délimitation ne sont pas normalisés ; les valeurs des sommets correspondent aux valeurs réelles des pixels, pas aux valeurs de l'image d'origine, et sont mises à l'échelle de 0 à 1. Ces sommets ont les valeurs suivantes : [(33,22),(282,22),(282,278),(33,278)].
{ "name": "projects/project-id/locations/location-id/products/product-id/referenceImages/image-id", "uri": "gs://storage-bucket/filename.jpg", "boundingPolys": [ { "vertices": [ { "x": 33, "y": 22 }, { "x": 282, "y": 22 }, { "x": 282, "y": 278 }, { "x": 33, "y": 278 } ] } ] }
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.
Langages 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.
Créer plusieurs images de référence à l'aide de l'importation groupée
Vous pouvez également créer des images de référence en même temps qu'un ensemble de produits et plusieurs produits.
Créez des images de référence de manière groupée en transmettant l'emplacement d'un fichier CSV dans Cloud Storage via la méthode import
. Ainsi, le fichier CSV et les images vers lesquelles il pointe doivent tous se trouver dans un bucket Cloud Storage.
Si vous authentifiez votre appel d'importation groupée avec une clé API, ce fichier source CSV doit être public.
Si l'authentification s'effectue via un compte de service, ce dernier doit disposer d'un accès en lecture au fichier source CSV.
Format CSV
image-uri,[image-id],product-set-id,product-id,product-category,[product-display-name],[label(s)],[bounding-poly]
Pour obtenir des informations plus détaillées sur la mise en forme du fichier CSV, consultez la page d'aide relative au format CSV.
Requête de création groupée
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- 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
. - STORAGE_PATH : répertoire/bucket Cloud Storage dans lequel votre fichier CSV d'entrée est stocké. L'utilisateur demandeur doit au minimum disposer d'autorisations en lecture sur le bucket.
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import
Corps JSON de la requête :
{ "inputConfig": { "gcsSource": { "csvFileUri": "storage-path" } } }
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/projects/project-id/locations/location-id/productSets:import"
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/projects/project-id/locations/location-id/productSets:import" | Select-Object -Expand Content
Des résultats semblables aux lignes suivantes devraient s'afficher : Vous pouvez utiliser l'ID d'opération (f10f34e32c40a710
, dans ce cas) pour connaître l'état de la tâche. Pour consulter un exemple, reportez-vous à la section Obtenir l'état d'une opération :
{ "name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710" }
Une fois l'opération de longue durée terminée, vous pouvez obtenir des informations détaillées sur l'opération d'importation. La réponse devrait ressembler à ceci :
{ "name": "locations/location-id/operations/f10f34e32c40a710", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata", "state": "SUCCESSFUL", "submitTime": "2019-12-06T21:16:04.476466873Z", "endTime": "2019-12-06T21:16:40.594258084Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.ImportProductSetsResponse", "referenceImages": [ { "name": "projects/project-id/locations/location-id/products/product_id0/referenceImages/image0", "uri": "gs://my-storage-bucket/img_039.jpg" }, { "name": "projects/project-id/locations/location-id/products/product_id1/referenceImages/image1", "uri": "gs://my-storage-bucket/img_105.jpg" }, { "name": "projects/project-id/locations/location-id/products/product_id2/referenceImages/image2", "uri": "gs://my-storage-bucket/img_224.jpg" }, { "name": "projects/project-id/locations/location-id/products/product_id3/referenceImages/image3", "uri": "gs://my-storage-bucket/img_385.jpg" } ], "statuses": [ {}, {}, {}, {} ] } }
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.
Langages 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.
Indexation
L'index de recherche de produits est mis à jour toutes les 30 minutes environ. Lorsque des images sont ajoutées ou supprimées, la modification ne sera pas reflétée dans les réponses des recherches de produits avant la prochaine mise à jour de l'index.
Pour vous assurer que l'indexation s'est déroulée correctement, consultez le champ indexTime
de l'ensemble de produits.