• Aucun résultat trouvé

Dans ce chapitre, des méthodes d’extraction et de modélisation de lignes de tuyauterie ont été présentées pour les tuyauteries de diamètre constant.

Nous avons vu notamment que les méthodes développées font intervenir des paramètres, même si nous avons tâché d’en restreindre le nombre. Il semble que ce soit le cas de tout algorithme de segmentation. Dans [HJBJ+96], qui présente une comparaison expérimentale d’algorithmes de seg- mentation d’images 2,5D, il y a un ensemble d’apprentissage (training set) et un ensemble de test (test

set), ce qui permet de déduire des valeurs optimales pour les paramètres et les seuils. La difficulté ici

est que les algorithmes développés requièrent (encore) une intervention de l’utilisateur. Ceci fait qu’il est délicat de définir des valeurs optimales pour les paramètres. Cette définition est plus aisée lorsqu’il s’agit d’un algorithme complètement automatique, car on peut réaliser de nombreux tests.

Chapitre 4

Ajustement de primitives

4.1

Introduction

On a vu aux chapitres2et3que la segmentation et la modélisation sont étroitement imbriquées lorsque l’on souhaite segmenter une scène à partir de modèles. On est donc amené à modéliser le nuage de points, ce qui se fait par des méthodes d’ajustement de surfaces. Ceci consiste à ajuster au mieux un modèle, ici une primitive géométrique, sur des données.

Peu de travaux de recherche existent sur ce sujet pour ce que nous appelons des «primitives géo- métriques», c’est-à-dire pour des modèles tels que le plan, la sphère, le cylindre, le cône et le tore. Les primitives contraintes sont encore plus rares dans la littérature. D’autre part, il existe un petit nombre de logiciels commerciaux qui permettent d’effectuer ces opérations d’ajustement de primitives : à notre connaissance 3Dipsos (Mensi), Cyclone (Cyra), Catia V5R8 (Dassault Systèmes).

4.1.1 Primitives traitées

Les primitives pour lesquelles nous avons réalisé des fonctions d’ajustement correspondent aux primitives introduites au chapitre1. Cependant, pour la construction de modèle CAO, il est également intéressant de faire intervenir des contraintes, par exemple pour assurer des jonctions continues ou lisses (voir chapitre3). Nous avons donc introduit des primitives libres, c’est-à-dire non-contraintes, ainsi que des primitives contraintes.

Primitives libres

Les primitives libres — c’est-à-dire non-contraintes— qui ont été introduites sont : le plan, la sphère, le cylindre de révolution, le cône de révolution, et le tore circulaire (Figure4.1).

FIG. 4.1 – Primitives libres

94 CHAPITRE 4. AJUSTEMENT DE PRIMITIVES

Primitives contraintes

Les primitives contraintes introduites sont le «cylindre-rotule», le «cylindre sécant», le «cylindre sécant de rayon fixé», le «tore après cylindre», le «tore entre cylindres», et le «cylindre après tore» (Figure4.2).

FIG. 4.2 – Primitives contraintes

4.1.2 Motivation

Dans 3Dipsos, de telles fonctions d’ajustement existent pour la plupart des primitives introduites au chapitre 1. Cependant, il existe certains défauts dans ces procédés d’ajustement. En effet, l’al- gorithme utilisé dans 3Dipsos ne parvient pas toujours à ajuster la primitive de manière acceptable. C’est le cas en particulier de certaines primitives non-contraintes (notons que les primitives non- contraintes interviennent relativement peu dans une utilisation standard de 3Dipsos). Les figures 4.3

et4.4 montrent de tels exemples, où les méthodes que nous avons développées fournissent le bon résultat.

FIG. 4.3 – Ajustement de cylindre libre. Dans cet exemple, la fonction d’ajustement de 3Dipsos ne fournit pas une solution acceptable (à gauche). Pourtant les points se trouvent bien sur un cylindre, sans points aberrants. Sur le même exemple, la méthode développée et présentée dans ce chapitre donne un résultat satisfaisant (à droite).

Ceci était un problème, puisque nous avions besoin de fonctions d’ajustement de surfaces sus- ceptibles d’être utilisées de manière automatique, c’est-à-dire qui fonctionnent également dans des conditions moins bonnes que la plupart du temps lorsqu’un utilisateur spécifie une région. En effet, dans 3Dipsos, l’utilisateur ajuste souvent des primitives non-contraintes sur des zones assez «claires». Si la fonction d’ajustement est appliquée à une zone dont on ne connaît rien, le comportement de la fonction d’ajustement devient plus critique. En particulier, ceci nécessite des fonctions d’ajustement qui soient stables vis à vis de la répartition des points, ainsi que vis à vis des situations où les points ne sont pas réellement sur une primitive du type de celle qui est ajustée. Or, ceci n’est pas le cas pour les fonctions dans 3Dipsos.

