Zielgruppe
Diese Anleitung soll Ihnen die Anwendungsentwicklung mit dem Weberkennungs-Feature der Vision API erleichtern. Es wird angenommen, 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.
Sie werden in dieser Anleitung durch eine Vision API-Anwendung geführt. Darin erfahren Sie, wie Sie die Vision API bezüglich der Verwendung der Weberkennungsfunktion anrufen.
Voraussetzungen
- Richten Sie in der Google Cloud Console ein 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.
Übersicht
In dieser Anleitung wird eine grundlegende Vision API-Anwendung erläutert, bei der eine Web detection
-Anfrage verwendet wird. In der Web detection
-Antwort wird das in der Anfrage gesendete Bild mit folgenden Elementen versehen:
- aus dem Web abgerufene Labels
- Website-URLs mit übereinstimmenden Bildern
- URLs zu Webbildern, die teilweise oder vollständig mit dem Bild in der Anfrage übereinstimmen
- URLs zu visuell ähnlichen Bildern
Codeliste
Wir empfehlen, beim Lesen des Codes die Python-Referenz für die Vision API hinzuzuziehen.
Diese einfache Anwendung führt folgende Aufgaben aus:
- Importiert die für die Ausführung der Anwendung erforderlichen Bibliotheken
- Übergibt einen Bildpfad als Argument an die Funktion
main()
- Führt mithilfe des Google Cloud API-Clients eine Weberkennung durch
- Führt eine Schleife für die Antwort aus und druckt die Ergebnisse aus
- Druckt eine Liste der Webentitäten mit Beschreibungen und Punktzahlen aus
- Druckt eine Liste mit übereinstimmenden Seiten aus
- Druckt eine Liste mit teilweise übereinstimmenden Bildern aus
- Druckt eine Liste mit vollständig übereinstimmenden Bildern aus
Eingehendere Betrachtung
Bibliotheken importieren
Importieren Sie Standardbibliotheken:
argparse
, damit die Anwendung eingegebene Dateinamen als Argumente akzeptiertio
zum Lesen aus Dateien
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
Anwendung ausführen
Hier parsen Sie das übergebene Argument, das die URL des Webbildes angibt, und übergeben es an die Funktion main()
.
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 ruft die Anmeldedaten automatisch ab. Standardmäßig werden hierfür die Anmeldedaten von der Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS
abgerufen. Diese sollte auf die JSON-Schlüsseldatei Ihres Dienstkontos verweisen. Weitere Informationen finden Sie unter Dienstkonto einrichten.
Anfrage erstellen
Sie können jetzt an den bereitstehenden Vision API-Dienst eine Anfrage stellen.
Dieses Code-Snippet führt folgende Aufgaben aus:
- Erstellt die Instanz
ImageAnnotatorClient
als Client. - Erstellt ein
Image
-Objekt aus einer lokalen Datei oder einem URI. - Übergibt das
Image
-Objekt an die Methodeweb_detection
des Clients. - Sie gibt die Annotationen zurück.
Antwort drucken
Gehen Sie nach Abschluss des Vorgangs die WebDetection durch und drucken Sie die in der Anmerkung enthaltenen Entitäten und URLs. Im nächsten Abschnitt sehen Sie die beiden besten Ergebnisse jedes Anmerkungstyps.
Anwendung ausführen
Um die Anwendung auszuführen, übergeben Sie die Web-URL http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg des folgenden Autobildes.
Hier sehen Sie den Python-Befehl mit der eingereichten Web-URL des Autobildes, gefolgt von der Konsolenausgabe. Nach den aufgelisteten Elementen wird eine Punktzahl für die Relevanz angegeben. Die Punktzahlen werden nicht normalisiert und können nicht mit den Ergebnissen anderer Bildanfragen verglichen werden.
python web_detect.py "http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg"
5 Pages with matching images retrieved Url : http://www.photos-public-domain.com/2011/01/07/old-volkswagen-bug-and-van/ Url : http://pix-hd.com/old+volkswagen+van+for+sale ... 2 Full Matches found: Url : http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg Url : http://www.wbwagen.com/media/old-volkswagen-bug-and-van-picture-free-photograph-photos-public_s_66f487042adad5a6.jpg 4 Partial Matches found: Url : http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg Url : http://www.wbwagen.com/media/old-vw-bug-and-vanjpg_s_ac343d7f041b5f8d.jpg ... 5 Web entities found: Score : 5.35028934479 Description: Volkswagen Beetle Score : 1.43998003006 Description: Volkswagen Score : 0.828279972076 Description: Volkswagen Type 2 Score : 0.75271999836 Description: Van Score : 0.690039992332 Description: Car
Glückwunsch! Sie haben die Weberkennung mit der Vision API ausgeführt.