Dopo aver creato il set di prodotti e che è stato indicizzato, puoi eseguire query sul set di prodotti utilizzando l'API Cloud Vision.
Corrispondenza di prodotti corrispondenti
Puoi trovare prodotti simili a una determinata immagine trasmettendo l'URI Google Cloud Storage dell'immagine, l'URL web o la stringa codificata in base64 a Product Search di Vision. Consulta i limiti di utilizzo per informazioni sulle dimensioni massime delle richieste e sulla quota.
Consulta l'argomento Informazioni sulle risposte di ricerca e sul rilevamento multiplo per un esempio di rilevamento di singoli prodotti e multi-rilevamento di prodotti in un'immagine.
Cercare usando un'immagine locale
I seguenti esempi leggono un file locale ed eseguono una query sull'API includendo i byte di immagine non elaborati (immagine con codifica base64) nella richiesta.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- BASE64_ENCODED_IMAGE: la rappresentazione base64 (stringa ASCII) dei dati dell'immagine binaria. Questa stringa dovrebbe essere simile alla seguente:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- PROJECT_ID: il tuo ID progetto Google Cloud.
- LOCATION_ID: un identificatore della sede valido. Gli identificatori di località validi sono:
us-west1
,us-east1
,europe-west1
easia-east1
. - PRODUCT_SET_ID: l'ID del set di prodotti su cui vuoi eseguire l'operazione.
Considerazioni specifiche sui campi:
features.maxResults
: il numero massimo di risultati da restituire.imageContext.productCategories
: la categoria di prodotto in cui effettuare la ricerca. Attualmente puoi specificare una sola categoria di prodotto (prodotti per la casa, abbigliamento, giocattoli, prodotti di imballaggio e articoli generici).imageContext.filter
: (facoltativo) un'espressione di filtro per coppia chiave-valore (o più espressioni) per l'etichetta del prodotto. Formato: "key
=value
". Puoi filtrare le coppie chiave-valore con le espressioni AND o OR: "color
=blue
ANDstyle
=mens
" oppure "color
=blue
ORcolor
=black
". Se utilizzi l'espressione OR, tutte le chiavi nell'espressione devono essere uguali.
Metodo e URL HTTP:
POST https://vision.googleapis.com/v1/images:annotate
Testo JSON richiesta:
{ "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" } } } ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
, ed esegui questo 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
Salva il corpo della richiesta in un file denominato request.json
, ed esegui questo 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
Se la richiesta ha esito positivo, il server restituisce un codice di stato HTTP 200 OK
e la risposta in formato JSON.
Il codice JSON di risposta include i due tipi di risultati seguenti:
productSearchResults
: contiene un elenco di prodotti corrispondenti per l'intera immagine. Nella risposta di esempio, i prodotti corrispondenti sono: product_id65, product_id35, product_id34, product_id62 e product_id32.productGroupedResults
: contiene le coordinate del riquadro di delimitazione e gli elementi corrispondenti per ogni prodotto identificato nell'immagine. Nella risposta seguente è identificato un solo prodotto, seguito dai prodotti corrispondenti nel set di prodotti di esempio: product_id65, product_id35, product_id34, product_id93 e product_id62.
Tieni presente che, sebbene vi sia una sovrapposizione nei due tipi di risultato, potrebbero anche esserci differenze (ad esempio, product_id32 e product_id93 nella risposta).
Go
Java
Node.js
Python
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client e consulta la documentazione di riferimento di Product Search dell'API Vision per .NET.
PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e consulta la documentazione di riferimento di Product Search dell'API Vision per PHP.
Ruby: segui le istruzioni per la configurazione di Ruby nella pagina delle librerie client e consulta la documentazione di riferimento di Product Search dell'API Vision per Ruby.
Cercare usando un'immagine remota
Puoi anche trovare prodotti simili a una determinata immagine specificando l'URI Cloud Storage dell'immagine.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- CLOUD_STORAGE_IMAGE_URI: il percorso di un file immagine valido in un bucket Cloud Storage. Devi disporre almeno dei privilegi di lettura del file.
Esempio:
gs://storage-bucket/filename.jpg
- PROJECT_ID: il tuo ID progetto Google Cloud.
- LOCATION_ID: un identificatore della sede valido. Gli identificatori di località validi sono:
us-west1
,us-east1
,europe-west1
easia-east1
. - PRODUCT_SET_ID: l'ID del set di prodotti su cui vuoi eseguire l'operazione.
Considerazioni specifiche sui campi:
features.maxResults
: il numero massimo di risultati da restituire.imageContext.productCategories
: la categoria di prodotto in cui effettuare la ricerca. Attualmente puoi specificare una sola categoria di prodotto (prodotti per la casa, abbigliamento, giocattoli, prodotti di imballaggio e articoli generici).imageContext.filter
: (facoltativo) un'espressione di filtro per coppia chiave-valore (o più espressioni) per l'etichetta del prodotto. Formato: "key
=value
". Puoi filtrare le coppie chiave-valore con le espressioni AND o OR: "color
=blue
ANDstyle
=mens
" oppure "color
=blue
ORcolor
=black
". Se utilizzi l'espressione OR, tutte le chiavi nell'espressione devono essere uguali.
Metodo e URL HTTP:
POST https://vision.googleapis.com/v1/images:annotate
Testo JSON richiesta:
{ "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" } } } ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
, ed esegui questo 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
Salva il corpo della richiesta in un file denominato request.json
, ed esegui questo 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
Se la richiesta ha esito positivo, il server restituisce un codice di stato HTTP 200 OK
e la risposta in formato JSON.
Il codice JSON di risposta include i due tipi di risultati seguenti:
productSearchResults
: contiene un elenco di prodotti corrispondenti per l'intera immagine. Nella risposta di esempio, i prodotti corrispondenti sono: product_id65, product_id35, product_id34, product_id62 e product_id32.productGroupedResults
: contiene le coordinate del riquadro di delimitazione e gli elementi corrispondenti per ogni prodotto identificato nell'immagine. Nella risposta seguente è identificato un solo prodotto, seguito dai prodotti corrispondenti nel set di prodotti di esempio: product_id65, product_id35, product_id34, product_id93 e product_id62.
Tieni presente che, sebbene vi sia una sovrapposizione nei due tipi di risultato, potrebbero anche esserci differenze (ad esempio, product_id32 e product_id93 nella risposta).
Go
Java
Node.js
Python
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client e consulta la documentazione di riferimento di Product Search dell'API Vision per .NET.
PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e consulta la documentazione di riferimento di Product Search dell'API Vision per PHP.
Ruby: segui le istruzioni per la configurazione di Ruby nella pagina delle librerie client e consulta la documentazione di riferimento di Product Search dell'API Vision per Ruby.