• Aucun résultat trouvé

4.3 Paramétrisation et distance pour chaque primitive

4.3.3 Gradient des distances aux primitives

Equations pour chaque primitive

Pour chaque primitive, les dérivées premières de la métrique par rapport aux paramètres ont été calculés analytiquement. Les équations obtenues sont présentées dans l’annexeA.

Concernant les problèmes de singularités dus à la distance exacte

Pour les primitives introduites ici, on peut en général écrire la distance exacte sous la forme :

d(x, P) =g + h (4.13)

où g et h sont deux fonctions à valeurs dans R, dépendant de x et des paramètres de P, de classe

C

1 sur l’espace de paramètres Rp. A titre d’exemple, dans le cas du cylindre, la distance se met sous cette forme avec g = (x.v − a)2+ (x.w − b)2et h = −r. Formellement, le gradient d’une telle fonction s’écrit alors : d0= g 0 2√g+ h 0 (4.14) Etant donné que l’expression du gradient comporte un dénominateur (dû à la racine carrée), il convient de connaître son comportement lorsque ce dénominateur s’annule. En effet, considérons la fonction coût F correspondant à la méthode des moindres carrés :

F = N

i d2i Le terme d2i s’écrit (√gi+ hi)2= gi+ h2i + 2 √

gihi, qui fait encore intervenir une racine carrée. For-

mellement, le gradient de la fonction coût s’écrit donc : F0= N

i=1 [g0i+ 2hih0i+ 2 √ gih0i+ hi g0igi ]

On voit que le dernier membre fait toujours intervenir le dénominateur issu de la racine carrée. En réalité, on peut spécifier un peu plus précisément la forme de la distance exacte, du moins pour les primitives introduites section4.1.1. En effet, dans tous les cas sauf celui du cône, la distance peut se mettre sous la forme :

d(x, P) =

q

g2

1+ g22+ g23+ h où g1, g2, g3et h sont des fonctions

C

1 sur l’espace de paramètres Rp.

Remarque:

notons que ceci est plus restrictif que la forme de l’équation4.13. En effet, si le paramètre est t ∈ R et g(t) = t, alors g est

C

1, mais ne peut pas s’écrire sous la forme d’une somme des carrés g21+ g22+ g23de fonctions

C

1, puisque√t n’est pas dérivable au point t = 0.

Or, on montre la propriété suivante : Propriété 1 Soit d(x, P) =

q

g2

1+ g22+ g23+ h où g1, g2, g3 et h sont des fonctions

C

1 sur Rp. S’il existe un point a0de l’espace de paramètres où le terme g21+ g22+ g23s’annule, alors le gradient de la distance d est en général indéterminé, mais borné.

110 CHAPITRE 4. AJUSTEMENT DE PRIMITIVES

Preuve:

Formellement, on peut écrire

d0= g1g 0 1+ g2g02+ g3g03 q g2 1+ g22+ g23 + h0

Au voisinage du point a0, on peut poser g1=ε1, g2=ε2, g3=ε3, oùε1,ε2,ε3sont des infiniment petits. Par hypothèse de continuité, les gradients g0iprennent une valeur bornée au point a0. Au voisinage de a0, on a donc :

d0=ε1g 0 1(a0) +ε2g 0 2(a0) +ε3g 0 3(a0) q ε2 1+ε22+ε23 + h0

D’où, en appliquant l’inégalité triangulaire et en posant γ= max(kg01(a0)k, kg02(a0)k,

kg0 3(a0)k), : kd0k ≤γ|εq1| + |ε2| + |ε3| ε2 1+ε22+ε23 + kh0k

où k.k désigne ici la norme euclidienne de Rp. Or, par propriété d’équivalence des normes

N1 (|x| + |y| + |z|) et N2 (

p

x2+ y2+ z2) sur l’espace de dimension finie R3, il existe un k > 0 tel que :

1| + |ε2| + |ε3| ≤ k q

ε2

1+ε22+ε23 Ce qui montre que le gradient d0est borné.

