ML-Vision-Analyselösung mit Dataflow und der Cloud Vision API erstellen

In dieser Referenzarchitektur erfahren Sie mehr über die Anwendungsfälle, Designalternativen und Designüberlegungen beim Bereitstellen einer Dataflow-Pipeline, um Bilddateien mit Cloud Vision zu verarbeiten und verarbeitete Ergebnisse in BigQuery zu speichern. Sie können diese gespeicherten Ergebnisse für umfangreiche Datenanalysen und zum Trainieren vordefinierter BigQuery ML-Modelle verwenden.

Dieses Referenzarchitekturdokument richtet sich an Data Engineers und Data Scientists.

Architektur

Das folgende Diagramm veranschaulicht den Systemfluss für diese Referenzarchitektur.

Eine Architektur, die den Informationsfluss bei Aufnahme- und Trigger-, Verarbeitungs-, Speicherungs- und Analyseprozessen zeigt.

Wie im vorherigen Diagramm dargestellt, fließen die Informationen so:

  1. Aufnehmen und auslösen: Dies ist die erste Phase des Systemflusses, in der die Bilder zuerst in das System gelangen. In dieser Phase finden die folgenden Aktionen statt:

    1. Clients laden Bilddateien in einen Cloud Storage-Bucket hoch.
    2. Bei jedem Dateiupload sendet Cloud Storage automatisch eine Eingabebenachrichtigung, indem es eine Nachricht in Pub/Sub veröffentlicht.
  2. Verarbeiten: Diese Phase folgt direkt auf die Aufnahme- und Triggerphase. Bei jeder neuen Eingabebenachrichtigung werden die folgenden Aktionen ausgeführt:

    1. Die Dataflow-Pipeline wartet auf diese Dateieingabebenachrichtigungen, extrahiert Dateimetadaten aus der Pub/Sub-Nachricht und sendet den Dateiverweis zur Verarbeitung an die Vision API.
    2. Die Vision API liest das Bild und erstellt Annotationen.
    3. Die Dataflow-Pipeline speichert die von der Vision API erstellten Annotationen in BigQuery-Tabellen.
  3. Speichern und analysieren: Dies ist die letzte Phase des Ablaufs. In dieser Phase haben Sie folgende Möglichkeiten mit den gespeicherten Ergebnissen:

    1. BigQuery-Tabellen abfragen und die gespeicherten Annotationen analysieren.
    2. Verwenden Sie BigQuery ML oder Vertex AI, um anhand der gespeicherten Annotationen Modelle zu erstellen und Vorhersagen auszuführen.
    3. Führen Sie weitere Analysen in der Dataflow-Pipeline durch (nicht in diesem Diagramm dargestellt).

Verwendete Produkte

Diese Referenzarchitektur verwendet die folgenden Google Cloud Produkte:

Anwendungsfälle

Die Vision API unterstützt mehrere Verarbeitungsfunktionen, darunter die Erkennung von Bildlabels, Gesichtern und Sehenswürdigkeiten, die optische Zeichenerkennung und das Tagging expliziter Inhalte. Jede dieser Funktionen ermöglicht mehrere Anwendungsfälle, die auf verschiedene Branchen anwendbar sind. Dieses Dokument enthält einige einfache Beispiele dafür, was mit der Vision API möglich ist. Das Spektrum der möglichen Anwendungen ist jedoch sehr groß.

Die Vision API bietet auch über die REST API und die RPC API leistungsstarke, vorab trainierte ML-Modelle. Sie können Bildern Labels zuweisen und sie Millionen vordefinierter Kategorien zuordnen. Sie können damit Objekte erkennen, gedruckten und handgeschriebenen Text lesen und wertvolle Metadaten in Ihren Bildkatalog einfügen.

Für diese Architektur ist kein Modelltraining erforderlich, bevor Sie sie verwenden können. Wenn Sie ein benutzerdefiniertes Modell benötigen, das mit Ihren spezifischen Daten trainiert wurde, können Sie mit Vertex AI ein AutoML oder ein benutzerdefiniertes Modell für Ziele des maschinellen Sehens wie Bildklassifizierung und Objekterkennung trainieren. Alternativ können Sie Vertex AI Vision als End-to-End-Entwicklungsumgebung für Anwendungen verwenden, mit der Sie Anwendungen für maschinelles Sehen erstellen, bereitstellen und verwalten können.

Designalternativen

Anstatt Bilder in einem Google Cloud Storage-Bucket zu speichern, kann der Prozess, mit dem die Bilder erzeugt werden, sie direkt in einem Nachrichtensystem – z. B. Pub/Sub – veröffentlichen und die Dataflow-Pipeline kann die Bilder direkt zur Vision API senden.

Diese Designalternative kann eine gute Lösung für latenzempfindliche Anwendungsfälle sein, in denen Sie Bilder von relativ kleiner Größe analysieren müssen. Pub/Sub begrenzt die maximale Größe der Nachricht auf 10 MB.

