Anwendung erstellen

Auf dieser Seite erfahren Sie, wie Sie eine App erstellen und Komponenten wie Eingabestreams, Modelle zur Analyse und Warehouses zur Datenspeicherung für die Verwendung auf der App-Plattform von Vertex AI Vision kombinieren.

Wenn Sie eine App erstellen möchten, müssen Sie Ihre Datenquellen, die Analysen, die Sie durchführen möchten, und die Art und Weise, wie Sie die Ergebnisse speichern möchten, berücksichtigen. Eine End-to-End-App kann je nach Anwendungsfall unterschiedliche Formen annehmen. Wie Sie eine App erstellen, hängt also von Ihrem Ziel ab.

Bewerten Sie vorab Ihren Anwendungsfall und Ihr Ziel aus der Perspektive von Responsible AI und überlegen Sie, welche Auswirkungen Ihre Modelle und Anwendungen auf Ihre Endnutzer haben könnten, wenn etwas schiefgeht. Weitere Informationen zu den ersten Schritten bei der Bewertung Ihres Anwendungsfalls in Bezug auf Fairness Achten Sie außerdem darauf, dass Ihre Nutzung von Vertex AI Vision den Nutzungsbedingungen von Google Cloudoder einer Offline-Variante sowie den eingebundenen URL-Nutzungsbedingungen wie der Richtlinie zur zulässigen Nutzung von Google Cloudentspricht.

Denken Sie beim Erstellen Ihrer Anwendung daran, dass KI-Vision-Technologien das Potenzial haben, unfaire Vorurteile zu verstärken oder einzuführen und grundlegende Menschenrechte zu beeinträchtigen. Bei der Entwicklung Ihrer Anwendung sollten Sie auf Grundlage der Werte Ihres Unternehmens ethische Überlegungen anstellen und für Ihren speziellen Anwendungsfall, einschließlich Anwendungsfällen mit hohem Risiko, eine rechtliche Due Diligence durchführen. Wie bei allen Technologien müssen Sie alle anwendbaren Gesetze und Vorschriften berücksichtigen, die für Ihre Nutzung von KI-/ML-Technologien in der Region gelten, in der Sie die Technologie implementieren. Kunden sind für die erforderliche Sorgfaltspflicht verantwortlich, um Anwendungsfälle zu implementieren, die in einer bestimmten Region als risikoreich gelten.

Neue Anwendung erstellen

Bevor Sie einer App Komponenten wie einen Stream oder Modelle hinzufügen können, müssen Sie die App selbst erstellen. Alle Apps müssen Folgendes enthalten, um bereitgestellt zu werden:

  • Ein Stream-Eingabeknoten (Datenquelle).
  • Mindestens ein weiterer Komponentenknoten, z. B. ein Modell oder ein Warehouse.

Neue benutzerdefinierte Anwendung erstellen

Console

Erstellen Sie eine App in der Google Cloud -Konsole.

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Klicken Sie auf die Schaltfläche Erstellen.

  3. Geben Sie einen App-Namen ein und wählen Sie Ihre Region aus. Unterstützte Regionen.

  4. Klicken Sie auf Erstellen.

Anwendung mit einer Vorlage erstellen

Console

Erstellen Sie eine App in der Google Cloud -Konsole.

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Klicken Sie auf die Schaltfläche Erstellen.

  3. Geben Sie einen App-Namen ein und wählen Sie Ihre Region aus. Unterstützte Regionen.

  4. Klicken Sie auf Erstellen.

  5. Klicken Sie auf der Seite des Anwendungs-Builders auf den Knoten Anwendungsvorlage.

  6. Klicken Sie in der Seitenleiste mit den Einstellungen auf die Schaltfläche Modell auswählen.

  7. Wählen Sie im Drop-down-Menü ein Modell aus.

Streameingabe hinzufügen

Eine Anwendung muss einen Videostream-Knoten enthalten. Sie können die Anwendung nicht bereitstellen, wenn Sie keinen Streams-Knoten hinzufügen.

