• Aucun résultat trouvé

Les limites des méthodes de reconstruction par triangulation directe ont poussé au dévelop-pement de techniques mieux adaptées aux données bruitées comme le power crust d’Amenta et al.[2001] ;Mederos et al.[2005] et le Cocone deDey et al.[2001] ;Dey et Goswami[2003]. La technique de reconstruction de données naturelles adoptée dans le logiciel GOCAD est de construire une surface triangulée au maillage Delaunay par approximation grossière des données, puis de la raffiner et de l’ajuster petit à petit aux données [Lévy et Mallet, 1999]. Cette méthode permet de parfaitement contrôler la résolution de la surface reconstruite : la surface initiale peut être très grossière et loin des données puis, par densification et ajustements aux données successifs, la surface est progressivement raffinée jusqu’à ce que sa résolution soit satisfaisante et que les données soient suffisamment bien respectées.

2.2.1 Construction d’une surface par approximation des données

La première étape de cette méthode de reconstruction indirecte est la création de la sur-face initiale. La solution utilisée en général dans GOCADprovient de l’enveloppe convexe des données (figure2.1(b)), qui est ensuite ré-échantillonnée (figure2.1(c)) puis triangulée à la ré-solution choisie par une méthode de Delaunay. La surface résultante est proche du plan moyen des données et son étendue est définie par leur extension, mais elle peut localement être très loin des données (figure2.1(d)).

2.2. Approximation des données par surface triangulée

(a) (b)

(c) (d)

FIG. 2.1 : Construction d’une surface initiale par approximation des données. (a) Les données sont très denses (83648 points) et très bruitées. (b) Enveloppe convexe des données. (c) Ré-échantillonnage régulier de l’enveloppe convexe à la résolution spécifiée par l’utilisateur. (d)

Construction d’une surface par triangulation de l’enveloppe convexe ré-échantillonnée.

2.2.2 Ajustement de la surface aux données

Une fois la surface initiale créée, elle est déformée pour approximer au mieux les données. La méthode employée dansGOCADest l’interpolation lisse discrète (DSI pour Discrete Smooth Interpolation) [Mallet, 1989, 1992, 2002a]. Cette méthode interpole la géométrie d’objets ou des valeurs de propriété en respectant un jeu de contraintes au sens des moindres carrés. Deux versions sont actuellement implantées dansGOCAD: une version itérative, où les équations sont résolues en chaque noeud du maillage tour à tour, et une version matricielle, où les contraintes sont traduites sous forme d’un système linéaire à résoudre pour obtenir la solution. Pour des raisons techniques de rapidité et de capacité mémoire des machines de calcul, seule la version itérative était disponible jusqu’en 2004.Cognot[1996] en propose une amélioration en utilisant des principes dérivés de l’algorithme du gradient conjugué, mais toujours en limitant l’utilisa-tion de la mémoire, ce qui augmente néanmoins significativement la vitesse de convergence. L’implémentation de la version purement matricielle, nommée MxDSI, a redémarré lorsque les performances du matériel informatique sont devenues suffisantes [Muron et al.,2005].

Pour ajuster une surface triangulée à un jeu de données, une contrainte DSI impose aux données d’attirer la surface selon une direction de projection [Mallet, 2002a]. Au début de l’interpolation, cette direction correspond à la normale au plan moyen des données. Au fur et à mesure que l’interpolation progresse, la direction d’attraction est mise à jour de manière à ce que chaque point de donnée attire le triangle qui lui est le plus proche. Une contrainte de rugosité

(a) (b)

FIG. 2.2 : Ajustement d’une surface aux données par DSI. (a) Surface initiale construite par la méthode détaillée au paragraphe2.2.1.(b)Résultat de l’ajustement après 10 itérations de DSI.

impose à la surface de rester le plus lisse possible. Ces différentes contraintes peuvent être pondérées de manière à obtenir l’intermédiaire désiré entre une surface anguleuse qui respecte tous les points de données (si sa résolution est suffisante) et une surface lisse.

L’utilisation de l’implémentation itérative de DSI sur des données telles que celles présen-tées à la figure 2.2soulève deux problèmes. Premièrement, le temps passé à l’installation des contraintes et à la mise à jour des directions de projection à chaque itération dépend directement du nombre de points de données, qui peut être très élevé, notamment pour des données issues de la sismique (83 648 points ici). L’installation des contraintes sur ce jeu de données a pris en-viron 11 secondes sur un Intel Dual Xeon 2.40 GHz – 2.39 GHz 2.00 GB RAM sous Windows XP SP2 n’utilisant qu’un de ses deux processeurs, et le calcul de 10 itérations de DSI environ 10 secondes. Lorsque le jeu de données comporte de nombreux nuages de points comparables à celui-ci, les temps de calcul deviennent rapidement très importants. Deuxièmement, la conver-gence à la solution est définie comme le moment où, après une itération supplémentaire de DSI, le résultat n’a pas changé. L’utilisateur doit donc estimer le nombre d’itérations requises puis juger du moment où la convergence est atteinte en comparant visuellement ou par un calcul d’erreur la surface avant et après une itération supplémentaire.