Wenn Sie eine große Anzahl von Bildern im Batch verarbeiten müssen, können Sie eine speziell entwickelte asyncBatchAnnotate API verwenden.

Designaspekte

In diesem Abschnitt werden die Designüberlegungen für diese Referenzarchitektur beschrieben:

Sicherheit, Datenschutz und Compliance

Bilder, die von nicht vertrauenswürdigen Quellen empfangen werden, können Malware enthalten. Da die Vision API nicht anhand der analysierten Bilder etwas ausführt, beeinträchtigt bildbasierte Malware die API nicht. Wenn Sie Images scannen müssen, ändern Sie die Dataflow-Pipeline, um einen Scanschritt hinzuzufügen. Um dasselbe Ergebnis zu erzielen, können Sie auch ein separates Abo für das Pub/Sub-Thema verwenden und Bilder in einem separaten Prozess scannen.

Weitere Informationen finden Sie unter Malware-Scans für Dateien automatisieren, die in Cloud Storage hochgeladen werden.

Die Vision API verwendet Identity and Access Management (IAM) zur Authentifizierung. Für den Zugriff auf die Vision API benötigt das Sicherheitshauptkonto Cloud Storage > Storage-Objekt-Betrachter (roles/storage.objectViewer) für den Bucket, der die gewünschten Dateien zum Analysieren enthält.

Sicherheitsgrundsätze und Empfehlungen, die speziell für KI- und ML-Arbeitslasten gelten, finden Sie im Well-Architected Framework unter AI and MLperspektive: Sicherheit.

Kostenoptimierung

Im Vergleich zu den anderen beschriebenen Optionen, wie Verarbeitung mit niedriger Latenz und asynchrone Batchverarbeitung, verwendet diese Referenzarchitektur eine kostengünstige Möglichkeit, die Bilder in Streamingpipelines durch Batchverarbeitung der API-Anfragen zu verarbeiten. Das im Abschnitt Designalternativen erwähnte direkte Bildstreaming mit geringerer Latenz kann aufgrund der zusätzlichen Pub/Sub- und Dataflow-Kosten teurer sein. Für die Bildverarbeitung, die nicht innerhalb von Sekunden oder Minuten erfolgen muss, können Sie die Dataflow-Pipeline im Batchmodus ausführen. Wenn Sie die Pipeline im Batchmodus ausführen, können Sie im Vergleich zu den Kosten für die Ausführung der Streamingpipeline Einsparungen erzielen.

Die Vision API unterstützt asynchrone Offline-Batch-Bildanmerkungen für alle Features. Die asynchrone Anfrage unterstützt bis zu 2.000 Bilder pro Batch. Die Vision API gibt daraufhin JSON-Dateien zurück, die in einem Cloud Storage-Bucket gespeichert sind.

Die Vision API bietet auch eine Reihe von Features zum Analysieren von Bildern. Die Preise gelten pro Bild und Element. Fordern Sie nur die Funktionen an, die Sie für Ihre Lösung benötigen, um Kosten zu senken.

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.

Prinzipien und Empfehlungen zur Kostenoptimierung, die speziell für KI- und ML-Arbeitslasten gelten, finden Sie im Well-Architected Framework unter KI- und ML-Perspektive: Kostenoptimierung.

Leistungsoptimierung

Die Vision API ist eine ressourcenintensive API. Aus diesem Grund erfordert die Verarbeitung von Bildern in großem Maßstab eine sorgfältige Orchestrierung der API-Aufrufe. Die Dataflow-Pipeline sorgt für die Batchverarbeitung der API-Anfragen, die Verarbeitung der Ausnahmen in Bezug auf das Erreichen von Kontingenten und die Erstellung benutzerdefinierter Messwerte zur API-Nutzung. Anhand dieser Messwerte können Sie entscheiden, ob eine Erhöhung des API-Kontingents gerechtfertigt ist oder ob die Dataflow-Pipelineparameter angepasst werden sollten, um die Häufigkeit der Anfragen zu reduzieren. Weitere Informationen zum Erhöhen der Kontingentanfragen für die Vision API finden Sie unter Kontingente und Limits.

Die Dataflow-Pipeline hat mehrere Parameter, die die Verarbeitungslatenzen beeinflussen können. Weitere Informationen zu diesen Parametern finden Sie unter Lösung für ML-Vision-Analysen mit Dataflow und Vision API bereitstellen.

Prinzipien und Empfehlungen zur Leistungsoptimierung, die speziell für KI- und ML-Arbeitslasten gelten, finden Sie im Well-Architected Framework unter KI- und ML-Perspektive: Leistungsoptimierung.

Bereitstellung

Informationen zum Bereitstellen dieser Architektur finden Sie unter ML-Vision-Analyselösung mit Dataflow und der Vision API bereitstellen.

Nächste Schritte

Beitragende

Autoren:

Weitere Beitragende: