Recherche image dans image

Tutos et exemples de scripts et de code
Post Reply
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Recherche image dans image

Post by francois »

Bonjour,

Comme l'image choisie au départ ne correspondait pas toujours à ce qu'intuitivement je croyais être une "bonne image" à chercher, je me suis demandé en quoi mon intuition était parfois à coté de la plaque.

Indépendamment d'un besoin précis, j'ai donc essayé de savoir ce qui était important pour ActionAZ dans la recherche d'une image.

J'ai essayé de faire la chose sérieusement mais je n'exclus pas une ou 2 erreurs d'interprétation.

François
Attachments
ActionAZ reherche image.doc
tests autour de la recherche IMG
(93.5 KiB) Downloaded 860 times
niconil
Posts: 93
Joined: 12 Mar 2012, 10:11

Re: Recherche image dans image

Post by niconil »

très intéressant, et merci beaucoup pour cette explication détaillée.

quelques remarques suite à la lecture de ton document :

- en page 6 : je ne comprends pas dans le premier cas dénommé "Mise en pratique (suite)"
pourquoi AZ ne trouve pas et pourquoi tu mets "Ne trouve pas et c'est normal"

là j'aurai besoin d'un poil d'explication supplémentaire

- en page 8 tu recommandes lorsque l'on connait la zone à rechercher de restreindre la recherche à cette zone (ce qui me semble normal)
mais en l'état cela veut dire d'avoir recours à une action de type Code
=> pour limiter le recours au code et rendre l'action graphique pertinente, je rajouterai bien un paramètre du type sélection de région

(Pour jmgr : j'aimerai bien reproduire le sélecteur de région qui est présent dans l'outil libre GreenShot, mais pour moi ça me semble complexe,
ce que je sait faire c'est rajouter deux champs de type Point/Position qui définiraient une zone mais c'est pas très user-friendly)

- documentation très utile à reverser dans le wiki
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Recherche image dans image

Post by francois »

Bonjour,

J'aurais dû relire avec plus d'attention.
Il faut inverser les 2 images

Le but de la page 6 était de montrer que l'image à trouver(A) doit être incluse dans l'mage où l'on cherche (B).
(évident mais dans la pratique, on peut parfois prendre un peu trop grand)

Francois
niconil
Posts: 93
Joined: 12 Mar 2012, 10:11

Re: Recherche image dans image

Post by niconil »

Perso, j'ai toujours eu plein de problèmes avec cette action "Trouver Image"

mais à la lecture de ton document, j'ai refait un essai
j'utilise GreenShot pour faire mes copies d'écran et sélectionner mes images à chercher

A nouveau, je suis tombé sur un cas où avec mon image à chercher
au format PNG, actionaz ne trouve pas mon image dans la fenêtre
au fromat JPG, actionaz trouve l'image dans la fenêtre

françois à l'occasion peux-tu reproduire cela ?
(le résultat de trouver image dépend-il du format ?)
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Recherche image dans image

Post by francois »

J'ai testé avec des images de type jpg, gif et png, il n'y a rien de bien décisif à dire.

Je vais être un peu pris dans les jours à venir mais dès que possible, je vais essayer de
d'avancer sur " quelle image choisir".

Je suis toujours épaté par ce logiciel.

Francois
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Recherche image dans image

Post by Jmgr »

Salut à vous deux.

En effet la recherche d'images se fait sur des images en niveau de gris. L'algorithme de recherche fonctionne comme ça.
Plus d'infos : http://docs.opencv.org/doc/tutorials/im ... ching.html

Si l'image à chercher est petite il faut aussi penser à diminuer la valeur du paramètre "Expansion de la recherhe" qui représente le décalage en pixels entre chaque vérification : s'il est trop élevé ça ne fonctionnera pas. La valeur minimale est 1, mais va ralentir la recherche.
A nouveau, je suis tombé sur un cas où avec mon image à chercher
au format PNG, actionaz ne trouve pas mon image dans la fenêtre
au fromat JPG, actionaz trouve l'image dans la fenêtre

françois à l'occasion peux-tu reproduire cela ?
(le résultat de trouver image dépend-il du format ?)
Désolé, je n'arrive pas non plus à reproduire ce bug. Y-a t-il des parties transparentes dans ton image ? Comme le JPG ne supporte pas la transparence ça peut être une cause de différence.
(Pour jmgr : j'aimerai bien reproduire le sélecteur de région qui est présent dans l'outil libre GreenShot, mais pour moi ça me semble complexe,
ce que je sait faire c'est rajouter deux champs de type Point/Position qui définiraient une zone mais c'est pas très user-friendly)
Hm, je n'ai jamais utilisé ce logiciel mais je pense que je vois ce que tu veux dire : l'écran devient gris et tu peux sélectionner un rectangle avec du drag&drop ?
C'est assez complexe mais c'est bien ce que j'ai prévu, par contre par manque de temps ça n'avance pas...
"My software never has bugs. It just develops random features."
niconil
Posts: 93
Joined: 12 Mar 2012, 10:11