Wenn Ihre Anwendung nicht bereitgestellt wird, wird die Aktualisierung der Stream-Eingabe automatisch auf die Anwendung angewendet. Wenn Ihre App bereits bereitgestellt wurde, müssen Sie die Bereitstellung aufheben und die App aktualisieren, damit die Änderungen übernommen werden. Weitere Informationen finden Sie im Abschnitt App aktualisieren.

Console

Fügen Sie einer App in der Google Cloud -Konsole einen Stream hinzu.

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Klicken Sie bei Ihrer App auf App ansehen.

  3. Wählen Sie in der Seitenleiste mit den Komponenten Videostreams aus der Liste der Connectors aus. Der Stream-Knoten wird dem App-Diagramm hinzugefügt und ein Seitenmenü „Videostreams“ wird geöffnet.

  4. Wählen Sie Videostreams hinzufügen aus.

  5. Wenn Sie Aus vorhandenen Streams auswählen auswählen, wählen Sie den vorhandenen Stream und dann Streams hinzufügen aus.

    Wenn Sie Neue Streams registrieren auswählen, fügen Sie einen Namen für den neuen Stream hinzu und wählen Sie Streams hinzufügen aus.

REST

Senden Sie zum Hinzufügen eines Streams zu einer App eine POST-Anfrage mit der Methode projects.locations.applications.addStreamInput.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput

JSON-Text der Anfrage:

