Pubblico
L'obiettivo di questo tutorial è aiutarti a sviluppare applicazioni che utilizzano la funzionalità Suggerimenti di ritaglio dell'API Vision. Si presume che tu abbia familiarità con concetti e tecniche di programmazione di base. Tuttavia, anche se sei un programmatore principiante, 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 la procedura per eseguire una chiamata all'API Vision per utilizzare la funzionalità Suggerimenti di 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 di imaging di Python
Panoramica
Questo tutorial illustra un'applicazione di base dell'API Vision che utilizza un
Richiesta Crop Hints
. Puoi fornire l'immagine da elaborare tramite un URI Cloud Storage (posizione del bucket Cloud Storage) o incorporarla nella richiesta. Una risposta Crop Hints
corretta restituisce le coordinate di un riquadro di delimitazione ritagliato intorno all'oggetto o al volto dominante nell'immagine.
Elenco di codice
Mentre leggi il codice, ti consigliamo di seguire le istruzioni facendo riferimento alle Riferimento Python per l'API Cloud Vision.
Un'occhiata più da vicino
Importazione delle librerie
Importiamo le librerie standard:
argparse
per consentire all'applicazione di accettare i nomi dei file di input come argomentiio
per file I/O
Altre importazioni:
- La classe
ImageAnnotatorClient
nella libreriagoogle.cloud.vision
per accedere a API Vision. - Il modulo
types
all'interno della libreriagoogle.cloud.vision
per la creazione delle richieste - I moduli
Image
eImageDraw
diPython Imaging Library
(PIL). per tracciare un riquadro di confine sull'immagine di input.
Esecuzione dell'applicazione
Qui analizziamo semplicemente l'argomento passato che specifica il nome del file dell'immagine locale e lo passiamo a una funzione per ritagliare l'immagine o disegnare l'indizio.
Autenticazione nell'API
Prima di comunicare con il servizio API Vision, è necessario
di autenticare il servizio utilizzando le credenziali acquisite in precedenza. All'interno di un oggetto
un'applicazione, il modo più semplice per ottenere le credenziali è usare
Credenziali predefinite dell'applicazione
(ADC). Per impostazione predefinita, la libreria client tenterà di recuperare 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 ulteriori informazioni, consulta Configurare un account di servizio).
Ottenere annotazioni dei suggerimenti di ritaglio per l'immagine
Ora che la libreria client di Vision è autenticata, possiamo accedere al servizio chiamando il metodo crop_hints
dell'istanza ImageAnnotatorClient
.
Le proporzioni dell'output sono specificate in un
ImageContext
oggetto; Se vengono trasmesse più proporzioni, allora
verranno restituiti i suggerimenti di ritaglio, uno per ogni formato.
La libreria client racchiude i dettagli delle richieste e delle risposte ai messaggi tramite Google Cloud CLI o tramite l'API Compute Engine. Consulta la documentazione di riferimento dell'API Vision per informazioni complete sulla struttura di una richiesta.
Utilizzare la risposta per ritagliare o disegnare il riquadro delimitante dell'indizio
Una volta completata l'operazione, la risposta dell'API
contengono le coordinate del riquadro di delimitazione di uno o più cropHint
. La
Il metodo draw_hint
disegna linee intorno al riquadro di delimitazione RitagliaHints, poi scrive
l'immagine in output-hint.jpg
.
Il metodo crop_to_hint
ritaglia l'immagine utilizzando l'indicazione di ritaglio suggerita.
Esecuzione dell'applicazione
Per eseguire l'applicazione, puoi
scarica questo cat.jpg
file
(potrebbe essere necessario fare clic con il tasto destro del mouse sul link),
quindi passa la posizione in cui hai scaricato il file sul tuo computer
all'applicazione tutorial (crop_hints.py
).
Ecco il comando Python, seguito dall'output della console, che mostra la risposta JSON cropHintsAnnotation
. Questa risposta include le coordinate di
il riquadro di delimitazione cropHints
. Abbiamo richiesto un'area ritagliata di 1,77
proporzioni larghezza-altezza e i valori restituiti in alto a sinistra e in basso a destra
Le coordinate x e y del rettangolo di ritaglio 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 della casella delimitante ottimizzata attorno all'oggetto dominante rilevato nell'immagine.