Vision API mit C# verwenden

1. Übersicht

Mit der Google Cloud Vision API können Entwickler auf einfache Weise Funktionen zur visuellen Erkennung in Anwendungen einbinden. Hierzu zählen die Erkennung von Bildlabels, Gesichtern und Sehenswürdigkeiten, die optische Zeichenerkennung (Optical Character Recognition, OCR) sowie die Kennzeichnung expliziter Inhalte.

In diesem Codelab konzentrieren Sie sich auf die Verwendung der Vision API mit C#. Sie lernen, wie Sie Texterkennung, Sehenswürdigkeitenerkennung und Gesichtserkennung durchführen.

Lerninhalte

  • Cloud Shell verwenden
  • Google Cloud Vision API aktivieren
  • API-Anfragen authentifizieren
  • Vision API-Clientbibliothek für C# installieren
  • Labelerkennung durchführen
  • Texterkennung durchführen
  • So führen Sie die Landmark-Erkennung durch
  • Gesichtserkennung durchführen

Voraussetzungen

  • Google Cloud Platform-Projekt
  • Browser, z. B. Chrome oder Firefox
  • Vertrautheit mit C#

Umfrage

Wie werden Sie diese Anleitung verwenden?

Nur lesen Lesen und Übungen durchführen

Wie würden Sie Ihre Erfahrung mit C# bewerten?

Anfänger Mittelstufe Fortgeschrittene

Wie würden Sie Ihre Erfahrungen mit der Verwendung von Google Cloud Platform-Diensten bewerten?

Anfänger Mittelstufe Fortgeschritten

2. Einrichtung und Anforderungen

