Una vez que hayas creado tu conjunto de productos y que este se haya indexado, puedes realizar consultas en él mediante la API de Cloud Vision.
Busca de productos coincidentes
Puedes encontrar productos similares a una imagen determinada si pasas el URI de Google Cloud Storage de la imagen, la URL web o la string codificada en base64 a la API de Cloud Vision Product Search. Consulta los Límites de uso para obtener más información sobre las cuotas y el tamaño máximo de las solicitudes.
Consulta el tema Información sobre las respuestas de búsqueda y la detección múltiple para ver un ejemplo de detección de un solo producto y detección múltiple de productos en una imagen.
Busca mediante una imagen local
En los siguientes ejemplos, se lee un archivo local y se consulta la API mediante la intercalación de los bytes de imagen sin formato (imagen codificada en base64) en la solicitud.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- BASE64_ENCODED_IMAGE: Es la representación en base64 (string ASCII) de los datos de la imagen binaria. Esta string debería ser similar a la siguiente:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- 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_SET_ID: Es el ID del conjunto de productos en el que deseas ejecutar la operación.
Consideraciones específicas del campo:
features.maxResults
: Es la cantidad máxima de resultados que se mostrarán.imageContext.productCategories
: Es la categoría de producto en la que se debe buscar. Por el momento, solo puedes especificar una categoría de producto (artículos para el hogar, indumentaria, juguetes, productos envasados y artículos en general).imageContext.filter
(opcional): Es una expresión de filtrado de clave-valor (o varias expresiones) para la etiqueta del producto. Formato: “key
=value
”. Los pares clave-valor de filtrado se pueden vincular con expresiones OR o AND: “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 completa de forma correcta, el servidor muestra un código de estado HTTP 200 OK
y la respuesta en formato JSON.
El JSON de respuesta incluye los siguientes dos tipos de resultados:
productSearchResults
: Contiene una lista de productos coincidentes para toda la imagen. En la respuesta de muestra, los productos que coinciden son estos: product_id65, product_id35, product_id34, product_id62 y product_id32.productGroupedResults
: Contiene coordenadas de cuadro de límite y elementos coincidentes para cada producto identificado en la imagen. En la siguiente respuesta, solo se identificó un producto, seguido de productos coincidentes en el conjunto de productos de muestra: product_id65, product_id35, product_id34, product_id93 y product_id62.
Ten en cuenta que, si bien hay una superposición en los dos tipos de resultados, también puede haber diferencias (por ejemplo, product_id32 y product_id93 en la respuesta).
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.
Busca con una imagen remota
También tienes la opción de encontrar productos similares a una imagen dada si especificas el URI de Cloud Storage en la imagen.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- 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
- 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_SET_ID: Es el ID del conjunto de productos en el que deseas ejecutar la operación.
Consideraciones específicas del campo:
features.maxResults
: Es la cantidad máxima de resultados que se mostrarán.imageContext.productCategories
: Es la categoría de producto en la que se debe buscar. Por el momento, solo puedes especificar una categoría de producto (artículos para el hogar, indumentaria, juguetes, productos envasados y artículos en general).imageContext.filter
(opcional): Es una expresión de filtrado de clave-valor (o varias expresiones) para la etiqueta del producto. Formato: “key
=value
”. Los pares clave-valor de filtrado se pueden vincular con expresiones OR o AND: “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 completa de forma correcta, el servidor muestra un código de estado HTTP 200 OK
y la respuesta en formato JSON.
El JSON de respuesta incluye los siguientes dos tipos de resultados:
productSearchResults
: Contiene una lista de productos coincidentes para toda la imagen. En la respuesta de muestra, los productos que coinciden son estos: product_id65, product_id35, product_id34, product_id62 y product_id32.productGroupedResults
: Contiene coordenadas de cuadro de límite y elementos coincidentes para cada producto identificado en la imagen. En la siguiente respuesta, solo se identificó un producto, seguido de productos coincidentes en el conjunto de productos de muestra: product_id65, product_id35, product_id34, product_id93 y product_id62.
Ten en cuenta que, si bien hay una superposición en los dos tipos de resultados, también puede haber diferencias (por ejemplo, product_id32 y product_id93 en la respuesta).
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.