Classification d'images de bases de données basée sur l'intelligence artificielle avec Altova MapForce
L'un des exemples les plus courants de l'intelligence artificielle dans notre vie quotidienne est la reconnaissance faciale. La reconnaissance faciale est le processus d'identification ou de vérification de l'identité d'une personne en se basant sur son visage. Elle est utilisée dans de nombreuses applications, comme le déverrouillage de nos téléphones avec FaceID, l'identification de nos amis sur les plateformes de réseaux sociaux comme Facebook, et l'enregistrement aux aéroports ou aux hôtels grâce à des scanners biométriques. La reconnaissance faciale peut rendre notre vie plus pratique et plus sûre, mais elle soulève également certaines préoccupations en matière de confidentialité et d'éthique. Par exemple, comment pouvons-nous nous assurer que nos données faciales ne sont pas utilisées de manière abusive ou volées par des pirates informatiques ou des acteurs malveillants ? Comment pouvons-nous empêcher que la reconnaissance faciale ne soit utilisée à des fins de surveillance ou de discrimination ? Comment pouvons-nous garantir que la reconnaissance faciale est précise et équitable, et qu'elle ne comporte aucun biais ou erreur ?
Le paragraphe ci-dessus a été généré par ChatGPT en réponse à ma demande de décrire les avantages et les risques de l'intelligence artificielle, et d'inclure un exemple concret. Il est intéressant que ChatGPT ait choisi FaceID comme exemple, car FaceID n'est qu'une variante de l'analyse d'images, et l'analyse d'images basée sur l'IA offre un potentiel considérable pour automatiser de nombreuses tâches concrètes.
Un cas d'utilisation courant est celui d'un catalogue de produits, dans lequel une entreprise gère des informations sur les produits fournies par de nombreux fabricants différents. Un produit enregistré dans cette base de données peut avoir un nom qui ne contient pas nécessairement une description précise de l'article. Par exemple, "wellington" désigne une botte, "fedora" désigne un chapeau, "mongoose" désigne un vélo, et "yellow watermelon shiny needlefish" désigne une leurre de pêche. Nous pouvons utiliser la classification d'images basée sur l'IA, en utilisant l'API Computer Vision de Microsoft Azure Cognitive Services, pour résoudre ce problème. Le service Computer Vision prend en entrée les données de l'image ou l'URL et renvoie des informations sur le contenu. Un service génère des étiquettes de classification d'images en se basant sur un ensemble d'apprentissage composé d'objets reconnaissables, d'êtres vivants, de paysages et d'actions sur lesquels l'IA Azure a été entraînée. Ces étiquettes nous permettent de catégoriser les produits dans la base de données de manière appropriée, et peuvent même correspondre aux termes de recherche qu'un utilisateur pourrait saisir pour trouver des produits dans le catalogue.

Nous pouvons créer une cartographie de données basée sur l'intelligence artificielle en utilisant Altova MapForce pour envoyer des images de produits à l'IA de vision par ordinateur via son API de service web. Altova MapForce est un outil de cartographie de données graphique, primé, pour la conversion et l'intégration de données de n'importe quel format. L'API de vision par ordinateur utilise l'intelligence artificielle pour analyser chaque image et renvoie une liste de balises. MapForce prend en charge directement les services web au sein de la cartographie, et des fonctionnalités de traitement des résultats intermédiaires ou de cartographie de données en chaîne peuvent ensuite réintégrer les balises dans un champ dédié de la base de données pour chaque produit.
Ce système de cartographie de données basé sur l'IA peut automatiser la génération et l'insertion de balises générées par l'IA pour les catalogues de produits, de manière totalement évolutive. Les balises renvoyées par l'IA sont accompagnées d'un score de confiance, ce qui facilite la définition d'un seuil dans la cartographie pour n'utiliser que les balises ayant un niveau de confiance suffisamment élevé.
Nous avons commencé avec une petite base de données d'échantillons contenant des produits de loisirs de plein air courants, et nous avons utilisé Altova DatabaseSpy pour ajouter un champ à la table des produits, destiné aux balises d'intelligence artificielle. DatabaseSpy se connecte à toutes les principales bases de données, facilitant la modification de requêtes SQL, la conception de la structure de la base de données, la modification du contenu et la conversion de bases de données, le tout à une fraction du coût des solutions spécifiques à une seule base de données. Voici une fenêtre de résultats d'une requête DatabaseSpy, montrant le contenu de la base de données et le nouveau champ vide.

Voici, dans un ordre aléatoire, des miniatures des images de produits exemples :

Nous avons également utilisé DatabaseSpy pour valider une requête SQL simple, qui permettait de récupérer uniquement l'identifiant, qui est la clé primaire de la table, ainsi que le nom du fichier image correspondant.

La requête SQL constitue la première entrée pour la cartographie de données basée sur l'intelligence artificielle de MapForce, et elle comprend trois éléments principaux : le résultat de la requête, la demande adressée à l'API d'analyse d'images Azure, et un script SQL permettant de réintégrer les réponses de l'API dans la base de données.

