• Aucun résultat trouvé

Calcul d’une représentation simpli…ée

6.1.1 Choix d’un modèle

Le problème consiste à dé…nir pour chacune desI entitésvid’une plante à une échelle macro-scopique, un modèle géométrique pour la représenter. Nous disposons donc d’un certain nombre de familles de modèles géométriques Ml (cylindre généralisé, enveloppes,etc.). Nous notonsM

l’ensemble de tous les modèles contenus dans toutes les familles de modèles géométriques :

M=fmp :j:9lp; p mp =Mlp( p)g

Chacune de ces familles est paramétrique, et en …xant la valeur du paramètre, nous obtenons un modèle géométrique particulierm0 =Ml0( 0). Grâce aux di¤érentes familles de modèles, nous pouvons trouver P modèles géométriques particuliers mp pour représenter une entité.

Pour chaque modèle, nous dé…nissons une fonction de coût c(vi; mp) et une fonction de "consigne" k(mp). La fonction de coût c(vi; mp) estime la qualité de la représentation de vi par le modèlemp. Pour calculer des représentations macroscopiques, nous utilisons des algorithmes d’inférence (comme par exemple ceux donnés au chapitre précédent). Une méthode classique pour estimer la qualité d’un modèle inféré est d’utiliser la distance des points approchés au modèle. La fonction de consigne k(mp) donne la complexité du modèle mp, dé…nie comme la quantité d’information nécessaire pour dé…nirmp. Cette fonction permet de dé…nir le niveau de cette caractéristique que l’on veut imposer à la solution.

6.1.2 Contrôler la complexité de la représentation

Notre problème consiste à attribuer à chaque entitévi un modèle particuliermpi. L’ensemble des modèles choisis forme le modèle représentant la plante

m(g) =

I

