Mit der Vision API lassen sich sämtliche Vision API-Features in PDF- und TIFF-Dateien erkennen, die in Cloud Storage gespeichert sind.
Die Feature-Erkennung in PDF/TIFF-Dokumenten muss mit der Funktion files:asyncBatchAnnotate
angefordert werden. Diese Funktion führt eine (asynchrone) Offline-Anfrage aus und gibt mithilfe der operations
-Ressourcen den Status an.
Die Ausgabedaten aus einer PDF/TIFF-Anfrage werden in eine JSON-Datei geschrieben, die im angegebenen Cloud Storage-Bucket erstellt wurde.
Beschränkungen
Die Vision API akzeptiert PDF/TIFF-Dateien mit maximal 2.000 Seiten. Größere Dateien führen zu einem Fehler.
Authentifizierung
API-Schlüssel werden bei files:asyncBatchAnnotate
-Anfragen nicht unterstützt. Weitere Informationen dazu, wie Sie sich mit einem Dienstkonto authentifizieren, finden Sie unter Dienstkonto verwenden.
Das für die Authentifizierung verwendete Konto muss Zugriff auf den Cloud Storage-Bucket haben, den Sie für die Ausgabe (roles/editor
oder roles/storage.objectCreator
oder höher) festgelegt haben.
Sie können einen API-Schlüssel verwenden, um den Status des Vorgangs abzufragen. Eine Anleitung dazu finden Sie unter API-Schlüssel verwenden.
Funktionserkennungsanfragen
Derzeit ist die PDF/TIFF-Dokumenterkennung nur für Dateien verfügbar, die in Cloud Storage-Buckets gespeichert sind. JSON-Antwortdateien werden ebenso in einem Cloud Storage-Bucket gespeichert.
Befehlszeile
Senden Sie eine POST-Anfrage und geben Sie den entsprechenden Anfragetext an, um eine Texterkennung in PDF/TIFF-Dokumenten auszuführen:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://vision.googleapis.com/v1/files:asyncBatchAnnotate -d "{ 'requests':[ { 'inputConfig': { 'gcsSource': { 'uri': 'gs://your-source-bucket-name/folder/multi-page-file.pdf' }, 'mimeType': 'application/pdf' }, 'features': [ { 'type': 'DOCUMENT_TEXT_DETECTION' } ], 'outputConfig': { 'gcsDestination': { 'uri': 'gs://your-bucket-name/folder/' }, 'batchSize': 1 } } ] }"
Dabei gilt:
inputConfig
ersetzt das Feldimage
, das in anderen Vision API-Anfragen verwendet wird. Es enthält zwei untergeordnete Felder:gcsSource.uri
ist der Cloud Storage-URI der PDF- oder TIFF-Datei (zugänglich für den Nutzer oder das Dienstkonto, von dem die Anfrage stammt)mimeType
ist einer der akzeptierten Dateitypen:application/pdf
oderimage/tiff
outputConfig
gibt Ausgabedetails an. Es enthält zwei untergeordnete Felder:gcsDestination.uri
ist ein gültiger Cloud Storage-URI. Der Nutzer oder das Dienstkonto, von dem die Anfrage gesendet wird, muss Schreibrechte für den Bucket haben. Der Dateiname istoutput-x-to-y
, wobeix
undy
für die Anzahl der PDF/TIFF-Seiten stehen, die in dieser Ausgabedatei enthalten sind. Wenn die Datei vorhanden ist, wird ihr Inhalt überschrieben.batchSize
gibt an, wie viele Ausgabeseiten in jeder JSON-Ausgabedatei enthalten sein sollen.
Antwort
Eine erfolgreiche asyncBatchAnnotate
-Anfrage gibt als Antwort ein einzelnes Namensfeld zurück:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Dieser Name stellt einen lang andauernden Vorgang mit einer verknüpften ID dar (z. B. 1efec2285bd442df
), die mit der v1.operations
API abgefragt werden kann.
Sie können die Antwort mit den Vision-Anmerkungen abrufen. Dazu senden Sie eine GET-Anfrage an den Endpunkt v1.operations
und übergeben in der URL die Vorgangs-ID:
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/operations/1efec2285bd442df
Wenn der Vorgang läuft:
{ "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" } }
Sobald der Vorgang abgeschlossen ist, wird der state
als DONE
angezeigt und Ihre Ergebnisse werden in die von Ihnen angegebene Cloud Storage-Datei geschrieben:
{ "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 } } ] } }
Die JSON-Datei in Ihrer Ausgabedatei ähnelt der Anfrage zur Dokumenttexterkennung für ein Bild, wobei das Feld context
hinzugefügt wird. Dieses Feld gibt den Speicherort der angegebenen PDF- oder TIFF-Datei und die Anzahl der Seiten in der Datei an:
output-1-to-1.json
Go
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Go-Einrichtungsanleitung in der Vision-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Vision-Referenzdokumentation zur Go API.
Richten Sie zur Authentifizierung bei Vision die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Java-Einrichtungsanleitung in der Vision-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Vision-Referenzdokumentation zur Java API.
Richten Sie zur Authentifizierung bei Vision die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Node.js-Einrichtungsanleitung in der Vision-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Vision-Referenzdokumentation zur Node.js API.
Richten Sie zur Authentifizierung bei Vision die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Python-Einrichtungsanleitung in der Vision-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Vision-Referenzdokumentation zur Python API.
Richten Sie zur Authentifizierung bei Vision die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
gcloud
Der verwendete gcloud
-Befehl hängt vom Dateityp ab.
Verwenden Sie für die PDF-Texterkennung den Befehl
gcloud ml vision detect-text-pdf
, wie im folgenden Beispiel gezeigt:gcloud ml vision detect-text-pdf gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Verwenden Sie für die TIFF-Texterkennung den Befehl
gcloud ml vision detect-text-tiff
, wie im folgenden Beispiel gezeigt:gcloud ml vision detect-text-tiff gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Weitere Sprachen
C#: Folgen Sie der Anleitung zur Einrichtung von C# auf der Seite der Clientbibliotheken und rufen Sie dann die Vision-Referenzdokumentation für .NET auf.
PHP: Folgen Sie der Anleitung zur Einrichtung von PHP auf der Seite der Clientbibliotheken und rufen Sie dann die Vision-Referenzdokumentation für PHP auf.
Ruby: Folgen Sie der Anleitung zur Einrichtung von Ruby auf der Seite der Clientbibliotheken und rufen Sie dann die Vision-Referenzdokumentation für Ruby auf.