Examinons plus en détail la requête adressée à l'API d'intelligence artificielle :
Résultat d'une requête SQL utilisé comme source de données pour une opération de mappage

La requête "Select" génère un tableau de données, qui est essentiellement une liste de numéros clés et des noms de fichiers image correspondants. Cependant, l'API n'accepte que les requêtes pour une seule image à la fois. En faisant correspondre l'identifiant issu de la requête à l'élément supérieur de l'API, nous générons un nouvel appel à l'API pour chaque identifiant renvoyé, en parcourant ainsi chaque image de la liste. L'autre connexion, partant de l'identifiant et se dirigeant vers l'image en haut à droite, sera utilisée ultérieurement pour créer un script de mise à jour SQL.
Le concepteur de la table de base de données a choisi de référencer les images des produits en utilisant les noms de fichiers plutôt que d'intégrer les images binaires en tant qu'objets BLOB dans la base de données. L'API d'analyse d'images par intelligence artificielle peut accepter soit les données d'image brutes, soit une URL pointant vers une image accessible publiquement. Par conséquent, nous pouvons simplement fournir l'URL de l'image à l'API dans notre requête. La fonction "concat" située en haut permet d'ajouter le chemin pour construire chaque URL complète.
Exécution de la requête du service web basé sur l'IA
La partie centrale du schéma de données basé sur l'intelligence artificielle illustre la fonction de service web qui appelle l'API d'analyse d'images par intelligence artificielle, ainsi que le traitement ultérieur des résultats renvoyés

Notez l'icône en forme d'enveloppe, étiquetée "Corps", présente des deux côtés (requête et réponse) de la fonction du service web. L'API requiert un objet JSON comme corps de la requête et spécifie que la réponse sera un document JSON. Les boutons bleus et rouges situés à côté des icônes "Corps" ouvrent une fenêtre de dialogue permettant de définir la structure de la requête et de la réponse.

La réponse de l'API d'intelligence artificielle nécessite un traitement supplémentaire. Les étiquettes sont renvoyées sous forme de listes d'objets JSON, et chaque étiquette est accompagnée d'un nombre qui représente le niveau de confiance en termes de précision, exprimé en pourcentage. Voici un exemple : il s'agit de la réponse de l'IA au format JSON original pour l'image du parapluie :

La fonction de filtrage avancée sélectionne les balises dont le niveau de confiance est de 88 % ou plus. Ensuite, la fonction de concaténation combine les balises en une chaîne de caractères séparée par des virgules. Notez que la balise "rain" (pluie) affiche un niveau de confiance de 42 %.
Voici la chaîne de caractères que nous souhaitons appliquer au produit principal dans la base de données, après avoir extrait uniquement les balises que nous voulons :

Générer une requête SQL de mise à jour à partir des réponses de l'IA
La partie droite du système de cartographie des données basé sur l'IA reçoit chaque résultat traité, le fait correspondre à l'identifiant de base de données approprié, et associe la chaîne de balises au champ "ai-tags" de la table de données "cat-products".

Analyse des résultats de la cartographie des données basée sur l'intelligence artificielle
Le bouton "Aperçu du résultat" situé sous le panneau de mappage principal de MapForce nous permet de visualiser un exemple de résultat : il exécute l'ensemble du processus de mappage des données, en commençant par la requête de sélection initiale, effectue les requêtes API, traite les résultats de l'intelligence artificielle, et génère finalement des instructions SQL de mise à jour, créant ainsi un script SQL de mise à jour complet

Nous pouvons utiliser l'option "Exécuter un script SQL" dans le menu principal de MapForce pour exécuter le script et appliquer les mises à jour de la base de données de manière interactive. Alternativement, nous pouvons maintenant déployer cette transformation vers une instance de MapForce Server sur notre réseau, où elle peut être exécutée de manière automatisée dans le cadre d'un processus d'intégration de nouveaux produits dans le catalogue. Grâce à FlowForce Server, nous pouvons définir des déclencheurs qui traitent automatiquement les données entrantes, les valident, puis effectuent l'étiquetage des images basé sur l'intelligence artificielle, et enfin les intègrent dans la base de données de production.
Dans cet exemple, les requêtes que nous avons envoyées à l'API Computer Vision des services cognitifs Microsoft Azure utilisaient le modèle de vision pré-entraîné par défaut de Microsoft. Un modèle de vision personnalisé pourrait affiner les résultats de l'identification pour des applications spécifiques, mais cela dépasse le cadre de cet article de blog.
Cliquez ici pour plus d'informations sur les fonctionnalités de mappage et de conversion de données disponibles dans MapForce, ou cliquez ici pour télécharger une version d'essai gratuite et entièrement fonctionnelle de 30 jours, comprenant les fichiers d'aide, des tutoriels et de nombreux exemples de mappage de données.