Una vez que hayas creado tu conjunto de productos y se haya indexado, podrás consultar el conjunto de productos mediante la API Cloud Vision.
Búsqueda de productos coincidentes
Para encontrar productos similares a una imagen determinada, puedes enviar el URI de Google Cloud Storage, la URL web o la cadena codificada en Base64 de la imagen a la API Vision Product Search. Consulta los límites de uso para obtener información sobre el tamaño máximo de las solicitudes y las cuotas.
Consulta el tema Comprender las respuestas de búsqueda y la multidetección para ver un ejemplo de detección de un solo producto y de varios productos en una imagen.
Buscar con una imagen local
En los siguientes ejemplos se lee un archivo local y se consulta la API incluyendo en la solicitud los bytes de la imagen sin procesar (imagen codificada en base64).
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- BASE64_ENCODED_IMAGE: representación en base64 (cadena ASCII) de los datos de imagen binarios. Esta cadena debe ser similar a la siguiente:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- 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_SET_ID: el ID del conjunto de productos en el que quiere ejecutar la operación.
Consideraciones específicas de los campos:
features.maxResults
: número máximo de resultados que se devolverán.imageContext.productCategories
: la categoría de producto en la que se va a buscar. Actualmente, solo puede especificar una categoría de producto (artículos para el hogar, ropa, juguetes, productos de gran consumo y generales).imageContext.filter
- (Opcional) Expresión de filtrado por clave-valor (o varias expresiones) de la etiqueta de producto. Formato: "key
=value
". Los pares clave-valor de filtrado se pueden vincular con expresiones AND u OR: "color
=blue
ANDstyle
=mens
" o "color
=blue
ORcolor
=black
". Si se usa la expresión OR, todas las claves de la expresión deben ser iguales.
Método HTTP y URL:
POST https://vision.googleapis.com/v1/images:annotate
Cuerpo JSON de la solicitud:
{ "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" } } } ] }
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/images:annotate"
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/images:annotate" | 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.
El JSON de respuesta incluye los dos tipos de resultados siguientes:
productSearchResults
: contiene una lista de productos coincidentes de toda la imagen. En la respuesta de ejemplo, los productos coincidentes son: product_id65, product_id35, product_id34, product_id62, product_id32.productGroupedResults
: contiene las coordenadas del cuadro delimitador y los elementos coincidentes de cada producto identificado en la imagen. En la siguiente respuesta solo se identifica un producto, seguido de los productos coincidentes del conjunto de productos de muestra: product_id65, product_id35, product_id34, product_id93 y product_id62.
Ten en cuenta que, aunque hay una superposición entre los dos tipos de resultados, también puede haber diferencias (por ejemplo, product_id32 y product_id93 en la respuesta).
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.
Buscar usando una imagen remota
También puedes buscar productos similares a una imagen determinada especificando el URI de Cloud Storage de la imagen.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- 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
- 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_SET_ID: el ID del conjunto de productos en el que quiere ejecutar la operación.
Consideraciones específicas de los campos:
features.maxResults
: número máximo de resultados que se devolverán.imageContext.productCategories
: la categoría de producto en la que se va a buscar. Actualmente, solo puede especificar una categoría de producto (artículos para el hogar, ropa, juguetes, productos de gran consumo y generales).imageContext.filter
- (Opcional) Expresión de filtrado por clave-valor (o varias expresiones) de la etiqueta de producto. Formato: "key
=value
". Los pares clave-valor de filtrado se pueden vincular con expresiones AND u OR: "color
=blue
ANDstyle
=mens
" o "color
=blue
ORcolor
=black
". Si se usa la expresión OR, todas las claves de la expresión deben ser iguales.
Método HTTP y URL:
POST https://vision.googleapis.com/v1/images:annotate
Cuerpo JSON de la solicitud:
{ "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" } } } ] }
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/images:annotate"
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/images:annotate" | 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.
El JSON de respuesta incluye los dos tipos de resultados siguientes:
productSearchResults
: contiene una lista de productos coincidentes de toda la imagen. En la respuesta de ejemplo, los productos coincidentes son: product_id65, product_id35, product_id34, product_id62, product_id32.productGroupedResults
: contiene las coordenadas del cuadro delimitador y los elementos coincidentes de cada producto identificado en la imagen. En la siguiente respuesta solo se identifica un producto, seguido de los productos coincidentes del conjunto de productos de muestra: product_id65, product_id35, product_id34, product_id93 y product_id62.
Ten en cuenta que, aunque hay una superposición entre los dos tipos de resultados, también puede haber diferencias (por ejemplo, product_id32 y product_id93 en la respuesta).
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.