KI-basierte Bildklassifizierung für Datenbanken mit Altova MapForce

Eine der häufigsten Anwendungen von künstlicher Intelligenz im Alltag ist die Gesichtserkennung. Die Gesichtserkennung ist ein Verfahren zur Identifizierung oder Überprüfung der Identität einer Person anhand ihres Gesichts. Sie wird in vielen Bereichen eingesetzt, beispielsweise zum Entsperren unserer Smartphones mit FaceID, zum Markieren von Freunden auf Social-Media-Plattformen wie Facebook und zum Check-in an Flughäfen oder Hotels mit biometrischen Scannern. Die Gesichtserkennung kann unser Leben komfortabler und sicherer machen, wirft aber auch Fragen bezüglich des Datenschutzes und ethischer Aspekte auf. Zum Beispiel: Wie können wir sicherstellen, dass unsere Gesichtsbilder nicht missbraucht oder von Hackern oder böswilligen Akteuren gestohlen werden? Wie können wir verhindern, dass die Gesichtserkennung für Überwachung oder Diskriminierung eingesetzt wird? Wie können wir sicherstellen, dass die Gesichtserkennung präzise und fair ist und keine Vorurteile oder Fehler aufweist?

Der obige Absatz wurde von ChatGPT generiert, nachdem ich darum gebeten hatte, die Vorteile und Risiken der künstlichen Intelligenz zu beschreiben und ein reales Beispiel anzuführen. Es ist interessant, dass ChatGPT FaceID als Beispiel gewählt hat, da FaceID lediglich eine Variante der Bildanalyse ist und KI-gestützte Bildklassifizierung das Potenzial hat, viele reale Aufgaben zu automatisieren.

Ein häufiger Anwendungsfall ist ein Produktkatalog, in dem ein Unternehmen Produktinformationen verwaltet, die von vielen verschiedenen Herstellern stammen. Ein in dieser Datenbank gespeichertes Produkt kann einen Namen haben, der nicht unbedingt eine präzise Beschreibung des Artikels enthält. Zum Beispiel ist "Wellington" ein Stiefel, "Fedora" ein Hut, ein "Mongoose" ist ein Fahrrad und ein "gelber, schimmernder Nadelbarsch" ist ein Köder für das Angeln. Wir können künstliche Intelligenz nutzen, um dieses Problem zu lösen, und zwar mithilfe der Microsoft Azure Cognitive Services Computer Vision API für die Bilderkennung. Der Computer Vision Service nimmt Bilddaten oder eine URL als Eingabe und gibt Informationen über den Inhalt zurück. Ein Dienst generiert Bilderkennungs-Tags basierend auf einem Trainingsdatensatz erkennbarer Objekte, Lebewesen, Landschaften und Aktionen, mit denen das Azure AI trainiert wurde. Diese Tags ermöglichen es uns, die Produkte in der Datenbank entsprechend zu kategorisieren, und können sogar Suchbegriffen entsprechen, die ein Benutzer verwenden könnte, um Produkte im Katalog zu finden.

Wir können eine KI-basierte Datenzuordnung mit Altova MapForce erstellen, um Produktbilder an die Computer Vision KI über deren Web-Service-API zu senden. Altova MapForce ist ein preisgekröntes, grafisches Werkzeug zur Datenzuordnung, das für jede Art von Datenkonvertierung und -integration geeignet ist. Die Computer Vision API verwendet künstliche Intelligenz, um jedes Bild zu analysieren und eine Liste von Schlagwörtern zurückzugeben. MapForce unterstützt Web-Services direkt innerhalb der Zuordnung, und es können dann Zwischenergebnisse verarbeitet oder Datenzuordnungen verkettet werden, um die Schlagwörter in ein spezielles Feld in der Datenbank für jedes Produkt einzufügen.

Diese KI-basierte Datenzuordnung ermöglicht die automatisierte Generierung und Einfügung von KI-generierten Tags für Produktkataloge in vollständig skalierbarer Weise. Die von der KI generierten Tags werden mit einem Konfidenzwert versehen, was es einfach macht, in der Zuordnung einen Schwellenwert festzulegen, um nur Tags mit einem ausreichend hohen Konfidenzwert zu verwenden.

Wir begannen mit einer kleinen Datenbank mit gängigen Produkten für Freizeitaktivitäten im Freien und verwendeten Altova DatabaseSpy, um der Tabelle der Produkte ein Feld für KI-Tags hinzuzufügen. DatabaseSpy verbindet sich mit allen wichtigen Datenbanken und erleichtert die Bearbeitung von SQL-Abfragen, die Gestaltung der Datenbankstruktur, die Bearbeitung von Inhalten und die Konvertierung von Datenbanken – und das zu einem Bruchteil der Kosten von Lösungen, die sich auf eine einzelne Datenbank beschränken. Hier ist ein Beispiel für ein Abfrageergebnisfenster von DatabaseSpy, das den Datenbankinhalt und das neue, leere Feld zeigt.

Und hier sind, in zufälliger Reihenfolge, kleine Vorschaubilder der Beispielproduktbilder:

Wir haben auch DatabaseSpy verwendet, um eine einfache SQL-Abfrage zu überprüfen, die lediglich die ID (den Primärschlüssel der Tabelle) und den entsprechenden Dateinamen des Bildes abruft.

Die SQL-Abfrage ist die erste Eingabe für die KI-basierte Datenzuordnung in MapForce und besteht aus drei Hauptkomponenten: dem Abfrageergebnis, einer Anfrage an die Azure Image Analysis API und einem SQL-Skript, um die Antworten der API wieder in die Datenbank einzufügen.

