Bilder mit der Funktion ML.ANNOTATE_IMAGE annotieren

In dieser Anleitung wird beschrieben, wie Sie mit der Funktion ML.ANNOTATE_IMAGE Erkenntnisse aus unstrukturierten Bilddaten gewinnen. Wenn Sie mit großen Bild-Repositories arbeiten, müssen Sie die Dateien möglicherweise automatisch kategorisieren, bestimmte Objekte erkennen oder Bildeigenschaften extrahieren, um das Dataset durchsuchbar zu machen. Wenn Sie ein BigQuery ML-Remote-Modell erstellen, das eine Verbindung zur Cloud Vision API herstellt, können Sie diese Bildanalyseaufgaben direkt in einer BigQuery-Objekttabelle mit Standard-SQL ausführen. So müssen Sie keine Dateien verschieben oder komplexe Datenpipelines erstellen.

Ziele

  • Dataset und Ressourcenverbindung erstellen
  • Objekttabelle für in Cloud Storage gespeicherte Bilddateien erstellen
  • Erstellen Sie ein Remote-Modell, das eine Verbindung zur Cloud Vision API herstellt.
  • Bilder mit der Funktion ML.ANNOTATE_IMAGE annotieren

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Cloud de Confiance by S3NS:

Hinweis

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Enable the BigQuery, BigQuery Connection API, and Cloud Vision API APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, damit Sie die nötigen Berechtigungen für diese Anleitung haben:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Dataset erstellen

Wählen Sie eine der folgenden Optionen aus, um ein BigQuery-Dataset zu erstellen:

Console

  1. Rufen Sie in der Cloud de Confiance Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Klicken Sie im linken Bereich auf Explorer:

    Hervorgehobener Button für den Explorer-Bereich.

    Wenn Sie den linken Bereich nicht sehen, klicken Sie auf  Linken Bereich maximieren, um ihn zu öffnen.

  3. Maximieren Sie im Explorer Ihr Projekt und klicken Sie dann auf Datasets.

  4. Klicken Sie auf der Seite Datasets auf  Dataset erstellen.

  5. Führen Sie im Bereich Dataset erstellen die folgenden Schritte aus:

    • Geben Sie unter Dataset-ID bqml_tutorial ein.

    • Wählen Sie unter Speicherort der Daten die Option USA aus.

    Übernehmen Sie die anderen Standardeinstellungen.

  6. Klicken Sie auf Dataset erstellen.

bq

Verwenden Sie den Befehl bq mk --dataset, um ein neues Dataset zu erstellen.

  1. Erstellen Sie ein Dataset mit dem Namen bqml_tutorial und legen Sie den Datenspeicherort auf US fest:

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. Prüfen Sie, ob das Dataset erstellt wurde:

    bq ls

API

Rufen Sie die Methode datasets.insert mit einer definierten Dataset-Ressource auf:

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

Objekttabelle erstellen

Erstellen Sie eine Objekttabelle mit dem Namen my_object_table, die Bildinhalte enthält. Mit der Objekttabelle können Sie die Bilder analysieren, ohne sie aus Cloud Storage zu verschieben.

Der von der Objekttabelle verwendete Cloud Storage-Bucket sollte sich im selben Projekt befinden, in dem Sie das Modell erstellen und die Funktion ML.ANNOTATE_IMAGE aufrufen möchten. Wenn Sie die ML.ANNOTATE_IMAGE-Funktion in einem anderen Projekt als dem aufrufen möchten, das den von der Objekttabelle verwendeten Cloud Storage-Bucket enthält, müssen Sie dem Dienstkonto die Rolle "Storage Admin" auf Bucket-Ebene zuweisen.

Modell erstellen

Erstellen Sie ein Remote-Modell mit dem Namen my_model und einem REMOTE_SERVICE_TYPE von CLOUD_AI_VISION_V1:

CREATE OR REPLACE MODEL
`PROJECT_ID.bqml_tutorial.my_model`
REMOTE WITH CONNECTION DEFAULT
OPTIONS (REMOTE_SERVICE_TYPE = 'CLOUD_AI_VISION_V1');

Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

Bilder annotieren

Verwenden Sie die Funktion ML.ANNOTATE_IMAGE mit Ihren bevorzugten Features, um Bilder in der Objekttabelle zu annotieren.

  1. Verwenden Sie die Funktion ML.ANNOTATE_IMAGE mit dem Feature label_detection, um die auf den Bildern gezeigten Elemente zu kennzeichnen:

    SELECT *
    FROM ML.ANNOTATE_IMAGE(
    MODEL `PROJECT_ID.bqml_tutorial.my_model`,
    TABLE `PROJECT_ID.bqml_tutorial.my_object_table`,
    STRUCT(['label_detection'] AS vision_features)
    );

    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

  2. Wenn Sie Gesichter auf den Bildern erkennen und Bildattribute wie dominante Farben zurückgeben möchten, verwenden Sie die Funktion ML.ANNOTATE_IMAGE mit den Features face_detection und image_properties:

    SELECT *
    FROM ML.ANNOTATE_IMAGE(
    MODEL `PROJECT_ID.bqml_tutorial.my_model`,
    TABLE `PROJECT_ID.bqml_tutorial.my_object_table`,
    STRUCT(['face_detection', 'image_properties'] AS vision_features)
    );

    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

Projekt löschen

Console

  1. Wechseln Sie in der Cloud de Confiance -Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

gcloud

    Cloud de Confiance -Projekt löschen:

    gcloud projects delete PROJECT_ID

Einzelne Ressourcen löschen

Wenn Sie das für diese Anleitung verwendete Projekt beibehalten möchten, können Sie weitere Kosten vermeiden, indem Sie die einzelnen Ressourcen löschen, die Sie erstellt haben:

  1. Dataset löschen:Wenn Sie das Dataset löschen, werden auch das Remote-Modell und die darin erstellte Objekttabelle entfernt.

    • Wechseln Sie in der Cloud de Confiance Console zu BigQuery Studio.
    • Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie das Dataset aus, das Sie erstellt haben.
    • Klicken Sie auf Aktionen anzeigen und dann auf Löschen.
    • Geben Sie im Dialogfeld delete ein und klicken Sie auf Löschen.
  2. Verbindung löschen:

    • Maximieren Sie im Bereich Explorer den Namen Ihres Projekts und klicken Sie auf Verbindungen.
    • Klicken Sie neben der von Ihnen erstellten Verbindung auf das Symbol  Aktionen ansehen und wählen Sie Löschen aus.
    • Klicken Sie im Dialogfeld auf Löschen, um den Vorgang zu bestätigen.

Nächste Schritte