2.2.3 Ajustement d’une surface aux données par MxDSI

Les deux problèmes soulevés par l’approche utilisant la version itérative de DSI ont pu être résolus au cours de cette thèse pour des surfaces univaluées en utilisant la version matricielle MxDSI [Tertois et Mallet, 2005]. La normale au plan moyen des données est utilisée comme vecteur d’attraction. Au lieu d’interpoler la géométrie de la surface en trois dimensions, seule une propriété scalaire représentant la distance aux points le long de cette normale est interpolée sur la surface.

La formulation matricielle de DSI étant utilisée plusieurs fois dans ces travaux de thèse, elle est brièvement décrite ici dans le cadre d’approximation de surfaces.

2.2. Approximation des données par surface triangulée Version matricielle de la méthode d’interpolation lisse discrète

La méthode DSI interpole une fonction d’un ensemble fini de noeuds connectés représentant un modèle linéaire [Mallet,1989,1992,2002a] qui est ici le maillage de la surface. Les noeuds du modèle sont les sommets des triangles de la surface, les connexions des noeuds sont les arêtes des triangles et la fonction interpolée est la distance entre les points de données et la surface. DSI minimise le degré de violation de contraintes imposées au modèle linéaire par la résolution du système d’équations

Atc1 · ϕ ≃ bc1 ... At

ck · ϕ ≃ bck ,

(2.1) avec Aci un vecteur contenant les coefficients de la contrainte ci en chaque noeud du modèle, par exemple la contrainte d’attraction des données, ϕ la fonction inconnue aux noeuds, ici une fonction scalaire représentant la distance aux données, et k le nombre de contraintes sur la fonction ϕ. Le but de l’interpolation DSI est de trouver, pour chaque contrainte ci, la valeur de ϕpour laquelle la combinaison linéaire des valeurs At

ci · ϕ est la plus proche de la valeur cible bci.

Afin d’y parvenir, on définit un critère de violation de ces contraintes Q, qui s’exprime de la manière suivante : Q(ϕ) = k X j=0 kAt cj· ϕ − bcjk2 . (2.2)

Résoudre le système linéaire2.1au sens des moindres carrés revient à minimiser le critère Q. La forme développée de kAt cj · ϕ − bcjk2est : kAt cj · ϕ − bcjk2 = ϕt· (Acj · At cj) · ϕ − 2(bcj· At cj) · ϕ + b2cj , (2.3) ce qui suggère l’introduction d’une matrice carrée symétrique [A] et d’une matrice colonne B telles que : [A] =Pk j=0Acj· At cj , B =Pk j=0bcj· Acj . (2.4)

Minimiser le critère Q défini à l’équation2.2revient alors à minimiser le critère J défini par l’équation suivante :

J(ϕ) = 1 2ϕ

t· [A] · ϕ − Bt· ϕ . (2.5)

Il existe de nombreuses méthodes pour résoudre ce type de système [Botsch et al., 2005]. Dans MxDSI, un algorithme de gradient conjugué [Shewchuk, 1994] est utilisé pour calculer une solution approchée de l’équation2.5.

(a) (b)

FIG. 2.3 : Ajustement d’une surface à des points de données par MxDSI. (a) Surface initiale construite par la méthode exposée au paragraphe 2.2.1. La propriété de distance aux données selon la normale a été calculée par MxDSI et est représentée sur la surface.(b) Surface ajustée aux points de données en déplaçant les noeuds selon la normale et la valeur de la propriété de distance.

Utilisation de MxDSI pour l’ajustement de surfaces aux données

Une surface initiale est tout d’abord construite comme présenté au paragraphe 2.2.1. Puis les points de données sont parcourus une seule fois lors de l’installation de la contrainte MxDSI qui impose la valeur de la propriété de distance des points à la surface. Comme la propriété de distance est unidimensionnelle, son interpolation par MxDSI est très rapide. Les points de la sur-face sont ensuite déplacés le long de la normale en utilisant la propriété de distance calculée aux noeuds de la surface. Le résultat présenté en figure2.3a été calculé en environ trois secondes sur le jeu de données et la machine qui avaient été utilisés pour l’ajustement par DSI réalisé en 21 secondes. La surface ajustée aux données est de qualité comparable au résultat obtenu par DSI (figure2.2), avec la certitude que la solution a été effectivement atteinte (comparer les résultats des figures2.2(b), après dix itérations de DSI, et2.3(b), après convergence de MxDSI). Le gain de temps par la méthode MxDSI est appréciable lorsque les données comportent de nombreux nuages de points denses.

Les résultats sont bons pour des surfaces univaluées pour lesquelles la normale au nuage de points peut être utilisée mais les surfaces telles que des dômes de sel ne peuvent pas être reconstruites par cette méthode. Pour ces surfaces géologiques complexes, d’autres méthodes doivent être adoptées.