Filtre de Gabor | Gabor Filter


Histoire de ne pas trop se perdre dans l'ambiance, ce matin ou ce soir (c'est le soir chez moi), j'ai décidé de te faire un ptit groove orienté vision par ordinateur sur une de mes trouvaille ! 

Tu vois ce genre de pierre précieuse que tu ne peux t'êmpécher de regarder et qu'a chaque fois que tu regarde tu vois une autre facette de la pierre, à tel point que celle-ci te parâit encore plus précieuse qu'aparavant ! 

Oui, je vais te donner le nom, de ce qui me fait groover en ce moment autant que me ferait groover ma choupette tellement ça me fait groover ! 

Allez sans plus attendre, ça s'appelle les filtres de Gabor ! 

Si tu a lu mes précédent mail ou je dénonçais un peu l'arnaque du "Deep Learning", ce que je dois te dire la ne dois pas tant te surprendre que ça, car tu dois être habitué à ce que je te parle de trucs anciens mais plutôt puissant !

Et oui, ce n'est pas parce que c'est ancien, que ce n'est pas puissant ! Au contraire même !

Et je te rappelle que les réseau convolutif, une des pierre angulaires du deep fake learning sont né en 1988, autrement dit il sont plus vieux que moi ! 

Quoi qu'on pourrait dire qu'il sont jeune encore! Vu qu'on dit que je suis jeune ! Lol 

Quoi qu'il en soit tu l'auras compris je suis peut être en train de prendre mon pied avec une mémé ! 

Mais après vérification sur Google, les filtre de Gabor ont pour la première fois été utilisé pour décrire la texture d'une image en 1989, dans cette article " Gabor filters as texture discriminator" écrit par Fogel, I.; Sagi, D. . Après donc l'invention des réseau de neurones convolutifs! 

Pas si vielle que ça cette technique ! Oufff toute façon c'est pas trop mon trucs les cougars !  

Cependant elle est est réellement né en 1980 dans cet article de recherche : Mathematical description of the responses of simple cortical cells 1980  qui cherchait à modéliser mathématiquement la réponse  des cellule cortical visuel écrit par  Marčelja, S.

Et on ne peut pas dire que ce dernier à rater son coups !

Bon allé, j'arrête de t'emmerder avec les dates et mon cours d'histoire puisque l'on est pas la pour ça et je t'explique un peu plus le chimiblique de la technique !

Pour te décortiquer à fond le trucs , l'idée consiste à mettre en place une fonction mathématique qui va imiter la réponse du cortex cérébrale visuelle face au stimulis visuelle orienté dans une direction que reçoit notre rétine. 

La formule, si tu la cherche tu peux d’ailleurs la trouver sur Wikipedia : https://fr.wikipedia.org/wiki/Filtre_de_Gabor

Mais c'est quoi la réponse du cortex visuelle ! 

Ben si j'ai bien compris tout au chimblique, c'est un gaussienne orienté dans le sens de la direction de la texture à décrire ! 

Si tu sais pas c'est quoi une gaussienne tape gaussienne dans google pour avoir une idée. 

Je pourrais pas tout expliquer dans ce seul groove.

Les formule pour obtenir le fitlre, sont des formules à base d'exp,

la fonction typique utilisé pour la construction d'une gaussienne quoi!

Les voici  (Tu peux les prendre tels qu'elle et les modifier pour que ça fit le langage que tu utilise puis les mettre dans ton code et les appliquer dès maintenant pour voir ce que ça donne) :

gc[i,j] =exp(-(i^2 + j^2)/2 *sigma) * cos (2*pi*f*(i*cos(theta) +j * sin(theta))

gs[i,j] =exp(-(i^2 + j^2)/2 *sigma) * sin (2*pi*f*(i*cos(theta) +j * sin(theta))

i et j étant la position à laquelle tu te trouve dans l'image,

Tout les paramètre suivant, c'est toi qui les fixe :

sigma est la variance de  enveloppe gaussienne 

theta l'angle dans lequel le filtre sera orienté

et pour finir f la fréquence.

Puis tu somme le résultat obtenu pour chacune des formules, la somme des deux images obtenu à partir des 2 formules étant l'image que l'on souhaite obtenir.

Je vais pas t'expliquer plus que ça la formule car sinon ce mail serait trop long et j'ai un impératif de 5 à 10 minute de lecture comme je te l'ais probabelement promis lors de ton inscription.  Libre à toi de me contacter si tu veux en savoir plus.

Pour conclure, cette formule, à base d'exponentielle, de pi, de theta, de f, quand tu la prend et que tu l'applique sur une image en niveau de gris ! 

Elle va te maximiser toute information visuelle (groupe de pixel) qui converge dans la direction theta à la fréquence f.

Et ça mon pote, 

je peux te dire que c'est sacrément utile quand tu est en présence d'une texture qui a une direction, un sens innée dans lequel elle va ! 

Ok, tu vois pas trop de quoi je parle ! un peu compliqué de t'expliquer de l'image sans image ! 

Malheuresement, je peux pas mettre de photo dans ce mail car c'est moi-même qui ait fait le logiciel avec lequel je mail faute de money pour m'abonner à un bon truc! 

Je t'invite donc à allé voir le résultat  de tel filtre sur mon site : https://kongakura.fr/article/Filtre-de-Gabor.

Si ce groove t'as plu et ça te dit d'aller encore plus loin ! Viens groover en direct avec moi, au cours d'une session de coaching gratuite ou je t'aiderais à atteindre tes objetifs dans le machine learning le plus rapidement possible.

Viens me voler si tu l'ose mes 5 ans d'expérience professionnelle dans le machine learning.


Un filtre  est créé à partir des formules ci-dessous puis appliqué aux canaux teinte et saturation des images des pollens.





avec B et C étant des facteur fixé par l’utilisateur. Et f étant la fréquence observée dans la texture. LE σ  écart-type de l’enveloppe gaussienne et theta l’orientation du filtre.
 La moyenne, la variance, l’asymétrie et l’histogramme de l’image obtenue après application du filtre sont utilisés comme vecteur de caractéristique. 


      




Exemple d’image obtenu après application des filtre de gabor pour différente valeur de theta et de fréquence











 



Sur l’image, tu remarqueras que plus la fréquence est élevé, moins l’image est flou, de plus si l’angle choisi correspond à la direction naturelle de la texture, la réponse de l’image obtenue après application du filtre sera d’autant plus forte.

   g

g

.