Les personnes qui fabriquent TinEye ont un produit appelé PixMatch qui peut rechercher des collections individuelles. Ce n'est pas implémenté comme une application de bureau, c'est une API basée sur un serveur. Et il semble que son prix soit destiné à une utilisation sérieuse en entreprise, et non aux particuliers. C'est donc là , mais pas vraiment une réponse.
Mais une entreprise concurrente a quelque chose pour le bureau - Imense Desktop Similar Image Search , qui fonctionne sur Apple Mac OS ou Microsoft Windows avec Adobe Bridge CS4 . Il est gratuit pour les collections jusqu'à 4000 et semble à un prix raisonnable au-dessus de cela.
Il y a, en fait, une tonne de choses, une fois que j'ai trouvé quoi rechercher: la récupération d'images basée sur le contenu . Il y a en fait beaucoup de travail dans ce domaine, et une tonne d'outils open source et fermés . La plupart d'entre elles sont axées sur le côté grande entreprise / université, et sont dans divers états d'achèvement et de polissage.
Parmi ceux-ci, je pense que imgSeek est le plus intéressant pour le boîtier de bureau. Ceci est basé sur Python / QT et devrait donc en théorie fonctionner sur à peu près n'importe quelle plate-forme, mais se concentre sur Linux. Il fait des comparaisons basées sur des métadonnées (date, heure, etc.), des caractéristiques simples comme la luminosité ou la couleur moyenne, ou par une estimation sophistiquée de similarité basée sur des ondelettes . C'est probablement exagéré pour trouver la même image exacte dans une taille différente avec une compression différente, mais cela devrait très bien fonctionner car c'est fondamentalement le cas le plus simple possible. Il trouvera également des correspondances proches, comme ceci:
Tout cela peut être trop de travail pour ce problème ponctuel spécifique. Comment sont stockées vos photos non organisées? Même si leurs noms de fichiers ne sont pas utiles, les métadonnées EXIF devraient toujours être bonnes. Une approche simple consiste à les importer dans un programme qui peut examiner ces données et les rechercher ou les trier par elles. Ou, vous pouvez utiliser un programme comme jhead pour les renommer tous afin qu'ils aient des noms basés sur la date. (Peut-être les deux.)