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

Images Discussion :

Régression linéaire multivariable


Sujet :

Images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Par défaut Régression linéaire multivariable
    Bonjour à tous!

    J'essaye de matcher deux images pour réaliser un pan-sharpening:

    I=k1.B+k2.V.+k3.R+b
    et Pan

    L'idée est d'optimiser les coefficients k1 k2 k3 et b afin que l'erreur au sens des moindres carrés entre I et Pan soit minimale.

    Je précise que je code en Matlab.

    Apparemment je dois pouvoir utiliser mvregress mais j'ai un peu de mal à comprendre son utilisation!

    Du coup je me sens un peu perdu, si quelqu'un a déjà réalisé ce genre de matching les conseils sont bienvenus!

    Merci d'avance.

    Thibaut

  2. #2
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Apparemment je dois pouvoir utiliser mvregress mais j'ai un peu de mal à comprendre son utilisation!
    Question: Ta variable I c'est une matrice? Si c'est ca tu dois utiliser mvregress sinon tu dois utiliser une autre fonction.

    Aussi si tu peux-nous donner des details ce que tu desires faire, quelle formule tu veux implementer, que represente tes variables et ton but.

    Amicalment,

    Michel

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Par défaut
    Et bien oui, I est une matrice (512*512)

    Le but est de trouver les meilleurs coefficients pour pouvoir faire ressembler au maximum les 2 images.

    Chaque coefficient pondère une image multispectrale (Red, Blue ou Green), et la matrice I est créée par la transformation (R,V,B)->(I,H,S) ou Intensity-Hue-Saturation

    J'ai réussi à faire une estimation par lsqnonneg mais malheureusement celle-ci me donne 2 coefficients nuls.

    Est il possible à votre avis de contraindre la fonction lsqnonneg afin qu'elle donne des coefs >0 ?

    J'espère que je suis assez clair

    bien à vous

  4. #4
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Salut de nouveau!

    Donc si j'ai bien compris ta matrice X (pour applier la commande mvregress) est forme bar des vecteurs colonnes [1 B V R] (en utilisant tes notations).

    La premiere colonne -c'est la conne de 1
    Deuxieme colonne- c'est la colonne avec des valeurs B
    Troisieme colonne -c'est la colonne avec des valeurs V
    Quatrieme colonne -c'est la colonne avec des valeurs R

    C'est ca que tu desires?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>B = rand(5);
     V = rand(5);
     R = rand(5);
     I = 1 + 2*A + 3*V + 4*R;
     resultat=[ones(numel(B),1) B(:) V(:) R(:)] \ I(:)
    Ca resout ton probleme?

    Sinon entre dans details pour qu'on puisse t'aider encore!

    J'espere que ca t'aides un peu!

    Amicalment,

    Michel

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Par défaut
    Bonjour/Buna ziwa! Tout d'abord merci de vous intéresser à mon topic!

    Et bien mon problème a un peu évolué:

    j'ai réussi à faire une regression linéaire au sens des moindres carrés à coefficients non négatifs.

    Mais celle ci me donne des coefficients nuls: ce qui signifie que pour matcher les images panchromatiques et intensité, il n'y a pas besoin de toutes les bandes.

    Cela me dérange un peu et j'aimerai mettre comme contrainte à la méthode lsqnonneg : s'il te plait ne me rend pas de coefficients nuls.


    Voila mon challenge actuel.

    Ci joint le code de ma fonction d'optimisation des coefficients:

    Code : 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    function [w1, w2, w3, w4, b]= optimise (B,V,R,NIR,PAN)
     
    [M,N]=size(B)
    size(PAN)
    dim=M*N;
     
    B_shape=reshape(B,dim,1);
    V_shape=reshape(V,dim,1);
    R_shape=reshape(R,dim,1);
    NIR_shape=reshape(NIR,dim,1);
    P_shape=reshape(PAN,dim,1);
     
    size(P_shape)
     
    A=ones(dim,4);
     
    A(:,1)=R_shape;
    A(:,2)=B_shape;
    A(:,3)=V_shape;
    A(:,4)=NIR_shape;
     
    size(A)
     
    b=0;
     
    w=lsqnonneg(A,P_shape)
    size(w)
     
    w1=w(1)
    w2=w(2)
    w3=w(3)
    w4=w(4)
     
    err=A*w-P_shape;
     
    b=mean(err)
     
    end
    Résultat:
    w1 = 0

    w2 = 0.7947

    w3 = 0

    w4 = 0.0587

    b = -6.3698

  6. #6
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut
    Si tu vois un numero positive c'est normalment que tu vois un numero positive comme resultat.


    Si les valeurs qui produit l'optimum sont 0 ou negatifs (comme w1 et w3) tu dois utiliser la fonction fmincon .

    J'espere que ca t'aides beacoup!

    Bonne chance,

    Michel

Discussions similaires

  1. Régression linéaire, loi F, t, normale et Khi-2
    Par philben dans le forum Contribuez
    Réponses: 3
    Dernier message: 20/08/2020, 14h22
  2. Module qui permet de faire des régression linéaire ?
    Par Anti-T dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 04/09/2009, 13h28
  3. Tracé de courbe + Régression linéaire
    Par AC88mm dans le forum MATLAB
    Réponses: 4
    Dernier message: 02/05/2007, 14h27
  4. Réponses: 2
    Dernier message: 22/12/2006, 20h24
  5. [NaN] Calcul d'une régression linéaire
    Par GLDavid dans le forum Langage
    Réponses: 1
    Dernier message: 24/10/2006, 12h55

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