Pubblico
L'obiettivo di questo tutorial è aiutarti a sviluppare applicazioni utilizzando il rilevamento del testo dei documenti dell'API Cloud Vision di Google Cloud. Si presuppone che tu abbia familiarità con i costrutti e le tecniche di programmazione di base, ma 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 Cloud Vision per creare applicazioni di base.
Prerequisiti
- Configura un progetto dell'API Cloud Vision nella Google Cloud console.
Configura l'ambiente per l'utilizzo delle Credenziali predefinite dell'applicazione.
Python
- Installa Python.
- Installa pip.
- Installa la libreria client Google Cloud e la libreria Python Imaging.
Annotazione di un'immagine utilizzando l'OCR del testo del documento
Questo tutorial ti guida attraverso un'applicazione di base dell'API Vision che effettua una
DOCUMENT_TEXT_DETECTION richiesta, quindi elabora la fullTextAnnotation
risposta.
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 metainformazioni sulla pagina: dimensioni, risoluzioni (la risoluzione X e la risoluzione Y possono essere diverse).Blockrappresenta un elemento "logico" della pagina, ad esempio un' area coperta da testo, 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 parole.Wordè l'unità di testo più piccola. È rappresentata come un array di simboli.Symbolrappresenta un carattere o un segno di punteggiatura.
fullTextAnnotation può anche fornire URL a immagini web che corrispondono parzialmente o completamente all'immagine nella richiesta.
Elenco completo del codice
Durante la lettura del codice, ti consigliamo di fare riferimento al riferimento Python dell'API Cloud Vision.
Questa semplice applicazione esegue le seguenti attività:
- Importa le librerie necessarie per eseguire l'applicazione
- Accetta tre argomenti e li passa alla funzione
main():image_file: il file immagine di input da annotareoutput_file: il nome del file di output in cui Cloud Vision genererà un'immagine di output con i poligoni disegnati
- Crea un'istanza
ImageAnnotatorClientper interagire con il servizio - Invia la richiesta e restituisce una risposta
- Crea un'immagine di output con le caselle disegnate attorno al testo
Un'analisi più approfondita del codice
Importazione delle librerie
Importiamo le librerie standard:
argparseper consentire all'applicazione di accettare i nomi dei file di input come argomentienumper l'enumerazioneFeatureTypeioper l'I/O dei file
Altri importazioni:
- La classe
ImageAnnotatorClientall'interno della libreriagoogle.cloud.visionper accedere all'API Vision. - Il modulo
typesall'interno della libreriagoogle.cloud.visionper la creazione delle richieste. - Le librerie
ImageeImageDrawdella libreriaPILvengono utilizzate per creare l'immagine di output con le caselle disegnate sull'immagine di input.
Esecuzione dell'applicazione
Qui, 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 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 Cloud tenterà di
ottenere le credenziali dalla GOOGLE_APPLICATION_CREDENTIALS
variabile di ambiente, 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
).
Invio della richiesta API e lettura dei limiti del testo dalla risposta
Ora che il nostro servizio API Vision è pronto, possiamo accedervi chiamando il metodo document_text_detection dell'istanza ImageAnnotatorClient.
La libreria client incapsula i dettagli delle richieste e delle risposte all'API. Per informazioni complete sulla struttura di una richiesta, consulta il riferimento dell'API Vision.
Una volta che la libreria client ha gestito la richiesta, la risposta conterrà un AnnotateImageResponse, che consiste in un elenco di risultati di annotazione delle immagini, uno per ogni immagine inviata in la richiesta. Poiché abbiamo inviato una sola immagine nella richiesta, esaminiamo il TextAnnotation completo, e raccogliamo i limiti per la funzionalità del documento specificata.
Esecuzione dell'applicazione
Per eseguire l'applicazione, puoi
scaricare questo receipt.jpg file
(potrebbe essere necessario fare clic con il tasto destro del mouse sul link),
quindi passare la posizione in cui hai scaricato il file sul computer locale
all'applicazione del tutorial (doctext.py).
Di seguito è riportato il comando Python, seguito dalle immagini di output di Text Annotation.
$ python doctext.py receipt.jpg -out_file out.jpg
L'immagine seguente mostra le parole in riquadri gialli e le frasi in rosso.
Complimenti! Hai eseguito il rilevamento del testo utilizzando le annotazioni di testo completo di Google Cloud Vision.