IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement d'images Discussion :

Invariants différentiels pour caractériser les points d'intérêt


Sujet :

Traitement d'images

  1. #21
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Pour les rotation de 90° et 180°, il suffit de faire des échanges et des symétries sur l'image originale.
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    int w = im.getWidth();
    int h = im.getHeight();
     
    int[][] tab_000 = new int[w][h];
    int[][] tab_090 = new int[h][w];
    int[][] tab_180 = new int[w][h];
     
    for (int i=0;i<w;i++)
    	for (int j=0;j<h;j++) {  
     
    	int f[]=ras.getPixel(i, j, new int[3]);
    	int intensity = (f[0]+f[1]+f[2])/3;
     
    	// image originale
    	tab_000[i][j]=intensity;
     
    	// rotation 90 : echange x / y + symétries
    	tab_090[h-1-j][i]=intensity;
     
    	// rotation 180 : symétries x + symétries y
    	tab_180[w-1-i][h-1-j]=intensity;
    }

    Pour les autres rotations, il y aura forcément des "interpolations" de valeurs, donc les intensités seront différentes.

    Cela dit, tu peux atténuer un peu les effets de ces changements d'intensité en divisant les valeurs L1, L2 ... L8 par la valeur de L0.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  2. #22
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Math.pow(String.toDouble(Merci beacoup),infini) .
    J'ai trouvé les mêmes valeurs pour toutes les composantes L0,....,L8.

    c'est quoi "interpolations" de valeurs ? c'est à dire différentes ou quoi ?

  3. #23
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    c'est quoi "interpolations" de valeurs ? c'est à dire différentes ou quoi ?
    c'est à dire que lorsque tu fais une rotation de 35° (par exemple) un pixel de l'image d'origine arrive "entre plusieurs" pixels de l'image finale. Donc sa valeur se répartie un peu sur tous les pixels.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #24
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    J'ai oublié de vous dire que le dernier et/ou les deux derniers chiffres après la virgule sont différents .

    L0 : 172.21832742734105
    L0 (90°) : 172.21832742734108
    L0 (180°) : 172.21832742734097
    L0 (270°) : 172.21832742734108

    j'ai cherché par tout, mais je ne sais pas d'ou vient cette différence, est ce que je peux fermer les yeux et continuer mon travail ?

  5. #25
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    j'ai cherché par tout, mais je ne sais pas d'ou vient cette différence, est ce que je peux fermer les yeux et continuer mon travail ?
    C'est surement les erreurs de calculs sur les nombre réels... Personnellement, je prends des matrices moins grandes (7x7 ou 9x9) et avec seulement des coefficients entiers (en multipliant par un facteur et redivisant par ce facteur après la convolution).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #26
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Bonjour Pseudocode,
    Je reprends cette discussion pour profiter de l'algorithme HarrisLaplace.
    J'ai déja implementer un descripteur de points d'intérêt invariant à la rotation d'image.
    Pour cela, j'ai utilisé les invariants différentiels qui sont des dérivées gaussiennes calculées au voisinage de chaque point d'intérêt.
    Pour calculer les points d'intrêt, j'ai pris sigma2=1.5.
    Par exemple, pour un point (x,y), on calcule 9 dérivées gaussiennes.
    la taille de la région autour de chaque point est 2*4*sigma2, avec 4*sigma2 est le rayon de cette région.

    Le problème avec HarrisLaplace est que chaque point a une échelle caractéristique. Donc je cherche à savoir comment calculer les 9 invariants autour de chaque point en prenant en considération son échelle et son octave, car la région d'un point detecté à l'octave o est inférieure à la région d'un point detecté à l'octave o+1.

    --------------------Merci---------------------

  7. #27
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    Bonjour Pseudocode,
    Je reprends cette discussion pour profiter de l'algorithme HarrisLaplace.
    J'ai déja implementer un descripteur de points d'intérêt invariant à la rotation d'image.
    Pour cela, j'ai utilisé les invariants différentiels qui sont des dérivées gaussiennes calculées au voisinage de chaque point d'intérêt.
    Pour calculer les points d'intrêt, j'ai pris sigma2=1.5.
    Par exemple, pour un point (x,y), on calcule 9 dérivées gaussiennes.
    la taille de la région autour de chaque point est 2*4*sigma2, avec 4*sigma2 est le rayon de cette région.

    Le problème avec HarrisLaplace est que chaque point a une échelle caractéristique. Donc je cherche à savoir comment calculer les 9 invariants autour de chaque point en prenant en considération son échelle et son octave, car la région d'un point detecté à l'octave o est inférieure à la région d'un point detecté à l'octave o+1.
    Il y a deux solutions :

    1. Calculer les invariants du point sur l'image originale en prenant le "sigma²" de l'échelle caractéristique.

    2. Calculer les invariants du point sur l'image de la pyramide correspondant a l'échelle caractéristique, en prenant un "sigma²" constant.

    La méthode "1" est plus couteuse mais plus précise.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #28
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Bonjour Pseudocode et merci pour la réponse.
    Supposons qu'on utilise la première méthode, quelle est la taille de fenêtre gaussienne ? Est ce qu'elle dépend du sigma2 ? (valeur trooooos grande donc taille de fenêtre trooooos grande) .
    Est ce qu'on peut prendre une taille de fenêtre constante ?

  9. #29
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    Bonjour Pseudocode et merci pour la réponse.
    Supposons qu'on utilise la première méthode, quelle est la taille de fenêtre gaussienne ? Est ce qu'elle dépend du sigma2 ? (valeur trooooos grande donc taille de fenêtre trooooos grande) .
    Le "sigma²" de la gaussienne c'est le même "sigma²" que l'échelle caractéristique.

    Comme ca a déjà été dit, la taille de la fenêtre gaussienne dépend des valeurs de la fonction. Il faut prendre une fenêtre suffisamment grande pour avoir une grande partie de la distribution. Avec des grandes valeurs de sigma², ca fait des fenêtre enoooormes.

    Heureusement, tu peux passer dans l'espace de Fourier pour réduire les temps de calculs.

    Est ce qu'on peut prendre une taille de fenêtre constante ?
    Oui, tu peux a condition d'utiliser les images "floutées" de la pyramide, et pas l'image originale.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #30
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Le "sigma²" de la gaussienne c'est le même "sigma²" que l'échelle caractéristique.
    Oui, je sais.

    Citation Envoyé par pseudocode Voir le message
    Il faut prendre une fenêtre suffisamment grande pour avoir une grande partie de la distribution. Avec des grandes valeurs de sigma², ca fait des fenêtre enoooormes.
    Avec un nombre d'octaves=5 et 9 scales, on aura un sigma2=1204, donc racine(sigma2)=34, une fenêtre de 2*2*34=136 (très très grande) ?

  11. #31
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    Avec un nombre d'octaves=5 et 9 scales, on aura un sigma2=1204, donc racine(sigma2)=34, une fenêtre de 2*2*34=136 (très très grande) ?
    Et oui. Ca devient vite très grand.

    C'est pour cela qu'il vaut mieux travailler sur les images de la pyramide afin d'avoir un noyau de taille constante.

    Tu peux aussi travailler sur l'image du début de l'octave (l'image resamplée) et utiliser le noyau associé au sigma² du niveau (qui est donc entre 1 et 4).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  12. #32
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Est ce qu'il existe une bases d'images à différentes échelles pour que je puisse tester descripteur+detecteur HarrisLaplace ?

  13. #33
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    Est ce qu'il existe une bases d'images à différentes échelles pour que je puisse tester descripteur+detecteur HarrisLaplace ?
    Je n'en connais pas.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  14. #34
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Bonjour Pseudocode,
    Je pense qu'il y a un problème dans le detecterur HarrisLaplace.
    Normalement une image I et sa rotation Ir contiennent le même nombre de points, ce n'est pas le cas avec HarrisLaplace ?

  15. #35
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    Bonjour Pseudocode,
    Je pense qu'il y a un problème dans le detecterur HarrisLaplace.
    Normalement une image I et sa rotation Ir contiennent le même nombre de points, ce n'est pas le cas avec HarrisLaplace ?
    Je supposes que tu parles dans le cas des rotations sans pertes (90°, 180°, 270°). La différence vient très probablement du downsampling dans la pyramide : prendre 1 point sur 2 dans une image et dans sa rotation ne donne pas forcément le même résultat.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  16. #36
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    La différence vient très probablement du downsampling dans la pyramide : prendre 1 point sur 2 dans une image et dans sa rotation ne donne pas forcément le même résultat.
    Oui, vous avez raison, c'est à cause du downlsampling.
    Ce qui nous intéresse le plus, c'est l'invariance et la correspondance même à un changement d'échelle.
    -------------------------------------------------------------------------

    J'ai pris 3 images avec mon apareil photo numerique (canon powershot s80) Deux images de même scene avec un zoom z1 et un autre z2 , et une troisième image de scene différente.
    Pour faire la correspondance, j'utilise la distance entre les vecteurs invariants :
    Supposons qu'on veut faire la correspondance entre les deux images de la même scene : i1 (z1), i2 (z2).
    Pour chaque point p de i1, je cherche son correspondant dans l'image i2 par calcul de la plus petite distance entre vecteur de point p et tous les vecteurs des point de i2, par exmple je trouve son correspondant g, puis je calcul la plus petite distance entre vecteur de g et tous les vecteurs des points de i1.

    Si je trouve que son correspondant est p, alors on a un appariemment entre p et g.
    Sinon, le point p de l'image i1 n'a pas de correspondant dans l'image i2.

    Mon problème est que pour les deux images i1 et i2 avec 287 points trouvés dans i1 et 185 points trouvés dans i2, je trouve seulement 56 correspondances (c'est peu), alors que pour l'image i1 et une l'image i3 de scene différente et avec 303 points, je trouve 89 correspondance, je ne sais pas comment règler ce problème .
    vous me proposez de faire quoi ??? Merci.

  17. #37
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    Mon problème est que pour les deux images i1 et i2 avec 287 points trouvés dans i1 et 185 points trouvés dans i2, je trouve seulement 56 correspondances (c'est peu), alors que pour l'image i1 et une l'image i3 de scene différente et avec 303 points, je trouve 89 correspondance, je ne sais pas comment règler ce problème .

    vous me proposez de faire quoi ??? Merci.
    Je propose de choisir autre chose que les invariants d'ordre. Il ne sont pas du tout robustes au bruit, aux déformations et a la discrétisation.

    A performance evaluation of local descriptors
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  18. #38
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Il n'y a aucune approche detaillée, c'est juste un état de l'art des techniques existantes.
    Je ne sais même pas ou et comment commencer ?
    Puisque toutes ces approches existent, y a t-il pas quelqu'un qui a fait une implementation ?

  19. #39
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par mobi_bil Voir le message
    Il n'y a aucune approche detaillée, c'est juste un état de l'art des techniques existantes.
    Je ne sais même pas ou et comment commencer ?
    Puisque toutes ces approches existent, y a t-il pas quelqu'un qui a fait une implementation ?
    Regarde les descripteurs utilisés dans SIFT. Ils sont très robustes.

    Dans SIFT il y a également l'algorithme de matching entre 2 images .
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  20. #40
    Membre du Club Avatar de mobi_bil
    Profil pro
    Inscrit en
    Février 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 242
    Points : 52
    Points
    52
    Par défaut
    Je veux garder le même algorithme HarrisLaplace et ajouter un descripteur de points d'intérêt, est ce que c'est possible ?

Discussions similaires

  1. Matrice hessienne pour déterminer les points d'intérêts
    Par highlight dans le forum Mathématiques
    Réponses: 7
    Dernier message: 14/10/2011, 19h52
  2. Requête pour Oter les points dans les Num de tel
    Par isabelle b dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/07/2008, 01h27
  3. update pour resserrer les points
    Par pipoket dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 02/05/2008, 13h13
  4. Encore une histoire pour remplacer les points
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/08/2007, 11h41
  5. Requete pour compter les points dans un championnat
    Par IG2da dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/10/2006, 17h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo