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))
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
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 :
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 !
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 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 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 !
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é.
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 fossile
Sur l'image, on note la présence de deux types de trous :
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)
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.
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.
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 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.
Le Bouddha que j'ai utilisé pour
créer la carte de profondeur qui précède
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.
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 :
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 :