[

i=1

mpi

Le modèle de plante a une fonction de consigne et une fonction de coût dé…nies par

K(m(g)) =k( I [ i=1 mpi) = I X i=1 k(mpi) etC(m(g)) = I X i=1 c(mpi)

Le choix du modèle attribué à chaque entité est fait en se servant des fonctions de consigne et de coût dé…nies ci-dessus de manière à minimiser le coût total de la représentation.

En fonction de ses exigences, l’utilisateur va pouvoir contrôler la représentation en …xant une valeur globaleK0. Une contrainte globale est ainsi créée : la somme des valeurs prises par la fonctionk pour chaque modèlempi représentant l’entitévi devra être égale ou quasiment égale à K0 :

K(m(g)) =K0

Dans le cas de la compression d’information,K0 est généralement exprimée en fonction d’un ratio (appelé taux de compression) par rapport à la quantité d’information en entréeKinit :

= Kinit

K0

L’algorithme devra trouver une représentation qui minimise l’ensemble des coûts et dont la somme des tailles des paramètres des modèles devra être égale à K0. Le problème revient donc à calculer la représentation qui minimise une fonction de coût global :

min fp1;p2;:::;pIg2MI I X i=1 c(vi; mpi)

6.1. Calcul d’une représentation simpli…ée sous la contrainte I X i=1 k(vi; mpi) =K0

Une solution à ce problème nous donnera un ensemble de couple (vi; mpi). L’ensemble des

mpi formant la représentation voulue à l’échelle sde la plante.

S=fp1; p2; :::; pIg= arg min fp1; p2; :::; pIg 2 MI I X i=1 c(vi; mpi) 6.1.3 Les modèles

Nous nous sommes plus particulièrement intéressés dans ce chapitre à la représentation de structures linéiques tels que les axes. Notre approche s’appuie sur les cylindres généralisés [Bloomenthal, 1995] et un algorithme d’approximation. A partir d’une représentation détaillée à l’échelle des entre-nœuds, cet algorithme est utilisé pour calculer une représentation simpli…ée à l’échelle des axes. Chaque série d’entre-nœuds formant un axe est utilisée pour calculer un cylindre généralisé de complexité et de qualité plus ou moins grande.

Les cylindres généralisés

Les cylindres généralisés (extrusions) sont dé…nis par un axe principalC (ou squelette, une courbe géométrique 3D), une sectionS(une courbe 2D), et éventuellement une suite de transfor-mations T dé…nies sur un intervalle (souvent normalisé :[0;1]) [Bloomenthal, 1995]. Ce type de modèle fait partie des modèles construits par balayage. La représentation est en e¤et construite en plaçant et orientant la section S suivant le squelette C (et éventuellement en appliquant la transformation correspondante de T) (voir section 3.2.2). Ce modèle est particulièrement utile pour représenter globalement la géométrie des branches [Bloomenthal, 1985].

Le squelette de ce modèle peut être une courbe géométrique 3D quelconque. Nous considérons 3 types de courbes : les courbes polygonales (Polyline), les courbes de Bézier et les B-Splines. Lescourbes polygonales sont dé…nies par une suite de points 3D reliés entre eux. D’autres types de courbes auraient pu être considérés (comme par exemple les Cardinal Splines).

Les courbes de Bézier

Unecourbe de Bézier de degrénest dé…nie par

C(u) =

n

X

i=0

Bi;n(u)Pi avec 0 u 1

où les Bi;n(u) sontles polynômes de Bernstein de degré n donnés par

Bi;n(u) = n!

i!(n i)!u

i(1 u)n i

et les coe¢ cients géométriques fPig appelés les points de contrôle. Dans ce modèle, tous les points de contrôle contribuent à la position de tous les points de la courbe.

Les B-Splines

Pour obtenir une in‡uence plus locale des points de contrôle, les B-Splines ont été dé…nies de la manière suivante C(u) = n X i=0 Ni;p(u)Pi avec a u b

avec les fPig des points de contrôle et les fNi;p(u)g des fonctions de base B-Spline de degré p

dé…nies sur un vecteur de nœuds non-périodique

U =f a; :::; a

| {z } ; up+1; :::; un p 1; b; :::; b| {z } g

p+ 1 p+ 1

où a a généralement pour valeur 0 etb 1. Laième fonction de base d’une B-Spline de degré p, notée Ni;p(u) est dé…nie par récurrence de la manière suivante :

Ni;0(u) = 1 0

si ui u < ui+1

sinon Ni;p(u) = u ui

ui+p uiNi;p 1(u) + ui+p+1 u

ui+p+1 ui+1Ni+1;p 1(u)

Il est à noter que les B-Splines sont en fait une généralisation des courbes de Bézier. Une courbe de Bézier avec un degré n etn+ 1 point de contrôle correspond à une courbe B-Spline avec les mêmes paramètres et un vecteur de nœuds uniforme.

Complexité des di¤érents modèles

La complexité de chacun de ces modèles, que nous dé…nissons comme la quantité d’informa-tion nécessaire pour dé…nir leur paramètre, est résumée dans le tableau suivant :

Nom du Modèle Taille des paramètres

Ligne polygonale 3nFloats

Courbe de Bézier 3(deg+ 1) Floats +1Int Courbe B-Spline 3n Floats + 1 Int +(n+deg) Floats

avec n le nombre de points (de contrôle pour les courbes de Bézier et les B-Splines) et deg le degré.

Algorithme d’inférence

La géométrie des entre-nœuds donne une suite de points (points base et sommet de chaque tronc de cône) et de sections (que l’on peut considérer de même forme circulaire avec des di-mensions di¤érentes) comme le montre la Figure 6-1.a. La suite de points forme une courbe polygonale qui représente l’axe principal du modèle. A…n de lisser les données et d’obtenir une représentation plus continue, les points peuvent être ajustés par une courbe B-Spline. En e¤et, les données peuvent contenir du bruit, notamment dans le cas de données digitalisées. L’algorithme d’ajustement que nous avons utilisé est celui proposé par Piegl et Tiller [Piegl and Tiller, 1997]. Cet algorithme calcule une approximation par une B-Spline de la suite de points.

Contrairement à l’interpolation, la courbe ne va pas forcement passer par les points donnés mais plutôt les approcher et essayer de récupérer la forme générale induite par ces points. Le calcul de l’approximation est contrôlé par un nombre de points de contrôlenet un degré (généra-lement …xé à 3). Soit Q0; :::; Qp (p > n) lesp points à approcher. L’algorithme d’approximation consiste à trouver la courbeC avec npoints de contrôle qui minimisent la distanceedes points en entrée à la courbe (eest égale à la somme des distances des points à la courbe).