La recherche d'images peut revétir plusieurs formes : texte (requête) vers image, image vers image (similarité) ou image vers page web. Dans tous ces cas, des technologies existent aujourd'hui et sont appliquées, souvent avec un bonheur certain, par de nombreux moteurs de recherche. Sylvain Peyronnet, qui a créé le moteur de recherche d'images de Qwant, nous explique dans cette série d'articles ce qui se passe "sous la carrosserie du moteur" et les différents algorithmes utilisés, avec des explications les plus... imagées possible. Ce mois-ci, ce sont les technologies mises en place dans les moteurs permettant d'obtenir des images similaires qui sont étudiées en profondeur.

Par Sylvain Peyronnet


Le mois dernier j'ai évoqué ici-même le concept de moteur de recherche "images". Nous avons vu qu'il existe plusieurs définitions d'un tel moteur, selon les différents cas d'utilisation.

Au stade actuel de votre lecture, vous savez donc déjà que les moteurs qui sont en production actuellement sont principalement basés sur un mécanisme de recherche dans des textes associés aux images (meta données, texte entourant les images, tags divers et variés), mais qu'il existe aussi des moteurs image-images, c'est-à-dire des moteurs à qui l'on donne en entrée une image (par exemple un chat) et qui vont renvoyer en sortie d'autres images (des chats - pour poursuivre mon exemple). La figure 1 ci-dessous illustre ce mécanisme dans le cadre de l'outil TinEye, qui est principalement utilisé pour la recherche d'images dupliquées sur des sites tiers.


Fig. 1. Recherche d'image similaire à l'homme en VTT, l'outil trouve les duplications de l'image, et propose des images similaires chez un partenaire.

 

Cette recherche d'images par similarité à une autre image a énormément d'applications en dehors des moteurs de recherche. On a vu plus haut la recherche de copies d'une image, ce qui peut être pratique dans le cadre de la lutte contre le plagiat, mais il existe des applications bien plus importantes.

Nous passerons l'utilisation sécuritaire (recherche de personnes) pour passer à l'utilisation commerciale : la recherche de produits similaires. Explications : imaginez que vous soyez chez un ami pour l'apéro, et vous voyez un fauteuil qui vous plaît, avec une photo et une recherche d'images similaires, à vous tous les fauteuils similaires d'un grand e-commerçant. Si ce scénario d'utilisation vous intéresse, nous vous engageons à lire la référence [1], dans laquelle des ingénieur de Grid Dynamics expliquent comment ils ont réalisé un tel outil (spoiler : ils ont utilisé des réseaux de neurones convolutionnels et une recherche par plus proche voisin). La figure 2 est tiré de leur article : on y voit une recherche de robes similaires à une robe choisie par l'utilisateur.


Fig. 2. Recherche de produits par similarité d'images.

 

La question que nous allons nous poser maintenant, est la suivante : est-ce qu'on peut utiliser la brique de recherche textuelle pour les images et la recherche d'images similaires simultanément pour obtenir de meilleurs résultats sur un moteur de recherche d'images qui soit "full scale", c'est-à-dire à l'échelle du Web dans son intégralité ?

Mixer recherche d'images via le texte et via la similarité pour un meilleur résultat

La R&D pour arriver à une bonne qualité de résultats de la manière la plus simple possible doit être très pragmatique. Si on fait les comptes, à ce stade on sait déjà trouver des images qui ont été "bien décrites" via des données d'accompagnement et du texte périphérique, et on sait également trouver toutes les images qui ressemblent à une image choisie. Mais on ne sait pas faire un moteur qui indexe et renvoie des images de manière générique (même en l'absence de données textuelles).

La suite de cet article est réservée aux abonnés.

Sylvain Peyronnet, concepteur de l'outil d'analyse de backlinks Babbar.