Il est par contre indéterminé, puisque les termesεi peuvent varier indépendamment.

Pour s’en convaincre, il suffit de choisirε2= µε1etε3=νε1où µ etνsont des paramètres réels. On a alors (siε1> 0, ce qui n’est pas restrictif) :

d0=p 1

1 + µ2+ν2[g

0

1(a0) + µg02(a0) +νg03(a0)] + h0

Ceci correspond au fait que les différentes dérivées directionnelles de d sont toutes définies mais ne sont en général pas égales en un tel point de l’espace des paramètres. En conséquence, le gradient n’est pas prolongeable par continuité au voisinage d’un tel point dans l’espace de paramètres.

Remarque

On pourrait en fait montrer le même résultat pour toute fonction d =g + h, où g =rig2

i

est une somme finie de carrés de fonctions

C

1 sur l’espace de paramètres. Ceci n’est pas utile pour nos primitives, aussi s’est-on limité à montrer cette propriété pour une somme de 3 carrés seulement.

Afin de visualiser cette propriété, prenons l’exemple d’un cylindre où seuls les paramètres (a, b) sont autorisés à varier (les autres étant fixés aux vraies valeurs). De manière équivalente, on peut considérer le cas d’un cercle en 2D, de rayon r fixé, et dont seul le centre (a, b) peut se déplacer. La distance exacte (signée) du point (x, y) au cercle de centre (a, b) et de rayon r fixé s’écrit :

4.3. PARAMÉTRISATION ET DISTANCE POUR CHAQUE PRIMITIVE 111

Le graphe de d(x, y, a, b) en fonction de (a, b) est dessiné figure4.14. Le profil est un cône circulaire dont le sommet se trouve en (x, y). Comme on peut le voir sur la figure4.14, le gradient de d(x, y, a, b) par rapport à (a, b) est simplement la projection de la ligne de plus grande pente le long du cône au point (a, b, d(x, y, a, b))T. On perçoit alors clairement la singularité au niveau du sommet du cône : au voisinage de ce point, les gradients sont distincts suivant le côté du cône. Les projections sur le plan sont donc également distinctes.

? a y x d b

FIG. 4.14 – Graphe de d(x, y, a, b) en fonction de (a, b) et visualisation de la singularité en (a, b) =

(x, y).

Il reste maintenant à montrer que la distance exacte pour les primitives introduites4.1.1peut bien s’écrire, dans chaque cas, sous la forme ci-dessus. C’est ce qui est reporté dans le tableau4.2, où les termes g1, g2, g3, h ont été explicités pour chaque primitive. Les primitives contraintes étant des cas particuliers des primitives libres, les lieux de singularités correspondent aux mêmes lieux de R3. Ils sont différents simplement en ce qu’ils se situent dans des espaces de paramètres différents.

Remarque:

Pour le cas du point, de la droite, du plan et du cercle en 3D, les singularités correspondent au lieu de l’espace des paramètres tel que le point x se trouve exactement sur la primitive elle-même (ensemble de niveau zéro). Dans les autres cas, les singularités sont éloignées des primitives. Il est d’ailleurs intéressant de noter que sphère et point, cylindre et droite, tore et cercle sont respectivement des ensembles de niveaux (level-set) des mêmes hyper- surfaces.

En conclusion, pour les primitives introduites, le gradient de la distance exacte par rapport aux paramètres n’est pas continu sur tout l’espace de paramètres. En effet, il existe des singularités, c’est- à-dire des points de l’espace de paramètres où ce gradient n’est pas prolongeable par continuité, tout en restant fini au voisinage de ces points.

