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 :

Structure from Motion (Bundler)


Sujet :

Traitement d'images

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 28
    Points : 20
    Points
    20
    Par défaut Structure from Motion (Bundler)
    Bonsoir,

    Je m'intéresse beaucoup aux différentes solutions permettant de reconstruire en 3D un objet à partir de photos prises à différents angles.

    Après quelques recherches, je suis tombé sur un projet très intéressant qui a l'air d'être à la base de plusieurs autres scripts (VisualSfm, PMVS2, CMVS...) qui donnent des résultats impressionnants. Le projet en question s'appelle Bundler : http://phototour.cs.washington.edu/bundler/
    L'intérêt est qu'il permet de générer des nuages de points assez denses à partir de photos non triées et sur lesquelles on n'a a priori pas d'informations.

    J'aimerais essayer de bien comprendre la méthode utilisée par Noah Snavely, et je cherche donc à dégager les grandes étapes de l'algo mais je suis un peu dans le flou, aussi je sollicite votre aide.

    Voilà ce que j'ai compris :

    1) On extrait des points d'intérêts de chaque image, à l'aide des descripteurs SIFT
    2) Pour chaque paire d'image, on cherche des correspondances entre leurs points d'intérêt (K-plus-proches voisins)
    3) Si on dépasse un certain seuil de correspondances, nos deux images contiennent une même zone de l'objet. On peut donc utiliser ces images pour faire une sorte de triangulation et récupérer les coordonnées des caméras ayant photographié nos images.
    4) On fait une rétroprojection pour transférer les coo d'un point d'intérêt du référentiel de la caméra au référentiel 3D
    5) "Bundle adjustment" : On réitère les opérations 3 et 4 de façon à minimiser l’erreur géométrique (ie la somme des erreurs de rétroprojection), jusqu'à stabilisation

    Alors déjà j'aimerais savoir si j'ai globalement compris le principe ou bien je suis totalement à côté de la plaque ?
    Est-ce que j'ai inversé / oublié des étapes importantes ou pas ?
    D'autre part, je souhaiterais avoir des précisions sur la façon de réaliser les étapes 3 et 4 (celles sur lesquelles j'ai le plus de difficultés de compréhension).

    Voilà, et si vous connaissez d'autres algos (open-source de préférence) similaires ou des approches différentes du problème, n'hésitez pas à me les indiquer.

    Merci d'avance =)

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 62
    Points
    62
    Par défaut
    Le Bundle permet de minimiser l'erreur de reprojection d'un ensemble de points, ceci afin de reestimer la pose, les parametres des cameras et/ou la position de points 3D.

    Ce Bundle qui est base sur une resolution par descente de gradient necessite une estimee initiale de la pose, des cameras et des points 3D. Cette estimee peut etre determinee entre autre en calculant la matrice fondamentale, et ce a partir de points 2D mis en correspondances.

    On a donc plutot :
    1) extraction de points
    2) mise en correspondance
    3) calcul de la geometrie de la scene, des pose et parametres des cameras
    4) Bundle

    A cela s'ajoute probablement des etapes de filtrages des outliers, en particulier dans la partie 3.

    Les scenes 3D reconstruites par Bundler sont eparses et reconstruites a un facteur d'echelle pret.

    Un autre algo disponible pour reconstruire en 3D est l'implementation PCL de KinectFusion mais il faut une Kinect...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par briqueabrac Voir le message
    Le Bundle permet de minimiser l'erreur de reprojection d'un ensemble de points, ceci afin de reestimer la pose, les parametres des cameras et/ou la position de points 3D.

    Ce Bundle qui est base sur une resolution par descente de gradient necessite une estimee initiale de la pose, des cameras et des points 3D. Cette estimee peut etre determinee entre autre en calculant la matrice fondamentale, et ce a partir de points 2D mis en correspondances.

    On a donc plutot :
    1) extraction de points
    2) mise en correspondance
    3) calcul de la geometrie de la scene, des pose et parametres des cameras
    4) Bundle
    Ok j'ai compris. En fait on fait 1), 2), 3) (avec de la géométrie et le calcul de la matrice fondamentale).
    Puis on réitère 3) (mais cette fois avec par descente de gradient type algo de Levenberg-Marquardt) jusqu'à minimiser l'erreur de rétroprojection.

    Citation Envoyé par briqueabrac Voir le message
    A cela s'ajoute probablement des etapes de filtrages des outliers, en particulier dans la partie 3.
    Via un aglo type RANSAC? Et si oui, on l'applique sur quoi? Les points d'intérêt?

    Citation Envoyé par briqueabrac Voir le message
    Un autre algo disponible pour reconstruire en 3D est l'implementation PCL de KinectFusion mais il faut une Kinect...
    D'accord, je vais aller jeter un oeil

    En tout cas merci de ton aide

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par bachintosh Voir le message

    Via un aglo type RANSAC? Et si oui, on l'applique sur quoi? Les points d'intérêt?
    On applique RANSAC lors du calcul de la matrice fondamentale a partir des points d'interets matches. C'est un premier filtre. Ensuite on cherche des ensembles de points correspondants dans une suite d'images et on vire les petits ensembles ou bien ceux ayant plusieurs correspondants dans une meme vue. Ensuite on estime la geometrie pour une premiere paire d'images via une estimation d'homographie avec RANSAC + la methode 5 points de Nister. Pour la pose des vues suivantes on utilise l'algo p181 du bouquin d'Hartley, via RANSAC encore une fois. Une fois que l'on a toutes les poses, on lance l'ajustement de faisceaux et voila.


    Je te conseille egalement le site http://vision.middlebury.edu/mview/eval/ qui liste et compare un bon nombre de methodes. PMVS de Furukawa y est d'ailleurs.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Ok merci beaucoup je pense avoir compris.

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par briqueabrac Voir le message
    [...] Pour la pose des vues suivantes on utilise l'algo p181 du bouquin d'Hartley, [...]
    De quel livre parles tu stp ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 62
    Points
    62

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Merci, je crois que je vais l'acheter !

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 62
    Points
    62
    Par défaut
    Puisque on est dans les références, je conseille également celui ci : http://szeliski.org/Book dont le pdf est généreusement mis à disposition par l'auteur.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/08/2013, 14h19
  2. Structure from motion et déplacement caméra
    Par Biloy dans le forum OpenCV
    Réponses: 1
    Dernier message: 27/07/2012, 00h05
  3. recuperation de la structure d'une base
    Par pascalT dans le forum 4D
    Réponses: 7
    Dernier message: 07/06/2006, 15h32
  4. longueur d'une structure
    Par bohemianvirtual dans le forum C
    Réponses: 6
    Dernier message: 28/05/2002, 18h31

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