Riconoscimento ottico dei caratteri (OCR)
L'API Vision è in grado di rilevare ed estrarre il testo dalle immagini. Esistono due funzionalità di annotazione che supportano il riconoscimento ottico dei caratteri (OCR):
TEXT_DETECTION
rileva ed estrae il testo da qualsiasi immagine. Ad esempio, una foto potrebbe contenere un cartello stradale o un cartello stradale. Il formato JSON include l'intera stringa estratta, nonché le singole parole e i relativi riquadri di delimitazione.DOCUMENT_TEXT_DETECTION
estrae anche il testo da un'immagine, ma la risposta è ottimizzata per testo ad alta densità e documenti. Il formato JSON include informazioni sulla pagina, sul blocco, sul paragrafo, sulla parola e sull'interruzione.Scopri di più su
DOCUMENT_TEXT_DETECTION
per l'estrazione della scrittura a mano libera e l'estrazione del testo dai file (PDF/TIFF).
Provalo
Se non hai mai utilizzato Google Cloud, crea un account per valutare le prestazioni di Cloud Vision in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
Prova Cloud Vision gratuitamenteRichieste di rilevamento testo
Configurare il progetto GCP e l'autenticazione
Rilevamento del testo in un'immagine locale
L'API Vision può eseguire il rilevamento delle caratteristiche in un file immagine locale inviando il contenuto del file immagine come una stringa codificata in base64 nel corpo della richiesta.
gcloud
Per eseguire il rilevamento del testo, utilizza il comando
gcloud ml vision detect-text
come mostrato nell'esempio seguente:
gcloud ml vision detect-text ./path/to/local/file.jpg
REST &CMD LINE
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
- BASE64_ENCODED_IMAGE: la rappresentazione base64 (stringa ASCII) dei dati immagine binari. Questa stringa deve essere simile alla
seguente stringa:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
Metodo HTTP e URL:
POST https://vision.googleapis.com/v1/images:annotate
Corpo JSON richiesta:
{ "requests": [ { "image": { "content": "BASE64_ENCODED_IMAGE" }, "features": [ { "type": "TEXT_DETECTION" } ] } ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
Curling
Salva il corpo della richiesta in un file denominato request.json
ed esegui il seguente comando:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-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 il seguente comando:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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.
Una risposta TEXT_DETECTION
include la frase rilevata, il relativo riquadro di delimitazione, le singole parole e i relativi riquadri di delimitazione.
Go
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nella guida rapida di Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida rapida all'API Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java dell'API Vision.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella guida rapida di Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Node.js.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Python.
Lingue aggiuntive
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client e consulta la documentazione di riferimento di Vision per .NET.
PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e consulta la documentazione di riferimento di Vision per PHP.
Ruby: segui le istruzioni di configurazione di Rubby nella pagina delle librerie client e consulta la documentazione di riferimento di Vision per Ruby.
Rilevamento del testo in un'immagine remota
Per comodità, l'API Vision può eseguire il rilevamento delle funzionalità direttamente in un file immagine situato in Google Cloud Storage o sul Web, senza dover inviare i contenuti del file immagine nel corpo della richiesta.
gcloud
Per eseguire il rilevamento del testo, utilizza il comando
gcloud ml vision detect-text
come mostrato nell'esempio seguente:
gcloud ml vision detect-text gs://cloud-samples-data/vision/ocr/sign.jpg
REST &CMD LINE
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
- CLOUD_STORAGE_IMAGE_URI: il percorso di un file immagine
valido in un bucket Cloud Storage. Devi disporre almeno di privilegi di lettura per il file.
Esempio:
gs://cloud-samples-data/vision/ocr/sign.jpg
Metodo HTTP e URL:
POST https://vision.googleapis.com/v1/images:annotate
Corpo JSON richiesta:
{ "requests": [ { "image": { "source": { "imageUri": "CLOUD_STORAGE_IMAGE_URI" } }, "features": [ { "type": "TEXT_DETECTION" } ] } ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
Curling
Salva il corpo della richiesta in un file denominato request.json
ed esegui il seguente comando:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-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 il seguente comando:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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.
Una risposta TEXT_DETECTION
include la frase rilevata, il relativo riquadro di delimitazione, le singole parole e i relativi riquadri di delimitazione.
Go
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nella guida rapida di Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida rapida all'API Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java dell'API Vision.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella guida rapida di Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Node.js.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Python.
Lingue aggiuntive
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client e consulta la documentazione di riferimento di Vision per .NET.
PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e consulta la documentazione di riferimento di Vision per PHP.
Ruby: segui le istruzioni di configurazione di Rubby nella pagina delle librerie client e consulta la documentazione di riferimento di Vision per Ruby.
Specifica la lingua (facoltativo)
Entrambi i tipi di richieste OCR supportano uno o più languageHints
che specificano la lingua
di qualsiasi testo nell'immagine. Tuttavia, nella maggior parte dei casi un valore vuoto genera i risultati migliori, poiché abilita il rilevamento automatico della lingua. Per le lingue basate sull'alfabeto latino non è necessaria l'impostazione di languageHints
. In rari casi, quando il linguaggio del testo nell'immagine è noto, l'impostazione di un suggerimento aiuta a ottenere risultati migliori (anche se può essere un ostacolo significativo se il suggerimento è sbagliato). Il rilevamento testo restituisce un errore se una o più lingue specificate non sono una delle lingue supportate.
Se scegli di fornire un suggerimento per la lingua, modifica il corpo della richiesta
(file request.json
) per fornire la stringa di una delle lingue supportate
nel campo imageContext.languageHints
, come mostrato di seguito:
{ "requests": [ { "image": { "source": { "imageUri": "IMAGE_URL" } }, "features": [ { "type": "DOCUMENT_TEXT_DETECTION" } ], "imageContext": { "languageHints": ["en-t-i0-handwrit"] } } ] }
Supporto di più aree geografiche
Ora puoi specificare archiviazione dei dati a livello di continente ed elaborazione OCR. Le seguenti aree geografiche sono attualmente supportate:
us
: solo paese degli Stati Unitieu
: Unione europea
Località
Cloud Vision offre un certo controllo su dove vengono archiviate ed elaborate le risorse per il tuo progetto. In particolare, puoi configurare Cloud Vision per archiviare ed elaborare i tuoi dati solo nell'Unione europea.
Per impostazione predefinita, Cloud Vision archivia ed elabora le risorse in una località globale, il che significa che Cloud Vision non garantisce che le tue risorse rimarranno in una determinata località o area geografica. Se scegli la posizione nell'Unione europea, Google conserverà i tuoi dati e li elaborerà solo nell'Unione europea. Tu e i tuoi utenti potete accedere ai dati da qualsiasi luogo.
Impostazione della località tramite l'API
L'API Vision supporta un endpoint API globale (vision.googleapis.com
) e due endpoint basati su area geografica: un endpoint dell'Unione europea (eu-vision.googleapis.com
) e un endpoint degli Stati Uniti (us-vision.googleapis.com
). Utilizza questi endpoint per l'elaborazione specifica per l'area geografica. Ad esempio, per archiviare ed elaborare i tuoi dati solo nell'Unione europea, usa l'URI eu-vision.googleapis.com
al posto di vision.googleapis.com
per le chiamate API REST:
https://eu-vision.googleapis.com/v1/images:annotate
https://eu-vision.googleapis.com/v1/images:asyncBatchAnnotate
https://eu-vision.googleapis.com/v1/files:annotate
https://eu-vision.googleapis.com/v1/files:asyncBatchAnnotate
Per archiviare ed elaborare i tuoi dati solo negli Stati Uniti, utilizza l'endpoint degli Stati Uniti (us-vision.googleapis.com
) con i metodi elencati sopra.
Impostazione della località mediante le librerie client
Le librerie client dell'API Vision accedono all'endpoint API globale
(vision.googleapis.com
) per impostazione predefinita. Per archiviare ed elaborare i tuoi dati solo nell'Unione europea, devi impostare esplicitamente l'endpoint (eu-vision.googleapis.com
). Gli esempi di codice riportati di seguito mostrano come configurare questa impostazione.
REST &CMD LINE
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
- CLOUD_STORAGE_IMAGE_URI: il percorso di un file immagine
valido in un bucket Cloud Storage. Devi disporre almeno di privilegi di lettura per il file.
Esempio:
gs://cloud-samples-data/vision/ocr/sign.jpg
Metodo HTTP e URL:
POST https://eu-vision.googleapis.com/v1/images:annotate
Corpo JSON richiesta:
{ "requests": [ { "image": { "source": { "imageUri": "CLOUD_STORAGE_IMAGE_URI" } }, "features": [ { "type": "TEXT_DETECTION" } ] } ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
Curling
Salva il corpo della richiesta in un file denominato request.json
ed esegui il seguente comando:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://eu-vision.googleapis.com/v1/images:annotate"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui il seguente comando:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://eu-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.
Una risposta TEXT_DETECTION
include la frase rilevata, il relativo riquadro di delimitazione, le singole parole e i relativi riquadri di delimitazione.
Go
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nella guida rapida di Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida rapida all'API Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java dell'API Vision.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella guida rapida di Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Node.js.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vision che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Python.
Prova
Prova la funzionalità di rilevamento testo e documento testuale qui sotto. Puoi utilizzare l'immagine già specificata (gs://cloud-samples-data/vision/ocr/sign.jpg
) facendo clic su Esegui. In alternativa, puoi specificare un'immagine specifica al suo posto.
Per provare il rilevamento di testo dei documenti, aggiorna il valore di type
in
DOCUMENT_TEXT_DETECTION
.
Corpo della richiesta:
{ "requests": [ { "features": [ { "type": "TEXT_DETECTION" } ], "image": { "source": { "imageUri": "gs://cloud-samples-data/vision/ocr/sign.jpg" } } } ] }