Las imágenes de referencia son imágenes que contienen varias vistas de sus productos. Deben aplicarse las siguientes recomendaciones:
- Asegúrate de que el tamaño del archivo no supere el tamaño máximo (20 MB).
- Ten en cuenta los puntos de vista que destaquen el producto de forma lógica y contengan 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 reflejadas de esos archivos como zapato izquierdo.
- Suba la imagen con la mayor resolución posible.
- Muestra el producto sobre un fondo blanco.
- Convierte archivos PNG con fondos transparentes en fondos sólidos.
Las imágenes deben almacenarse en un segmento de Cloud Storage. Si autenticas la llamada de creación de imágenes con una clave de API, el contenedor debe ser público. Si te autenticas con una cuenta de servicio, esta debe tener acceso de lectura al segmento.
Crear una sola imagen de referencia
Puedes añadir una imagen de referencia a un producto que ya tengas. De esta forma, podrás buscar el producto por la imagen.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud .
- LOCATION_ID: identificador de ubicación válido. Los identificadores de ubicación válidos son
us-west1
,us-east1
,europe-west1
yasia-east1
. - PRODUCT_ID: ID del producto asociado a una imagen de referencia. Este ID se asigna aleatoriamente o lo especifica el usuario en el momento de crear el producto.
- CLOUD_STORAGE_IMAGE_URI: la ruta a un archivo de imagen válido en un segmento de Cloud Storage. Debe tener al menos 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 devuelve un código de estado HTTP 200 OK
y la respuesta en formato JSON.
Debería ver un resultado similar al siguiente. En la solicitud de ejemplo se ha especificado un solo boundingPoly
en la imagen. Los vértices del cuadro delimitador no están normalizados. Los valores de los vértices son los valores de píxel reales y no son relativos a la imagen original ni se escalan de 0 a 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
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Go.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Java.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Node.js.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Python.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta 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 de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API Vision para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API Vision para Ruby.
Crear varias imágenes de referencia con la importación en bloque
También puedes crear imágenes de referencia al mismo tiempo que creas un conjunto de productos y varios productos.
Crea imágenes de referencia en bloque transfiriendo 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 hace referencia deben estar en un segmento de Cloud Storage.
Si autenticas tu llamada de importación masiva con una clave de API, este archivo de origen CSV debe ser público.
Si te autenticas con una cuenta de servicio, esta debe tener acceso de lectura al archivo de origen CSV.
Formato CSV
image-uri,[image-id],product-set-id,product-id,product-category,[product-display-name],[label(s)],[bounding-poly]
Consulta el tema Formato CSV para obtener información más detallada sobre cómo dar formato a tu archivo CSV.
Solicitud de creación en bloque
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto Google Cloud .
- LOCATION_ID: 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 segmento o directorio de Cloud Storage donde se almacena el archivo CSV de entrada. El usuario que hace la solicitud debe tener al menos permiso de lectura en el segmento.
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ía 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 Obtener el estado de una operación:
{ "name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710" }
Una vez que se haya completado la operación de larga duración, podrás 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
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Go.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Java.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Node.js.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Product Search de la API de Vision, consulta Bibliotecas de cliente de Product Search de la API de Vision. Para obtener más información, consulta la documentación de referencia de la API Product Search de la API Vision Python.
Para autenticarte en Product Search de la API Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta 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 de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API Vision para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Product Search de la API Vision para Ruby.
Indexación
El índice de búsqueda de productos se actualiza aproximadamente cada 30 minutos. Cuando se añaden o se eliminan imágenes, el cambio no se reflejará en las respuestas de Búsqueda de Productos hasta que se actualice el índice.
Para comprobar que la indexación se ha completado correctamente, consulta el campo indexTime
de un conjunto de productos.