VisiPics : Dédoublonnage d'images

Discussions autour de vos différents projets Furry.
Si vous avez une idee de projet ou bien voulez participer c'est ici.

Modérateurs: modérateurs, admins

VisiPics : Dédoublonnage d'images

Messagede Ozone Griffox » 22 Déc 2004, 17:55

J'ai commencé un logiciel qui permettra de retrouver dans votre collection d'images celles qui sont en double. L'algorithme ne regardera pas simplement si les fichiers sont identiques, mais il ouvrira les images et en comparera le contenu.

Une fois la comparaison effectuée, on pourra donner au programme une liste de répertoires prioritaires. Ensuite les doublons se trouvant dans les répertoires non prioritaires seront effacées du disque dur.

Si vous avez des idées supplémentaires :?:


Dernière édition par Ozone Griffox le 03 Juin 2006, 11:47, édité 2 fois.
Avatar de l’utilisateur
Ozone Griffox
Griffox   Anthro
 
Messages: 3188
Inscription: 18 Fév 2003, 11:59
Localisation: France

Sur la Furmap: Ozone

Rôliste

Messagede Lone_Fox » 22 Déc 2004, 17:59

Impressionnant. Particulièrement utile pour se débarasser des doublons dans nos téra-octets d'images furry :)
I'm the Doctor. You're in the biggest library in the universe. Look me up.
Avatar de l’utilisateur
Lone_Fox
 (C'est comme le Port-Salut, c'est écrit dessus)
 
Messages: 2541
Inscription: 21 Oct 2003, 19:41
Localisation: Bruxelles

Dessinateur
Musicien
Ecrivain

Messagede cLx » 22 Déc 2004, 19:02

Perso, j'utilise ça, mais il va exploser si on lui fait bouffer un To:

Image
Avatar de l’utilisateur
cLx
Jaguar   Non Anthro
 
Messages: 930
Inscription: 11 Fév 2003, 18:16
Localisation: Lille

Sur la Furmap: cLx

Vidéaste
Portfolio http://clx.freeshell.org/portfolio.html -->

Messagede Ozone Griffox » 22 Déc 2004, 19:29

J'ai testé ImageDupeless. Il est trop buggé pour être utilisable je trouve. Et il explose facilement dès qu'il y a trop d'images, effectivement... En plus, chez moi, il avait tendance à trouver des images identiques alors que ce n'était pas franchement le cas.
Avatar de l’utilisateur
Ozone Griffox
Griffox   Anthro
 
Messages: 3188
Inscription: 18 Fév 2003, 11:59
Localisation: France

Sur la Furmap: Ozone

Rôliste

Messagede Lightfox » 22 Déc 2004, 19:47

Oooh, en voilà une idée qu'elle est interessante! :D

Petite question: quels spont exactement les critères de recherches? Par exemple, si j'ai 2 images identiques mais avec un nom, une résolution et une extension différente, sera-t-il capable de les trouver?
Avatar de l’utilisateur
Lightfox
Renard  (roux)   Anthro
 
Messages: 997
Inscription: 14 Fév 2003, 13:59
Localisation: Bruxelles

Sur la Furmap: mikelightfox

Dessinateur

Messagede Ozone Griffox » 22 Déc 2004, 20:14

Lightfox a écrit:Si j'ai 2 images identiques mais avec un nom, une résolution et une extension différente, sera-t-il capable de les trouver?

En théorie oui. En pratique ca dépendra des différences entre les images. Une image dont une partie, même infime, à été coupée (crop) ne sera pas retrouvée.
Avatar de l’utilisateur
Ozone Griffox
Griffox   Anthro
 
Messages: 3188
Inscription: 18 Fév 2003, 11:59
Localisation: France

Sur la Furmap: Ozone

Rôliste

Messagede Lightfox » 22 Déc 2004, 20:31

mmm...c'est déjà très bien! Je vais suivre ce projet avec attention! :D
...par contre, vu qu'une assez grande partie des images que je possède provenant de l'oekaki de Guppy sont le résultat d'une section d'une capture d'écran...je ne pourrais sans doute pas retrouver tous mes doublons :p.
Avatar de l’utilisateur
Lightfox
Renard  (roux)   Anthro
 
Messages: 997
Inscription: 14 Fév 2003, 13:59
Localisation: Bruxelles

Sur la Furmap: mikelightfox

Dessinateur

Messagede Loupy » 23 Déc 2004, 08:37

Il est vrai que Night et ozone ont des paquets de doublons dans leurs fichiers. Ils en auront besoin.
Le plus mignon des louveteaux français
Avatar de l’utilisateur
Loupy
Loup   Anthro
 
Messages: 5086
Inscription: 05 Déc 2003, 09:19
Localisation: Dijon

Rôliste

Messagede cLx » 23 Déc 2004, 11:51

Ozone Griffox a écrit:Une image dont une partie, même infime, à été coupée (crop) ne sera pas retrouvée.


Image
Avatar de l’utilisateur
cLx
Jaguar   Non Anthro
 
Messages: 930
Inscription: 11 Fév 2003, 18:16
Localisation: Lille

Sur la Furmap: cLx

Vidéaste
Portfolio http://clx.freeshell.org/portfolio.html -->

Messagede Sundance » 23 Déc 2004, 16:01

C'est très intéressant! Est-ce qu'il existe des papiers sur les algorithmes utilisés?
Avatar de l’utilisateur
Sundance
 
Messages: 88
Inscription: 06 Mai 2003, 20:11

Messagede Ozone Griffox » 23 Déc 2004, 17:15

