• Aucun résultat trouvé

(c) Primitive ACP (d) Primitive ajust ´ee

Dans le document Chaine 3D interactive (Page 96-101)

FIGURE4.9 – Repr ´esentation de la distance entre la surface mod ´elis ´ee et les points 3D.

a-b) Distance primitive/points 3D dans le cas d’un cylindre avant et apr `es ajustement de

la primitive sur les points. c-d) Distance primitive/points 3D dans le cas d’un plan.

Alistair Forbes [100] propose une m ´ethode permettant d’ajuster une forme g ´eom ´etrique

sur des donn ´ees tridimensionnelles par la m ´ethode de Gauss-Newton [90]. L’algorithme

de Gauss-Newton ´etant une m ´ethode de r ´esolution des probl `emes de moindres carr ´es

non lin ´eaire, le temps de calcul pour converger vers une solution peut parfois s’av ´erer

as-sez long, or la contrainte du temps de calcul est un crit `ere important dans un syst `eme

dy-namique. Dans le but de r ´eduire le temps de calcul, nous proposons d’utiliser la primitive

obtenue avec l’ACP sur les donn ´ees de la sph `ere gaussienne comme forme g ´eom ´etrique

initiale de l’algorithme. La primitive mod ´elis ´ee ´etant tr `es proche de celle recherch ´ee, il est

possible de converger vers le r ´esultat optimal en quelques it ´erations seulement. La figure

4.9 illustre l’ ´evolution de la distance orthogonale entre les points 3D et la surface de la

pri-mitive mod ´elis ´ee avant et apr `es ajustement par la m ´ethode pr ´esent ´ee par Alistair Forbes

[100]. On peut constater une v ´eritable am ´elioration suite `a l’ajustement de la primitive.

4.3.2/ AFFINAGE DE LA SEGMENTATION

L’identification de la primitive se fait `a partir d’une analyse statistique sur des objets

pr ´ealablement segment ´es. De ce fait, m ˆeme si la segmentation n’est pas parfaite, il

est malgr ´e tout possible d’extraire et de mod ´eliser une primitive `a partir du moment

o `u celle-ci est repr ´esent ´ee par une grande majorit ´e des points. La figure 4.10 illustre

deux cas o `u il est possible d’extraire une primitive malgr ´e la pr ´esence d’ ´el ´ements mal

segment ´es n’appartenant pas `a la primitive (les bordures dans le cas du cylindre et la

pr ´esence de rivets `a t ˆete ronde sur un plan). On constate ´egalement sur cette m ˆeme

figure que la distance entre la primitive mod ´elis ´ee et les points 3D devient importante

dans les zones mal segment ´ees.

Nous proposons de segmenter les objets pour lesquels la distance entre la surface et

les points 3D est sup ´erieure `a une certaine tol ´erance. Ainsi, ne seront conserv ´es que les

points 3D appartenant effectivement `a la primitive. Les zones ainsi re-segment ´ees

forme-ront alors de nouvelles r ´egions qui seforme-ront raffin ´ees lors de l’it ´eration suivante du syst `eme.

Toutefois, un probl `eme persiste avec cette approche. En effet, `a aucun moment nous

ne v ´erifions que la primitive estim ´ee sur les donn ´ees est correcte. Supposons un

sous-nuage de pointsN(p)identifi ´e comme appartenant `a une primitive. Apr `es ajustement de

la primitive, tous les points dont la distance `a la surface est sup ´erieure `a une tol ´erance

fix ´ee sont alors rejet ´es de la primitive. Cependant, dans le cas o `u le ratio entre le nombre

de points rejet ´es et le nombre de points initiaux est important, il est alors judicieux de

penser que la primitive identifi ´ee ne correspond pas r ´eellement aux donn ´ees. Ainsi, pour

4.3. EXTRACTION DES PRIMITIVES 85

(a) (b)

(c) (d)

FIGURE4.10 – Distance entre les points 3D et la primitive mod ´elis ´ee sur des objets mal

segment ´es. a-b) Objets mal segment ´es. c-d) Distance entre la surface de la primitive et

les points 3D respectivement pour les objets a) et b).

r ´esoudre ce probl `eme nous proposons d’ajouter un test qui permettra de v ´erifier si la

primitive suppos ´ee est correcte ou non. Ce test sera effectu ´e sur le ratior :

r= N

r

N

i

, (4.2)

avecN

r

le nombre de points rejet ´es (points dont la distance `a la surface est sup ´erieure `a

une certaine tol ´erance) etN

i

le nombre de points qui composent la primitive. La question

qui se pose alors est la suivante : quel ratio choisir pour d ´ecider si une primitive est

correcte ou non ?

• Dans le cas o `u le ratiorest important (on autorise peu d’outliers), en cas de mauvaise

segmentation (figure 4.10) il y a de fortes chances que la primitive soit rejet ´ee. De

ce fait, l’algorithme ne marquera pas la zone qui sera alors raffin ´ee. Autrement dit, un

