Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1139 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Recherche d'images similaires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recherche d'images similaires

n°1955737
leonhard
Posté le 07-01-2010 à 10:39:39  profilanswer
 

Bonjour (j'ai posté la même question dans une autre partie du forum, mais on m'a conseillé de venir ici...)
 
Pour m'amuser, je suis en train d'écrire un petit logiciel qui permet d'identifier des images identiques sous des format différents (par exemple GIF et JPEG). L'idée de ce logiciel serait à peu près la suivante:
 
1) scan d'un disque (ou d'une partie) pour retrouver toutes les images
2) Pour chaque image, calculer une sorte "d'invariant d'image" et mémoriser la valeur associée au nom de l'image.
3) Si deux ou plusieurs images ont un invariant proche, donner à l'utilisateur le nom de ces images pour qu'il en fasse ce qu'il veut
 
L'idée de l'invariant d'image c'est une fonction qui me donnerait des valeurs proches pour la même image qui serait mémorisée une fois en gif et une fois en jpeg (ou n'importe quelle paire de formats pas trop exotiques comme png, bmp etc). Je recherche donc des  fonctions mathématiques pour calculer ces invariants. En cherchant sur gogol on voit que certains proposent d'utiliser une transformation cosinus discrète (DCT) ou une transformation de Radon. Auriez-vous s.v.p. des références bibliographiques pour ce genre de moulinettes ? Connaissez-vous d'autres types d'invariants qui pourraient convenir ?  
 
Dans le même domaine, je recherche aussi des programmes open-source dont je pourrais m'inspirer (mon soft sera bien entendu aussi open-source). Il existe bien entendu des tonnes de programmes commerciaux pour faire ce genre de recherche, ou même des programmes gratuits, mais je n'en ai pas (encore) trouvé dont les sources sont disponibles et dont la licence permet l'examen et la modification de ces sources.
 
D'avance merci de votre aide

mood
Publicité
Posté le 07-01-2010 à 10:39:39  profilanswer
 

n°1956043
rufo
Pas me confondre avec Lycos!
Posté le 08-01-2010 à 10:43:11  profilanswer
 

Je pense que déjà, tu devrais passer par un format intermédiaire, le bmp, pour travailler sur les pixels (matrice lignesxcolonnes) et non directement sur les octets des différents formats de fichiers, histoire de comparer ce qui est comparable.
Ensuite, tu cherches des images strictement identiques (quasiment au pixel près) où y'a une tolérance? Prends-tu en compte les transformations qui auraient été éventuellement appliquées à l'image (rotation, homothétie...)?
 
Pour ma part, je ferais plutôt une ACP : http://fr.wikipedia.org/wiki/Analy [...] rincipales


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1956214
rengzehn
Posté le 08-01-2010 à 16:31:55  profilanswer
 

En terme de signature, ça doit être difficile. Je pense plutot à un calcul de coeff de corrélation (pour ceux qui se souviennent des décodeurs pirates de canal+, ils remettaient les lignes de l'image hertzienne dans l'ordre en calculant le coeff de co entre chacune)
 
1-tu redimensionnes les images en petit format avec toutes la meme dimension
2-tu passes en niveau de gris
3-puis en image pleine rectangulaire
4-tu calcules coeff de corrélations entre des lignes ou des colonnes des images.
 

n°1956221
rufo
Pas me confondre avec Lycos!
Posté le 08-01-2010 à 16:47:55  profilanswer
 

Pour info, l'ACP passe par une phase de calcul de corrélation entre les données analysées, ici les images. La suite de l'algo, c'est de faire une SVD. La SVD présente l'intérêt d'éliminer les données parasités, bruit et peut-être même les pbs dûs à des transformations (rotation...).
 
Je te dis ça parce que je l'ai mis en application pour des calculs de similitudes de documents (de taille variable). Dans ce contexte là, le pb des roation/homothétie, c'est les mots qui sont sous la forme conjuguée, pluriel... résolue via la lemnisation. ;)

Message cité 1 fois
Message édité par rufo le 08-01-2010 à 16:49:57

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1956483
leonhard
Posté le 10-01-2010 à 11:04:55  profilanswer
 

rengzehn a écrit :

