Pubblico
Lo scopo di questo tutorial è aiutarti a sviluppare applicazioni utilizzando la funzionalità Suggerimenti per il ritaglio dell'API Vision. Presuppone che tu abbia familiarità con le tecniche e i costrutti di programmazione di base. Tuttavia, anche se sei un programmatore alle prime armi, dovresti essere in grado di seguire ed eseguire questo tutorial senza difficoltà, quindi utilizzare la documentazione di riferimento dell'API Vision per creare applicazioni di base.
Questo tutorial illustra un'applicazione API Vision, mostrando come effettuare una chiamata all'API Vision per utilizzare la funzionalità Suggerimenti per il ritaglio.
Prerequisiti
- Configura un progetto API Vision nella console Google Cloud .
Configura l'ambiente per l'utilizzo delle credenziali predefinite dell'applicazione.
Python
- Installa Python.
- Installa pip.
- Installa la libreria client Google Cloud.
- Installa la libreria Python Imaging Library.
Panoramica
Questo tutorial illustra un'applicazione di base dell'API Vision che utilizza una
Crop Hints
richiesta. Puoi fornire l'immagine da elaborare tramite un URI Cloud Storage (posizione del bucket Cloud Storage) o incorporata nella richiesta. Una risposta Crop Hints
riuscita restituisce le coordinate di un
riquadro di delimitazione ritagliato intorno all'oggetto o al volto dominante nell'immagine.
Elenco di codici
Durante la lettura del codice, ti consigliamo di fare riferimento alla documentazione di riferimento di Python dell'API Cloud Vision.
Un'occhiata più da vicino
Importazione di librerie
Importiamo le librerie standard:
argparse
per consentire all'applicazione di accettare i nomi dei file di input come argomentiio
per l'I/O di file
Altre importazioni:
- La classe
ImageAnnotatorClient
all'interno della libreriagoogle.cloud.vision
per accedere all'API Vision. - Il modulo
types
all'interno della libreriagoogle.cloud.vision
per la creazione di richieste - I moduli
Image
eImageDraw
diPython Imaging Library
(PIL). per disegnare un riquadro di delimitazione sull'immagine di input.
Esecuzione dell'applicazione
Qui analizziamo semplicemente l'argomento passato che specifica il nome file dell'immagine locale e lo passiamo a una funzione per ritagliare l'immagine o disegnare il suggerimento.
Autenticazione nell'API
Prima di comunicare con il servizio API Vision, devi autenticare il tuo servizio utilizzando le credenziali acquisite in precedenza. All'interno di un'applicazione, il modo più semplice per ottenere le credenziali è utilizzare le Credenziali predefinite dell'applicazione (ADC). Per impostazione predefinita, la libreria client tenterà di ottenere le credenziali dalla variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS
, che deve essere impostata in modo da puntare al file della chiave JSON dell'account di servizio (per maggiori informazioni, vedi Configurare un service account).
Ottenere annotazioni di suggerimenti di ritaglio per l'immagine
Ora che la libreria client Vision è autenticata, possiamo accedere al servizio
chiamando il metodo crop_hints
dell'istanza ImageAnnotatorClient
.
Le proporzioni dell'output sono specificate in un
oggetto ImageContext
; se vengono trasmesse più proporzioni, verranno restituiti più
suggerimenti di ritaglio, uno per ogni proporzione.
La libreria client incapsula i dettagli per le richieste e le risposte all'API. Consulta la documentazione di riferimento per l'API Vision per informazioni complete sulla struttura di una richiesta.
Utilizzo della risposta per ritagliare o disegnare il riquadro di delimitazione del suggerimento
Una volta completata l'operazione, la risposta dell'API
conterrà le coordinate riquadro di delimitazione di uno o più cropHint
. Il metodo
draw_hint
disegna linee intorno al riquadro di delimitazione CropHints, quindi scrive
l'immagine in output-hint.jpg
.
Il metodo crop_to_hint
ritaglia l'immagine utilizzando il suggerimento di ritaglio.
Esecuzione dell'applicazione
Per eseguire l'applicazione, puoi
scaricare questo file cat.jpg
(potresti dover fare clic con il tasto destro del mouse sul link),
quindi passare la posizione in cui hai scaricato il file sulla tua macchina locale
all'applicazione del tutorial (crop_hints.py
).

Ecco il comando Python, seguito dall'output della console, che mostra la
risposta JSON cropHintsAnnotation
. Questa risposta include le coordinate del
riquadro di delimitazionee cropHints
. Abbiamo richiesto un'area di ritaglio con proporzioni larghezza-altezza di 1,77 e le coordinate x,y in alto a sinistra e in basso a destra del rettangolo di ritaglio restituite sono 0,336
, 1100,967
.
python crop_hints.py cat.jpeg crop
{ "responses": [ { "cropHintsAnnotation": { "cropHints": [ { "boundingPoly": { "vertices": [ { "y": 336 }, { "x": 1100, "y": 336 }, { "x": 1100, "y": 967 }, { "y": 967 } ] }, "confidence": 0.79999995, "importanceFraction": 0.69 } ] } } ] }
Ed ecco l'immagine ritagliata.

Complimenti! Hai eseguito l'API Cloud Vision Crop Hints per restituire le coordinate ottimizzate delriquadro di delimitazionee intorno all'oggetto dominante rilevato nell'immagine.