Rilevamento della scrittura a mano libera con riconoscimento ottico dei caratteri (OCR)
L'API Vision può rilevare ed estrarre il testo dalle immagini:
DOCUMENT_TEXT_DETECTIONestrae il testo da un'immagine (o da un file); la risposta è ottimizzata per testo e documenti densi. Il file JSON include informazioni su pagina, blocco, paragrafo, parola e interruzione.
Un utilizzo specifico di DOCUMENT_TEXT_DETECTION è il rilevamento del testo scritto a mano in un'immagine.

Richieste di rilevamento del testo dei documenti
Configura il progetto Google Cloud e l'autenticazione
Rileva il testo del documento in un'immagine locale
Puoi utilizzare l'API Vision per eseguire il rilevamento delle caratteristiche 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 della libreria client, specifica il percorso di un'immagine locale nella richiesta.
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": "DOCUMENT_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 va a buon fine, il server restituisce un codice di stato HTTP 200 OK e la risposta in formato JSON.
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 per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento di Java per l'API Vision.
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.
Rileva il testo del documento in un'immagine remota
Puoi utilizzare l'API Vision per eseguire il rilevamento delle caratteristiche su un file immagine remoto che si trova in Cloud Storage o sul web. Per inviare una richiesta di file remoti, specifica l'URL web o l'URI Cloud Storage del file nel corpo della richiesta.
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/handwriting_image.png
- 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": "DOCUMENT_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 va a buon fine, il server restituisce un codice di stato HTTP 200 OK e la risposta in formato JSON.
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 per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento di Java per l'API Vision.
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.
gcloud
Per eseguire il rilevamento della scrittura a mano libera, utilizza il comando gcloud ml vision detect-document come mostrato nell'esempio seguente:
gcloud ml vision detect-document gs://cloud-samples-data/vision/handwriting_image.png
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
Entrambi i tipi di richieste OCR supportano uno o più languageHints che specificano la lingua del testo nell'immagine. Tuttavia, un valore vuoto di solito produce i risultati migliori, perché l'omissione di un valore consente il rilevamento automatico della lingua. Per le lingue basate sull'alfabeto latino, l'impostazione languageHints non è necessaria. 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ù lingue specificate non sono tra le 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 nell'esempio seguente:
{ "requests": [ { "image": { "source": { "imageUri": "IMAGE_URL" } }, "features": [ { "type": "DOCUMENT_TEXT_DETECTION" } ], "imageContext": { "languageHints": ["en-t-i0-handwrit"] } } ] }
Supporto multiregionale
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 rimangano 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 località.
Impostazione della località tramite l'API
L'API Vision supporta un endpoint API globale (vision.googleapis.com) e due endpoint basati su regioni: un endpoint per l'Unione Europea (eu-vision.googleapis.com) e un endpoint per gli Stati Uniti (us-vision.googleapis.com). Utilizza questi endpoint per l'elaborazione specifica per regione. Ad esempio, per archiviare ed elaborare i dati solo nell'Unione Europea, utilizza l'URI eu-vision.googleapis.com anziché 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 degli Stati Uniti (us-vision.googleapis.com) con i metodi precedenti.
Impostazione della località 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_IDThe following is a list of all the known issues in the current release of the Android Gradle plugin.
## General
### Android Studio 3.6 and later requires Gradle 5.6.4 or later
The minimum Gradle version supported by Android Gradle plugin 3.6.0 is 5.6.4. If you try to open a project with an earlier version of Gradle, Android Studio will prompt you to automatically update the project's Gradle wrapper to the appropriate version.
### Android Studio 3.6 and later requires Build Tools 28.0.3 or later
The minimum Build Tools version supported by Android Gradle plugin 3.6.0 is 28.0.3. Make sure you have specified a version of Build Tools equal to or higher than 28.0.3 in the `buildToolsVersion` property of your module-level `build.gradle` files.
### Configuration caching is not compatible with Android Gradle plugin 4.0
Android Gradle plugin 4.0 does not support [configuration caching](https://docs.gradle.org/current/userguide/configuration_cache.html). If your `gradle.properties` file has `org.gradle.unsafe.configuration-cache=true`, you need to remove this property or set it to `false`.
### Missing classes when using R8 with Kotlin 1.4.0-rc
If you use Kotlin 1.4.0-rc with R8, you might experience build failures or runtime crashes with the following error message:
```
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/handwriting_image.png
- 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": "DOCUMENT_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 va a buon fine, il server restituisce un codice di stato HTTP 200 OK e la risposta in formato JSON.
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 per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento di Java per l'API Vision.
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 il rilevamento di testo e scrittura a mano libera
Prova il rilevamento del testo e il rilevamento del testo dei documenti in Explorer API di Google. Puoi utilizzare l'immagine già specificata (gs://cloud-samples-data/vision/handwriting_image.png) facendo clic su Esegui oppure puoi specificare un'immagine personalizzata al suo posto.

Corpo della richiesta:
{
"requests": [
{
"features": [
{
"type": "DOCUMENT_TEXT_DETECTION"
}
],
"image": {
"source": {
"imageUri": "gs://cloud-samples-data/vision/handwriting_image.png"
}
}
}
]
}Apri Explorer API di Google e invia la richiesta
Per aprire Explorer API di Google, fai clic su Prova.
Facoltativo. Modifica il corpo della richiesta esistente.
Per inviare la richiesta, fai clic su Esegui.