Azure AI Gesichtserkennung (Teil 3)
Azure AI Computer Vision, Gesichtserkennungs-API und Custom Vision
Wir haben uns bereits allgemein mit der Bilderkennung im Rahmen der Azure KI-Services befasst und fĂŒr mehr Ăbersicht im Portfolio der Azure-KI-Services gesorgt. Dieser Artikel vertieft das Thema maschinelles Sehen mit Azure AI Vision auf die beteiligten Algorithmen fĂŒr das Feature Gesichtserkennung. FĂŒr den optimalen Einstieg empfehlen wir dir unsere Azure KI Schulungen.
Passende Schulungen
AI-3004 – Erstellen von Lösungen fĂŒr maschinelles Sehen mit Azure KI Vision
AI-900 – Microsoft Azure AI Fundamentals (AI-900T00)
AI-900 – Microsoft Azure AI Fundamentals (AI-900T00): EinfĂŒhrung in kĂŒnstliche Intelligenz (AI) und Grundlagen von AI in Azure
Azure AI Gesichtserkennung – das solltest du kennen
Wie schon im einfĂŒhrenden Artikel erlĂ€utert, umfasst das KI-Thema sowohl mathematisch wissenschaftliche Aspekte (Date Science), als auch, z. B. aus Sicht des Entwicklers, Erfahrung in der Modellierung von kĂŒnstlicher Intelligenz in Software, sowie aus Perspektive des Azure-Administrators Kenntnisse ĂŒber das Portfolio der Azure-KI-Dienste einschlieĂlich der verfĂŒgbaren Werkzeuge wie z. B. dem Azure VisionStudio oder der von Azure bereitgestellten API. Möchtest du als Unternehmen entsprechende Services in deine Produkte integrieren mĂŒssen Entwickler, Datenwissenschaftler und Azure-Spezialisten zusammenarbeiten. In diesem Beitrag versetzen wir uns zwar in die Perspektive des Entwicklers, nutzen aber zunĂ€chst das VisionStudio, um die Arbeitsweise und LeistungsfĂ€higkeit der von Microsoft bereitgestellten, vortrainierten Modelle zur Gesichtserkennung auszuprobieren.
Bildmanipulation versus maschinelles Sehen
Um zu verstehen, wie Bilderkennung und Analyse mit Hilfe KI-gestĂŒtzter Algorithmen funktionieren sei an ein paar Grundlagen der digitalen Bildverarbeitung erinnert. FĂŒr Computer ist ein Bild nichts anderes als ein numerisches Pixel-Array, wobei jedes Pixel Werte zwischen 0 (schwarz) und 255 (weiĂ) annehmen kann. Dabei definiert ein zweidimensionales Array praktisch ein Graustufenbild. Farbbilder dagegen sind multidimensional und bestehen aus drei, als âKanĂ€leâ bezeichnete Ebenen, welche dann rote, grĂŒne und blaue (RGB) Farbtöne darstellen. Zu ĂŒblichen Verfahren des AusfĂŒhrens von Bildverarbeitungsaufgaben gehört das Anwenden von Filtern auf ein solches Array. Dadurch werden die Pixelwerte des Bildes geĂ€ndert, um einen visuellen Effekt zu erzeugen. So ein Filter definiert sich dabei durch ein oder mehrere Arrays von Pixelwerten, auch als âN x N-Filterkerneâ bezeichnet, die ĂŒber das Ausgangsbild gefaltet werden.
Im Verlauf dieses âFaltâ-Prozesses wird je nach Art des Filters z. B. eine gewichtete Summe fĂŒr jeden NxN-Abschnitt berechnet und das Ergebnis einem neuen Bild zugeordnet.
Ein solcher Prozess wird dann so oft wiederholt, bis der Filter ĂŒber das gesamte Bild hinweg âzusammengedrehtâ (gefaltet) ist. Beim Berechnen des neuen Werte-Arrays könnten sich durchaus einige der Werte auĂerhalb des Wertebereichs von 0 bis 255 Pixeln befinden und werden daher automatisch angepasst. Filter, die sich wie beschrieben ĂŒber das gesamte Bild ausdehnen heiĂen in der digitalen Bildmanipulation auch âkonvolutionale Filterâ. Ein bekannter Filtertyp dieser Kategorien z. B. zum Betonen von Kanten ist beispielsweise der âLaplace-Filterâ. Andere Filter-Arten sind beispielsweise geeignet zum SchĂ€rfen, Weichzeichnen oder Inversiren von Farben.
Zwar ist die Anwendbarkeit von Effekten auf Bilder in der Bildverarbeitung an sich nĂŒtzlich, beim maschinellen Sehen geht es jedoch mehr darum, Bedeutungen zu erkennen, um Erkenntnisse aus Bilderinhalten zu gewinnen. Dazu bedarf es wiederrum des Einsatzes von Machine-Learning-Modellen, welche auf Basis groĂer Mengen vorhandener Bilder dazu trainiert wurden, bestimmte âMerkmaleâ zu erkennen. Ein sehr hĂ€ufig anzutreffender Typ neuronaler Netze, der z. B. bei der Bildklassifizierung zum Einsatz kommt, ist ein so genanntes konvolutionales neuronales Netzwerk (Convolutional Neural Network = CNN).
Passende Schulungen
AI-102 – Designing and Implementing a Microsoft Azure AI Solution (AI-102T00)
Konvolutionale neuronale Netzwerke (CNN)
CNNs nutzen zunĂ€chst Filter, die numerische Merkmalszuordnungen aus Bildern extrahieren. Erst danach werden die Merkmalswerte in ein Deep Learning-Modell eingespielt, welches dann Vorhersagen fĂŒr Bezeichnungen generiert. Geht es beispielsweise um eine Bildklassifizierung, könnte die Bezeichnung das dominierende Thema des Bildes sein (was zeigt das Bild?). Im Verlauf des Trainingsprozesses eines CNN werden zuerst verschiedene Filterkerne unter Zuhilfenahme zufĂ€llig generierter Gewichtungswerte definiert. Mit Fortschreiten des Trainingsprozesses werden die Modellvorhersagen anhand bekannter Bezeichnungswerte ausgewertet und damit die Filtergewichte angepasst, was die Genauigkeit verbessert.
Das fertig trainierte Bildklassifizierungsmodell verwendet die Filtergewichte, die am besten Merkmale zur Identifizierung verschiedener Arten des zu klassifizierenden Objektstyps extrahieren können. Der Begriff âConvolutionâ im CNN bezieht sich auf die mathematische Funktion der Faltung. Dabei handelt es sich um eine spezielle Art von linearer Operation, bei der zwei Funktionen multipliziert werden, um eine dritte Funktion zu erzeugen. Diese beschreibt, wie die Form einer Funktion durch die andere modifiziert wird. In einfachen Worten: Zwei Bilder, die als Matrizen dargestellt werden können, werden multipliziert, um eine Ausgabe zu erzeugen, die zur Extraktion von Merkmalen aus dem Bild verwendet wird.
Transformer
Seit vielen Jahren schon bilden solche CNN das Fundament fĂŒr viele Lösungen fĂŒr maschinelles Sehen und werden in diesem Zusammenhang oft zur Bildklassifizierung eingesetzt, aber auch fĂŒr komplexere Modelle fĂŒr maschinelles Sehen etwa zur Objekterkennung. Allerdings hat sich in anderen KI-Disziplinen der linguistischen Datenverarbeitung (Natural Language Processing, NLP) eine andere Art neuronaler Netzarchitektur durchgesetzt, die allgemein als âTransformerâ oder âTransformatorâ bezeichnet wird. Transformer erlauben die Entwicklung anspruchsvoller Modelle fĂŒr Sprache. Transformer basieren auf der Verarbeitung riesiger Datenmengen in Form codierter Sprach-Token, welche entweder einzelne Wörter oder AusdrĂŒcke darstellen und als vektorbasierte Einbettungen (Arrays numerischer Werte) dargestellt werden. Jede Einbettung kann man sich quasi als Darstellung einer Reihe von Dimensionen vorstellen, von denen jede ein semantisches Attribut des Tokens darstellen. Dabei erstellen die Entwickler solcher Modelle Einbettungen derart, dass Token, die hĂ€ufig im selben Kontext verwendet werden, dimensional ânĂ€herâ beieinander liegen, weil semantisch Ă€hnlich Token an Ă€hnlichen Positionen codiert sind. So ein semantisches Sprachmodell ermöglicht es, anspruchsvolle NLP-Lösungen fĂŒr Textanalyse, Ăbersetzung, Sprachgenerierung und andere Aufgaben zu erstellen.
Da sich Transformer als sehr effizient beim Erstellen von Sprachmodellen erwiesen haben, kam in der KI-Forschung die Idee auf, den gleichen Ansatz fĂŒr Bilddaten zu nutzen, was im Ergebnis zur Entwicklung multimodalen Modelle fĂŒhrte, bei denen das Modell mit einem groĂen Volumen von beschrifteten Bildern trainiert wird, allerdings ohne feste Bezeichnungen. Ein Bild-Encoder extrahiert dann auf Basis von Pixelwerten Merkmale aus Bildern und kombiniert sie mit Texteinbettungen, welche jedoch von einem Sprach-Encoder erstellt wurden.
Das allgemeine Modell kapselt dann Beziehungen zwischen Token-Einbettungen in natĂŒrlicher Sprache und Bildmerkmalen. Das https://azure.microsoft.com/en-us/blog/announcing-a-renaissance-in-computer-vision-ai-with-microsofts-florence-foundation-model/ Florence-Modell vom Microsoft ist ein solches Modell. Es ist seit MĂ€rz 2023 verfĂŒgbar.
Lasst uns nun einige Modelle zum Analysieren von Bildern mit dem Azure KI Vision ausprobieren. Azure AI Vision unterstĂŒtzt mehrere Funktionen zur Bildanalyse, darunter das Extrahieren von Text aus Bildern mittels Texterkennung (OCR), das Generieren von Untertiteln und Beschreibungen anhand des erkannten Inhaltes von Bildern, Erkennung von Tausenden gĂ€ngiger Objekte in Bildern oder das Markieren visueller Funktionen in Bildern.
Wie schon bei den vorhergehenden Beispielen kannst du dazu wieder wahlweise eine Azure-Ressource von Typ âAzure KI Visionâ oder âAzure KI Servicesâ erstellen und mit dem Vision Studio verknĂŒpfen:
Navigiere im Vision Studio zum Tab âImage analysisâ. Hier findest du zahlreiche Modelle und Beispiele.
So kannst du z. B. mit dem Modell âAdd dense caption to imageâ Bildunterschriften auf Basis des erkannten Bildes generieren lassen. Achtung: Dieses Modell ist derzeit nur in einigen Regionen verfĂŒgbar, aber nicht in Deutschland.
Probiere es mit einem der Beispielbilder aus: Das Modell liefert dir unter âDetected attributesâ eine Reihe von VorschlĂ€gen, jeder passend zu einem der links identifizierten Bereiche, die jeweils durch ein Rechteck gekennzeichnet sind: Markierst du rechts eines der Attribute wird der zugehörige Bereich links orange hervorgehoben.
Ebenfalls interessant ist das Modell âExtract text from imageâ im Tab âOptical character recognitionâ. Auch hier testen wir eines der mitgelieferten Beispiele:
Navigiere nun nach unten zu âNext stepsâ. Hier hast du beispielsweise wieder die Möglichkeit, das SDK auszuprobieren; Endpunkt und SchlĂŒssel werden hier passenderweise gleich angezeigt.
Kontakt
â*â zeigt erforderliche Felder an