4.1. INTRODUCTION 95

FIG. 4.4 – Ajustement de cône libre. Dans cet exemple, la fonction d’ajustement de 3Dipsos ne fournit pas une solution acceptable (à gauche). Sur le même exemple, la méthode développée et présentée dans ce chapitre donne un résultat satisfaisant (à droite).

Enfin, il n’y a actuellement pas de fonction disponible pour l’ajustement de tore sans contraintes dans 3Dipsos.

Il était donc nécessaire de définir de nouvelles fonctions d’ajustement, plus robustes vis à vis de la répartition des points et vis à vis des situations de mauvais modèle (en particulier dans un contexte de sélection de modèle, lorsque l’on essaie plusieurs types de modèles).

Remarque

Notons qu’il ne s’agit pas ici d’ajustement robuste par rapport aux points aberrants : on parle toujours ici d’ajustement de moindres carrés (mais il se trouve que le minimum de la fonction coût des moindres carrés n’est pas facile à trouver, et que l’on n’est pas sûr de le trouver). En particulier, les exemples ci avant montrent des cas où la fonction de 3Dipsos ne parvient pas à atteindre le minimum. En ce qui concerne l’ajustement robuste par rapport aux points aberrants, ceci est une autre question, abordée au4.5.2.

4.1.3 Expression du problème et choix

Problématique générale de l’ajustement

De manière générale, l’ajustement de modèle consiste à chercher le modèle M, de type connu, défini par les paramètres a (de forme et de position), qui ajuste «au mieux» un ensemble de données

{xi}1≤i≤N. On définit «au mieux» par le minimum d’une fonction coût F. Le problème de l’ajustement revient donc à résoudre :

min

a F(x1, . . . , xN; a)

Par conséquent, une méthode d’ajustement d’un modèle peut se caractériser par : – le type de modèle et ses paramètres a,

– une fonction coût F, faisant intervenir une métrique mesurant l’écart entre un point x et le modèle M(a),

– la méthode d’estimation des paramètres a.

Remarquons dès à présent que ce problème n’entre pas dans le cadre d’un problème de régression. En effet, en régression, on cherche à prédire une variable y en fonction de variables explicatives x sous la forme d’une fonction y = f (x) de type connu. Or, on voit ici qu’il n’y pas de variables explicatives ou expliquées.

96 CHAPITRE 4. AJUSTEMENT DE PRIMITIVES

Approche proposée

Les choix qui ont été faits ici peuvent se synthétiser comme suit : – des modèles spécifiques définis par la distance exacte,

– la fonction coût des moindres carrés,

– des modèles contraints : nouveaux modèles, avec nouveaux paramètres non-contraints,

– estimation des paramètres par algorithme d’optimisation non-linéaire (Levenberg-Marquardt). Initialisation produite à l’aide d’informations de géométrie différentielle (normales, image de Gauss, éventuellement courbures).

En clair, cela veut dire que l’on considère la fonction coût

F =

N

i=1

d(xi; Primitive(a))2

où la métrique d est la distance exacte du point à la primitive (propre à chaque primitive).

Pour résoudre ce problème, sauf dans le cas du plan, il est nécessaire de recourir à une méthode numérique pour trouver les paramètres aminréalisant le minimum.

La méthode de résolution proprement dite, qui ne dépend pas des primitives, est décrite à la sec- tion 4.2. Ensuite, les parties4.3 et 4.4 présentent les éléments propres à chaque primitive : les pa- ramètres et les métriques introduits sont d’abord décrits à la section4.3et dans l’annexeA; puis la section4.4traite de l’étape cruciale de l’initialisation des paramètres. Enfin, la section4.5regroupe les différents points de discussion et perspectives sur les méthodes développées.

Remarque

On peut envisager de résoudre un tel problème d’estimation non-linéaire par la résolution d’un système d’équations plutôt que par optimisation directe de la fonction coût. En effet, les paramètres a étant libres, au minimum, le gradient de la fonction coût par rapport aux paramètres est nul. On obtient ainsi un système d’équations, appelées équations normales. La résolution d’un tel système est numérique, et ne semble pas plus simple à effectuer que l’optimisation que nous effectuons.