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.
Voraussetzungen
- 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:
Page
ist eine Sammlung von Blöcken mit Metainformationen zur Seite: Größen und Auflösungen. Die X- und die Y-Auflösung können abweichen.Block
steht 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.Paragraph
ist eine strukturelle Texteinheit, die eine geordnete Wortfolge darstellt. Standardmäßig wird davon ausgegangen, dass zwischen Wörtern Worttrennungen vorhanden sind.Word
ist die kleinste Texteinheit. Sie wird als eine Reihe von Symbolen dargestellt.Symbol
steht 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
ImageAnnotatorClient
fü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 akzeptiertenum
für die AufzählungFeatureType
io
für Datei-E/A
Weitere Importe:
- Die Klasse
ImageAnnotatorClient
in der Bibliothekgoogle.cloud.vision
für den Zugriff auf die Vision API - Das Modul
types
in der Bibliothekgoogle.cloud.vision
zum Erstellen von Anfragen - Die Bibliotheken
Image
undImageDraw
der BibliothekPIL
werden verwendet, um das Ausgabebild mit auf das Eingabebild gezeichneten Feldern zu erstellen.
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 sollte 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 Anmerkung 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 Dokumentelement.
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 auf Ihrem lokalen Computer den Speicherort der heruntergeladenen Datei an die Anleitungsanwendung (doctext.py
).
Hier sehen Sie den Python-Befehl gefolgt von den Ausgabebildern mit Textanmerkungen.
$ 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 Textanmerkungen durchgeführt.