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

OpenCV Discussion :

Eestimation de mouvement


Sujet :

OpenCV

  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut Eestimation de mouvement
    Bonjour,

    j'ai une suite d'image. Sur ces images je peux avoir un certain nombre de point de tracking sur un objet connue. Cette objet subit des translation et rotation pendant l'animation et ne se deforme pas.
    Je cherche, a partir de ces points à estimer une matrice de transformation (2D ou 3D) entre la première image et l'image à l'instant t.


    Pour tracking, je pense avoir ce qu'il faut avec la demo lkdemo.exe.
    Mais je ne voie pas trop comment estimer la matrice de transformation.
    Je me demande si cvFindFundamentalMat ne me serai spas utile. Mais les étude sont loin et je ne sais plus trop à quoi elle correspond....

    J'ai vue qu'il y avais aussi cvFindHomography, cvPerspectiveTransform.

    Je suis un peu perdu. Si quelqu'un à une proposition.


  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    je ne connais pas OpenCV, donc je vais parler uniquement algo.
    Je pense que la première étape n'est pas de se concentrer sur l'objet, mais sur le fond :
    - détecter des points caractéristiques dans le fond sur une image I.
    - les retrouver sur l'image I+1 (algorithme SIFT ou SURF).
    - calculer pour les deux images, les coordonnées des points de l'objet par rapport aux points fixes du fond.
    - tu auras alors le déplacement de l'objet.

    Si ta caméra est vraiment fixe et que tu ne souhaites estimer QUE le déplacement, tu peux utiliser les flots optiques.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut.
    En faite mon cas est un cas presque trés simple
    On me fournie une animation ou je dois dessiner par dessus un objet en mouvement.
    Seulement on ne peux fournir les info de l'animation. Mais on peux me fournir l'animation en blanc avec des points de tracking sur l'objet.

    Pour l'instant j'ai 5 points que je suie avec la méthode de lkdemo. A partir de ces points j'utilisent findHomography. Le première résultat obtenue est pas trop mal. Mais le mouvement que j'obtient est plus ample que celui de l'objet tracké .

    Mon but est de trouver une matrice de transformation pour positionner mon dessin sur l'objet en mouvement.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Au final ce que je cherche c'est la translation et la rotation qu'as subit un objet entre 2 images.

  5. #5
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    2D ou 3D la transformation, à savoir tu veux les 3 angles et les 3 translations ou ton objet est considéré dans un plan 2D ?

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par snowpy Voir le message
    2D ou 3D la transformation, à savoir tu veux les 3 angles et les 3 translations ou ton objet est considéré dans un plan 2D ?
    L'objet est considéré dans le plan 2D

  7. #7
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    entre 2 frames les points tracker sont les même mais tu sais les différencier, c'est à dire si on a un point A sur ta frame 1 tu sais ou se trouve A dans la frame 2 ?

    donc si je dis pas de bétise la translation est de Xframe1-Xframe2 et la rotation tu peux utiliser l'arcos, l'arctan ou l'arcsin, ca peut se faire sous forme de matrice avec warperspective de mémoire

    edit : cvWarpperspectiveQMatrix

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    merci.
    je vais tester cela demain

  9. #9
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    arf.
    Avec les bon mots c'est mieux. En faite c'est la transformé affine que je cherchais. Et donc getAffineTransform.

    cvFindHomography, cvPerspectiveTransform (cvWarpperspectiveQMatrix) me donne aussi une solution mais la dernière ligne n'est pas tout à fait [0 0 1].

    Et vue que c'est 10^-5 ou 10^-6, je me suis dit que c'était et pouvais m'en passer. Alors que non...

    Flex ne supporte que les matrive 3*3 ou la dernière ligne est [0 0 1]. Ce qui correspond à getAffineTransform

    Pour exploiter les autre il me faut créer une matrice 3D 4*4. je suppose que pour la calculer il me faut connaitre la projection de la camera, non ?


    Pour l'instant je pense que la transformation 2D suffira pour mon cas
    merci pour l'aide

  10. #10
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    tu pourrais donné un exemple de matrice que tu obtiens avec cvWarpperspectiveQMatrix

  11. #11
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par snowpy Voir le message
    tu pourrais donné un exemple de matrice que tu obtiens avec cvWarpperspectiveQMatrix
    celle ci se nome cvPerspectiveTransform maintenant. L'un est le #define de l'autre.

    En gros j'avais un matrice avec ce type de valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    1.05           | -0.25           |   -115.3
    0.03           | 0.95            |  30.2
    0.23*10^-5     | 0.26*10^-6      |  1
    Si tu veux je peux en recalculer une.

    La dernière ligne est presque [0 0 1] mais pas tous à fait. Elle permet d'ajuster la projection.
    Seulement en as3 je n epeux pas l'exploité telle qu'elle.

    getAffineTransform ne me donne que les deux première ligne. La dernière étant fixé à [0 0 1]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme mouvement dans un paysage
    Par nonoRedDevils dans le forum OpenGL
    Réponses: 24
    Dernier message: 24/06/2004, 12h12
  2. [JButton] Mouvements souris + MousePressed
    Par Devil Redneck dans le forum Composants
    Réponses: 8
    Dernier message: 17/05/2004, 17h49
  3. [FLASH MX PRO] effet mouvement clip
    Par dens63 dans le forum Flash
    Réponses: 5
    Dernier message: 21/04/2004, 10h16
  4. [FLASH MX]le mouvement et les sacades
    Par VincentB dans le forum Flash
    Réponses: 6
    Dernier message: 16/01/2004, 23h42
  5. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09

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