L'API Vision può rilevare e trascrivere il testo dai file PDF e TIFF archiviati in Cloud Storage.
Il rilevamento del testo dei documenti da PDF e TIFF deve essere richiesto utilizzando il
Funzione files:asyncBatchAnnotate
, che esegue una funzione offline (asincrona)
e ne fornisce lo stato utilizzando le risorse operations
.
L'output di una richiesta PDF/TIFF viene scritto in un file JSON creato nel specificato per il bucket Cloud Storage specificato.
Limitazioni
L'API Vision accetta file PDF/TIFF con un massimo di 2000 pagine. I file più grandi return un errore.
Autenticazione
Le chiavi API non sono supportate per le richieste files:asyncBatchAnnotate
. Consulta:
Utilizzo di un account di servizio per
istruzioni sull'autenticazione con un account di servizio.
L'account utilizzato per l'autenticazione deve avere accesso al bucket Cloud Storage specificato per l'output (roles/editor
o
roles/storage.objectCreator
o versioni successive).
Puoi utilizzare una chiave API per eseguire query sullo stato dell'operazione. vedi Utilizzo di una chiave API per le istruzioni.
Richieste di rilevamento del testo in documenti
Al momento il rilevamento di documenti PDF/TIFF è disponibile solo per i file archiviati in di archiviazione dei bucket Cloud Storage. I file JSON di risposta vengono salvati in modo simile nel bucket Cloud Storage.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- CLOUD_STORAGE_BUCKET: un bucket/una directory Cloud Storage in cui salvare i file di output, espresso nel seguente formato:
gs://bucket/directory/
- CLOUD_STORAGE_FILE_URI: il percorso di un file valido (PDF/TIFF) in un bucket Cloud Storage. Devi disporre almeno dei privilegi di lettura per il file.
Esempio:
gs://cloud-samples-data/vision/pdf_tiff/census2010.pdf
- FEATURE_TYPE: un tipo di caratteristica valido.
Per le richieste
files:asyncBatchAnnotate
puoi utilizzare i seguenti tipi di funzionalità:DOCUMENT_TEXT_DETECTION
TEXT_DETECTION
- PROJECT_ID: l'ID del tuo progetto Google Cloud.
Considerazioni specifiche per i campi:
inputConfig
: sostituisce il campoimage
utilizzato in un'altra versione Vision richieste API. Contiene due campi secondari:gcsSource.uri
: l'URI Google Cloud Storage del file PDF o TIFF (accessibile all'account utente o di servizio che effettua la richiesta).mimeType
è uno dei tipi di file accettati:application/pdf
oimage/tiff
.
outputConfig
: specifica i dettagli dell'output. Contiene due campi secondari:gcsDestination.uri
: un URI Google Cloud Storage valido. Il bucket deve essere scritto dall'account utente o di servizio che effettua la richiesta. Il nome file saràoutput-x-to-y
, dovex
ey
rappresentano i numeri di pagina PDF/TIFF inclusi nel file di output. Se il file esiste, i suoi contenuti verranno sovrascritti.batchSize
: specifica il numero di pagine di output dovrebbe essere incluso in ogni file JSON di output.
Metodo HTTP e URL:
POST https://vision.googleapis.com/v1/files:asyncBatchAnnotate
Corpo JSON della richiesta:
{ "requests":[ { "inputConfig": { "gcsSource": { "uri": "CLOUD_STORAGE_FILE_URI" }, "mimeType": "application/pdf" }, "features": [ { "type": "FEATURE_TYPE" } ], "outputConfig": { "gcsDestination": { "uri": "CLOUD_STORAGE_BUCKET" }, "batchSize": 1 } } ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
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/files:asyncBatchAnnotate"
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/files:asyncBatchAnnotate" | Select-Object -Expand Content
Una richiesta asyncBatchAnnotate
andata a buon fine restituisce una risposta con un solo nome.
campo:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Questo nome rappresenta un'operazione a lunga esecuzione con un ID associato
(ad esempio, 1efec2285bd442df
), su cui è possibile eseguire query utilizzando il
API v1.operations
.
Per recuperare la risposta dell'annotazione di Vision, invia una richiesta GET all'endpoint v1.operations
, passando l'ID operazione nell'URL:
GET https://vision.googleapis.com/v1/operations/operation-id
Ad esempio:
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/projects/project-id/locations/location-id/operations/1efec2285bd442df
Se l'operazione è in corso:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "RUNNING", "createTime": "2019-05-15T21:10:08.401917049Z", "updateTime": "2019-05-15T21:10:33.700763554Z" } }
Una volta completata l'operazione, state
viene visualizzato come DONE
e
i risultati vengono scritti nel file Google Cloud Storage specificato:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "DONE", "createTime": "2019-05-15T20:56:30.622473785Z", "updateTime": "2019-05-15T20:56:41.666379749Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse", "responses": [ { "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket-name/folder/" }, "batchSize": 1 } } ] } }
Il JSON nel file di output è simile a quello di una
[richiesta di rilevamento del testo del documento](/vision/docs/ocr) di un'immagine, con l'aggiunta di un
campo context
che mostra la posizione del PDF o del TIFF specificato e
il numero di pagine del file:
output-1-to-1.json
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go riportate nella guida rapida di Vision con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Go.
Per autenticarti a Vision, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida dell'API Vision sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento Java di Vision API.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Vision con le librerie client. Per ulteriori informazioni, consulta API Vision Node.js documentazione di riferimento.
Per autenticarti a Vision, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di Vision utilizzando librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Python.
Per autenticarti a Vision, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
gcloud
Il comando gcloud
che utilizzi dipende dal tipo di file.
Per eseguire il rilevamento del testo PDF, utilizza il
gcloud ml vision detect-text-pdf
come mostrato nell'esempio seguente:gcloud ml vision detect-text-pdf gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Per eseguire il rilevamento del testo TIFF, utilizza il metodo
gcloud ml vision detect-text-tiff
come mostrato nell'esempio seguente:gcloud ml vision detect-text-tiff gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di Vision per .NET.
PHP: segui le istruzioni di configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di Vision per PHP.
Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e poi consulta la documentazione di riferimento di Vision per Ruby.
Supporto di più aree geografiche
Ora puoi specificare l'archiviazione dei dati e l'elaborazione OCR a livello di continente. Le seguenti regioni sono attualmente supportati:
us
: solo paese Stati Unitieu
: Unione europea
Località
Cloud Vision ti offre un certo controllo sulla posizione in cui 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 posizione globale, il che significa che Cloud Vision non garantisce che le risorse rimarranno all'interno di una determinata località o regione. Se scegli la località Unione Europea, Google archivia e tratta i tuoi dati 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 anche due endpoint basati sulla regione: 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 all'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 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 tuoi dati nel
Solo per l'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, effettua le seguenti sostituzioni:
- REGION_ID: uno dei valori regionali validi
identificatori di località:
us
: solo paese Stati Unitieu
: 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/pdf_tiff/census2010.pdf
- CLOUD_STORAGE_BUCKET: un bucket/una directory Cloud Storage in cui salvare i file di output, espresso nel seguente formato:
gs://bucket/directory/
- FEATURE_TYPE: un tipo di elemento valido.
Per le richieste
files:asyncBatchAnnotate
puoi utilizzare i seguenti tipi di funzionalità:DOCUMENT_TEXT_DETECTION
TEXT_DETECTION
- PROJECT_ID: l'ID del tuo progetto Google Cloud.
Considerazioni specifiche per i campi:
inputConfig
: sostituisce il campoimage
utilizzato in un'altra versione Vision richieste API. Contiene due campi secondari:gcsSource.uri
: l'URI Google Cloud Storage del file PDF o TIFF (accessibile all'account utente o di servizio che effettua la richiesta).mimeType
è uno dei tipi di file accettati:application/pdf
oimage/tiff
.
outputConfig
: specifica i dettagli dell'output. Contiene due campi secondari:gcsDestination.uri
: un URI Google Cloud Storage valido. Il bucket deve essere scritto dall'account utente o di servizio che effettua la richiesta. Il nome file saràoutput-x-to-y
, dovex
ey
rappresentano i numeri di pagina PDF/TIFF inclusi nel file di output. Se il file esiste, i suoi contenuti verranno sovrascritti.batchSize
: specifica il numero di pagine di output dovrebbe essere incluso in ogni file JSON di output.
Metodo HTTP e URL:
POST https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/files:asyncBatchAnnotate
Corpo JSON della richiesta:
{ "requests":[ { "inputConfig": { "gcsSource": { "uri": "CLOUD_STORAGE_IMAGE_URI" }, "mimeType": "application/pdf" }, "features": [ { "type": "FEATURE_TYPE" } ], "outputConfig": { "gcsDestination": { "uri": "CLOUD_STORAGE_BUCKET" }, "batchSize": 1 } } ] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
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/files:asyncBatchAnnotate"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
$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/files:asyncBatchAnnotate" | Select-Object -Expand Content
Una richiesta asyncBatchAnnotate
andata a buon fine restituisce una risposta con un solo nome.
campo:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Questo nome rappresenta un'operazione a lunga esecuzione con un ID associato
(ad esempio, 1efec2285bd442df
), su cui è possibile eseguire query utilizzando il
API v1.operations
.
Per recuperare la risposta dell'annotazione di Vision, invia una richiesta GET all'endpoint v1.operations
, passando l'ID operazione nell'URL:
GET https://vision.googleapis.com/v1/operations/operation-id
Ad esempio:
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/projects/project-id/locations/location-id/operations/1efec2285bd442df
Se l'operazione è in corso:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "RUNNING", "createTime": "2019-05-15T21:10:08.401917049Z", "updateTime": "2019-05-15T21:10:33.700763554Z" } }
Una volta completata l'operazione, state
viene visualizzato come DONE
e
i risultati vengono scritti nel file Google Cloud Storage specificato:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "DONE", "createTime": "2019-05-15T20:56:30.622473785Z", "updateTime": "2019-05-15T20:56:41.666379749Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse", "responses": [ { "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket-name/folder/" }, "batchSize": 1 } } ] } }
Il JSON nel file di output è simile a quello della risposta di rilevamento del testo del documento di un'immagine se hai utilizzato la funzionalità DOCUMENT_TEXT_DETECTION
o alla risposta di rilevamento del testo se hai utilizzato la funzionalità TEXT_DETECTION
. L'output avrà un campo aggiuntivo context
che mostra la posizione del file PDF o TIFF specificato e il numero di pagine del file:
output-1-to-1.json
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go riportate nella guida rapida di Vision con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Go.
Per autenticarti a Vision, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nel Guida rapida dell'API Vision Utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento Java di Vision API.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Vision con le librerie client. Per ulteriori informazioni, consulta API Vision Node.js documentazione di riferimento.
Per autenticarti a Vision, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di Vision utilizzando librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vision Python.
Per autenticarti a Vision, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Provalo
Se non hai mai utilizzato Google Cloud, crea un account per valutare in che modo L'API Cloud Vision funziona nel mondo reale diversi scenari. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
Prova l'API Cloud Vision gratuitamente