{
  "applicationStreamInputs": [
     {
       "streamWithAnnotation": {
         "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
       }
     },
     {
       "streamWithAnnotation": {
         "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
       }
     }
   ]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content

Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.

Stream-Eingabe mit Knotenanmerkungen hinzufügen

Wenn Sie einen Anwendungs-Eingabestream erstellen, können Sie dem Stream mit der Vertex AI Vision API Annotationen hinzufügen. Sie können einem Knoten auch in derGoogle Cloud -Konsole Anmerkungen hinzufügen.

Console

Im folgenden Beispiel werden einem Modell für die Anzahl der Personen verfügbare Anmerkungen (STREAM_ANNOTATION_TYPE_ACTIVE_ZONE und STREAM_ANNOTATION_TYPE_CROSSING_LINE) hinzugefügt.

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Wählen Sie in der Liste neben dem Namen Ihrer Anwendung App ansehen aus.

  3. Wählen Sie auf der Seite des Anwendungs-Builders das Modell mit Stream-Eingabe aus, dem Sie Anmerkungen hinzufügen möchten.

  4. Maximieren Sie in der Seitenleiste mit den Modelleinstellungen den Abschnitt „Erweiterte Einstellungen“. Klicken Sie nach dem Maximieren des Bereichs auf die Schaltfläche Aktive Zonen/Linien erstellen.

  5. Wählen Sie in der Streamgalerie einen Eingabestream aus, um aktive Zonen oder Linien zu zeichnen.

  6. Wählen Sie in der Editoransicht Mehrpunktlinien hinzufügen oder Einfaches Polygon hinzufügen aus, um Anmerkungen hinzuzufügen. Über die Seitenleiste können Sie den Namen der Zone oder Linie ändern, vorhandene Zonen/Linien löschen oder die Richtung der Linie ändern.

REST UND BEFEHLSZEILE

Mit dem folgenden Code werden Stream-Annotationen hinzugefügt.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT: Ihre Google Cloud-Projekt-ID oder Projektnummer.
  • LOCATION_ID: Die Region, in der Sie Vertex AI Vision verwenden. Beispiele: us-central1, europe-west4. Verfügbare Regionen
  • APPLICATION_ID: Die ID Ihrer Zielanwendung.
  • STREAM_ID: Die ID des Zielstreams.
  • NODE_NAME: Der Name des Zielknotens im App-Diagramm. Beispiel: builtin-occupancy-count
  • ANNOTATION_ID: Die ID der Zielanmerkung.
  • ANNOTATION_DISPLAYNAME: Der vom Nutzer angegebene Anzeigename der Zielannotation.
  • ANNOTATION_TYPE: Einer der verfügbaren Enum-Werte. Dieser Typ muss mit dem annotation_payload-Objekt übereinstimmen, entweder activeZone oder crossingLine. Verfügbare Werte:
    • STREAM_ANNOTATION_TYPE_UNSPECIFIED
    • STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
    • STREAM_ANNOTATION_TYPE_CROSSING_LINE
  • normalizedVertices: Jeder Eckpunkt wird durch x- und y-Koordinatenwerte angegeben. Koordinaten sind normalisierte Gleitkommawerte [0,1] relativ zum Originalbild; 0,0 ist X_MIN oder Y_MIN, 1,0 ist X_MAX oder Y_MAX.

HTTP-Methode und URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput

JSON-Text der Anfrage:

{
  "applicationStreamInputs": [
    {
      "streamWithAnnotation": {
        "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
        "nodeAnnotations": [
          {
            "node": "NODE_NAME",
            "annotations": [
              {
                "id": "ANNOTATION_ID",
                "displayName": "ANNOTATION_DISPLAYNAME",
                "sourceStream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
                "type": ANNOTATION_TYPE,
                "activeZone": {
                  "normalizedVertices": {
                    "x": 0.07434944,
                    "y": 0.18061674
                  },
                  "normalizedVertices": {
                    "x": 0.64684016,
                    "y": 0.16079295
                  },
                  "normalizedVertices": {
                    "x": 0.6047088,
                    "y": 0.92070484
                  },
                  "normalizedVertices": {
                    "x": 0.1251549,
                    "y": 0.76651984
                  }
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content

Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.

Stream-Eingabe entfernen

REST

Wenn Sie einen Stream aus einer App entfernen möchten, senden Sie eine POST-Anfrage mit der Methode projects.locations.applications.removeStreamInput.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput

JSON-Text der Anfrage:

{
  "targetStreamInputs": [
     {
       "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
     },
     {
       "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
     }
   ]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput" | Select-Object -Expand Content

Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.

Vortrainiertes Vertex AI Vision-Modell hinzufügen

Nachdem Sie eine App erstellt haben, können Sie ein Modell hinzufügen und es mit Streams, anderen Modellen oder einem Media Warehouse verbinden.

Es gibt zwei Arten von Modellen: vortrainierte Modelle und nutzerdefinierte Modelle. Auch von Nutzern trainierte Modelle können zwei Typen haben: AutoML oder benutzerdefiniert trainiert:

  • Vortrainierte Modelle erfüllen einen bestimmten Zweck, werden mit generalisierten Daten trainiert und sind sofort einsatzbereit.
  • Für von Nutzern trainierte AutoML- oder benutzerdefinierte Modelle müssen Sie Beispieldaten identifizieren und bereitstellen und dann Modelle trainieren, die besser für Ihren speziellen Anwendungsfall geeignet sind. Sie trainieren diese Modelle mit Vertex AI, einem Produkt, das zwei Trainingsoptionen bietet: mit AutoML trainierte Modelle und benutzerdefinierte Modelle. Weitere Informationen finden Sie unter Trainingsmethode auswählen.

Folgen Sie der Anleitung unten, um Ihrem App-Diagramm ein vortrainiertes Vertex AI Vision-Modell hinzuzufügen.

Console

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Wählen Sie in der Liste neben dem Namen Ihrer Anwendung App ansehen aus.

  3. Wählen Sie auf der Seite des Anwendungs-Builders das Modell aus, das Sie aus der Liste KI-Modelle hinzufügen möchten. Jedes Modell hat individuelle Konfigurationseinstellungen.

  4. Wenn Sie dieses Modell mit einem Eingabequellenknoten verbinden möchten, wählen Sie den Quellknoten und dann Ausgabe hinzufügen aus.

  5. Wählen Sie den neu erstellten KI-Modellknoten aus der Liste Verfügbare Knoten aus.

Von Nutzern trainiertes Vertex AI-Modell hinzufügen

Nachdem Sie eine App erstellt haben, können Sie ein Modell hinzufügen und es mit Streams, anderen Modellen oder einem Media Warehouse verbinden.

Es gibt zwei Arten von Modellen: vortrainierte Modelle und nutzerdefinierte Modelle. Auch von Nutzern trainierte Modelle können zwei Typen haben: AutoML oder benutzerdefiniert trainiert:

  • Vortrainierte Modelle erfüllen einen bestimmten Zweck, werden mit generalisierten Daten trainiert und sind sofort einsatzbereit.
  • Für von Nutzern trainierte AutoML- oder benutzerdefinierte Modelle müssen Sie Beispieldaten identifizieren und bereitstellen und dann Modelle trainieren, die besser für Ihren speziellen Anwendungsfall geeignet sind. Sie trainieren diese Modelle mit Vertex AI, einem Produkt, das zwei Trainingsoptionen bietet: mit AutoML trainierte Modelle und benutzerdefinierte Modelle. Weitere Informationen finden Sie unter Trainingsmethode auswählen.

Streamingmodell zur AutoML-Objekterkennung von Vertex AI hinzufügen

Folgen Sie der Anleitung unten, um Ihrem App-Diagramm ein Streamingmodell zur AutoML-Objekterkennung hinzuzufügen, das Sie trainieren.

Bevor Sie ein Vertex AI AutoML-Modell trainieren können, müssen Sie Ihre Objekterkennungsdaten vorbereiten und ein Dataset erstellen.

Modell für die Verwendung in Vertex AI Vision trainieren

Nachdem Sie ein Dataset mit einer repräsentativen Sammlung von Daten in Vertex AI erstellt haben, können Sie ein Modell trainieren, das in Vertex AI Vision verwendet werden soll.

Console

  1. Rufen Sie in der Google Cloud Console im Vertex AI-Dashboard die Seite Datasets auf.

    Zur Seite „Datasets“

  2. Klicken Sie auf den Namen des Datasets, das Sie zum Trainieren Ihres Modells verwenden möchten, um dessen Detailseite zu öffnen.

  3. Wenn Ihr Datentyp Annotationssätze verwendet, wählen Sie den Annotationssatz aus, den Sie für dieses Modell verwenden möchten.

  4. Klicken Sie auf Neues Modell trainieren.

  5. Führen Sie auf der Seite Neues Modell trainieren die folgenden Schritte für Ihr AutoML-Modell zur Bildobjekterkennung aus:

    1. Wählen Sie im Bereich Trainingsmethode für das Modell die Option AutoML aus.

    2. Wählen Sie im Abschnitt Speicherort für das Modell wählen die Option Vertex AI Vision aus.

    3. Klicken Sie auf Weiter.

    4. Geben Sie Werte für die Abschnitte Modelldetails, Trainingsoptionen und Computing und Preise ein. Weitere Informationen finden Sie unter AutoML-Modell trainieren (Google Cloud Console).

    5. Klicken Sie auf Training starten.

      Das Modelltraining kann viele Stunden dauern, je nach Größe und Komplexität Ihrer Daten und Ihres Trainingsbudgets, sofern Sie eines angegeben haben. Sie können diesen Tab schließen und später zu ihm zurückkehren. Wenn das Training für Ihr Modell abgeschlossen ist, erhalten eine E-Mail.

Trainiertes Modell zur App hinzufügen

Nachdem das Modell trainiert wurde, können Sie es Ihrer Vertex AI Vision-Anwendung hinzufügen.

Console

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Wählen Sie in der Liste neben dem Namen Ihrer Anwendung App ansehen aus.

  3. Wählen Sie auf der Seite des Anwendungs-Builders in der Liste der Seitenkomponenten Vertex AI-Modell hinzufügen aus. Wenn Sie diese Option auswählen, wird ein Seitenmenü geöffnet.

  4. Lassen Sie im Menü „Vertex AI-Modell hinzufügen“ die Option Trainiertes Modell aus Vertex AI importieren ausgewählt und wählen Sie dann das Modell aus der Liste der vorhandenen Vertex AI AutoML-Modelle aus.

  5. Nachdem Sie das zu importierende Modell ausgewählt haben, klicken Sie auf Modell hinzufügen.

    Nachdem Sie auf die Schaltfläche Modell hinzufügen geklickt haben, wird auf der Seite des Diagramm-Builders ein ausstehendes Modell angezeigt. Nach einigen Sekunden ist das Modell einsatzbereit.

Benutzerdefiniertes Vertex AI-Modell hinzufügen

Sie können auch benutzerdefinierte Modelle, die in Vertex AI trainiert wurden, in Vertex AI Vision importieren, um sie für die Datenanalyse zu verwenden. Diese benutzerdefiniert trainierten Modelle müssen die folgenden Eigenschaften haben:

  • Das Modell muss zustandslos sein, da die Modelleingabe die Bilder sind, die von verschiedenen Anwendungsinstanzen (Streams) stammen und möglicherweise nicht in der richtigen Reihenfolge sind. Wenn Sie eine zustandsbehaftete Streamingverarbeitung benötigen, müssen Sie möglicherweise Zustände in Ihrem eigenen Container beibehalten.
  • Die Eingabegröße für Ihr Modell ist auf 1,5 MB beschränkt. Daher muss Vertex AI Vision das ursprüngliche RGB-Bild in ein verlustbehaftetes Format wie JPG komprimieren.

Folgen Sie dieser Anleitung, um Ihrem App-Diagramm ein vorhandenes benutzerdefiniertes Vertex AI-Videomodell hinzuzufügen, das Sie trainiert haben.

Informationen zum Erstellen eines benutzerdefiniert trainierten Vertex AI-Modells mit einem benutzerdefinierten Container finden Sie unter Benutzerdefinierten Container für Vorhersagen verwenden.

YAML-Datei für Instanzen angeben

Wenn Sie ein benutzerdefiniertes Modell von Vertex AI hinzufügen, müssen Sie eine in Cloud Storage gespeicherte YAML-Datei für Instanzen (instances.yaml) angeben. In dieser Datei wird die erwartete Eingabe für Ihren Modellcontainer angegeben.

Vertex AI sendet die Vorhersageanfrage in einem Format:

{
  "instances": [
    <value>|<simple/nested list>|<object>,
    ...
  ]
}

Hier definiert instances.yaml das Schema der Nutzlast. Weitere Informationen finden Sie unter Onlinevorhersagen aus benutzerdefinierten Modellen abrufen.

Vertex AI Vision unterstützt nur benutzerdefiniert trainierte Modelle mit genau einem benannten Vorhersageeingabe. Dieser Eingabetyp muss ein codierter JPEG-String sein. Das Schema der Vorhersageeingabe muss mit der YAML-Datei für das Instanzschema angegeben werden. Diese Schema-YAML-Datei muss im Format eines OpenAPI-Schemaobjekts vorliegen.

Das folgende Schema empfängt beispielsweise die Anfrage mit dem in einem Feld namens image_bytes codierten Bild:

properties:
  image_bytes:
    type: string

Ihr benutzerdefiniertes Modell empfängt Vorhersageeingaben im folgenden Format:

{
  "instances": [
    {
      "image_bytes" : {
        "b64": "BASE64_ENCODED_IMAGE_BYTES"
      }
    }
  ]
}

Bevor Sie das Modell in Vertex AI Vision importieren, prüfen Sie, ob es mit dieser Eingabe korrekt funktioniert.

YAML-Datei für Vorhersagen angeben

Wenn Sie ein benutzerdefiniertes Modell von Vertex AI hinzufügen, können Sie eine YAML-Datei für Vorhersagen (predictions.yaml) angeben, die in Cloud Storage gespeichert ist. In dieser Datei wird die Ausgabe Ihres Modellcontainers angegeben.

Diese Datei ist optional, wird aber empfohlen, um Vertex AI Vision über die Ausgabestruktur Ihres Modells zu informieren. Die folgende classification_1.0.0.yaml-Datei beschreibt beispielsweise Informationen zur Modellausgabe für ein Bildklassifizierungsmodell:

title: Classification
type: object
description: >
  The predicted AnnotationSpecs.
properties:
  ids:
    type: array
    description: >
      The resource IDs of the AnnotationSpecs that had been identified.
    items:
      type: integer
      format: int64
      enum: [0]  # As values of this enum all AnnotationSpec IDs the Model
      # was trained on will be populated.
  displayNames:
    type: array
    description: >
      The display names of the AnnotationSpecs that had been identified,
      order matches the IDs.
    items:
      type: string
      enum: [""]  # As values of this enum all AnnotationSpec display_names
      # the Model was trained on will be populated.
  confidences:
    type: array
    description: >
      The Model's confidences in correctness of the predicted IDs, higher
      value means higher confidence. Order matches the Ids.
    items:
      type: number
      format: float
      minimum: 0.0
      maximum: 1.0

Benutzerdefiniert trainiertes Modell hinzufügen

Verwenden Sie das folgende Beispiel, um das benutzerdefinierte trainierte Vertex AI-Modell in Ihre App einzufügen.

Console

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Wählen Sie in der Liste neben dem Namen Ihrer Anwendung App ansehen aus.

  3. Wählen Sie auf der Seite des Anwendungs-Builders in der Liste der Seitenkomponenten Vertex AI-Modell hinzufügen aus. Wenn Sie diese Option auswählen, wird ein Seitenmenü geöffnet.

  4. Lassen Sie im Menü „Vertex AI-Modell hinzufügen“ die Option Trainiertes Modell aus Vertex AI importieren ausgewählt und wählen Sie dann das Modell aus der Liste der vorhandenen Vertex AI AutoML-Modelle aus.

  5. Geben Sie einen Namen für das Modell an.

  6. Geben Sie die YAML-Datei für Instanzen in Cloud Storage an, die das Format einer einzelnen Instanz definiert, die in Vorhersage- und Erklärungsanfragen verwendet wird.

  7. Optional: Geben Sie die YAML-Datei für das Vorhersageschema in Cloud Storage an, die das Format einer einzelnen Vorhersage oder Erklärung definiert.

  8. Nachdem Sie Informationen zu Modellname, Instanzen und Vorhersagen angegeben haben, wählen Sie Modell hinzufügen aus.

  9. Nachdem Sie auf die Schaltfläche Modell hinzufügen geklickt haben, wird auf der Seite des Diagramm-Generators ein ausstehendes Modell angezeigt. Nach einigen Sekunden ist das Modell einsatzbereit.

Optional. Anwendungsmetadaten anhängen

Zusätzlich zu den Image-Bytes können Sie attach_application_metadata festlegen, um die Vertex AI Vision-App-Plattform aufzufordern, die Metadaten der Anwendung einzuschließen, die an den benutzerdefinierten Container gesendet werden sollen.

Die Metadaten haben das folgende Schema:

'appPlatformMetadata': {
     'application': STRING;
     'instanceId': STRING;
     'node': STRING;
     'processor': STRING;
   }

Optional. Pub/Sub-Thema für dynamische Konfiguration hinzufügen

Wenn Sie die Framerate, mit der der benutzerdefinierte Vertex-Operator Videoframes an benutzerdefinierte Vertex-Container sendet, dynamisch steuern möchten, können Sie ein Pub/Sub-Thema erstellen. Fügen Sie sie dem Abschnitt Dynamic Configuration der Knoteneinstellungen hinzu.

dynamische Konfiguration

Wenn das Pub/Sub-Thema konfiguriert ist, beträgt die anfängliche Framerate 0. Während der Videoverarbeitung können Sie Pub/Sub-Nachrichten im folgenden Format in Echtzeit an das Pub/Sub-Thema senden, um die Framerate zu ändern:

{
  "stream_id": "input-stream-id",
  "fps": 5,
}

Das Feld stream_id sollte mit der ID des Eingabestreams der Anwendung übereinstimmen.

Dienstkonto und Berechtigungen

Die Standarddienstanmeldedaten des benutzerdefinierten Containers wurden für das Google-eigene Dienstkonto der Vertex AI Vision-App-Plattform konfiguriert. Wenn Sie vom Container aus auf andere Google Cloud-Dienste zugreifen möchten, gewähren Sie die entsprechenden Berechtigungen für: service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com

Optional. Modellereignisbenachrichtigung mit Cloud Run Functions und Pub/Sub

In Vertex AI Vision empfangen Modelle Mediendaten von Geräten wie Kameras, führen KI-Vorhersagen für die Daten aus und erstellen kontinuierlich Anmerkungen. Häufig senden Sie diese verarbeiteten Daten an ein Datenziel („Data Sink“) wie ein Media Warehouse oder BigQuery, um weitere Analyseaufgaben auszuführen. Es kann jedoch vorkommen, dass einige Anmerkungen anders behandelt werden müssen oder dass die Anmerkungen zeitkritisch sind. Integrationen mit Cloud Run Functions und Pub/Sub können Ihnen dabei helfen.

Unterstützte Modelle

Die folgenden Modelle bieten die Integration von Cloud Run Functions-Ereignisgenerierung und Pub/Sub-Ereignisbenachrichtigungen:

Cloud Run Functions für die Verarbeitung der Modellausgabe konfigurieren

Damit ereignisbasierte Benachrichtigungen ausgelöst werden, müssen Sie zuerst Cloud Run Functions einrichten, um die Modellausgabe zu verarbeiten und Ereignisse zu generieren.

Ihre Cloud Run-Funktion stellt eine Verbindung zum Modell her und überwacht die Ausgabe als Nachbearbeitungsvorgang. Die Cloud Run-Funktion sollte AppPlatformCloudFunctionResponse zurückgeben. Die Ereignisse (appplatformeventbody) werden an das Pub/Sub-Thema gesendet, das Sie im nächsten Schritt konfigurieren.

Ein Beispiel für eine Cloud Run-Funktion finden Sie unter Benachrichtigung über Modellereignisse mit Cloud Functions und Pub/Sub aktivieren.

Folgen Sie der Anleitung unten, um den Modell-Outputstream an Ihre Cloud Run-Funktion zu senden:

Console

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Wählen Sie in der Liste neben dem Namen Ihrer App App ansehen aus.

  3. Klicken Sie auf das unterstützte Modell, um die Seitenleiste mit den Modelldetails zu öffnen.

  4. Wählen Sie im Abschnitt Ereignisbenachrichtigung in der Liste Nachbearbeitung Ihre vorhandene Cloud Run-Funktion aus oder erstellen Sie eine neue.

    Cloud Function-Bild für die Nachbearbeitung in der Cloud Console auswählen

Benachrichtigungen zu Modellereignissen mit Pub/Sub aktivieren

Nachdem Sie Cloud Run Functions zum Verarbeiten der Modellausgabe und zum Generieren von Ereignissen eingerichtet haben, können Sie die Ereignisbenachrichtigung mit Pub/Sub einrichten. Wenn Sie Nachrichten aus einem Thema lesen möchten, müssen Sie auch ein Pub/Sub-Abo auswählen und erstellen.

Console

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Wählen Sie in der Liste neben dem Namen Ihrer App App ansehen aus.

  3. Klicken Sie auf das unterstützte Modell, um die Seitenleiste mit den Modelldetails zu öffnen.

  4. Wählen Sie im Abschnitt Ereignisbenachrichtigung die Option Ereignisbenachrichtigung einrichten aus.

  5. Wählen Sie im Fenster Pub/Sub für Ereignisbenachrichtigungen einrichten, das sich öffnet, Ihr vorhandenes Pub/Sub-Thema aus oder erstellen Sie ein neues.

  6. Legen Sie im Feld Häufigkeit einen ganzzahligen Wert für die Häufigkeit in Sekunden fest, mit der eine Benachrichtigung für denselben Ereignistyp gesendet werden kann.

    Bild für Ereignisbenachrichtigung in der Cloud Console einrichten

  7. Klicken Sie auf Einrichten.

Modellausgabe mit einem Downstream-Knoten verbinden

Nachdem Sie einen Modellknoten erstellt haben, können Sie seine Ausgabe mit einem anderen Knoten verbinden.

Console

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Wählen Sie in der Liste neben dem Namen Ihrer Anwendung App ansehen aus.

  3. Klicken Sie auf einen Modellknoten, der Daten im Anwendungsdiagramm-Builder ausgibt, z. B. den Modellknoten Belegungsanzahl.

  4. Klicken Sie in den seitlichen Einstellungen auf die Schaltfläche Ausgabe hinzufügen.

  5. Sie können entweder Neue Ausgabe hinzufügen auswählen und einen neuen Ausgabeknoten hinzufügen oder einen vorhandenen Verfügbaren Knoten auswählen, an den die Ausgabe gesendet werden soll.

Ausgabe mit einem Datenziel verbinden

Nachdem Sie den Datenaufnahmestream erstellt und die Verarbeitungsknoten zu Ihrer App hinzugefügt haben, müssen Sie auswählen, wohin die verarbeiteten Daten gesendet werden sollen. Dieses Datenziel ist der Endpunkt Ihres App-Diagramms, der Streamdaten akzeptiert, ohne Streamdaten zu erzeugen. Das Ziel, das Sie auswählen, hängt davon ab, wie Sie die Ausgabedaten der App verwenden.

Bild von Verbindungsknoten
In der Google Cloud Console sind Datenziele auf der Seite mit dem App-Diagramm im Abschnitt Connectors verfügbar.

Sie können App-Ausgabedaten mit den folgenden Datenzielen verknüpfen:

  1. Vision Warehouse: Hier können Sie Original- oder analysierte Videodaten speichern, die Sie ansehen und abfragen können.

    Weitere Informationen zum Senden von App-Ausgabedaten an ein Vision Warehouse finden Sie unter Daten mit einem Warehouse verbinden und dort speichern.

  2. BigQuery: Daten in BigQuery speichern, um die Offline-Analysefunktionen zu nutzen.

    Weitere Informationen zum Senden von App-Ausgabedaten an BigQuery finden Sie unter Daten mit BigQuery verbinden und dort speichern.

  3. Livestream-Daten: Wenn Sie detailliertere Echtzeitanalysen benötigen, können Sie die Liveausgabe Ihrer App abrufen.

    Weitere Informationen zum direkten Streamen von App-Ausgabedaten finden Sie unter Livestream-Ausgabe aktivieren.

App aktualisieren

Nicht bereitgestellte Apps

Nehmen Sie Änderungen an der App vor, z. B. durch Hinzufügen oder Entfernen von Komponentenknoten. Vertex AI Vision speichert die Änderungen automatisch.

Nächste Schritte

  • Informationen zum Bereitstellen Ihrer App zum Erfassen und Analysieren von Daten finden Sie unter Anwendung bereitstellen.
  • Eine Anleitung zum Starten der Datenerfassung aus dem Eingabestream einer App finden Sie unter Streams erstellen und verwalten.
  • Informationen zum Auflisten von Apps und zum Aufrufen der Instanzen einer bereitgestellten App finden Sie unter Anwendungen verwalten.
  • Informationen zum Lesen von App-Eingabedaten aus einem Ingestion-Stream oder von analysierten Modellausgabedaten finden Sie unter Streamdaten lesen.