Riconoscimento ottico dei caratteri (OCR)
L'API Cloud Vision ti consente di utilizzare le funzionalità di riconoscimento ottico dei caratteri (OCR) per il rilevamento del testo dalle immagini. Ciò significa che puoi utilizzare Cloud Vision per attività di visione artificiale come l'analisi delle immagini e il rilevamento di testo denso nei documenti, inclusa l'estrazione della scrittura a mano.
L'API Cloud Vision fornisce due funzionalità di annotazione che supportano il riconoscimento ottico dei caratteri (OCR):
TEXT_DETECTIONrileva ed estrae il testo da qualsiasi immagine. Ad esempio, una fotografia potrebbe contenere un cartello stradale o un segnale stradale. Il JSON include l'intera stringa estratta, nonché le singole parole e i relativi rettangoli di selezione.
DOCUMENT_TEXT_DETECTIONestrae anche il testo da un'immagine, ma la risposta è ottimizzata per testo e documenti densi. Il JSON include informazioni su pagina, blocco, paragrafo, parola e interruzione.
Scopri di più su
DOCUMENT_TEXT_DETECTIONper l'estrazione della scrittura a mano libera e l'estrazione del testo dai file (PDF o TIFF).
Provalo
Se non conosci Google Cloud, crea un account per valutare le prestazioni di Cloud Vision in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
Prova Cloud Vision senza costiRichieste di rilevamento testo
Configura il progetto Google Cloud e l'autenticazione
Rilevamento del testo in un'immagine locale
Puoi utilizzare l'API Vision per eseguire il rilevamento delle funzionalità su un file immagine locale.
Per le richieste REST, invia i contenuti del file immagine come stringa con codifica base64 nel corpo della richiesta.
Per le richieste gcloud e delle librerie client, specifica il percorso di un'immagine locale nella tua richiesta.
gcloud
Per eseguire il rilevamento del testo, utilizza il comando gcloud ml vision
detect-text:
gcloud ml vision detect-text ./path/to/local/file.jpg
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- BASE64_ENCODED_IMAGE: La rappresentazione
in base64 (stringa ASCII) dei dati dell'immagine binaria. Questa stringa dovrebbe essere simile alla
seguente:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- PROJECT_ID: l'ID progetto Google Cloud .
Metodo HTTP e URL:
POST https://vision.googleapis.com/v1/images:annotate
Corpo JSON della richiesta:
{
"requests": [
{
"image": {
"content": "BASE64_ENCODED_IMAGE"
},
"features": [
{
"type": "TEXT_DETECTION"
}
]
}
]
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-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,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
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 riesce, 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
e le singole parole con i relativi riquadri di delimitazione.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Vision per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vision Go.
Per eseguire l'autenticazione in Vision, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida dell'API Vision che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento di Vision API Java.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vision per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vision Node.js.
Per eseguire l'autenticazione in Vision, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vision per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vision Python.
Per eseguire l'autenticazione in Vision, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client, poi consulta la documentazione di riferimento di Vision per .NET.
PHP: segui le istruzioni di configurazione di PHP nella pagina delle librerie client, poi consulta la documentazione di riferimento di Vision per PHP.
Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client, poi consulta la documentazione di riferimento di Vision per Ruby.
Rilevare il testo in un'immagine remota
Puoi utilizzare l'API Vision per eseguire il rilevamento delle funzionalità su un file immagine remoto che si trova in Cloud Storage o sul web. Per inviare una richiesta di file remoto, specifica l'URL web del file o l'URI Cloud Storage nel corpo della richiesta.
gcloud
Per eseguire il rilevamento del testo, utilizza il comando gcloud ml vision
detect-text:
gcloud ml vision detect-text gs://cloud-samples-data/vision/ocr/sign.jpg
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- CLOUD_STORAGE_IMAGE_URI: il percorso di un file immagine valido in un bucket Cloud Storage. Devi disporre almeno dei privilegi di lettura per il file.
Esempio:
gs://cloud-samples-data/vision/ocr/sign.jpg
- PROJECT_ID: l'ID progetto Google Cloud .
Metodo HTTP e URL:
POST https://vision.googleapis.com/v1/images:annotate
Corpo JSON della richiesta:
{
"requests": [
{
"image": {
"source": {
"imageUri": "CLOUD_STORAGE_IMAGE_URI"
}
},
"features": [
{
"type": "TEXT_DETECTION"
}
]
}
]
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-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,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
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 riesce, 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
e le singole parole con i relativi riquadri di delimitazione.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Vision per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vision Go.
Per eseguire l'autenticazione in Vision, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida dell'API Vision che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento di Vision API Java.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vision per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vision Node.js.
Per eseguire l'autenticazione in Vision, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vision per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vision Python.
Per eseguire l'autenticazione in Vision, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client, poi consulta la documentazione di riferimento di Vision per .NET.
PHP: segui le istruzioni di configurazione di PHP nella pagina delle librerie client, poi consulta la documentazione di riferimento di Vision per PHP.
Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client, poi consulta la documentazione di riferimento di Vision per Ruby.
(Facoltativo) Specifica la lingua per il rilevamento del testo OCR
Entrambi i tipi di richieste OCR supportano una o più languageHints che specificano la
lingua di qualsiasi testo nell'immagine. Tuttavia, un valore vuoto in genere produce i risultati migliori,
perché l'omissione di un valore consente il rilevamento automatico della lingua. Per le lingue basate sull'alfabeto latino, non è necessario impostare languageHints. In rari casi, quando la lingua del testo nell'immagine è nota, l'impostazione di un suggerimento aiuta a ottenere risultati migliori (anche se può essere un ostacolo significativo se il suggerimento è errato). Il rilevamento del testo restituisce un errore se una o più delle lingue specificate non sono tra le lingue supportate.
Se scegli di fornire un suggerimento sulla lingua, modifica il corpo della richiesta
(file request.json) per fornire la stringa di una delle lingue supportate
nel campo imageContext.languageHints, come mostrato nel seguente esempio:
{ "requests": [ { "image": { "source": { "imageUri": "IMAGE_URL" } }, "features": [ { "type": "DOCUMENT_TEXT_DETECTION" } ], "imageContext": { "languageHints": ["en-t-i0-handwrit"] } } ] }
Supporto multiregionale per l'OCR dell'API Vision
Ora puoi specificare l'archiviazione dei dati a livello di continente e l'elaborazione OCR. Al momento sono supportate le seguenti regioni:
us: solo Stati Unitieu: L'Unione Europea
Località
Cloud Vision ti offre un certo controllo sul luogo in cui le risorse per il tuo progetto vengono archiviate ed elaborate. 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 risorse rimarranno all'interno di una località o regione specifica. Se scegli la località Unione Europea, Google archivierà i tuoi dati e li elaborerà solo nell'Unione Europea. Tu e i tuoi utenti potete accedere ai dati da qualsiasi posizione.
Impostazione della posizione utilizzando l'API
L'API Vision supporta un endpoint API globale (vision.googleapis.com) e anche due endpoint basati sulla regione: 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 regione. Ad esempio, per archiviare ed elaborare i tuoi dati solo nell'Unione Europea, utilizza l'URI eu-vision.googleapis.com al posto di vision.googleapis.com per le chiamate API REST:
- https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/images:annotate
- https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/images:asyncBatchAnnotate
- https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/files:annotate
- https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/files:asyncBatchAnnotate
Per archiviare ed elaborare i dati solo negli Stati Uniti, utilizza l'endpoint statunitense
(us-vision.googleapis.com) con i metodi precedenti.
Impostazione della posizione utilizzando 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 dati solo nell'Unione Europea, devi impostare esplicitamente l'endpoint (eu-vision.googleapis.com). I seguenti esempi di codice mostrano come configurare questa impostazione.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- REGION_ID: uno degli identificatori di località regionali validi:
us: solo Stati Unitieu: L'Unione Europea
- CLOUD_STORAGE_IMAGE_URI: il percorso di un file immagine valido in un bucket Cloud Storage. Devi disporre almeno dei privilegi di lettura per il file.
Esempio:
gs://cloud-samples-data/vision/ocr/sign.jpg
- PROJECT_ID: l'ID progetto Google Cloud .
Metodo HTTP e URL:
POST https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/images:annotate
Corpo JSON della richiesta:
{
"requests": [
{
"image": {
"source": {
"imageUri": "CLOUD_STORAGE_IMAGE_URI"
}
},
"features": [
{
"type": "TEXT_DETECTION"
}
]
}
]
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/images:annotate"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/images:annotate" | Select-Object -Expand Content
Se la richiesta riesce, 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
e le singole parole con i relativi riquadri di delimitazione.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Vision per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vision Go.
Per eseguire l'autenticazione in Vision, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida dell'API Vision che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento di Vision API Java.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vision per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vision Node.js.
Per eseguire l'autenticazione in Vision, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vision per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Vision Python.
Per eseguire l'autenticazione in Vision, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Prova
Prova il rilevamento del testo e il rilevamento del testo del documento utilizzando la seguente applicazione web. Puoi utilizzare l'immagine fornita
(gs://cloud-samples-data/vision/ocr/sign.jpg) facendo clic su
Esegui oppure puoi specificare la tua immagine al suo posto.
Per provare il rilevamento del testo del documento, aggiorna il valore di type a
DOCUMENT_TEXT_DETECTION.

Corpo della richiesta:
{
"requests": [
{
"features": [
{
"type": "TEXT_DETECTION"
}
],
"image": {
"source": {
"imageUri": "gs://cloud-samples-data/vision/ocr/sign.jpg"
}
}
}
]
}