Ces algorithmes sont généralement basés sur les empreintes digitales. L'empreinte digitale est une structure de données raisonnablement petite, qui ressemble à un long code de hachage. Cependant, les objectifs de la fonction d'empreinte digitale sont opposés à ceux de la fonction de hachage. Une bonne fonction de hachage doit générer des codes très différents pour des objets très similaires (mais pas égaux). La fonction d'empreinte digitale devrait, au contraire, générer la même empreinte digitale pour des images similaires.
Pour vous donner un exemple, voici une fonction d'empreinte digitale (pas particulièrement bonne) : redimensionnez l'image en carré de 32x32, normalisez et quantifiez les couleurs, en réduisant le nombre de couleurs à quelque chose comme 256. Vous obtenez alors une empreinte digitale de 1024 octets pour l'image. Conservez un tableau des empreintes => [liste des URL des images]. Lorsque vous avez besoin de rechercher des images similaires à une image donnée, il suffit de calculer sa valeur d'empreinte et de trouver la liste d'images correspondante. Facile.
Ce qui n'est pas facile : pour être utile en pratique, la fonction d'empreinte digitale doit être robuste face aux recadrages, aux transformations affines, aux changements de contraste, etc. La construction de bonnes fonctions d'empreintes digitales est un sujet de recherche distinct. Très souvent, elles sont réglées à la main et utilisent beaucoup d'heuristiques (c'est-à-dire qu'elles utilisent la connaissance du contenu typique d'une photo, du format de l'image / des données supplémentaires dans EXIF, etc.)
Une autre variante consiste à utiliser plus d'une fonction d'empreinte digitale, à essayer d'appliquer chacune d'entre elles et à combiner les résultats. En fait, c'est similaire à la recherche de textes similaires. Au lieu d'un "sac de mots", la recherche de similarité d'images utilise un "sac d'empreintes digitales" et détermine combien d'éléments d'un sac sont identiques à des éléments d'un autre sac. Comment rendre cette recherche efficace est un autre sujet.
Maintenant, en ce qui concerne les articles/papiers. Je n'ai pas pu trouver un bon article qui donnerait un aperçu des différentes méthodes. La plupart des articles publics que je connais traitent de l'amélioration spécifique de certaines méthodes. Je pourrais vous recommander de les consulter :
"Empreinte digitale du contenu à l'aide d'ondelettes" . Cet article traite de l'empreinte audio à l'aide d'ondelettes, mais la même méthode peut être adaptée à l'empreinte d'images.
REGROUPEMENT PAR PERMUTATION : CONCEPTION DE FONCTIONS DE HACHAGE INTELLIGENTES POUR LA RECHERCHE D'IMAGES ET DE SONS . Info sur les hachages sensibles à la localité .
Regroupement de fonctions pour la recherche d'images Web partiellement dupliquées à grande échelle . Un très bon article, qui traite de SIFT et du regroupement des fonctions pour plus d'efficacité. Il comporte également une bibliographie intéressante à la fin.