Modifications

Aller à : navigation, rechercher

Scan3D

4 892 octets ajoutés, 10 mars 2015 à 16:12
kinect
[http://forum-micmac.forumprod.com/how-to-takes-photos-for-micmac-tutorial-t174.html tutoriel en anglais]
 
====Compilation de MicMac====
 
path2repertoire : repertoire d'installation du bidule
 
 
cd path2repertoire
 
hg clone https://culture3d:culture3d@geoportail.forge.ign.fr/hg/culture3d micmac-hg
 
cd micmac-hg
 
mkdir bin
 
mkdir build
 
cd build
 
cmake ../ -DWITH_INTERFACE=1
 
make -j2
 
make install PREFIX=path2repertoire/micmac-hg/bin
 
notes :
 
- hg sous fedora est dans le paquet mercurial
 
- l'option -DWITH_INTERFACE=1 permet d'activer la compilation de l'interface graphique
 
- l'option -j2 compilation pour un cpu double cœur
 
- l'option install PREFIX=path2repertoire/micmac-hg/bin fait l'installation dans le répertoire path2repertoire/micmac-hg/bin
 
====bouddha====
 
c'est le fichier exemple fourni sur le site de l'ign:
 
[[image:bouddha.jpg|400px]]
 
Ceci est une des 30 images des données de départ
 
[[image:boudha.meshlab.png|400px]]
 
le nuage de points dans meshlab
 
Ceci m'a permis de tester la reconstruction dans meshlab, avec le filtre "surface reconstruction poisson"
 
[[image:Bouddha.render.png|400px]]
 
Le rendu est très satisfaisant mais,
même si j'ai réussi à le mettre en oeuvre, j'ai eu du mal à comprendre les réglages à réaliser.
 
à creuser...
====interface graphique====
j'ai trouvé une interface graphique : http://www.micmac.ign.fr/svn/micmac_data/trunk/DocInterface/
 
mais le fichier compilé contient un bug...
===VisualSFM===
==expérience avec la Lumière structurée==
Cette technique offre plusieurs avantages :
J'avais déjà découvert cette technique en visitant l'institut [http://www.pprime.fr/?q=fr/la-photomecanique P Prime ] à poitiers, qui l'utilise pour mesurer les déformations des matériaux.
J'ai téléchargé et exploré le [http://academy.cba.mit.edu/classes/scanning_printing/light/index.html programme de Neil], pour voir jusqu'où je pouvais aller.
C'est donc un programme en cours de construction que j'ai exploré.
Comme j'étais chez moi sans les outils pour réaliser une capture, j'ai commencé par me focaliser sur le traitement du fichier de capture pour obtenir un fichier stl.
 
===process de traitement===
 
Habitué à traité les images, j'ai trouvé simple de traiter l'essentiel des données sous cette forme, avant la transformation en stl.
 
Les fichiers de départ sont le "diffs.png" et une image recomposée d'un scan d la zone vide.
 
[[image:3Dscan.structuredLight.Process.png|1200px]]
 
Les traitements ont été réalisés dans gimp, mais certains pourraient être automatisés, notamment à l'aide de la librairie opencv (déjà utilisée dasn le programme de Neil).
 
Pour le passage du png en stl, j'ai utilisé le programme '''png_stl'''
 
la dernière étape (visible sur l'image) a consisté à appliquer un modifieur "smooth" sous blender.
 
Le résultat n'est pas si mal, mème si la régularité de la surface laisse encore à désirer.
 
===Prise de vue===
 
Revenu à l'atelier, j'ai installé un dispositif pour réaliser une prise de vue expérimentale.
 
* un videoprojecteur
* une webcam HD (logitech hd1080)
 
 
[[image:Structuredlight.All_color.png|400px]]
 
 
après quelques réglages, notament le réglage manuel de la caméra via guvcview, j'ai obtenu les images suivantes :
 
la théière :
./coord teapot/teapot.png 0 /dev/video2
 
 
[[image:structuredlight.Teapot.png|400px]]
 
le fond vide :
./coord teapot/empty.png 0 /dev/video2
 
[[image:structuredlight.Empty.png|400px]]
 
j'ai mélangé ces images : soustraction puis addition de teapot en "éclaircir seulement", puis re-soustraction du fond vide :
 
[[image:Structuredlight.Teapot.sub.jpg|400px]]
 
enfin, quelques retouches manuelles :
 
[[image:structuredlight.Teapot.clean.png|400px]]
 
le fichier est alors converti en stl avec la commande
./png_stl teapot/teapot.clean.png teapot/teapot.stl 5
 
[[image:structuredlight.Teapot.stl.render.png|400px]]
 
Dans blender j'ai rajouté un modifieur "smooth" à 1.8 et 5 passes.
 
 
Dans meshlab :
 
Filters > Smooth... > Laplacian smooth =10
 
puis
 
Filters > Remeshing, simplification and construction > Quadratic Edge Collapse Detection
 
paramètres :
30% de reduction
quality : 0.7
optimal position of simplified vertices = 1
post-simplification cleaning
 
https://www.inkling.com/read/making-things-see-borenstein-1e/chapter-5/reduce-polygons-in-meshlab
 
le résultat est encourageant. il faudrait améliorer les conditions de prise de vue :
* noir complet lors de la prise de vue
 
et effectivement la parallaxe est génante.
 
==kinect==
 
Le capteur kinect est adapté pour scanner des formes à échelle humaine.
 
J'ai utilisé openkinect (freenect) avec l'utilitaire fakenect record, qui produit des capture brutes sous forme d'image png.
 
 
Les scans bruts sont très bruités et avec des trous liés aux zones d'ombres de la projection infrarouge.
 
[[image:D-1393711530.532692-2359237902.png|400px]]
 
Pour améliorer le rendu, j'ai empilé des scans en "assombrir seulement" avec gimp.
 
après quelques retouches manuelles j'ai obtenu un fichier à peut près propre
 
[[image:kinect.Composite.png|400px]]
 
après une transformation en stl avec l'utilitaire de Neil (png_stl) j'ai obtenu un fichier 3D exploitable
 
[[image:Kienct.render.png|400px]]
 
Dans blender, j'ai ajouté ici aussi un filtre "smooth" et "solidify", pour exporter un fichier stl imprimable.
 
(il est vrai que ça aurai été mieux si j'avais été chez le coiffeur)
 
Mon égo n'est pas assez développé pour que j'imprime mon effigie, mais j'ai validé que ce fichier est imprimable
 
[[image:Kinect.printable.png|400px]]
 
[[Catégorie:FabAcademy]]
 
 
===autres pistes et ressources===
http://pointclouds.org/
0
6 691
modifications

Menu de navigation