Las imágenes de referencia son imágenes que contienen varias vistas de los productos. Ten en cuenta las siguientes recomendaciones:
- Asegúrate de que el tamaño del archivo no supere el tamaño máximo (20 MB).
- Considera los puntos de vista que destacan el producto de forma lógica y que contienen información visual relevante.
- Crea imágenes de referencia que complementen los puntos de vista que falten. Por ejemplo, si solo tienes imágenes del zapato derecho de un par, proporciona versiones duplicadas de esos archivos para el zapato izquierdo.
- Sube la imagen disponible que tenga la resolución más alta.
- Muestra el producto sobre un fondo blanco.
- Convierte el fondo transparente de los PNG en un fondo sólido.
Las imágenes deben almacenarse en un bucket de Cloud Storage. Si autenticas la llamada de creación de imagen con una clave de API, el bucket debe ser público. Si autenticas con una cuenta de servicio, esa cuenta debe tener acceso de lectura en el bucket.
Crea una imagen de referencia
Puedes agregar una imagen de referencia a un producto existente. Esto te permite buscar el producto por medio de la imagen.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID es el ID del proyecto de Google Cloud.
- LOCATION_ID: Un identificador de ubicación válido. Los identificadores de ubicación válidos son los siguientes:
us-west1
,us-east1
,europe-west1
yasia-east1
. - PRODUCT_ID: El ID del producto asociado con una imagen de referencia. Este ID se establece de forma aleatoria, o el usuario lo especifica cuando crea el producto
- CLOUD_STORAGE_IMAGE_URI: La ruta a un archivo de imagen válido en un depósito de Cloud Storage. Como mínimo, debes tener privilegios de lectura en el archivo.
Ejemplo:
gs://storage-bucket/filename.jpg
Método HTTP y URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages
Cuerpo JSON de la solicitud:
{ "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 } ] } ] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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 solicitud se realiza de forma correcta, el servidor muestra un código de estado HTTP 200 OK
y la respuesta en formato JSON.
Deberías ver un resultado similar al siguiente. La solicitud de ejemplo especificó un solo boundingPoly
en la imagen. Los vértices del cuadro de límite no se normalizan. Los valores de los vértices son los valores reales de los píxeles y no son relativos a la imagen original ni van del 0 al 1. Estos vértices tienen los siguientes valores: [(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
Si quieres obtener información sobre cómo instalar y usar la biblioteca cliente de Product Search de la API de Vision, consulta Bibliotecas cliente de Product Search de la API de Vision. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Product Search Go.
Para autenticar Product Search de la API de Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si quieres obtener información sobre cómo instalar y usar la biblioteca cliente de Product Search de la API de Vision, consulta Bibliotecas cliente de Product Search de la API de Vision. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Product Search Java.
Para autenticar Product Search de la API de Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si quieres obtener información sobre cómo instalar y usar la biblioteca cliente de Product Search de la API de Vision, consulta Bibliotecas cliente de Product Search de la API de Vision. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Product Search Node.js.
Para autenticar Product Search de la API de Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si quieres obtener información sobre cómo instalar y usar la biblioteca cliente de Product Search de la API de Vision, consulta Bibliotecas cliente de Product Search de la API de Vision. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Product Search Python.
Para autenticar Product Search de la API de Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Idiomas adicionales
C#: sigue las instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Product Search de la API de Vision para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Product Search de la API de Vision para PHP.
Ruby: sigue lasInstrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Product Search de la API de Vision para Ruby.
Crea varias imágenes de referencia con la importación masiva
También puedes crear imágenes de referencia al mismo tiempo que creas un conjunto de productos y varios productos.
Para crear imágenes de referencia de forma masiva, pasa la ubicación de Cloud Storage de un archivo CSV al método import
. Por lo tanto, el archivo CSV y las imágenes a las que se orienta deben estar en un bucket de Cloud Storage.
Si quieres autenticar la llamada de importación masiva con una clave de API, este archivo de origen CSV debe ser público.
Si autenticas con una cuenta de servicio, esta debe tener acceso de lectura en el archivo CSV de origen.
Formato CSV
image-uri,[image-id],product-set-id,product-id,product-category,[product-display-name],[label(s)],[bounding-poly]
Consulta el instructivo sobre el formato CSV para obtener información más detallada sobre cómo darle formato al archivo CSV.
Solicitud de creación masiva
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID es el ID del proyecto de Google Cloud.
- LOCATION_ID: Un identificador de ubicación válido. Los identificadores de ubicación válidos son:
us-west1
,us-east1
,europe-west1
yasia-east1
. - STORAGE_PATH: Un depósito o directorio de Cloud Storage en los que se almacena el archivo CSV de entrada. El usuario que realice la solicitud debe tener, como mínimo, permiso de lectura en el bucket
Método HTTP y URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import
Cuerpo JSON de la solicitud:
{ "inputConfig": { "gcsSource": { "csvFileUri": "storage-path" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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
Deberías ver un resultado similar al siguiente. Puedes usar el ID de operación (f10f34e32c40a710
, en este caso) para obtener el estado de la tarea. Para ver un ejemplo, consulta Obtén el estado de una operación:
{ "name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710" }
Una vez que se complete la operación de larga duración, puedes obtener los detalles de la operación de importación. La respuesta debería ser similar a la siguiente:
{ "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
Si quieres obtener información sobre cómo instalar y usar la biblioteca cliente de Product Search de la API de Vision, consulta Bibliotecas cliente de Product Search de la API de Vision. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Product Search Go.
Para autenticar Product Search de la API de Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si quieres obtener información sobre cómo instalar y usar la biblioteca cliente de Product Search de la API de Vision, consulta Bibliotecas cliente de Product Search de la API de Vision. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Product Search Java.
Para autenticar Product Search de la API de Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si quieres obtener información sobre cómo instalar y usar la biblioteca cliente de Product Search de la API de Vision, consulta Bibliotecas cliente de Product Search de la API de Vision. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Product Search Node.js.
Para autenticar Product Search de la API de Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si quieres obtener información sobre cómo instalar y usar la biblioteca cliente de Product Search de la API de Vision, consulta Bibliotecas cliente de Product Search de la API de Vision. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Product Search Python.
Para autenticar Product Search de la API de Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Idiomas adicionales
C#: sigue las instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Product Search de la API de Vision para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Product Search de la API de Vision para PHP.
Ruby: sigue lasInstrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Product Search de la API de Vision para Ruby.
Indexación
El índice de productos de Product Search se actualiza cada 30 minutos aproximadamente. Cuando se agregan o se borran imágenes, los cambios no se reflejarán en las respuestas de Product Search hasta que el índice se actualice.
Para asegurarse de que la indexación se completó con éxito, revise el campo indexTime
de un conjunto de productos.