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 :

Compréhension du flot optique


Sujet :

Traitement d'images

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut Compréhension du flot optique
    Bonjour,

    J'ai du mal à comprendre le principe du flot optique sur ce que je lis sur internet. Ca permet d'estimer la vitesse des objets de la scène en mouvement entre deux images successives. Mais comment ca marche ?
    Il parle du principe qu'entre deux images succesives l'intensité lumineuse ne varie pas donc dI(x,y)/dt = 0 avec I l'intensité lumineuse et x,y les coordonnées du pixel, ok ca m'a pas l'air faux. Mais apres je comprend rien sur comment détecter le deplacement d'un objet en utilisant l'intensité lumineuse.

    Vous pouvez utiliser des formules mathématiques mais expliquez bien les variables que vous utilisez

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 439
    Points : 5 858
    Points
    5 858
    Par défaut
    salut

    effectivement si il n'y a pas de mouvement l'intensité ne varie pas à l'inverse,
    dès qu'il y a mouvement, il y a variation et c'est cette variation de l’intensité qui permet de calcul la valeur du mouvement
    je trouve que ce rapport est clair de plus
    il fournit le code ce qui peut te permettre d'en extraire l'algorithme

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut
    j'ai regardé le pdf que tu m'as envoyé et j'ai des petits soucis de compréhension, à la page 13 il met la formule : nabla(I) *w + It = 0, dans cette équation il y a deux inconnus w = (vx, vy), donc si je prend alors 2 images j'aurais un système à deux équations et à deux inconnus et je pourrais résoudre le systeme c'est à dire trouver vx et vy c'est bien ca ?

    j'ai du mal à comprendre nabla(I) = (dI/dx, dI/dy), est ce que l'intensité lumineuse varie en fonction de la position, car si oui alors on a 4 inconnu par équation :/

    It = di/dt = 0 donc pourquoi le mettre dans l'équation?

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 439
    Points : 5 858
    Points
    5 858
    Par défaut
    salut

    il est ecrit en page 10

    La plupart des méthodes d'estimation du flot optique reposent sur une hypothèse fondamentale :
    l'intensité lumineuse (ou une autre variable photométrique) se conserve entre deux images
    successives. ...
    ce qui veut dire que si il y a variation d'intancité entre 2 images, cela ne peut etre que due au decalage de l'image dans le temps
    dou le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nabla(I) = (dI/dx, dI/dy)
    on met cette fonction pour justement dire que dans le temps si ton image ne se decale pas alors l'intensité reste la meme.


    voila grosso modo la logique
    imagine tu met une camera a un point fixe cette camera tu prend un instantané img1 et tu pointe sur le pixel[10,10] de ton images
    imaginons que la couleur a ce moment là est egale aux noir
    un peu plus tard rien ne bouge tu reprend un cliche tu compare la valeur de ton ancien cliche avec la nouvelle ... elle est identique donc tu n'as pas eu de mouvement
    encore un peu plus tard tu rprend un cliché et là le meme point n'est plus noir mais gris en considerent que la variation de couleur est uniforme cela te permet
    d'en deduire qu'il y a eu mouvement en faite ton pixel selectionné dans l'img1 n'est plus en [10,10] mais en [11,11] cela te permet de connaitre la distance
    et en connaissant la distance et le temps entre les deux cliché tu peut en deduire la vitesse

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par anapurna Voir le message
    encore un peu plus tard tu rprend un cliché et là le meme point n'est plus noir mais gris en considerent que la variation de couleur est uniforme cela te permet
    d'en deduire qu'il y a eu mouvement en faite ton pixel selectionné dans l'img1 n'est plus en [10,10] mais en [11,11] cela te permet de connaitre la distance
    et en connaissant la distance et le temps entre les deux cliché tu peut en deduire la vitesse
    comment tu peux savoir qu'il est en [11,11], le pixel peut tres bien s'etre retrouvé en [15;15] s'il y a une grande vitesse.

    di/dx peut etre écrit sous la forme (I(x +dx, y, t) - i(x,y,t)) / dx ou (I(x, y, t + dt) - i(x,y,t)) / dx ?
    Et comment implémenter di/dx car on peut connaitre les valeurs de l'intensité mais dx c'est quoi, le décalage d'un pixel, 2 pixels... ?

    J'ai l'impression que pour toi di/dt c'est la meme chose que di/dx

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 439
    Points : 5 858
    Points
    5 858
    Par défaut
    salut

    ce n'est pas aussi simple que cela ... je te donne le principe générale
    c'est bien la difference entre les deux image a un moment T et T+1 qui vont te permettre de calculer
    le decalage et donc par consequence la vitesse. Nous ne pouvons l'appliquer sur une image entiere, le temps de calcul serait trop long
    on filtre avant pour ne s'occuper que d'une parti "Fonctionnel'

    as tu lu ce liens ?

    au lieu de la position geographique du pixel on s'ocuppe de la variation d'intensite du pixel à un endrois donné
    I(X,Y,t) = I(X+dx ,Y+dy ,t+Te)
    avec Te = ecart de temps
    cela est plus simple que de cherché le pixel correspondant
    le calcul de la variation d'intensité nous permettra de definir le sens du mouvement

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut
    oui j'ai lu ce lien mais ca ne m'aide pas pour implémenter le code.

    je veux juste la valeur absolue de la vitesse (v_abs) d'ou :

    v_abs = (di/dt)/(di/dx + di/dy)

    le di/dt revient à faire image2.I(x,y,t + 1) - image1.I(x,y,t) // je prend une autre image (image2) toutes les une seconde avec image1 qui est l'image pris à t=0, et j'aurais choisi les coordonné du pixel dont je veux la vitesse, par exemple si je veux savoir la vitesse du pixel (1;1) alors:
    di/dt = image2.I(1,1,t + 1) - image1.I(1,1,t)

    mais je ne sais pas comment faire pour di/dx et di/dy

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 439
    Points : 5 858
    Points
    5 858
    Par défaut
    salut

    tu te concentre sur un pixel alors que les calculs se font sur des zones
    il faut determiner le declage en X et en Y aussi

Discussions similaires

  1. choix de la méthode de resolution de flot optique
    Par assoumagh dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 26/10/2007, 19h26
  2. estimation de mouvement par la methode de flot optique
    Par hanane78 dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 25/10/2007, 08h31
  3. Gradient d'une image (flot optique)
    Par assoumagh dans le forum Images
    Réponses: 5
    Dernier message: 23/10/2007, 17h36
  4. Flot optique d'une image
    Par hanane78 dans le forum Traitement d'images
    Réponses: 15
    Dernier message: 04/10/2007, 00h50
  5. flot optique ;)
    Par suckthewindow dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 19/06/2006, 18h51

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