AI-gebaseerde databasebeeldclassificatie met Altova MapForce
Een van de meest voorkomende voorbeelden van kunstmatige intelligentie in ons dagelijks leven is gezichtsherkenning. Gezichtsherkenning is het proces waarbij een persoon wordt geïdentificeerd of geverifieerd op basis van zijn of haar gezicht. Gezichtsherkenning wordt gebruikt in veel toepassingen, zoals het ontgrendelen van onze telefoons met FaceID, het taggen van onze vrienden op sociale mediaplatforms zoals Facebook, en het inchecken op luchthavens of hotels met biometrische scanners. Gezichtsherkenning kan ons leven gemakkelijker en veiliger maken, maar het kan ook vragen oproepen met betrekking tot privacy en ethiek. Bijvoorbeeld, hoe kunnen we ervoor zorgen dat onze gezichtsgegevens niet worden misbruikt of gestolen door hackers of kwaadwillende partijen? Hoe kunnen we voorkomen dat gezichtsherkenning wordt gebruikt voor surveillance of discriminatie? Hoe kunnen we garanderen dat gezichtsherkenning nauwkeurig en eerlijk is, en geen vooroordelen of fouten bevat?
De bovenstaande alinea is gegenereerd door ChatGPT als reactie op mijn verzoek om de voordelen en risico's van kunstmatige intelligentie te beschrijven, en daarbij een concreet voorbeeld te geven. Het is interessant dat ChatGPT voor FaceID heeft gekozen als voorbeeld, aangezien FaceID slechts één variant is van beeldanalyse, en AI-gestuurde beeldclassificatie het potentieel heeft om veel praktische taken te automatiseren.
Een veelvoorkomend gebruiksscenario is een productcatalogus, waarin een bedrijf productinformatie beheert die afkomstig is van verschillende fabrikanten. Een product dat in die database wordt opgeslagen, kan een naam hebben die niet noodzakelijkerwijs een precieze beschrijving van het artikel bevat. Zo is "wellington" een laars, "fedora" een hoed, een "monyke" is een fiets, en een "gele watermeloen-glansnaaldvis" is een kunstaas. We kunnen gebruikmaken van AI-gestuurde beeldclassificatie met behulp van de Microsoft Azure Cognitive Services Computer Vision API om dit probleem aan te pakken. De Computer Vision Service neemt de beeldgegevens of een URL als input en retourneert informatie over de inhoud. Een van de services genereert beeldclassificatietags op basis van een trainingsset van herkenbare objecten, levende wezens, landschappen en acties waarop het Azure AI-systeem is getraind. Deze tags stellen ons in staat om de producten in de database dienovereenkomstig te categoriseren en kunnen zelfs overeenkomen met zoektermen die een gebruiker zou kunnen invoeren om producten in de catalogus te vinden.

We kunnen een AI-gebaseerde datamapping creëren met behulp van Altova MapForce om productafbeeldingen naar de Computer Vision AI te sturen via de web service API. Altova MapForce is een bekroonde, grafische tool voor datamapping, geschikt voor elke vorm van dataomzetting en -integratie. De Computer Vision API gebruikt kunstmatige intelligentie om elke afbeelding te analyseren en een lijst met tags te retourneren. MapForce ondersteunt web services direct binnen de mapping, en de tags kunnen vervolgens worden ingevoegd in een specifiek veld in de database voor elk product, eventueel na tussenliggende verwerking of via een gekoppelde datamappingfunctie.
Deze AI-gebaseerde datamapping kan de generatie en toevoeging van door AI gegenereerde tags voor productcatalogi volledig automatiseren en schaalbaar maken. De door de AI gegenereerde tags worden geleverd met een betrouwbaarheidsscore, waardoor het eenvoudig is om een drempelwaarde in de mapping in te stellen, zodat alleen tags met een voldoende hoge betrouwbaarheid worden gebruikt.
We zijn begonnen met een kleine voorbeelddatabase van veelgebruikte producten voor recreatie in de open lucht en hebben Altova DatabaseSpy gebruikt om een veld toe te voegen aan de tabel met producten voor AI-tags. DatabaseSpy maakt verbinding met alle belangrijke databases en vereenvoudigt het bewerken van SQL, het ontwerpen van de database structuur, het bewerken van de inhoud en het converteren van databases, en dat voor een fractie van de kosten van oplossingen die zich richten op slechts één database. Hieronder een voorbeeld van een DatabaseSpy-queryresultaatvenster, dat de database-inhoud en het nieuwe, lege veld weergeeft.

Hieronder, in willekeurige volgorde, ziet u kleine voorbeelden van de productafbeeldingen:

We hebben ook DatabaseSpy gebruikt om een eenvoudige SQL-query te valideren, waarmee we alleen de ID (die de primaire sleutel van de tabel is) en de bijbehorende bestandsnaam van de afbeelding konden ophalen.

De SQL-query is de eerste invoer voor de AI-gebaseerde datamapping van MapForce, en bestaat uit drie hoofdcomponenten: het resultaat van de query, een verzoek aan de Azure Image Analysis API, en een SQL-script om de antwoorden van de API terug in de database op te slaan.

Laten we de aanvraag die we naar de API van de kunstmatige intelligentie sturen, eens nader bekijken:
Het resultaat van een SQL-query als invoerbron voor data-mapping

De "Select"-query genereert een tabel met gegevens, in feite een lijst van sleutelnummers en de bijbehorende bestandsnamen van afbeeldingen. De API accepteert echter alleen verzoeken voor één afbeelding tegelijk. Door het ID uit de query te koppelen aan het invoerveld bovenaan de API-component, genereren we een nieuw API-verzoek voor elk ID dat wordt geretourneerd, waarbij we door elke afbeelding in de lijst lopen. De andere verbindingslijn die vanaf het ID vertrekt en zich bevindt rechtsboven, zal later worden gebruikt om een SQL-update script te maken.
De ontwerper van de database-tabel heeft ervoor gekozen om naar de productafbeeldingen te verwijzen via bestandsnamen, in plaats van de binaire afbeeldingen als BLOB-objecten in de database op te slaan. De API voor kunstmatige intelligentie voor beeldanalyse kan ofwel ruwe beeldgegevens accepteren, of een URL naar een publiekelijk toegankelijke afbeelding. Daarom kunnen we eenvoudig de URL van de afbeelding aan de API doorgeven in ons verzoek. De functie "concat" die hierboven in het midden staat, voegt het pad toe om elke complete URL te construeren.
Het uitvoeren van het verzoek aan de AI-webdienst
Het centrale deel van de datamapping, gebaseerd op kunstmatige intelligentie, toont de web service functie die de API voor beeldanalyse met kunstmatige intelligentie aanroept, en de verdere verwerking van de resultaten die worden teruggegeven:

Let op het envelop-icoon met de tekst "Body" aan zowel de "Verzoek"- als de "Antwoord"-kant van de web service functie. De API vereist een JSON-object als het "Body"-gedeelte van het verzoek en specificeert dat het antwoord een JSON-document zal zijn. De blauwe en rode knoppen naast de "Body"-icoontjes openen een dialoogvenster waarmee u de structuurdefinities voor het verzoek en het antwoord kunt invoeren.

De reactie van de API voor kunstmatige intelligentie moet verder worden verwerkt. De tags worden geretourneerd als lijsten van JSON-objecten, en elke tag wordt vergezeld door een getal dat de nauwkeurigheid weergeeft als een percentage. Hieronder is een voorbeeld te zien. Dit is de reactie van de AI in het originele JSON-formaat voor de afbeelding van de paraplu:

De hoofdfilter selecteert de antwoorden en accepteert alleen tags met een betrouwbaarheidsniveau van 88 procent of hoger. Vervolgens combineert de functie voor het samenvoegen van strings de tags tot een string met komma's ertussen. Let op: de tag "regen" toont hierboven een betrouwbaarheidsniveau van 42%.
En hier is de tekst die we willen toepassen op het hoofdproduct in de database, nadat we alleen de gewenste tags hebben geselecteerd:

Het genereren van een SQL-update op basis van de antwoorden van de AI
Het rechterdeel van de AI-gebaseerde datamapping ontvangt elk verwerkt resultaat, correleert dit resultaat met de juiste database-ID en koppelt de reeks tags aan het veld "ai-tags" in de tabel "cat-products" van de database.

Analyse van de resultaten van de data-mapping op basis van kunstmatige intelligentie
De knop "Voorbeeldresultaat" onder het hoofdvenster van MapForce stelt ons in staat om een voorbeeldresultaat te bekijken: deze voert de volledige datatransformatie uit, beginnend met de oorspronkelijke selectievraag, voert de API-aanvragen uit, verwerkt de resultaten van de kunstmatige intelligentie en genereert vervolgens SQL-update statements, waardoor een compleet SQL-updatescript wordt gegenereerd

We kunnen de optie "SQL-script uitvoeren" in het hoofdmenu van MapForce gebruiken om het script uit te voeren en de database-updates interactief toe te passen. Of, we kunnen deze mapping nu implementeren op een MapForce Server-instantie in ons netwerk, waar het op een geautomatiseerde manier kan worden uitgevoerd als onderdeel van een workflow voor het importeren van nieuwe producten in de catalogus. Met FlowForce Server kunnen we triggers definiëren die automatisch de binnenkomende data verwerken, deze valideren, vervolgens de AI-gebaseerde beeldtagging uitvoeren en uiteindelijk de data in de productiedatabase plaatsen.
Voor dit voorbeeld hebben we bij het gebruik van de Microsoft Azure Cognitive Services Computer Vision API gebruik gemaakt van het standaard, vooraf getrainde visiemodel van Microsoft. Een aangepast visiemodel zou de resultaten van de tag-herkenning kunnen verfijnen voor specifieke toepassingen, maar dat valt buiten de scope van dit blogartikel.
Klik hier voor meer informatie over de mogelijkheden voor data-mapping en -conversie tussen verschillende formaten die beschikbaar zijn in MapForce, of klik hier om te downloaden een gratis, volledig functionele proefversie van 30 dagen, inclusief helpbestanden, tutorials en veel voorbeelden van data-mapping.