Umgebung zum selbstbestimmten Lernen einrichten

  1. Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können sie jederzeit aktualisieren.
  • Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich (kann nach dem Festlegen nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als PROJECT_ID angegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen Namen versuchen und sehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen.
  • Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten
  1. Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs zu verwenden. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um Kosten zu vermeiden, die über diese Anleitung hinausgehen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testzeitraum mit einem Guthaben von 300$ teilnehmen.

Cloud Shell starten

Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Cloud Shell aktivieren

  1. Klicken Sie in der Cloud Console auf Cloud Shell aktivieren d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Wenn Sie die Cloud Shell zum ersten Mal starten, wird ein Fenster mit einer Beschreibung eingeblendet. Klicken Sie in diesem Fall einfach auf Weiter.

d95252b003979716.png

Das Herstellen der Verbindung mit der Cloud Shell sollte nur wenige Augenblicke dauern.

7833d5e1c5d18f54.png

Auf dieser virtuellen Maschine sind alle erforderlichen Entwicklungstools installiert. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Die meisten, wenn nicht sogar alle Aufgaben in diesem Codelab können mit einem Browser erledigt werden.

Sobald die Verbindung mit der Cloud Shell hergestellt ist, sehen Sie, dass Sie authentifiziert sind und für das Projekt Ihre Projekt-ID eingestellt ist.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list

Befehlsausgabe

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Führen Sie den folgenden Befehl in Cloud Shell aus, um zu bestätigen, dass der gcloud-Befehl Ihr Projekt kennt:
gcloud config list project

Befehlsausgabe

[core]
project = <PROJECT_ID>

Ist dies nicht der Fall, können Sie die Einstellung mit diesem Befehl vornehmen:

gcloud config set project <PROJECT_ID>

Befehlsausgabe

Updated property [core/project].

3. Vision API aktivieren

Bevor Sie die Vision API verwenden können, müssen Sie sie aktivieren. Mit Cloud Shell können Sie die API mit dem folgenden Befehl aktivieren:

gcloud services enable vision.googleapis.com

4. Google Cloud Vision API-Clientbibliothek für C# installieren

Erstellen Sie zuerst eine einfache C#-Konsolenanwendung, mit der Sie Vision API-Beispiele ausführen:

dotnet new console -n VisionApiDemo

Die Anwendung sollte erstellt und die Abhängigkeiten aufgelöst worden sein:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

Rufen Sie als Nächstes den Ordner VisionApiDemo auf:

cd VisionApiDemo/

Fügen Sie dem Projekt das NuGet-Paket Google.Cloud.Vision.V1 hinzu:

dotnet add package Google.Cloud.Vision.V1
info : Adding PackageReference for package 'Google.Cloud.Vision.V1' into project '/home/atameldev/VisionApiDemo/VisionApiDemo.csproj'.
log  : Restoring packages for /home/atameldev/VisionApiDemo/VisionApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Vision.V1' version '1.2.0' added to file '/home/atameldev/VisionApiDemo/VisionApiDemo.csproj'.

Jetzt können Sie die Vision API verwenden.

5. Labelerkennung durchführen

Eine der grundlegenden Funktionen der Vision API ist die Identifizierung von Objekten oder Entitäten in einem Bild, auch als Label-Annotation bezeichnet. Bei der Labelerkennung werden allgemeine Objekte, Orte, Aktivitäten, Tierarten, Produkte und vieles mehr identifiziert. Die Vision API nimmt ein Eingabebild entgegen und gibt die wahrscheinlichsten Labels zurück, die auf dieses Bild zutreffen. Es werden die am besten passenden Labels zusammen mit einem Konfidenzwert für die Übereinstimmung mit dem Bild zurückgegeben.

In diesem Beispiel führen Sie die Labelerkennung für ein Bild einer Straßenszene in Shanghai durch. Öffnen Sie den Code-Editor oben rechts in Cloud Shell:

92ea233083f961c5.png

Rufen Sie die Datei Program.cs im Ordner VisionApiDemo auf und ersetzen Sie den Code durch Folgendes:

using Google.Cloud.Vision.V1;
using System;

namespace VisionApiDemo
{
    class Program
    {   
        static void Main(string[] args)
        {
            var client = ImageAnnotatorClient.Create();
            var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
            var labels = client.DetectLabels(image);

            Console.WriteLine("Labels (and confidence score):");
            Console.WriteLine(new String('=', 30));

            foreach (var label in labels)
            {
                Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
            }
        }
    }
}

Nehmen Sie sich ein bis zwei Minuten Zeit, um sich den Code anzusehen und zu sehen, wie die C#-Bibliothek der Vision API für die Labelerkennung verwendet wird.

Führen Sie die App in Cloud Shell aus:

dotnet run 

Es sollte folgende Ausgabe angezeigt werden:

Labels (and confidence score):
==============================
Wheel (97%)
Tire (97%)
Photograph (94%)
Bicycle (94%)
Motor vehicle (89%)
Infrastructure (89%)
Vehicle (86%)
Mode of transport (84%)
Bicycle wheel (83%)
Asphalt (81%)

Zusammenfassung

In diesem Schritt haben Sie die Labelerkennung für ein Bild einer Straßenszene in China durchgeführt und die wahrscheinlichsten Labels für dieses Bild angezeigt. Weitere Informationen zur Labelerkennung

6. Texterkennung durchführen

Bei der Texterkennung der Vision API wird eine optische Zeichenerkennung (Optical Character Recognition, OCR) ausgeführt. Sie erkennt und extrahiert Text in einem Bild und unterstützt eine Vielzahl von Sprachen. Die Funktion beinhaltet auch eine automatische Spracherkennung.

In diesem Beispiel führen Sie die Texterkennung für ein Bild eines Bildschirms für Systemsoftware-Updates durch.

Rufen Sie die Datei Program.cs im Ordner VisionApiDemo auf und ersetzen Sie den Code durch Folgendes:

using Google.Cloud.Vision.V1;
using System;

namespace VisionApiDemo
{
    class Program
    {   
        static void Main(string[] args)
        {
            var client = ImageAnnotatorClient.Create();
            var image = Image.FromUri("gs://cloud-samples-data/vision/text/screen.jpg");
            var response = client.DetectText(image);
            foreach (var annotation in response)
            {
                if (annotation.Description != null)
                {
                    Console.WriteLine(annotation.Description);
                }
            }
        }
    }
}

Nehmen Sie sich ein bis zwei Minuten Zeit, um sich den Code anzusehen und zu sehen, wie die C#-Bibliothek der Vision API für die Texterkennung verwendet wird.

Führen Sie die App in Cloud Shell aus:

dotnet run 

Es sollte folgende Ausgabe angezeigt werden:

System Software Update
Back
Preparing to install...
After preparation is complete, the PS4 will automatically restart and the update file will be
installed.
37%
gus class
System
Software
Update
Back
Preparing
to
install
...
After
preparation
is
complete
,
the
PS4
will
automatically
restart
and
the
update
file
will
be
installed
.
37
%
gus
class

Zusammenfassung

In diesem Schritt haben Sie die Texterkennung für ein Bild einer Otter-Überquerung durchgeführt und den erkannten Text aus dem Bild ausgegeben. Weitere Informationen zur Texterkennung

7. Erkennung von Sehenswürdigkeiten durchführen

Mit der Funktion zur Erkennung von Sehenswürdigkeiten in der Vision API können Sie bekannte natürliche oder von Menschen erschaffene Strukturen in einem Bild erkennen.

In diesem Beispiel führen Sie die Erkennung von Sehenswürdigkeiten für ein Bild des Eiffelturms durch.

Rufen Sie die Datei Program.cs im Ordner VisionApiDemo auf und ersetzen Sie den Code durch Folgendes:

using Google.Cloud.Vision.V1;
using System;

namespace VisionApiDemo
{
    class Program
    {   
        static void Main(string[] args)
        {
            var client = ImageAnnotatorClient.Create();
            var image = Image.FromUri("gs://cloud-samples-data/vision/eiffel_tower.jpg");
            var response = client.DetectLandmarks(image);
            foreach (var annotation in response)
            {
                if (annotation.Description != null)
                {
                    Console.WriteLine(annotation.Description);
                }
            }
        }
    }
}

Nehmen Sie sich ein bis zwei Minuten Zeit, um sich den Code anzusehen und zu sehen, wie die C#-Bibliothek der Vision API für die Sehenswürdigkeitenerkennung verwendet wird.

Führen Sie die App in Cloud Shell aus:

dotnet run

Es sollte folgende Ausgabe angezeigt werden:

Eiffel Tower

Zusammenfassung

In diesem Schritt haben Sie die Sehenswürdigkeit auf einem Bild des Eiffelturms erkannt. Weitere Informationen zur Landmarkenerkennung

8. Emotionale Gesichtserkennung durchführen

Mithilfe der Gesichtserkennung können Sie in einem Bild mehrere Gesichter und die damit verknüpften wichtigsten Gesichtsmerkmale wie den Gesichtsausdruck oder Kopfbedeckungen erkennen.

In diesem Beispiel wird die Wahrscheinlichkeit des emotionalen Zustands anhand von vier verschiedenen emotionalen Wahrscheinlichkeiten ermittelt: Freude, Ärger, Trauer und Überraschung.

Rufen Sie die Datei Program.cs im Ordner VisionApiDemo auf und ersetzen Sie den Code durch Folgendes:

using Google.Cloud.Vision.V1;
using System;

namespace VisionApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = ImageAnnotatorClient.Create();

            var image = Image.FromUri("gs://cloud-samples-data/vision/face/face_no_surprise.jpg");
            var response = client.DetectFaces(image);
            foreach (var annotation in response)
            {
                Console.WriteLine($"Picture: {image}");
                Console.WriteLine($" Surprise: {annotation.SurpriseLikelihood}");
            }
        }
    }
}

Nehmen Sie sich ein bis zwei Minuten Zeit, um den Code zu analysieren und zu sehen, wie die C#-Bibliothek der Vision API verwendet wird, um die emotionale Gesichtserkennung durchzuführen.

Führen Sie die App aus.

dotnet run

Für unser Beispiel face_no_surprise sollte die folgende Ausgabe angezeigt werden:

Picture: { "source": { "imageUri": "gs://cloud-samples-data/vision/face/face_no_surprise.jpg" } }
 Surprise: Likely

Zusammenfassung

In diesem Schritt haben Sie die emotionale Gesichtserkennung durchgeführt. Weitere Informationen zur Gesichtserkennung

9. Glückwunsch!

Sie haben gelernt, wie Sie die Vision API mit C# verwenden, um verschiedene Erkennungen in Bildern durchzuführen.

Bereinigen

So vermeiden Sie, dass Ihr Google Cloud Platform-Konto für die in diesem Schnellstart verwendeten Ressourcen belastet wird:

  • Rufen Sie die Cloud Platform Console auf.
  • Wählen Sie das Projekt aus, das Sie beenden möchten, und klicken Sie oben auf „Löschen“. Das Projekt wird dann zum Löschen geplant.

Weitere Informationen

Lizenz

Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.