En terme de signature, ça doit être difficile. Je pense plutot à un calcul de coeff de corrélation (pour ceux qui se souviennent des décodeurs pirates de canal+, ils remettaient les lignes de l'image hertzienne dans l'ordre en calculant le coeff de co entre chacune)
 
1-tu redimensionnes les images en petit format avec toutes la meme dimension


 
Oui c'est une idée, il faut juste trouver un format qui soit adapté à toutes les images. Pour l'instant (càd pour la version 0.1-alpha de mon programme) c'est déjà d'identifier la même image simplement codée sous des formats différents donc avec des valeurs de pixels légèrement différentes
 

rengzehn a écrit :


2-tu passes en niveau de gris


 
J'ai réfléchi à cette méthode, mais il me semblait (à tord ?) qu'il était difficile de trouver la bonne valeur de transformation (les 3 coefficients des couleurs RGB). Les différents sites web que j'ai visité donnent des valeurs légèrement différentes et j'ai un peu peur que ces différences conduisent à des images plus difficiles à identifier. C'est néanmoins une piste que je dois suivre.
 

rengzehn a écrit :


3-puis en image pleine rectangulaire
4-tu calcules coeff de corrélations entre des lignes ou des colonnes des images.


Ce sont justement les calculs de ce coefficient de corrélation qui me pose problème. Mais dans un autre message rufo suggère une piste à laquelle je n'avais pas pensé (version polie pour dire que je n'avais aucune idée de son existence).
 
Merci de ton aide, je garde tes conseils bien précieusement dans mon dossier.

n°1956484
leonhard
Posté le 10-01-2010 à 11:09:50  profilanswer
 

rufo a écrit :

Pour info, l'ACP passe par une phase de calcul de corrélation entre les données analysées, ici les images. La suite de l'algo, c'est de faire une SVD. La SVD présente l'intérêt d'éliminer les données parasités, bruit et peut-être même les pbs dûs à des transformations (rotation...).
 
Je te dis ça parce que je l'ai mis en application pour des calculs de similitudes de documents (de taille variable). Dans ce contexte là, le pb des roation/homothétie, c'est les mots qui sont sous la forme conjuguée, pluriel... résolue via la lemnisation. ;)


 
Voilà plein de choses que je ne connaissais pas. Je suppose que l'acronyme "SVD" signifie "singular value decomposition". Si c'est le cas j'avais vu cette méthode, mais je ne savais pas qu'on pouvait l'utiliser dans ce cadre.
 
En tout cas merci pour ces pistes !

n°1956801
rufo
Pas me confondre avec Lycos!
Posté le 11-01-2010 à 13:58:54  profilanswer
 

Regardes le § "Applications" de l'article sur l'ACP : http://fr.wikipedia.org/wiki/Analy [...] rincipales
Il parle justement de classification et de calcul de distance.
 
Pour te convaincre que la SVD (t'as bon pour la signification) fonctionnerait bien dans ton cas, lis cette article : http://fr.wikipedia.org/wiki/D%C3% [...] i%C3%A8res
En particulier le § "interprétation statistique"  :

Citation :

Ainsi, la SVD permet de construire un modèle empirique, sans théorie sous-jacente, d'autant plus précis qu'on y injecte de termes.
Il est par ailleurs possible de reconstruire, en utilisant une basede vecteurs singuliers d'un premier jeu de données, un autre jeu dedonnées avec plus ou moins de précision, afin de déterminer lasimilarité entre les deux. Selon ce principe, des systèmes dedécomposition, de reconnaissance et de reconstruction faciale ont étédéveloppés
 


et le § "décomposition 2D".
 
Dans mon cas d'utilsiaiton, c'est bien entendu le § "Application aux langues naturelles" que j'ai utilisé ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Recherche d'images similaires

 

Sujets relatifs
Recherche dans tableau et copie de lignes[PHP] Comment coder un moteur de recherche sur mon site ?
Firefox souligne toutes les imagesimages bibliotheque flash
SEO: images sur un nom de domaine différentrecherche
5 images une en dessous de l'autre, texte en //Programmer une fonction recherche avec une ArrayList
Fonction recherche excellDans le flux du libre, je suis à la recherche d'une base de données QR
Plus de sujets relatifs à : Recherche d'images similaires


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR