Précédent   Forum des professionnels en informatique > Autres langages > Algorithmes > Traitement d'images
Traitement d'images Forum d'entraide sur le traitement d'images et l'analyse d'images et de vidéos. Avant de poster : Cours de traitement d'images
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2012, 00h08   #1
Invité de passage
 
Homme
Étudiant
Inscription : juin 2011
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juin 2011
Messages : 27
Points : 4
Points : 4
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 =)
bachintosh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 23h01   #2
Membre du Club
 
Inscription : août 2007
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : août 2007
Messages : 42
Points : 45
Points : 45
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...
briqueabrac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 01h27   #3
Invité de passage
 
Homme
Étudiant
Inscription : juin 2011
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juin 2011
Messages : 27
Points : 4
Points : 4
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
bachintosh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 20h46   #4
Membre du Club
 
Inscription : août 2007
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : août 2007
Messages : 42
Points : 45
Points : 45
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.
briqueabrac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 15h23   #5
Invité de passage
 
Homme
Étudiant
Inscription : juin 2011
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juin 2011
Messages : 27
Points : 4
Points : 4
Ok merci beaucoup je pense avoir compris.
bachintosh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2012, 11h15   #6
Membre du Club
 
Inscription : juillet 2006
Messages : 66
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 66
Points : 50
Points : 50
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 ?
SERTNM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2012, 14h43   #7
Membre du Club
 
Inscription : août 2007
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : août 2007
Messages : 42
Points : 45
Points : 45
Multiple View Geometry

http://www.robots.ox.ac.uk/~vgg/hzbook/
briqueabrac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 10h04   #8
Membre du Club
 
Inscription : juillet 2006
Messages : 66
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 66
Points : 50
Points : 50
Merci, je crois que je vais l'acheter !
SERTNM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2012, 20h10   #9
Membre du Club
 
Inscription : août 2007
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : août 2007
Messages : 42
Points : 45
Points : 45
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.
briqueabrac est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h56.


 
 
 
 
Partenaires

Hébergement Web