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

Last reviewed 2024-05-23 UTC

In dieser Referenzarchitektur erfahren Sie mehr über die Anwendungsfälle, Designalternativen und Designaspekte bei der Bereitstellung einer Dataflow Pipeline zum Verarbeiten von Bilddateien mit Cloud Vision und zum Speichern der verarbeiteten Ergebnisse in BigQuery. Sie können diese gespeicherten Ergebnisse für die Datenanalyse im großen Maßstab und zum Trainieren von BigQuery ML-Modellen verwenden.

Dieses Referenzarchitekturdokument richtet sich an Data Engineers und Data Scientists.

Architektur

Das folgende Diagramm veranschaulicht den Systemablauf 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 Systemablaufs, in der Bilder in das System gelangen. In dieser Phase geschieht Folgendes:

    1. Clients laden Bilddateien in einen Cloud Storage-Bucket hoch.
    2. Für jeden Dateiupload sendet Cloud Storage automatisch eine Eingabenachricht, indem eine Nachricht in Pub/Sub veröffentlicht wird.
  2. Verarbeiten: Diese Phase folgt unmittelbar auf die Phase „Aufnehmen und auslösen“. Für jede neue Eingabenachricht geschieht Folgendes:

    1. Die Dataflow-Pipeline wartet auf diese Dateieingabenachricht, extrahiert Dateimetadaten aus der Pub/Sub-Nachricht und sendet die Dateireferenz zur Verarbeitung an die Vision API.
    2. Die Vision API liest das Bild und erstellt Anmerkungen.
    3. Die Dataflow-Pipeline speichert die von der Vision API erstellten Anmerkungen in BigQuery-Tabellen.
  3. Speichern und analysieren: Dies ist die letzte Phase des Ablaufs. In dieser Phase können Sie mit den gespeicherten Ergebnissen Folgendes tun:

    1. BigQuery-Tabellen abfragen und die gespeicherten Anmerkungen analysieren.
    2. Mit BigQuery ML oder Vertex AI Modelle erstellen und Vorhersagen auf Grundlage der gespeicherten Anmerkungen treffen.
    3. Zusätzliche Analysen in der Dataflow-Pipeline durchführen (nicht in diesem Diagramm dargestellt).

Verwendete Produkte

In dieser Referenzarchitektur werden die folgenden Google Cloud Produkte verwendet:

Anwendungsfälle

Die Vision API unterstützt mehrere Verarbeitungsfunktionen, darunter Bildlabeling, Erkennung von Gesichtern und Sehenswürdigkeiten, optische Zeichenerkennung , Kennzeichnung anstößiger Inhalte und mehr. Jede dieser Funktionen ermöglicht mehrere Anwendungsfälle, die für verschiedene Branchen relevant sind. Dieses Dokument enthält einige einfache Beispiele für die Möglichkeiten der Vision API. Das Spektrum der möglichen Anwendungen ist jedoch sehr breit.

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 in Millionen vordefinierter Kategorien klassifizieren. Außerdem lassen sich Objekte erkennen, gedruckter und handgeschriebener Text lesen und der Bildkatalog um wertvolle Metadaten erweitern.

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-Modell oder ein benutzerdefiniertes Modell für Computer Vision-Ziele wie Bildklassifizierung und Objekterkennung trainieren. Alternativ können Sie Vertex AI Vision für eine End-to-End-Anwendungsentwicklungsumgebung verwenden, mit der Sie Anwendungen für Computer Vision 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 mit relativ geringer 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 Designaspekte für diese Referenzarchitektur beschrieben:

Sicherheit, Datenschutz und Compliance

Bilder aus nicht vertrauenswürdigen Quellen können Malware enthalten. Da die Vision API nichts auf Grundlage der analysierten Bilder ausführt, wirkt sich bildbasierte Malware nicht auf die API aus. Wenn Sie Bilder scannen müssen, ändern Sie die Dataflow-Pipeline, um einen Scan-Schritt 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.

Sicherheitshinweise und ‑empfehlungen speziell für KI- und ML-Arbeitslasten finden Sie unter KI- und ML-Perspektive: Sicherheit im Well-Architected Framework.

Kostenoptimierung

Im Vergleich zu den anderen besprochenen Optionen wie der Verarbeitung mit niedriger Latenz und der asynchronen Batchverarbeitung verwendet diese Referenzarchitektur eine kostengünstige Methode zum Verarbeiten der Bilder in Streamingpipelines, indem die API-Anfragen in Batches zusammengefasst werden. Das im Abschnitt Designalternativen erwähnte direkte Bildstreaming mit niedrigerer 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. Die Ausführung der Pipeline im Batchmodus kann im Vergleich zu den Kosten für die Ausführung der Streamingpipeline zu Einsparungen führen.

Die Vision API unterstützt für alle Features die offline asynchrone Batch Bildanmerkung. Die asynchrone Anfrage unterstützt bis zu 2.000 Bilder pro Batch. Als Antwort gibt die Vision API JSON-Dateien zurück, die in einem Cloud Storage-Bucket gespeichert werden.

Die Vision API bietet auch eine Reihe von Features für die Bildanalyse. Die Preise gelten pro Bild und pro Feature. Um Kosten zu senken, fordern Sie nur die spezifischen Features an, die Sie für Ihre Lösung benötigen.

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

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

Leistungsoptimierung

Die Vision API ist eine ressourcenintensive API. Daher erfordert die Verarbeitung von Bildern im großen Maßstab eine sorgfältige Orchestrierung der API-Aufrufe. Die Dataflow-Pipeline übernimmt das Batching der API-Anfragen, die ordnungsgemäße Verarbeitung der Ausnahmen im Zusammenhang mit dem 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-Pipeline-Parameter angepasst werden sollten, um die Häufigkeit von Anfragen zu reduzieren. Weitere Informationen zum Erhöhen von Kontingentanfragen für die Vision API finden Sie unter Kontingente und Limits.

Die Dataflow-Pipeline hat mehrere Parameter, die sich auf die Verarbeitungslatenzen auswirken können. Weitere Informationen zu diesen Parametern finden Sie unter ML-Vision-Analyselösung mit Dataflow und der Vision API bereitstellen.

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

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: