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 die verarbeiteten Ergebnisse in BigQuery zu speichern. Sie können diese gespeicherten Ergebnisse für die Datenanalyse im großen Maßstab und zum Trainieren vordefinierter BigQuery ML-Modelle verwenden.
Dieses Referenzarchitekturdokument richtet sich an Data Engineers und Data Scientists.
Architektur
Das folgende Diagramm veranschaulicht den Systemablauf für diese Referenzarchitektur.
Wie im vorherigen Diagramm dargestellt, fließt die Information so:
Aufnahme und Trigger: Dies ist die erste Phase des Systemflusses, in der Bilder in das System aufgenommen werden. In dieser Phase werden die folgenden Aktionen ausgeführt:
- Clients laden Bilddateien in einen Cloud Storage-Bucket hoch.
- Für jeden Dateiupload sendet Cloud Storage automatisch eine Eingabebenachrichtigung, indem eine Nachricht in Pub/Sub veröffentlicht wird.
Verarbeitung: Diese Phase folgt unmittelbar auf die Aufnahme- und Triggerphase. Bei jeder neuen Eingabebenachrichtigung werden die folgenden Aktionen ausgeführt:
- Die Dataflow-Pipeline überwacht diese Benachrichtigungen zur Dateieingabe, extrahiert Dateimetadaten aus der Pub/Sub-Nachricht und sendet die Dateireferenz zur Verarbeitung an die Vision API.
- Die Vision API liest das Bild und erstellt Anmerkungen.
- Die Dataflow-Pipeline speichert die von der Vision API generierten Anmerkungen in BigQuery-Tabellen.
Speichern und analysieren: Dies ist die letzte Phase des Ablaufs. In dieser Phase haben Sie folgende Möglichkeiten:
- BigQuery-Tabellen abfragen und die gespeicherten Anmerkungen analysieren
- Verwenden Sie BigQuery ML oder Vertex AI, um Modelle zu erstellen und Vorhersagen basierend auf den gespeicherten Anmerkungen auszuführen.
- Führen Sie eine zusätzliche Analyse in der Dataflow-Pipeline durch (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 Bildbeschriftung, Gesichts- und Sehenswürdigkeiten-Erkennung, optische Zeichenerkennung und das Tagging anstößiger Inhalte. 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. Wenn Sie ein benutzerdefiniertes Modell benötigen, das auf Ihren spezifischen Daten trainiert wurde, können Sie mit Vertex AI ein AutoML- oder ein benutzerdefiniertes Modell für Ziele für maschinelles Sehen wie Bildklassifizierung und Objekterkennung trainieren. Alternativ können Sie Vertex AI Vision als End-to-End-Umgebung für die Anwendungsentwicklung 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, bei denen Bilder mit relativ kleiner Größe analysiert werden müssen. Pub/Sub begrenzt die maximale Größe der Nachricht auf 10 MB.
Wenn Sie eine große Anzahl von Bildern gleichzeitig verarbeiten möchten, können Sie eine speziell dafür 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 keine Aktionen auf Grundlage der analysierten Bilder ausführt, hat bildbasierte Malware keine Auswirkungen auf die API. Wenn Sie Bilder scannen möchten, ändern Sie die Dataflow-Pipeline, um einen Scanschritt hinzuzufügen. Sie können auch ein separates Abo für das Pub/Sub-Thema verwenden und Bilder in einem separaten Prozess scannen, um dasselbe Ergebnis zu erzielen.
Weitere Informationen finden Sie unter Malware-Scans für Dateien automatisieren, die in Cloud Storage hochgeladen werden.
Die Vision API verwendet für die Authentifizierung die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM). 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 speziell für KI- und ML-Arbeitslasten finden Sie im Architektur-Framework unter KI und ML: Sicherheit.
Kostenoptimierung
Im Vergleich zu den anderen beschriebenen Optionen wie der Verarbeitung mit niedriger Latenz und der asynchronen Batchverarbeitung bietet diese Referenzarchitektur eine kosteneffiziente Möglichkeit, die Bilder in Streaming-Pipelines zu verarbeiten, indem die API-Anfragen in Batches zusammengefasst werden. Das direkte Bildstreaming mit niedrigerer Latenz, das im Abschnitt Designalternativen erwähnt wird, kann aufgrund der zusätzlichen Pub/Sub- und Dataflow-Kosten teurer sein. Wenn die Bildverarbeitung nicht innerhalb von Sekunden oder Minuten erfolgen muss, können Sie die Dataflow-Pipeline im Batchmodus ausführen. Das Ausführen der Pipeline im Batchmodus kann im Vergleich zu den Kosten für die Ausführung der Streamingpipeline einige Einsparungen ermöglichen.
Die Vision API unterstützt für alle Features die asynchrone Offline-Batch-Bildannotation. 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 sind.
Die Vision API bietet auch eine Reihe von Funktionen zur Bildanalyse. Die Preise richten sich nach Bild und Feature. Um die Kosten zu senken, fordern Sie nur die Funktionen 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.
Kostenoptimierungsgrundsätze und -empfehlungen speziell für KI- und ML-Arbeitslasten finden Sie im Architektur-Framework unter KI und ML: Kostenoptimierung.
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 kümmert sich um die Batchverarbeitung der API-Anfragen, die reibungslose Verarbeitung von 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 Parameter der Dataflow-Pipeline 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 Verarbeitungslatenz 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, die speziell auf KI- und ML-Arbeitslasten ausgerichtet sind, finden Sie im Architektur-Framework unter KI und ML: Leistungsoptimierung.
Bereitstellung
Informationen zum Bereitstellen dieser Architektur finden Sie unter ML-Vision-Analyselösung mit Dataflow und der Vision API bereitstellen.
Nächste Schritte
- Weitere Informationen zu Dataflow.
- Weitere Informationen zur Zuverlässigkeit von Dataflow finden Sie im Leitfaden zur Dataflow-Zuverlässigkeit.
- Weitere Informationen zu BigQuery ML
- Weitere Informationen zur Zuverlässigkeit von BigQuery finden Sie im Leitfaden zur BigQuery-Zuverlässigkeit .
- Weitere Informationen zum Speichern von Daten in der Schnellstartlösung „Data Warehouse mit BigQuery“
- Liste der Vision API-Features
- Weitere Informationen zum Bereitstellen einer ML-Vision-Analyselösung mit Dataflow und der Vision API
- Einen Überblick über die Prinzipien und Empfehlungen, die speziell für KI- und ML-Arbeitslasten in Google Cloud gelten, finden Sie im Architektur-Framework unter KI und ML.
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.
Beitragende
Autoren:
- Masud Hasan | Site Reliability Engineering Manager
- Sergei Lilichenko | Solutions Architect
- Lakshmanan Sethu | Technical Account Manager
Weitere Beitragende:
- Jiyeon Kang | Customer Engineer
- Sunil Kumar Jang Bahadur | Customer Engineer