Schauen wir uns die Anfrage an die künstlichen Intelligenz-Schnittstelle (API) genauer an:

SQL-Abfrageergebnis als Eingabequelle für die Datenzuordnung

Die SELECT-Abfrage generiert eine Tabelle mit Daten, im Wesentlichen eine Liste von Schlüsselnummern und den entsprechenden Dateinamen der Bilder. Die API akzeptiert jedoch nur Anfragen für ein einzelnes Bild gleichzeitig. Durch die Zuordnung der ID aus der Abfrage zum Bereich oben in der API-Komponente generieren wir für jede zurückgegebene ID einen neuen API-Aufruf und durchlaufen so jedes Bild in der Liste. Die andere Verbindungslinie, die von der ID ausgeht und sich oben rechts befindet, wird später verwendet, um ein SQL-Update-Skript zu erstellen.

Der Entwickler der Datenbanktabelle hat sich entschieden, die Produktbilder über Dateinamen zu referenzieren, anstatt die Bilder als binäre Objekte (BLOBs) direkt in der Datenbank zu speichern. Die API für die künstliche Intelligenz zur Bildanalyse kann entweder rohe Bilddaten oder eine URL zu einem öffentlich zugänglichen Bild verarbeiten. Daher können wir der API in unserer Anfrage einfach die URL des Bildes übergeben. Die Funktion "concat" oben fügt den Pfad hinzu, um jede vollständige URL zu erstellen.

Ausführung der Anfrage an den KI-Webdienst

Der zentrale Teil der datenbezogenen Darstellung, die auf künstlicher Intelligenz basiert, zeigt die Web-Service-Funktion, die die API für die Bildanalyse durch künstlicher Intelligenz aufruft, sowie die weitere Verarbeitung der zurückgegebenen Ergebnisse

Beachten Sie das Umschlag-Symbol mit der Bezeichnung "Body" sowohl auf der Anfrage- als auch auf der Antwortseite der Webdienstanwendung. Die API benötigt ein JSON-Objekt als Anfrageinhalt ("Body") und spezifiziert, dass die Antwort ein JSON-Dokument sein wird. Die blauen und roten Schaltflächen neben den "Body"-Symbolen öffnen ein Dialogfenster, in dem die Strukturdefinitionen für die Anfrage und die Antwort bereitgestellt werden können.

Die Antwort der künstlichen Intelligenz-API muss noch weiterverarbeitet werden. Die Tags werden als Listen von JSON-Objekten zurückgegeben, und jedem Tag ist eine Zahl beigefügt, die das Maß für die Genauigkeit in Prozent angibt. Im Folgenden ist ein Beispiel dargestellt. Dies ist die Antwort der KI im ursprünglichen JSON-Format für das Bild des Regenschirms:

Die Hauptfunktion filtert die Ergebnisse, um nur Tags mit einem Konfidenzniveau von 88 Prozent oder höher zu akzeptieren. Anschließend kombiniert die Funktion "String-Verkettung" die Tags zu einer durch Kommas getrennten Zeichenkette. Beachten Sie, dass das Tag "Regen" oben ein Konfidenzniveau von 42 % anzeigt.

Und hier ist die Zeichenkette, die wir nach der Extraktion der gewünschten Tags auf das Hauptprodukt in der Datenbank anwenden möchten:

Generierung einer SQL-Update-Anweisung aus den KI-Antworten

Der rechte Teil des KI-basierten Datenmappings empfängt jedes verarbeitete Ergebnis, verknüpft dieses Ergebnis mit dem korrekten Datenbank-ID-Index und überträgt die Zeichenkette von Tags in das Feld "ai-tags" der Datenbanktabelle "cat-products".

Analyse der Ergebnisse der datengestützten Zuordnung, die auf künstlicher Intelligenz basiert

Der Button "Vorschau der Ausgabe" unterhalb des Hauptbereichs für die Datenzuordnung in MapForce ermöglicht es uns, ein Beispielergebnis anzuzeigen: Er führt die gesamte Datenzuordnung durch, beginnend mit der ursprünglichen SELECT-Abfrage, führt die API-Anfragen aus, verarbeitet die Ergebnisse der künstlichen Intelligenz und erstellt schließlich SQL-Update-Anweisungen, wodurch ein vollständiges SQL-Update-Skript generiert wird

Wir können die Option "SQL-Skript ausführen" im Hauptmenü von MapForce verwenden, um das Skript auszuführen und die Datenbankaktualisierungen interaktiv anzuwenden. Alternativ können wir diese Transformation nun auf einer MapForce Server-Instanz in unserem Netzwerk bereitstellen, wo sie automatisiert als Teil eines Workflows zur Integration neuer Produkte in den Katalog ausgeführt werden kann. Mit FlowForce Server könnten wir Trigger definieren, die automatisch die eingehenden Daten verarbeiten, diese validieren, dann die KI-basierte Bilderkennung durchführen und schließlich in die Produktionsdatenbank einspeisen.

Für dieses Beispiel haben wir bei unseren Anfragen an die Microsoft Azure Cognitive Services Computer Vision API das von Microsoft standardmäßig vorab trainierte Bilderkennungsmodell verwendet. Ein individuell trainiertes Modell könnte die Ergebnisse der Objekterkennung für spezielle Anwendungen verfeinern, aber das würde den Rahmen dieses Blogbeitrags sprengen.

Klicken Sie hier für weitere Informationen über die Funktionen zur Datenzuordnung und -konvertierung, die in MapForce verfügbar sind, oder klicken Sie hier, um eine kostenlose, voll funktionsfähige 30-Tage-Testversion herunterzuladen, die Hilfedateien, Tutorials und zahlreiche Beispiele für die Datenzuordnung enthält.