Accueil

 
.

Script : Reconstitution de 2 photo en 3D

 

Vous pouvez télécharger le script ici

But du script :

Il permet de retrouver la position de points particularisés sur 2 photos d'un même objet prises sous deux angles de vues différentes. Cependant, une opération de répérage à la main des points de l'objet sur les deux images est necessaire. Il est facilité par le script.

Comment se servir du script :

1. Lancez le script à l'aide du combo Alt+P dans la fenêtre de texte

2. Ouvrez les deux images (photos de l'objet sous les deux angles de vues différentes)
Si vous souhaitez juste tester le script, deux images de tests : ici et ici

3. Pour la suite vérifiez de bien avoir une area 3D à coté de l'area python.
Utilisez le bouton Picture Treatement.
Il devrait apparaître dans la fenêtre 3D la première de vos images et des boutons sur les côtés.

4. Positionnez le premier point de l'objet dans la fenêtre 3D : un clic gauche suffit pour déplacer le curseur du script !


---> vous pouvez modifier autant de fois que vous le voudrez la position du point. Ainsi que faire tout les zoom que vous désirerez.

 

5. Utilisez le bouton Confirm en bas à gauche une fois que vous souhaitez passez à la position du point suivant.
Il vous faut ensuite positionner le point correspondant sur la deuxième image (qui normalement est apparue comme par magie).

ATTENTION : Faites bien correspondre les points que vous placerez. Le point 1 de l'image 1 doit correspondre au même point 1 sur l'objet de l'image 2. Ce sont les conditions necessaires pour que le script retrouve la position en 3D du point.

6. Continuez à placer autant de points que vous voudrez en correspondance sur les 2 images en répetant les opérations :
-Positionnement du point
-Confirmation à l'aide du bouton confirm

NOTE : Vous remarquerez sur la gauche une cartouche allongée.

Les deux premiers boutons vous permettent de passer d'une image à une autre en cliquant sur "Image 1" ou "Image 2"
Une couleur bleue foncée indique quelle est l'image en cours de visualisation.


Les boutons qui suivent correspondent aux points que vous avez placé. Vous pouvez à tout moment les visionner (petit oeil) ou les supprimer (X) (à noter que cette opération supprime le point et son point correspondant sur l'autre image)
Lorsque la liste devient trop longue, on peut utiliser les /\ et \/ pour faire défiler la liste des points.

 

ATTENTION : Pour que le script marche bien il faut respecter certaines règles :
* Placer au moins 8 points appariés (qui se correspondent sur les deux images).
* Parmi ces 8 premiers points, on ne doit pas en trouver 4 qui soient coplanaires (contenus dans un même plan). Ce qui n'empèche pas après les 8 premiers points de placer des points qui leur sont coplanaires.
Au mieux cette dernière règle est respectée, au mieux l'objet sera reconstitué.

7. Une fois tout vos points placés (le même nombre sur chaque image), remplissez les boutons de la fenêtre de script :
* Cam vue 1 : Il s'agit du nom de la caméra (objet Blender) qui sera pris pour référence : elle représentera la position de l'appareil photo lors de la première prise de vue.
* Focal : La distance focale de votre appareil photo. Pour les deux images de test fournies, la distance focale était de 35. Pour un appareil photo classique, renseignez vous sur la documentation technique. Pour information la distance focale de mon appareil photo numérique est de 48
* Dist Cam2/1 : il s'agit de la distance entre vos deux appareils photos en unité Blender. Ne vous affolez pas, cette distance n'a pas d'importance primordiale. En effet la scène sera juste transformées en une scène resizé pour deux valeurs différentes.
* Etalon : Pas besoin de toucher ce bouton à moins que de grossières erreurs soient observée lors de la reconstruction. (J'esserai d'en donner une explication si j'explique la théorie du script... autre page web à venir)
* Out : nom du mesh de sortie... Ben là ce que vous voulez ;)


 

8. Voilà tout est prêt !!! Lancez le calcul avec Lauch processing. Normalement la barre de progression vous indique la progression des calculs du script si votre ordinateur est assez puissant. Soyez indulgent sur le temps de calcul : le script effectue 210 le calcul pour optimiser le résultat. Je ferais peut-être une version light du script où il ne l'effectue qu'une seule fois...


Voilà c'est fini. Vous pouvez sortir du script avec la touche Echap.
La fenêtre 3d redeviens normale (vous pouvez supprimer les plans créés et repasser en vue wire)

 

Je ne suis pas vraiment convaincu que ce script puisse acquérir une grande utilité pour la modélisation. Les points créés dépendent de l'endroit où l'on positionne sur les photos. Faire une modélisation propre avec ça est difficile. Par ailleurs l'utilisation du subsurf avec ce script semble difficile : le script fait placer des points par lesquels passent les surfaces alors qu'en subsurf ce sont des points de contrôle que l'on créé. Cependant ce script peut s'avérer utile pour se donner une idée de la dimension d'objet.
Je n'ai pas encore eu le temps de vraiment tester le script. J'apprecierais beaucoup des feedbacks qu'ils soit mauvais ou bons (mon mail).
P our ma part j'ai l'idée de me maquiller en me faisant des traits sur la figures pour pouvoir essayer de reconstituer ainsi mon visage...

Voilà ce script est le travail de toute une année de Maths Spé (MP). Je l'ai présenté à une épreuve de concours pour rentrer en école d'ingénieur (j'ai été admis à Centrale Marseille :) ).
Je tiens à remercier :
* Mes professeurs de Mathématiques et de Physiques du lycée Dumont D'Urville.
* M. Merciber pour sa thèse sur la stéréoscopie dont j'ai tiré les informations necessaires à la compréhension de la stéréoscopie.
* Les excellents tutoriaux du site http://nehe.gamedev.net/ pour l'open GL ainsi que l'équipe de Make Human sans qui je n'aurais jamais su que travailler ainsi en openGl était possible.
* Tout ce que j'oublie (et je m'en excuse) qui ont permi l'aboutissement de ce script.
Voilà il est où l'oscar.... Ah non.... aussi à faire des beaux discours comme ça...

Bugs connus :

...Si nous vivions dans un monde parfait le script ne devrait pas présenter de faille. Cependant les appareils photos de pas très bonne qualité déforment un peu les images. J'ai ainsi fait un test sur vraie photos numérique. L'erreur est inférieure à 3% sur la profondeur. Cependant on observe de légères distortions....
......

Comprendre le script :

A venir....