Pubblico
L'obiettivo di questo tutorial è aiutarti a sviluppare applicazioni utilizzando il rilevamento del testo dei documenti dell'API Google Cloud Vision. Presuppone che tu conosca i costrutti e le tecniche di programmazione di base, ma anche se sei un programmatore alle prime armi, dovresti essere in grado di seguire ed eseguire questo tutorial senza difficoltà e poi utilizzare la documentazione di riferimento dell'API Cloud Vision per creare applicazioni di base.
Prerequisiti
- Configura un progetto API Cloud Vision nella console Google Cloud.
Configura il tuo ambiente per l'utilizzo delle Credenziali predefinite dell'applicazione.
Python
- Installa Python.
- Installa pip.
- Installa la libreria client di Google Cloud e la libreria immagini Python.
Aggiungere annotazioni a un'immagine utilizzando la tecnologia OCR del testo documento
Questo tutorial illustra un'applicazione di base dell'API Vision che effettua una richiesta di tipo DOCUMENT_TEXT_DETECTION
ed elabora la risposta di fullTextAnnotation
.
Una fullTextAnnotation
è una risposta gerarchica strutturata per il testo UTF-8 estratto dall'immagine, organizzata come Pagine→Blocchi→Paragrafi→Parole→Simboli:
Page
è una raccolta di blocchi, oltre a metadati sulla pagina: dimensioni, risoluzioni (la risoluzione X e Y possono variare).Block
rappresenta un elemento "logico" della pagina, ad esempio un'area coperta da testo oppure un'immagine o un separatore tra le colonne. I blocchi di testo e tabella contengono le informazioni principali necessarie per estrarre il testo.Paragraph
è un'unità strutturale di testo che rappresenta una sequenza ordinata di parole. Per impostazione predefinita, le parole sono considerate separate da interruzioni di parola.Word
è l'unità di testo più piccola. È rappresentato da un array di simboli.Symbol
rappresenta un carattere o un segno di punteggiatura.
L'elemento fullTextAnnotation
può anche fornire URL di immagini web che corrispondono parzialmente o
completamente all'immagine nella richiesta.
Completa la scheda del codice
Mentre leggi il codice, ti consigliamo di seguirlo facendo riferimento al riferimento Python dell'API Cloud Vision.
Questa semplice applicazione esegue le seguenti attività:
- Importa le librerie necessarie per eseguire l'applicazione
- Prende tre argomenti lo passa alla funzione
main()
:image_file
: il file immagine di input a cui aggiungere l'annotazioneoutput_file
: il nome file di output in cui Cloud Vision genera un'immagine di output con polybox disegnate
- Crea un'istanza
ImageAnnotatorClient
per interagire con il servizio - Invia la richiesta e restituisce una risposta
- Crea un'immagine di output con riquadri disegnati intorno al testo
Un'occhiata più da vicino al codice
Importazione delle librerie
Importiamo librerie standard:
argparse
per consentire all'applicazione di accettare i nomi dei file di input come argomentienum
per l'enumerazioneFeatureType
io
per I/O 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 creare richieste. - Le librerie
Image
eImageDraw
della libreriaPIL
vengono utilizzate per creare l'immagine di output con riquadri disegnati sull'immagine di input.
Esecuzione dell'applicazione
In questo caso analizziamo semplicemente gli argomenti passati e li passiamo alla funzione render_doc_text()
.
Autenticazione nell'API
Prima di comunicare con il servizio API Vision, devi autenticare il servizio utilizzando 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 Cloud tenterà di ottenere le credenziali dalla variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS
, che deve essere impostata in modo da puntare al file di chiavi JSON del tuo account di servizio (per ulteriori informazioni, consulta la sezione Configurare un account di servizio).
Effettuare la richiesta API e leggere i limiti di testo dalla risposta
Ora che il servizio API Vision è pronto, possiamo accedervi chiamando il metodo document_text_detection
dell'istanza ImageAnnotatorClient
.
La libreria client incapsula i dettagli relativi alle richieste e alle risposte all'API. Per informazioni complete sulla struttura di una richiesta, consulta la documentazione di riferimento per l'API Vision.
Dopo che la libreria client ha gestito la richiesta, la nostra risposta conterrà una risposta AnnotateImageResponse, che consiste in un elenco di risultati delle annotazioni delle immagini, uno per ogni immagine inviata nella richiesta. Poiché abbiamo inviato una sola immagine nella richiesta, esaminiamo l'intera immagine di testo e raccogliamo i limiti per la funzionalità del documento specificata.
Esecuzione dell'applicazione
Per eseguire l'applicazione, puoi
scaricare questo file receipt.jpg
(potrebbe essere necessario fare clic con il tasto destro del mouse sul link),
quindi passare il percorso su cui hai scaricato il file sul tuo computer locale
all'applicazione di tutorial (doctext.py
).
Questo è il comando Python, seguito dalle immagini di output di annotazione di testo.
$ python doctext.py receipt.jpg -out_file out.jpg
L'immagine di seguito mostra le parole all'interno di riquadri gialli e le frasi in rosso.
Complimenti! Hai eseguito il rilevamento di testo con le annotazioni di testo complete di Google Cloud Vision.