Die Vision API kann Text aus PDF- und TIFF-Dateien, die in Cloud Storage gespeichert sind, erkennen und transkribieren.
Die Texterkennung in PDF-/TIFF-Dokumenten muss mit der Funktion files:asyncBatchAnnotate
angefordert werden. Diese Funktion führt eine (asynchrone) Offlineanfrage durch und gibt mithilfe der Ressourcen operations
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.
Anfragen zur Erkennung von Dokumenttext
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.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- CLOUD_STORAGE_BUCKET: ein Google Cloud Storage-Bucket/-Verzeichnis, in dem Ausgabedateien gespeichert werden. Dies wird in folgender Form angegeben:
gs://bucket/directory/
- CLOUD_STORAGE_FILE_URI: der Pfad zu einer gültigen Datei (PDF/TIFF) in einem Cloud Storage-Bucket. Sie müssen zumindest Leseberechtigungen für die Datei haben.
Beispiel:
gs://cloud-samples-data/vision/pdf_tiff/census2010.pdf
- FEATURE_TYPE: ein gültiger Featuretyp.
Für
files:asyncBatchAnnotate
-Anfragen können Sie die folgenden Featuretypen verwenden:DOCUMENT_TEXT_DETECTION
TEXT_DETECTION
- PROJECT_ID: Ihre Google Cloud-Projekt-ID.
Feldspezifische Hinweise:
inputConfig
ersetzt das Feldimage
, das in anderen Vision API-Anfragen verwendet wird. Es enthält zwei untergeordnete Felder:gcsSource.uri
ist der Google 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 Google 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.
HTTP-Methode und URL:
POST https://vision.googleapis.com/v1/files:asyncBatchAnnotate
JSON-Text der Anfrage:
{ "requests":[ { "inputConfig": { "gcsSource": { "uri": "CLOUD_STORAGE_FILE_URI" }, "mimeType": "application/pdf" }, "features": [ { "type": "FEATURE_TYPE" } ], "outputConfig": { "gcsDestination": { "uri": "CLOUD_STORAGE_BUCKET" }, "batchSize": 1 } } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Eine erfolgreiche asyncBatchAnnotate
-Anfrage gibt als Antwort ein einzelnes Namensfeld zurück:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Dieser Name stellt einen Vorgang mit langer Ausführungszeit 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-Annotationen abrufen. Dazu senden Sie eine GET-Anfrage an den Endpunkt v1.operations
und übergeben in der URL die Vorgangs-ID:
GET https://vision.googleapis.com/v1/operations/operation-id
Beispiel:
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
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 Google 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 (/vision/docs/ocr), wobei zusätzlich das Feld context
vorhanden ist. Es 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 anwenden, folgen Sie der Anleitung für die Einrichtung von Java in der Vision API-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Java-Referenzdokumentation zur Vision API.
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.
Unterstützung für mehrere Regionen
Sie können jetzt Datenspeicher- und OCR-Verarbeitung auf Kontinentenebene festlegen. Folgende Regionen werden derzeit unterstützt:
us
: Nur Festland-USAeu
: Die Europäischen Union
Standorte
In Cloud Vision können Sie steuern, wo die Ressourcen für Ihr Projekt gespeichert und verarbeitet werden. Insbesondere können Sie Cloud Vision so konfigurieren, dass Ihre Daten nur in der Europäischen Union gespeichert und verarbeitet werden.
Standardmäßig speichert und verarbeitet Cloud Vision Ressourcen an einem globalen Standort. Das bedeutet, dass Cloud Vision nicht garantiert, dass Ihre Ressourcen an einem bestimmten Standort oder in einer bestimmten Region verbleiben. Wenn Sie den Standort Europäische Union auswählen, speichert Google Ihre Daten und verarbeitet sie nur in der Europäischen Union. Sie und Ihre Nutzer können von jedem Standort aus auf die Daten zugreifen.
Standort mithilfe der API festlegen
Die Vision API unterstützt einen globalen API-Endpunkt (vision.googleapis.com
) sowie zwei regionsbasierte Endpunkte: einen EU-Endpunkt (eu-vision.googleapis.com
) und einen US-Endpunkt (us-vision.googleapis.com
). Verwenden Sie diese Endpunkte für die regionsspezifische Verarbeitung. Wenn Sie Ihre Daten beispielsweise nur in der Europäischen Union speichern und verarbeiten möchten, verwenden Sie für REST API-Aufrufe den URI eu-vision.googleapis.com
anstelle von vision.googleapis.com
:
- 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
Wenn Sie Ihre Daten nur in den USA speichern und verarbeiten möchten, verwenden Sie bei den vorherigen Methoden den US-Endpunkt (us-vision.googleapis.com
).
Standort mithilfe von Clientbibliotheken festlegen
Die Vision API-Clientbibliotheken greifen standardmäßig auf den globalen API-Endpunkt (vision.googleapis.com
) zu. Wenn Sie Ihre Daten nur in der Europäischen Union speichern und verarbeiten möchten, müssen Sie den Endpunkt (eu-vision.googleapis.com
) explizit festlegen. Die folgenden Codebeispiele zeigen, wie diese Einstellung konfiguriert wird.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- REGION_ID: Eine der gültigen regionalen
Standortkennungen:
us
: Nur Festland-USAeu
: Die Europäischen Union
- CLOUD_STORAGE_IMAGE_URI: Der Pfad zu einer gültigen Bilddatei in einem Cloud Storage-Bucket. Sie müssen zumindest Leseberechtigungen für die Datei haben.
Beispiel:
gs://cloud-samples-data/vision/pdf_tiff/census2010.pdf
- CLOUD_STORAGE_BUCKET: ein Google Cloud Storage-Bucket/-Verzeichnis, in dem Ausgabedateien gespeichert werden. Dies wird in folgender Form angegeben:
gs://bucket/directory/
- FEATURE_TYPE: ein gültiger Featuretyp.
Für
files:asyncBatchAnnotate
-Anfragen können Sie die folgenden Featuretypen verwenden:DOCUMENT_TEXT_DETECTION
TEXT_DETECTION
- PROJECT_ID: Ihre Google Cloud-Projekt-ID.
Feldspezifische Hinweise:
inputConfig
ersetzt das Feldimage
, das in anderen Vision API-Anfragen verwendet wird. Es enthält zwei untergeordnete Felder:gcsSource.uri
ist der Google 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 Google 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.
HTTP-Methode und URL:
POST https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/files:asyncBatchAnnotate
JSON-Text der Anfrage:
{ "requests":[ { "inputConfig": { "gcsSource": { "uri": "CLOUD_STORAGE_IMAGE_URI" }, "mimeType": "application/pdf" }, "features": [ { "type": "FEATURE_TYPE" } ], "outputConfig": { "gcsDestination": { "uri": "CLOUD_STORAGE_BUCKET" }, "batchSize": 1 } } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Eine erfolgreiche asyncBatchAnnotate
-Anfrage gibt als Antwort ein einzelnes Namensfeld zurück:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Dieser Name stellt einen Vorgang mit langer Ausführungszeit 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-Annotationen abrufen. Dazu senden Sie eine GET-Anfrage an den Endpunkt v1.operations
und übergeben in der URL die Vorgangs-ID:
GET https://vision.googleapis.com/v1/operations/operation-id
Beispiel:
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
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 Google 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 Antwort zur Dokumenttexterkennung für ein Bild, wenn Sie die DOCUMENT_TEXT_DETECTION
-Funktion verwendet haben oder der Antwort zur Texterkennung, wenn Sie die TEXT_DETECTION
-Funktion verwendet haben. Die Ausgabe enthält ein zusätzliches context
-Feld, das den Speicherort der angegebenen PDF- oder TIFF-Datei sowie die Anzahl der Seiten in der Datei angibt:
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 anwenden, folgen Sie der Anleitung für die Einrichtung von Java in der Vision API-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Java-Referenzdokumentation zur Vision API.
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.
Überzeugen Sie sich selbst
Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit von Cloud Vision API in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
Cloud Vision API kostenlos testen