En pratique Dans notre implémentation, l’évaluation du gradient de d(x, P) par rapport aux para- mètres de P tient compte des éventuelles singularités de la manière suivante : lorsque l’on se trouve à une telle singularité (c’est-à-dire en un point de l’espace de paramètres où g = 0 dans l’équation4.13), on attribue la valeur 0 aux composantes du gradient de d qui sont indéterminées en ce point (c’est-

112 CHAPITRE 4. AJUSTEMENT DE PRIMITIVES

TAB. 4.2 – Décomposition et singularités de la distance exacte pour chaque primitive Primitive

P

Param. a ∈ Rp

g1 g2 g3 h Lieu des singularités

Point 3D c (x − c).ex (x − c).ey (x − c).ez 0 Ce même point (c tel que

c = x) Droite

3D

a, b,θ,φ (x.v) − a (x.w) − b 0 0 Cette même droite

(a, b,θ,φ tel que x ∈ Droite)

Cercle 3D

c,θ,φ, R d(x, cyl) (x − c).u 0 0 Ce même cercle (c,θ,φ, R

tel que x ∈ Cercle)

Sphère c, r idem point −r Le centre (c, r tel que

c = x) Cylindre a,b,θ,φ,

r

idem droite −r L’axe (a, b,θ,φ, r tel que

x ∈ Axe)

Cône c, θ,φ,

α Terme1 : d(x, cyl) puis OK car produitet somme par fonctions

C

1

Demi-axe (c,θ,φ,α tel que x ∈ Axe)

Tore c, θ,φ,

R,r

idem Cercle 3D −r Cercle directeur

(c,θ,φ, R, r tel que x ∈ Cercle)

à-dire pour les paramètres qui apparaissent dans la fonction g). Les termes correspondants de la hes- sienne, qui n’est ici estimée qu’à partir des dérivées premières, sont également nuls en ces points.

Ceci ne semble pas poser problème en pratique, et ce pour deux raisons essentielles. Tout d’abord, comme remarqué précédemment, les lieux de singularités sont éloignés des primitives surfaciques. Aussi, lorsque des valeurs initiales correctes sont fournies, l’algorithme n’explore-t-il normalement pas les zones de singularités. D’autre part, si l’on se trouve près d’une discontinuité pour une fonction

di= d(xi, P), l’importance de cette discontinuité se trouve grandement atténuée par la somme de tous

les autres termes correspondant aux autres dj = d(xj, P), qui eux correspondent peu probablement à

une zone de singularité. Ce phénomène est d’autant plus vérifié que le nombre de points est grand (le nombre de points sur lequel on estime des primitives est souvent de l’ordre de 100).

Par contre, ceci peut éventuellement poser problème d’une part si l’on travaille avec peu de points, et d’autre part si l’on s’oriente vers des méthodes d’optimisation globale (par exemple : analyse par intervalles), auquel cas tout l’espace de paramètres est scruté.

Une alternative à l’approche proposée consiste à éliminer la racine carrée (responsable des dénomi- nateurs dans le gradient) de la fonction distance, en considérant une approximation de la distance exacte dans le formalisme des moindres carrés. C’est l’approche suivie dans [LMM98, LMM97,

MLM01], où l’on considère non plus la distance exacte d =g − h mais l’approximation

˜

d = g − h

2 2h

Cette fonction distance ˜d a les même zéros que la distance exacte d, et en ces points son gradient par

4.3. PARAMÉTRISATION ET DISTANCE POUR CHAQUE PRIMITIVE 113

compare les graphes de d et de ˜d dans l’exemple du cercle vu précédemment. La figure4.15montre en outre un fait intéressant : la distance ˜d a tendance à donner plus d’importance aux valeurs extrêmes

(pour lesquelles d > 0) que la distance exacte d. Ceci signifie que la fonction coût associée sera encore davantage sensible aux points aberrants que ne l’est la fonction coût associée à la distance exacte. La

FIG. 4.15 – Distances exacte et distance approchée «Reccad» [LMM97] dans le cas du cercle (en 2D). question est ensuite de savoir si la fonction coût construite à partir de la fonction ˜d a bien les mêmes

minima globaux ou locaux que la fonction coût construite à partir de la distance exacte d. Ceci n’est pas évident a priori. En réalité, la justification majeure de l’utilisation de la distance ˜d est une question

de simplicité et de temps calcul. Lorsque l’on souhaite obtenir un résultat précis, il est préférable de considérer la distance exacte.