Re: Recherche image dans image

Post by niconil »

mais comme c'est libre, la partie gérant cette partie est peut être récupérable.

J'ai regardé de mon coté mais je me suis noyé en rentrant dans le code.

Dans la version 1.1 (de GreenShot) il a été rajouté une loupe pour pouvoir contrôler finement la sélection de la zone à copier.
rien de mieux que d'essayer le logiciel pour se faire une idée.
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Recherche image dans image

Post by Jmgr »

Certes, c'est du C# mais j'imagine que ça fait appel à l'API Windows en C. Sinon c'est mal barré.
"My software never has bugs. It just develops random features."
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Recherche image dans image

Post by francois »

En effet la recherche d'images se fait sur des images en niveau de gris. L'algorithme de recherche fonctionne comme ça.
Plus d'infos : http://docs.opencv.org/doc/tutorials/im ... ching.html
Très interessant.
Juste par curiosité, quelle méthode utilises-tu ? ( à supposer que tu en utilises une seule)

Elles semblent toutes tourner autour de la méthode des moindres carrés.
Mais c'est bien loin tout ça.

En tout cas, la lecture de cet article aide à mieux comprendre comment le rapprochement entre images est fait.


Francois
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Recherche image dans image

Post by Jmgr »

Il s'agit de CV_TM_CCOEFF_NORMED, c'est à dire Image.
Je ne sais plus pourquoi j'ai choici cet algorithme là au lieu des autres, j'aurai du le marquer quelque part... Je suppose que j'ai du faire quelques tests. Enfin, ça peut faire l'objet d'une amélioration de l'action : ajouter le choix de l'algorithme dans les options avancées.

Edit: Hm, j'y pense, il doit être possible de faire la recherche d'image en prenant en compte les couleurs : il suffit de faire la recherche trois fois, une fois par cannal de l'image. Et dans ce cas on ne garde que les résultats qui valident les trois cannaux.
"My software never has bugs. It just develops random features."
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Recherche image dans image

Post by francois »

Avec recherche "opencsv CV_TM_CCOEFF_NORMED" , google propose notamment 2 pdfs à télécharger.
Le 1er, "OReilly Learning OpenCV[1].pdf" me semble une mine d'infos.

Pour la partie "recherche image dans image",notamment (page 232):
As usual, we obtain more accurate matches (at the cost of more computations) as we
move from simpler measures (square diff erence) to the more sophisticated ones (correlation
coeffi cient). It’s best to do some test trials of all these settings and then choose the
one that best trades off accuracy for speed in your application.
et page 233 :
Again, be careful when interpreting your results. Th e square-diff erence
methods show best matches with a minimum, whereas the correlation
and correlation-coeffi cient methods show best matches at maximum
points.
Page 235 : utilisation des 6 méthodes pour une même image.
Méthode 1 : square difference
Méthode 2 et 3 : correlation coefficient

Les méthodes 4 à 6 sont les formes normalisées des méthodes 1 à 3.


Finalement, en poussant en peu,via ces méthodes, il y a 2 types de recherche :
- Recherche d'une image la plus moyennement bonne.
- Recherche d'une image où l'on veut qu'il y ait un maximum de points où la correspondance est parfaite
(quitte à ce que pour certains autres points il n'y ait aucun rapport).
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Recherche image dans image

Post by francois »

Bonjour,

J'avais fait ce topo en mai dernier, de mémoire avant la version 3.7.0.
Ce topo a perdu de son actualité avec cette version 3.7.0 et celle qui vient de sortir, la 3.8.0.

Avec ces nouvelles versions, JMGR nous a sorti pas mal de nouveautés concernant les images.

Je recommande un petit tour vers wiki.actionaz.org/doku.php?id=en:start

Francois
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Recherche image dans image

Post by francois »

En pièce jointe un topo sur les méthodes figurant dans l'action : trouver image.

Francois
Attachments
Recherche image dans image - les methodes.doc
Action trouver image - les méthodes
(98 KiB) Downloaded 371 times
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

Re: Recherche image dans image

Post by francois »

Action 'trouver image'
Les paramètres utiles concernant l'attente :


Dans l'onglet Standard :
Si non trouvé : on peut choisir "attendre"

Dans l'onglet Avancé,
Délai entre 2 recherches lors d'une attente

Dans l'onglet Commun,
temps d execution maximal
(donc après plusieurs recherche+attente)
Post Reply