In dieser Referenzarchitektur erfahren Sie mehr über die Anwendungsfälle, Designalternativen und Designüberlegungen beim Bereitstellen 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 vordefinierten BigQuery ML-Modellen verwenden.
Dieses Referenzarchitektur-Dokument 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ßen Informationen so:
Aufnahme und Trigger: Dies ist die erste Phase des Systemablaufs, in der Bilder in das System gelangen. In dieser Phase finden die folgenden Aktionen statt:
- Clients laden Bilddateien in einen Cloud Storage-Bucket hoch.
- Für jeden Dateiupload sendet Cloud Storage automatisch eine Eingabenachrichtigung, indem eine Nachricht in Pub/Sub veröffentlicht wird.
Verarbeitung: Diese Phase folgt unmittelbar auf die Phase „Aufnahme und Trigger“. Für jede neue Eingabenachrichtigung werden die folgenden Aktionen ausgeführt:
- Die Dataflow-Pipeline wartet auf diese Benachrichtigungen über Dateieingaben, 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 erstellten Annotationen in BigQuery-Tabellen.
Speichern und analysieren: Dies ist die letzte Phase im Ablauf. In dieser Phase haben Sie folgende Möglichkeiten:
- BigQuery-Tabellen abfragen und die gespeicherten Anmerkungen analysieren
- Mit BigQuery ML oder Vertex AI Modelle erstellen und Vorhersagen basierend auf den gespeicherten Anmerkungen ausführen
- Führen Sie zusätzliche Analysen 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 Bildlabeling, Gesichts- und Sehenswürdigkeiten-Erkennung, optische Zeichenerkennung (Optical Character Recognition, OCR) und das Tagging expliziter 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, 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 verwenden, eine End-to-End-Umgebung für die Anwendungsentwicklung, 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-Verfahren verarbeiten müssen, 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 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 Scanvorgang 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) für die 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 speziell für KI- und ML-Arbeitslasten finden Sie im Well-Architected Framework unter KI- und ML-Perspektive: Sicherheit.
Kostenoptimierung
Im Vergleich zu den anderen besprochenen Optionen wie der Verarbeitung mit niedriger Latenz und der asynchronen Batchverarbeitung wird in dieser Referenzarchitektur eine kostengünstige Methode zum Verarbeiten der Bilder in Streaming-Pipelines verwendet, 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. 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 das Ausführen der Streamingpipeline zu Einsparungen führen.
Die Vision API unterstützt die asynchrone Batch-Bildannotation offline für alle Funktionen. 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 Features für die Bildanalyse. Die Preise gelten pro Bild und pro Funktion. Um Kosten zu senken, sollten Sie nur die Funktionen anfordern, 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 Well-Architected Framework unter KI- und ML-Perspektive: Kostenoptimierung.
Leistungsoptimierung
Die Vision API ist eine ressourcenintensive API. Daher ist für die Verarbeitung von Bildern im großen Maßstab eine sorgfältige Orchestrierung der API-Aufrufe erforderlich. 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 Parameter der Dataflow-Pipeline angepasst werden sollten, um die Häufigkeit von Anfragen zu verringern. 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.
Grundsätze und Empfehlungen zur Leistungsoptimierung, die speziell auf KI- und ML-Arbeitslasten zugeschnitten sind, 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
- Weitere Informationen zu Dataflow.
- Weitere Informationen zu BigQuery ML
- Weitere Informationen zur Zuverlässigkeit von BigQuery finden Sie im Leitfaden Zuverlässigkeit von BigQuery.
- Informationen zum Speichern von Daten in der Schnellstartlösung „Data Warehouse mit BigQuery“
- Sehen Sie sich die Liste der Vision API-Features an.
- ML-Vision-Analyselösung mit Dataflow und der Vision API bereitstellen
- Eine Übersicht über Architekturprinzipien und Empfehlungen, die speziell für KI- und ML-Arbeitslasten in Google Cloudgelten, finden Sie im Well-Architected Framework unter KI- und ML-Perspektive.
- 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