Zielgruppe
Diese Anleitung soll Ihnen die Anwendungsentwicklung mithilfe der Dokumenttexterkennung der Google Cloud Vision API erleichtern. Es wird davon ausgegangen, dass Sie mit grundlegenden Programmierkonstrukten und ‑techniken vertraut sind. Aber auch als Einsteiger in die Programmierarbeit sollten Sie dieser Anleitung gut folgen und im Anschluss unter Verwendung der Referenzdokumentation für die Cloud Vision API einfache Anwendungen erstellen können.
Vorbereitung
- Richten Sie in der Google Cloud Console ein Cloud Vision API-Projekt ein.
Konfigurieren Sie Ihre Umgebung für die Verwendung von Standardanmeldedaten für Anwendungen.
Python
- Installieren Sie Python.
- Installieren Sie pip.
- Installieren Sie die Google Cloud-Clientbibliothek und die Python Imaging Library.
Bild mit Dokumenttext-OCR annotieren
In dieser Anleitung wird anhand einer einfachen Vision API-Anwendung die Verwendung der Anfrage DOCUMENT_TEXT_DETECTION sowie die Verarbeitung der Antwort fullTextAnnotation erläutert.
Eine fullTextAnnotation ist eine strukturierte hierarchische Antwort zum UTF‑8-Text, der aus dem Bild extrahiert wurde. Die Auflistung erfolgt nach Seiten→Blöcken→Absätzen→Wörtern→Symbolen:
Pageist eine Sammlung von Blöcken mit Metainformationen zur Seite: Größen und Auflösungen. Die X- und die Y‑Auflösung können unterschiedlich sein.Blocksteht für ein „logisches“ Element der Seite, beispielsweise einen Textbereich, ein Bild oder eine Spaltentrennung. Die Text- und Tabellenblöcke enthalten die wichtigsten Informationen für die Textextrahierung.Paragraphist eine strukturelle Texteinheit, die eine geordnete Wortfolge darstellt. Standardmäßig wird davon ausgegangen, dass zwischen Wörtern Worttrennungen vorhanden sind.Wordist die kleinste Texteinheit. Sie wird als eine Reihe von Symbolen dargestellt.Symbolsteht für ein Zeichen oder Satzzeichen.
Mit der fullTextAnnotation können auch URLs zu Webbildern angegeben werden, die teilweise oder vollständig mit dem Bild in der Anfrage übereinstimmen.
Vollständige Codeliste
Wir empfehlen, beim Lesen des Codes die Python-Referenz für die Cloud Vision API hinzuzuziehen.
Diese einfache Anwendung führt folgende Aufgaben aus:
- Importiert die für die Ausführung der Anwendung erforderlichen Bibliotheken
- Übergibt drei Argumente an die Funktion
main():image_file: die eingegebene Bilddatei, die annotiert werden solloutput_file: der Name der Ausgabedatei, in der mit Cloud Vision ein Ausgabebild mit vieleckigen Rahmen (Polygonen) generiert wird
- Erstellt die Instanz
ImageAnnotatorClientfür die Interaktion mit dem Dienst - Sendet die Anfrage und gibt eine Antwort zurück
- Erstellt ein Ausgabebild, in dem der Text eingerahmt ist
Erläuterung des Codes
Bibliotheken importieren
Importieren Sie Standardbibliotheken:
argparse, damit die Anwendung eingegebene Dateinamen als Argumente akzeptiertenumfür die AufzählungFeatureTypeiofür Datei-E/A
Weitere Importe:
- Die Klasse
ImageAnnotatorClientin der Bibliothekgoogle.cloud.visionfür den Zugriff auf die Vision API - Das Modul
typesin der Bibliothekgoogle.cloud.visionzum Erstellen von Anfragen - Die Bibliotheken
ImageundImageDrawder BibliothekPIL, mit denen das Ausgabebild mit auf das Eingabebild gezeichneten Rahmen erstellt wird
Anwendung ausführen
Hier parsen Sie einfach die eingereichten Argumente und übergeben sie an die Funktion render_doc_text().
Bei der API authentifizieren
Damit Sie mit dem Vision API-Dienst kommunizieren können, müssen Sie den Dienst mit den zuvor abgerufenen Anmeldedaten authentifizieren. Innerhalb einer Anwendung erhalten Sie die Anmeldedaten am einfachsten über die Verwendung der Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC). Die Clientbibliothek versucht standardmäßig, die Anmeldedaten von der Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS abzurufen. Diese muss auf die JSON-Schlüsseldatei Ihres Dienstkontos verweisen. Weitere Informationen finden Sie unter Dienstkonto einrichten.
API-Anfrage stellen und Markierungsrahmen aus der Antwort lesen
Der Vision API-Dienst ist nun bereit. Rufen Sie die Methode document_text_detection der Instanz ImageAnnotatorClient auf, um auf den Dienst zuzugreifen.
Die Details zu API-Anfragen und ‑Antworten sind in der Clientbibliothek enthalten. Ausführliche Informationen zum Aufbau einer Anfrage finden Sie in der Vision API-Referenz.
Nachdem die Clientbibliothek die Anfrage verarbeitet hat, wird als Antwort eine AnnotateImageResponse mit einer Liste mit je einer Annotation zu jedem in der Anfrage gesendeten Bild zurückgegeben. Da unsere Anfrage nur ein Bild enthielt, gehen wir die vollständige TextAnnotation durch und erfassen die Markierungsrahmen für das angegebene Dokumentfeature.
Anwendung ausführen
Zum Ausführen der Anwendung können Sie die Datei receipt.jpg herunterladen. Klicken Sie gegebenenfalls mit der rechten Maustaste auf den Link. Übergeben Sie anschließend den Speicherort der heruntergeladenen Datei auf Ihrem lokalen Computer an die Anleitungsanwendung (doctext.py).
Hier sehen Sie den Python-Befehl gefolgt von den Ausgabebildern mit Textannotationen.
$ python doctext.py receipt.jpg -out_file out.jpg
Im folgenden Bild sind Wörter gelb markiert und Sätze rot umrahmt.
Glückwunsch! Sie haben mithilfe von Google Cloud Vision eine Texterkennung mit vollständigen Textannotationen durchgeführt.