cLx a le don de ma rappeller que je ne suis pas un mathématicien surdoué en montrant son logiciel qui... je le rappelle... a tendance à facilement trouver des doublons là où il n'y en a pas

:twisted:

L'algorythme (le mien à moi, hein cLx?!) que j'utilise n'est pas sorcier:
- On demande trois paramètres : Sensibilité, Précision et Tolérance à l'utilisateur.
- Redimensionnement des images en 50x50 pixels.
- Comparaison des trois composantes pour chaque pixel.
- Ajout de la somme des différences dans un indice.
- Vérification si une des trois différences est supérieure à la précision demandée. Si oui, décrémentation de la tolérance.
- Si l'indice de différence est inférieur à la Sensibilité et que la Tolérance n'est pas dépassée, alors les images sont considérées comme identiques.

En Delphi ça donne ceci :
Diff := 0;
Wide := 0;
for Y:=0 to 49 do for X:=0 to 49 do begin
DiffRed := abs(Pic1.Red[X,Y] - Pic2.Red[X,Y]);
DiffGreen := abs(Pic1.Green[X,Y] - Pic2.Green[X,Y]);
DiffBlue := abs(Pic1.Blue[X,Y] - Pic2.Blue[X,Y]);
Inc(Diff, DiffRed + DiffGreen + DiffBlue);
if ((DiffRed >= Precision) or (DiffGreen >= Precision) or (DiffBlue >= Precision)) then inc(Wide);
end;
Result.Pixels := Diff / (50 * 50 * 255 * 3);
Result.Wide := Wide;

if ((Diff.Pixels < Sensitivity) and (Diff.Wide < Tolerance)) then AddGroup(Id1, Id2);

Les résultats que j'obtiens, une fois les trois paramètres calibrés, sont vraiment excellents.
Avatar de l’utilisateur
Ozone Griffox
Griffox   Anthro
 
Messages: 3188
Inscription: 18 Fév 2003, 11:59
Localisation: France

Sur la Furmap: Ozone

Rôliste

Messagede Ozone Griffox » 23 Déc 2004, 22:48

Mon algorithme est au point et les règlages correctement effectués. La preuve, sur 2500 fichiers différents, j'ai obtenu un joli 100% d'efficacité. Il reste néanmoins quelques problèmes liés à Devil... La bête a du mal à charger certains format de compression. :\ Si quelqu'un à une idée pour Devil, je suis preneur.

Notez la subtile différence entre les groupes d'images 3 et 4 (les deux en rouges), mon algorithme a detecté correctement que le titre n'apparait pas sur la deuxième version. Et oui, le format de compression et/ou la taille des images de chaque groupe sont différents.

Image
Avatar de l’utilisateur
Ozone Griffox
Griffox   Anthro
 
Messages: 3188
Inscription: 18 Fév 2003, 11:59
Localisation: France

Sur la Furmap: Ozone

Rôliste

Messagede Sundance » 24 Déc 2004, 16:35

Simple et efficace -- pas mal du tout!
Sinon, tu as trouvé une réponse algorithmique au problème des images croppées?
Avatar de l’utilisateur
Sundance
 
Messages: 88
Inscription: 06 Mai 2003, 20:11

Messagede Ozone Griffox » 24 Déc 2004, 17:46

Je n'ai aucune solution pour les images croppées... Malheureusement. Il y a une tolérance au crop, mais elle est infime. Sinon, j'y ai passé la journée mais j'ai finalement réussi à faire fonctionner Devil correctement. J'avais deux problèmes : un de "Contexte" Windows, et un de conversion de format (pour les GIF). J'arrive donc à charger tout type d'images ! Weeee

Théoriquement : Bmp, Gif, Ico, Cur, Jpg, Pcx, Png, Tga, Tiff, Psd et d'autres moins intéressants. Je n'ai pas encore testé tous les formats, seulement Gif, Jpg et Png. Ceux-là fonctionnent.

Le seul problème que j'ai trouvé vient d'images manquant fatalement de contraste. Le logiciel a tendance à les confondre. C'est facilement adaptable dans mon algorithme mais risque encore d'augmenter légèrement les temps de chargement (zut). Il faut le faire, de toute façon.
Avatar de l’utilisateur
Ozone Griffox
Griffox   Anthro
 
Messages: 3188
Inscription: 18 Fév 2003, 11:59
Localisation: France

Sur la Furmap: Ozone

Rôliste

Messagede Ozone Griffox » 02 Jan 2005, 09:45

Bientôt terminé. Je n'ai plus de plantages et le logiciel semble vraiment bien trouver les doublons. J'ai aussi travaillé l'algorithme pour qu'il soit le plus rapide possible. En fait le plus long n'est plus de comparer les images, mais c'est de les charger en mémoire depuis le disque dur.

Sur mon Pc portable (2,6 Ghz) :
Sur un lot de 1040 images,
Temps de chargement : 2 minute 18 secondes
Temps de comparaison : 8 secondes

À savoir que le chargement ne sera à effectuer qu'une seule fois sur la version définitive. Pour la comparaison, je ne sais pas encore, mais normalement les images déjà comparées n'auront pas à l'être une nouvelle fois.

Mon programme bénéficiera de l'HyperThreading et/ou d'un système avec deux-processeurs dans le cas ou vous chargez et comparez les images en même temps.
Avatar de l’utilisateur
Ozone Griffox
Griffox   Anthro
 
Messages: 3188
Inscription: 18 Fév 2003, 11:59
Localisation: France

Sur la Furmap: Ozone

Rôliste

Suivante

Retourner vers Projets


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités