Bearbeiten

Bildklassifizierung in Azure

Azure Blob Storage
Maschinelles Sehen in Azure
Azure Cosmos DB
Azure Event Grid
Azure-Funktionen

Durch die Verwendung von Azure-Diensten wie Maschinelles Sehen-API und Azure Functions müssen Unternehmen keine einzelnen Server mehr verwalten und können gleichzeitig ihre Kosten senken und von der Erfahrung profitieren, über die Microsoft im Bereich der Bildverarbeitung mit Azure KI Services verfügt. In diesem Beispielszenario geht es speziell um einen Anwendungsfall mit Bildverarbeitung. Sollten Sie andere KI-Anforderungen haben, ziehen Sie ggf. die Verwendung der vollständigen Suite von Azure KI Services in Betracht.

Aufbau

Architektur für Bildklassifizierung

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

Dieses Szenario umfasst die Back-End-Komponenten einer webbasierten oder mobilen Anwendung. Die Daten durchlaufen das Szenario wie folgt:

  1. Das Hinzufügen neuer Dateien (Bilduploads) im Blobspeicher löst ein Ereignis in Azure Event Grid aus. Der Uploadprozess kann über das Web oder eine mobile Anwendung orchestriert werden. Alternativ können Bilder separat in den Azure Blob-Speicher hochgeladen werden.
  2. Event Grid sendet eine Benachrichtigung, die Azure-Funktionen auslöst.
  3. Azure Functions ruft die Azure-API für maschinelles Sehen auf, um das neu hochgeladene Bild zu analysieren. Maschinelles Sehen greift über die Blob-URL, die von Azure Functions analysiert wird, auf das Bild zu.
  4. Azure Functions speichert die Antwort der Maschinelles Sehen-API persistent in Azure Cosmos DB. Diese Antwort umfasst die Ergebnisse der Analyse, zusammen mit den Bildmetadaten.
  5. Die Ergebnisse können im Web oder im mobilen Front-End genutzt und wiedergegeben werden. Beachten Sie, dass dieser Ansatz die Ergebnisse der Klassifizierung abruft, aber nicht das hochgeladene Bild.

Komponenten

  • Maschinelles Sehen-API ist Teil der Azure KI Services-Suite und dient zum Abrufen von Informationen zu den einzelnen Bildern.
  • Azure Functions stellt die Back-End-API für die Webanwendung bereit. Des Weiteren bietet diese Plattform eine Ereignisverarbeitung für hochgeladene Bilder.
  • Azure Event Grid löst ein Ereignis aus, wenn ein neues Bild in Blob Storage hochgeladen wird. Das Bild wird dann mit Azure Functions verarbeitet.
  • Azure Blob Storage speichert alle in die Webanwendung hochgeladenen Bilddateien sowie alle statischen Dateien, die von der Webanwendung genutzt werden.
  • Azure Cosmos DB speichert Metadaten zu den einzelnen hochgeladenen Bildern sowie die Verarbeitungsergebnisse der Maschinelles Sehen-API.

Alternativen

  • Custom Vision Service. Die Maschinelles Sehen-API gibt eine Reihe taxonomiebasierter Kategorien zurück. Falls Sie Informationen verarbeiten müssen, die nicht von der Maschinelles Sehen-API zurückgegeben werden, ziehen Sie ggf. die Verwendung von Custom Vision Service in Betracht. Dieser Dienst ermöglicht die Erstellung benutzerdefinierter Bildklassifizierungen.
  • Cognitive Search (früher Azure Search). Wenn in Ihrem Anwendungsfall die Metadaten abgefragt werden müssen, um Bilder zu finden, die bestimmten Kriterien entsprechen, empfiehlt sich ggf. die Verwendung von Cognitive Search. Cognitive Search (momentan in der Vorschauphase) ermöglicht die nahtlose Integration dieses Workflows.
  • Logic Apps. Wenn Sie nicht in Echtzeit auf zu einem Blob hinzugefügte Dateien reagieren müssen, können Sie die Verwendung von Logic Apps in Betracht ziehen. Eine Logik-App zur Prüfung, ob eine Datei hinzugefügt wurde, kann durch den Serientrigger oder den Trigger „Gleitendes Fenster“ gestartet werden.

Szenariodetails

Dieses Szenario richtet sich an Unternehmen, die eine Bildverarbeitung benötigen.

Mögliche Anwendungsbereiche wären etwa die Klassifizierung von Bildern für eine Modewebsite, die Analyse von Text und Bildern für Versicherungsansprüche oder die Interpretation von Telemetriedaten aus Screenshots von Spielen. In der Vergangenheit mussten sich Unternehmen in der Regel ausführlich mit Machine Learning-Modellen vertraut machen, die Modelle trainieren und die Bilder schließlich durch ihren benutzerdefinierten Prozess schleusen, um die Daten aus den Bildern zu extrahieren.

Mögliche Anwendungsfälle

