Scanner 3D

Quand la 3D s'invite en paléontologie...

Les techniques de scan 3D au service de la science...

Reconstitution 3D d'un cafard piégé dans de l'ambre: (Image: European Synchrotron Radiation Facility (ESRF))
Reconstitution 3D d'un cafard piégé dans de l'ambre: (Image: European Synchrotron Radiation Facility (ESRF))

L'ambre est une résine fossile qui a souvent permis de conserver des millions d'années durant des animaux de petite taille, et en particulier des insectes. Largement popularisée dans Jurassic Park, cette propriété pose cependant parfois des problèmes aux paléontologistes, qui cherchent à étudier les animaux emprisonnés dans l'ambre : certains types d'ambre sont opaques, et il est impossible d'observer leur contenu à l'oeil nu. Les rayons X classiques ne permettent pas non plus toujours d'observer les précieux fossiles.

Toutefois, une technique se développe depuis quelques années : en utilisant des rayons X plus énergétiques, on parvient à traverser des matériaux comme l'ambre. En observant le bloc d'ambre sous plusieurs angles, on peut ensuite, à la manière de ce qui se fait pour les scanners, reconstituer en 3D un fossile alors qu'on ne savait même pas si le bloc de départ contenait quelque chose !

Exemples de reconstitutions 3d de fossiles prisonniers de blocs d'ambre opaque: c ) arachnide d) branche de conifère; e) isopode ( famille des crustacés ) f) insecte hyménoptère (famille des abeilles et fourmis) (Image: M. Lak, P. Tafforeau, D. Néraudeau (ESRF Grenoble et UMR CNRS 6118 R
Exemples de reconstitutions 3d de fossiles prisonniers de blocs d'ambre opaque: c ) arachnide d) branche de conifère; e) isopode ( famille des crustacés ) f) insecte hyménoptère (famille des abeilles et fourmis) (Image: M. Lak, P. Tafforeau, D. Néraudeau (ESRF Grenoble et UMR CNRS 6118 R

Les fossiles contenus dans l'ambre ne sont pas les seuls à bénéficier des avancées technologiques ; on peut désormais étudier l'intérieur des dents fossiles sans les ouvrir. C'est une avancée importante, car la structure interne des dents permet, un peu à la manière de la souche d'un arbre, de déduire une foule d'informations sur la vie de l'animal, comme les maladies ou le stress. Auparavant, la seule méthode possible était de couper la dent, ce qui était exclu pour les fossiles importants et rares.

Le site NewScientist a récemment mis en ligne un article sur ces nouvelles techniques (en anglais). Plutôt que de paraphraser son contenu, je vous invite donc à aller le consulter directement.

Pour finir, voici une petite vidéo incluse dans l'article du NewScientist qui présente rapidement ces avancées :

DAVID Laserscanner - petit test express !

Voici le résultat d'un petit test de la nouvelle version de DAVID - Laserscanner, dont j'avais déjà parlé sur ce blog. L'objet scanné est un coquillage d'environ 7 cm de long.

La précision est plutôt bonne étant donné les conditions dans lesquelles j'ai scanné (en particulier, le défilement du laser ligne n'était pas uniforme). On note une grosse imperfection au niveau de l'intérieur du coquillage, causée par le fait que la nacre a réfléchi le laser. David a donc un peu perdu la tête... Une méthode pour contrer ce problème aurait consisté à saupoudrer la nacre de talc.
La partie ronde à la pointe du coquillage n'est pas une anomalie, c'est tout simplement le support sur laquelle était posée la coquille.

D'autres essais viendront, avec sûrement aussi une revue plus détaillée de DAVID !

David : Un scanner 3D un peu moins artisanal.

Dans mon dernier billet, je parlais de Milkscanner, un programme qui permet de scanner des objets pour obtenir une version 3D en utilisant un liquide tel que le lait.

L'idée était intéressante car peu coûteuse, mais elle posait un certain nombre de problèmes, le plus évident étant que l'on ne peut pas tremper n'importe quel objet dans du liquide.

Je suis donc allé voir du côté d'un logiciel que je connaissais depuis un certain temps sans l'avoir testé : DAVID.

DAVID : un scanner 3D avec peu de moyens... mais un peu quand même

DAVID utilise une approche assez classique pour scanner des objets. Une ligne laser est projetée sur l'objet ; une webcam filme le résultat et le programme analyse la déformation de la ligne pour en déduire le relief.

Fonctionnement de DAVIDFonctionnement de DAVID

Sur l'image qui précède, on place aussi un repère placé derrière l'objet ; il sert lors de la calibration de la caméra. En effet, l'objectif crée des déformations, tout comme sur un appareil photo. Le repère permet de calculer ces déformations pour ensuite les éliminer.

Après avoir scanné un objet, on peut l'exporter au format .obj ; il est aussi possible de fusionner le résultat avec d'autres scans de l'objet sous d'autres angles, pour reconstruire l'objet totalement.

L'intérêt de DAVID réside surtout dans son prix : le logiciel en lui-même est gratuit (la fonction de fusion est payante, mais d'autres logiciels gratuits permettent de s'en passer), et donne de bons résultats même avec des lasers bas de gamme. Un niveau laser de bricolage pourra donner de bons résultats !

Quelques tests

Après quelques essais pour se faire la main, on parvient assez facilement à obtenir des résultats intéressants. Les points clés ne résident pas tant dans le matériel que dans la qualité de construction du repère et des manipulation : si les feuilles sur lesquelles sont imprimées le repère sont gondolées ou que l'angle n'est pas de 90°, si on balaie trop rapidement l'objet avec le laser ou que l'angle n'est pas assez grand, les résultats seront médiocres.

