Imagens de referência são imagens com diversas visualizações dos produtos. As seguintes recomendações se aplicam:
- Verifique se o arquivo não excede o tamanho máximo de 20 MB.
- Pense nos pontos de vista que destacam logicamente o produto e contêm informações visuais relevantes.
- Crie imagens de referência que complementam os pontos de vista ausentes. Por exemplo, se você só tiver imagens do tênis direito de um par, forneça versões espelhadas desses arquivos como o tênis esquerdo.
- Faça upload da imagem de maior resolução disponível.
- Mostre o produto sobre um fundo branco.
- Converta PNGs com planos de fundo transparentes em um plano de fundo sólido.
As imagens precisam ser armazenadas em um bucket do Cloud Storage. Se você estiver autenticando a chamada de criação de imagem com uma chave de API, o bucket precisará ser público. Caso você esteja autenticando com uma conta de serviço, ela precisará ter acesso de leitura no bucket.
Como criar uma única imagem de referência
Adicione uma imagem de referência a um produto existente. Isso acaba permitindo a pesquisa do produto pela imagem.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID pelo ID do projeto no Google Cloud.
- LOCATION_ID: um identificador de local válido. Os identificadores de local válidos são:
us-west1
,us-east1
,europe-west1
easia-east1
. - PRODUCT_ID: o ID do produto associado a uma imagem de referência. Esse ID é definido aleatoriamente ou especificado pelo usuário no momento da criação do produto.
- CLOUD_STORAGE_IMAGE_URI: o caminho para um
arquivo de imagem válido em um bucket do Cloud Storage. Você precisa ter, pelo menos, privilégios de leitura para o arquivo.
Exemplo:
gs://storage-bucket/filename.jpg
Método HTTP e URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages
Corpo JSON da solicitação:
{ "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 a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK
e a
resposta no formato JSON:
Será exibido um código semelhante a este. O exemplo de solicitação especificou um único
boundingPoly
na imagem. Os vértices da caixa delimitadora não
são normalizados. Os valores de vértice são os valores reais de pixel, não estão relacionados à
imagem original e são dimensionados de 0 a 1. Esses vértices têm os seguintes
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 como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente do Pesquisa de produtos da API Vision. Para mais informações, consulte a documentação de referência da API Go do Product Search da API Vision.
Para se autenticar no Vision API Product Search, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente do Pesquisa de produtos da API Vision. Para mais informações, consulte a documentação de referência da API Java do Product Search da API Vision.
Para se autenticar no Vision API Product Search, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente do Pesquisa de produtos da API Vision. Para mais informações, consulte a documentação de referência da API Node.js do Product Search da API Vision.
Para se autenticar no Vision API Product Search, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente do Pesquisa de produtos da API Vision. Para mais informações, consulte a documentação de referência da API Python do Product Search da API Vision.
Para se autenticar no Vision API Product Search, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Outras linguagens
C#: Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a Documentação de referência da Pesquisa de produtos da API Vision para .NET.
PHP: Siga as: Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a Documentação de referência da Pesquisa de produtos da API Vision para PHP.
Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a Documentação de referência da Pesquisa de produtos da API Vision para Ruby.
Como criar várias imagens de referência com importação em massa
Também é possível criar imagens de referência ao mesmo tempo em que você cria um conjunto de produtos e vários produtos.
Crie imagens de referência em massa transmitindo o local do Cloud Storage de
um arquivo CSV para o método
import
. Assim, o arquivo CSV e as imagens apontadas por ele precisam estar em um
bucket do Cloud Storage.
Se você estiver autenticando sua chamada de importação em massa com uma chave de API, esse arquivo de origem CSV deverá ser público.
Se você estiver autenticando com uma conta de serviço, essa conta de serviço deverá ter acesso de leitura no arquivo de origem CSV.
Formato CSV
image-uri,[image-id],product-set-id,product-id,product-category,[product-display-name],[label(s)],[bounding-poly]
Consulte o tópico de instruções Formato CSV para ver informações mais detalhadas sobre como formatar seu CSV.
Solicitação de criação em massa
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID pelo ID do projeto no Google Cloud.
- LOCATION_ID: um identificador de local válido. Os identificadores de local válidos são:
us-west1
,us-east1
,europe-west1
easia-east1
. - STORAGE_PATH: um bucket/diretório do Cloud Storage em que o arquivo CSV de entrada é armazenado O usuário solicitante precisa ter, pelo menos, permissão de leitura no bucket.
Método HTTP e URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import
Corpo JSON da solicitação:
{ "inputConfig": { "gcsSource": { "csvFileUri": "storage-path" } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Será exibido um código semelhante a este. Use o ID da operação
(neste caso, f10f34e32c40a710
) para receber o status da tarefa. Veja um
exemplo em Como saber o status de uma operação:
{ "name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710" }
Depois que a operação de longa duração for concluída, será possível conseguir os detalhes da operação de importação. A resposta será assim:
{ "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 como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente do Pesquisa de produtos da API Vision. Para mais informações, consulte a documentação de referência da API Go do Product Search da API Vision.
Para se autenticar no Vision API Product Search, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente do Pesquisa de produtos da API Vision. Para mais informações, consulte a documentação de referência da API Java do Product Search da API Vision.
Para se autenticar no Vision API Product Search, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente do Pesquisa de produtos da API Vision. Para mais informações, consulte a documentação de referência da API Node.js do Product Search da API Vision.
Para se autenticar no Vision API Product Search, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente do Pesquisa de produtos da API Vision. Para mais informações, consulte a documentação de referência da API Python do Product Search da API Vision.
Para se autenticar no Vision API Product Search, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Outras linguagens
C#: Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a Documentação de referência da Pesquisa de produtos da API Vision para .NET.
PHP: Siga as: Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a Documentação de referência da Pesquisa de produtos da API Vision para PHP.
Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a Documentação de referência da Pesquisa de produtos da API Vision para Ruby.
Indexação
O índice de produtos da Pesquisa de produtos é atualizado aproximadamente a cada 30 minutos. Quando as imagens forem adicionadas ou excluídas, a alteração não se refletirá nas respostas do Product Search até o índice ser atualizado na próxima vez.
Para garantir que a indexação foi concluída com êxito, verifique o
campo indexTime
de um conjunto de produtos.