Diese Lösung eignet sich ideal für die Einzelhandels-, Spiel-, Finanz- und Versicherungsbranchen. Zu den weiteren relevanten Anwendungsfällen zählen:

  • Klassifizieren von Bildern auf einer Modewebsite Bildklassifizierung kann von Verkäufern beim Hochladen von Bildern von Produkten auf die Plattform zum Verkauf verwendet werden. Anschließend können sie das damit verbundene manuelle Tagging automatisieren. Die Kunden können auch über den visuellen Eindruck der Produkte suchen.

  • Klassifizieren von Telemetriedaten aus Screenshots von Spielen Die Klassifizierung von Videospielen aus Screenshots entwickelt sich zu einem relevanten Problem in den sozialen Medien, gekoppelt mit maschinellem Sehen. Wenn Twitch-Streamer beispielsweise unterschiedliche Spiele in Folge spielen, können sie manuell das Aktualisieren ihrer Streaminformationen überspringen. Die fehlende Aktualisieren von Streaminformationen könnte zu einer Fehlklassifizierung von Datenströmen in Benutzersuchen und somit dazu führen, dass potenzielle Zuschauer sowohl für die Inhaltsersteller als auch für die Streamingplattformen verloren gehen. Während der Einführung neuartiger Spiele könnte eine benutzerdefinierte Modellroute hilfreich sein, um die Funktion zum Erkennen von neuartigen Bildern aus diesen Spielen einzuführen.

  • Klassifizieren von Bildern für Versicherungsansprüche. Die Bildklassifizierung kann dazu beitragen, die Zeit und die Kosten der Anspruchsverarbeitung und -versicherung zu reduzieren. Sie könnte dabei helfen, Schäden durch Naturkatastrophen und Fahrzeugschäden zu analysieren und Wohn- und Gewerbeimmobilien zu identifizieren.

Überlegungen

Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Bedenken Sie die folgenden Punkte, wenn Sie diese Lösung implementieren:

Skalierbarkeit

Bei den Komponenten dieses Szenarios handelt es sich größtenteils um verwaltete Dienste mit automatischer Skalierung. Es gibt jedoch ein paar Ausnahmen: Die maximale Anzahl von Azure Functions-Instanzen ist auf 200 beschränkt. Sollten Ihre Skalierungsanforderungen über diesen Grenzwert hinausgehen, erwägen Sie die Verwendung mehrerer Regionen oder App-Pläne.

Sie können Azure Cosmos DB nur in Azure Cosmos DB for NoSQL automatisch skalieren. Wenn Sie vorhaben, andere APIs zu verwenden, lesen Sie die Anleitung zur Schätzung Ihrer Anforderungen unter Anforderungseinheiten. Machen Sie sich zur optimalen Nutzung der Skalierung in Azure Cosmos DB mit der Funktionsweise von Partitionsschlüsseln in Azure Cosmos DB vertraut.

Bei NoSQL-Datenbanken gehen Verfügbarkeit, Skalierbarkeit und Partitionierung häufig zulasten der Konsistenz (im Sinne des CAP-Theorems). In diesem Beispielszenario wird ein Schlüssel-Wert-Datenmodell verwendet, sodass die Transaktionskonsistenz meist vernachlässigt werden kann, da die meisten Vorgänge per Definition atomisch sind. Weitere Informationen zur Wahl des richtigen Datenspeichers finden Sie im Azure Architecture Center. Wenn für Ihre Implementierung eine hohe Konsistenz erforderlich ist, können Sie Ihre Konsistenzebene in Azure Cosmos DB wählen.

Allgemeine Informationen zur Entwicklung skalierbarer Lösungen finden Sie im Azure Architecture Center in der Prüfliste zur Leistungseffizienz.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

Verwaltete Identitäten für Azure-Ressourcen ermöglichen den Zugriff auf andere interne Ressourcen Ihres Kontos und werden Ihren Azure-Funktionen zugewiesen. Lassen Sie nur den Zugriff auf die erforderlichen Ressourcen in diesen Identitäten zu, um sicherzustellen, dass für Ihre Funktionen (und möglicherweise für Ihre Kunden) keine zusätzlichen Elemente verfügbar gemacht werden.

Allgemeine Informationen zum Entwerfen sicherer Lösungen finden Sie in der Dokumentation zur Azure-Sicherheit.

Resilienz

Da es sich bei allen Komponenten in diesem Szenario um verwaltete Komponenten handelt, ist deren Resilienz auf regionaler Ebene automatisch gewährleistet.

Allgemeine Informationen zur Entwicklung robuster Lösungen finden Sie unter Entwerfen robuster Anwendungen für Azure.

Kostenoptimierung

Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

Zur Ermittlung der Betriebskosten für dieses Szenario sind alle Dienste im Kostenrechner vorkonfiguriert. Wenn Sie wissen möchten, welche Kosten für Ihren spezifischen Anwendungsfall entstehen, passen Sie die entsprechenden Variablen an Ihren voraussichtlichen Datenverkehr an.

Auf der Grundlage des Datenverkehrs (und unter der Annahme, dass alle Bilder 100 KB groß sind) haben wir drei exemplarische Kostenprofile erstellt:

  • Klein: Dieses Preisbeispiel entspricht der Verarbeitung von < 5000 Bildern pro Monat.
  • Mittel: Dieses Preisbeispiel entspricht der Verarbeitung von 500.000 Bildern pro Monat.
  • Groß: Dieses Preisbeispiel entspricht der Verarbeitung von 50 Millionen Bildern pro Monat.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautoren:

Nächste Schritte

Produktdokumentation

Einen geführten Lernpfad finden Sie unter:

Informieren Sie sich vor dem Bereitstellen dieses Beispielszenarios in einer Produktionsumgebung über die empfohlenen Methoden zum Optimieren der Leistung und Zuverlässigkeit von Azure Functions.

KI-Anreicherung mit Bild- und natürlicher Sprachverarbeitung in Azure Cognitive Search