seuil trop important rend notre syst `eme de num ´erisation moins performant en cas de

mauvaise segmentation.

• A contrario, si le ratio est faible (beaucoup d’outliers) il y a un risque d’identifier une

r ´egion par une primitive qui ne correspond pas aux donn ´ees et du coup de

sur-segmenter cette zone. Un seuil trop faible implique donc une erreur potentielle sur

la primitive ainsi qu’une sur-segmentation de l’objet.

Le choix du ratiord ´epend fortement de l’application vis ´ee. Si l’application finale consiste

`a obtenir un mod `ele pr ´ecis, il faut ´eviter au maximum les erreurs sur l’identification des

pri-mitives. Inversement, si l’objectif consiste `a obtenir un nuage peu dense ou de mod ´eliser

l’objet par un maximum de primitives, il faudra adapter le ratio r afin de ne pas rejeter

syst ´ematiquement les primitives.

4.3.3/ SYNTHESE`

Le syst `eme de num ´erisation dynamique pr ´esent ´e jusqu’ `a pr ´esent proc `ede de la fac¸on

suivante. Il calcule des points 3D depuis les images du scanner pour une densit ´ed =1/i,

puis extrait ensuite des informations compl ´ementaires afin d’identifier des primitives. S’il

existe des primitives, celles-ci sont alors ajust ´ees afin de v ´erifier que la primitive identifi ´ee

correspond bien aux donn ´ees. Dans ce cas, une nouvelle segmentation est effectu ´ee

si besoin afin de ne conserver que les points correspondant r ´eellement `a la primitive

identifi ´ee. Le syst `eme est ensuite re-boucl ´e et calcule de nouveau des points 3D pour une

densit ´ed=1/(i−1)except ´e dans les zones marqu ´ees comme appartenant `a une primitive

lors de l’it ´eration pr ´ec ´edente. Le syst `eme suit ce proc ´ed ´e r ´ecursif jusqu’ `a atteindre la

densit ´e maximaled=1/1ou jusqu’ `a ce qu’une condition d’arr ˆet soit atteinte.

4.4/ SURFACES PARAMETRIQUES´

Bien que le syst `eme s’applique avant tout `a des pi `eces manufactur ´ees, celles-ci ne

sont pas syst ´ematiquement compos ´ees de primitives g ´eom ´etriques simples. Dans ce

cas, le syst `eme ne sera pas en mesure d’identifier des primitives et ne marquera alors

aucune zone, rendant ainsi notre syst `eme inefficace. Comme mentionn ´e pr ´ec ´edemment,

pour r ´esoudre ce probl `eme et ne pas limiter notre syst `eme aux seules primitives

g ´eom ´etriques, il convient d’en introduire de nouvelles. N’ayant pas d’a priori sur la forme

de l’objet, nous avons choisi d’ ´etudier des primitives pouvant s’adapter `a toutes les

formes : les surfaces param ´etriques.

Le but est d’approximer des surfaces param ´etriques sur les r ´egions n’ ´etant pas associ ´ees

`a une primitive puis de comparer l’ ´evolution de ces surfaces entre deux it ´erations

succes-sives de notre syst `eme. Si la surface a ´evolu ´e entre deux it ´erations, le fait de calculer de

nouveaux points ayant permis de raffiner la r ´egion, il est pertinent de continuer `a raffiner

la zone concern ´ee. A l’inverse, si la surface d’une r ´egion n’ ´evolue plus, calculer

d’avan-tage de points est inutile. Dans ce cas, la zone est alors marqu ´ee et ne sera plus trait ´ee

par la suite.

4.4. SURFACES PARAM ´ETRIQUES 87

4.4.1/ SURFACES DE B ´EZIER

Il existe diff ´erentes surfaces param ´etriques souvent utilis ´ees en 3D. Les plus connues

sont les surfaces de B ´ezier [101], les B-splines et les NURBS [54]. Notre choix s’est

port ´e sur les surfaces de B ´ezier, qui sont souvent utilis ´ees en conception assist ´ee par

ordinateur (CAO). A noter qu’il est tout `a fait possible de remplacer les surfaces de B ´ezier

par des B-splines ou des NURBS. Cependant, dans notre application les surfaces de

B ´ezier ´etant largement suffisantes nous avons opt ´e pour celles-ci.

4.4.1.1/ COURBES DEB ´EZIER

Les surfaces de B ´ezier ont ´et ´e invent ´ees par Pierre B ´ezier [102, 103] afin de mod ´eliser

des pi `eces de carrosseries automobiles. Ces surfaces sont compos ´ees de courbes de

B ´ezier (figure 4.11), qui sont des courbes polynomiales param ´etriques permettant de

faire une approximation entrenpoints.

(a)

(b)

FIGURE4.11 – Repr ´esentation tridimensionnelle des courbes et carreaux de B ´ezier. a)

Courbe de B ´ezier. b) Carreau de B ´ezier cubique.

Les courbes de B ´ezier d’ordre n sont d ´efinies par n+1 points de contr ˆole de la fac¸on

Dans le document Chaine 3D interactive (Page 96-101)