Pour preuve, voici mon premier objet scanné ; au départ, il s'agissait d'une sculpture d'éléphant.

Elephant scanné avec DAVID: Un premier test... plutôt raté.Elephant scanné avec DAVID: Un premier test... plutôt raté.

En revoyant la conception du repère et en améliorant les conditions de travail, mais aussi en modifiant les paramètres de la caméra (exposition, luminosité, saturation, etc), j'ai rapidement pu améliorer mes résultats. L'image qui suit est un de mes derniers essais ; il s'agit d'un fossile de trilobite.

Version numérisée du fossileVersion numérisée du fossile

Sur l'image, on note la présence de deux types de trous :

  • Des trous formant des lignes parallèles : ils viennent du fait que lorsque j'ai balayé l'objet, je suis passé trop rapidement sur ces endroits. Pour éviter ces trous, on peut soit effectuer un second balayage, soit scanner plus lentement. S'ils sont suffisamment petits, il suffit d'utiliser la fonction d'interpolation de DAVID, qui comblera les trous.
  • Des gros trous qui sont en fait des ombres portées ; l'objet étant en relief, le laser peut ne pas atteindre toute la surface. Pour supprimer ce défaut, on peut soit balayer une seconde fois en déplaçant le laser, soit tout simplement enregistrer cette passe et en faire d'autres après avoir tourné l'objet. On fusionnera ensuite les passes. C'est cette dernière solution que j'ai choisie.

Au final, on obtient un objet en haute résolution : 250 000 vertex et 500 000 faces pour le modèle de trilobite !

Trilobite: version haute résolution d'un fossile de trilobite ( 8cm de long)Trilobite: version haute résolution d'un fossile de trilobite ( 8cm de long)

Pour des applications temps réel, j'ai enfin réduit la résolution d'un facteur 200 environ.

Trilobite: version low poly du fossile, avec texture et en temps réel.Trilobite: version low poly du fossile, avec texture et en temps réel.

L'objet n'est pas fini, je dois encore générer une normal map à partir de l'objet haute résolution, afin de garder un maximum de détails pour le relief.

Pour en savoir plus

Une seule adresse : http://www.david-laserscanner.com. Vous y trouverez le logiciel, une boutique de lasers, un forum assez réactif en cas de problème et une aide assez détaillée sur la technique.

Milkscanner : un scanner 3D artisanal...

Milkscanner : un scanner 3D avec très, très peu de moyens

Milkscanner est un programme créé par Friedrich Kirschner dont le but est de pouvoir créer des modèles 3D à partir d'objets réels.

Il s'agit donc d'une sorte de scanner 3D, donc, sauf que contrairement aux scanners habituels, l'investissement est ici vraiment très faible, et aucun laser n'est utilisé.

Une heigthmap issue de Milkscanner: un point est d'autant plus proche qu'il est clair.Une heigthmap issue de Milkscanner :
un point est d'autant plus proche qu'il est clair.

Le Bouddha que j'ai utilisé pour créer la carte de profondeur qui précèdeLe Bouddha que j'ai utilisé pour
créer la carte de profondeur qui précède

C'est quoi cette bouteille de lait ? Un scanner 3D...

Milkscanner utilise en fait un constat simple : en plongeant un objet dans l'eau, les points situés à la limite entre partie émergée et immergée sont situés dans un même plan.

Le principe qui en découle est le suivant. On prend un objet que l'on met dans un récipient ; on place une webcam à la verticale de l'objet. On va ensuite alternativement rajouter du lait, prendre une photo, rajouter du lait, ...
La webcam sert à détecter les contours de la partie émergée de l'objet.

Si à l'étape n un point est émergé, on lui attribue le niveau de gris associé à l'étape n. En n+1, s'il est immergé, on ne le change pas : on sait que sa distance est celle du lait en n. S'il est émergé, on le met à jour avec le niveau de gris en n+1.

Ainsi, si on a un objet d'épaisseur 5 cm et que l'on rajoute approximativement 1/4 de cm de lait à chaque étape, on obtient une image comportant une vingtaine de niveaux de gris. Un point sera d'autant plus éloigné qu'il est foncé.

La précision dépend directement de la résolution de la webcam et du nombre de niveaux de mesures.

Milkscanner en action

Histoire de rendre les explications plus concrètes, voici deux vidéos de Friedrich Kirschner.
Tout d'abord, Milkscanner utilisé sur un petit objet :

Sur l'écran, on voit l'interface du logiciel : à gauche la vue de la webcam avec le contour de la partie émergée, à droite la heightmap en cours de construction.

Un inconvénient de la méthode étant que des objets clairs peuvent se confondre avec la luminosité du lait, il est possible d'utiliser un liquide foncé, comme dans cette vidéo :

Avantages et inconvénients

Milkscanner a l'avantage d'être simple dans son principe et d'utiliser un matériel très peu cher.

Les inconvénients sont malheureusement nombreux :

  • le résultat est une heightmap, pas un objet 3D. Il faudra convertir le résultat. Ceci est néanmoins facile avec beaucoup de logiciels, par exemple en tant que displacement map ;
  • la tension superficielle diminue la précision pour des objets de petite taille. ;
  • impossible de scanner des objets qui craignent l'immersion ;
  • L'astuce vue plus haut pour les objets clairs (utiliser un liquide foncé) fonctionne bien pour des objets unis. Pour un objet comportant par exemple du noir et du blanc, la détection a de fortes chances d'échouer. Il faudra ruser ; on peut imaginer de faire deux passes (liquide blanc puis foncé) pour ensuite fusionner les deux cartes obtenues.

Pour en savoir plus

Syndiquer le contenu