Extraction de modèle et segmentation à base de modèles

Structuration du nuage de points, reconstruction 3D

La structuration permet de rendre les méthodes de segmentation qui suivent plus simples, plus rapides, plus efficaces,. . . Les structures généralement introduites sont de plusieurs types : partitionnement en grille, maillage et triangulation, croûte, -forme, arbre, graphe, squelette, etc. Partitionnement en grille L’espace et le nuage de points peuvent être divisés en quadrillage régulier, ce qui donne les baquets (buckets) [Gou97], ou, lorsque la taille est petite, les voxels [Alg95]. Il est également possible de s’adapter un peu plus aux données par des partitions adaptatives de type quadtree(2D), octree(3D) [YS99, WSI98, PDH+97], ou k-d trees . Le principe de ces structures est de prendre en compte la densité de points pour créer des cellules plus petites dans les régions denses. L’octree préserve une régularité dans la structure mais avec des nombres de points différents dans chaque cellules, alors que le k-d tree divise chaque cellule en laissant le même nombre de points de chaque côté. Ces structures ne donnent pas vraiment d’indication sur les surfaces présentes, mais peuvent toutefois être utiles pour accélérer l’accès aux points d’un nuage. Ceci s’avère en particulier intéressant pour optimiser les algorithmes faisant intervenir la recherche de voisins. Bien entendu, ceci requiert de redéfinir des algorithmes qui exploitent ces structures. Maillages, triangulations Tout d’abord, on peut effectuer une triangulation 3D des points (c’est-à-dire produire des tétraèdres). La triangulation de Delaunay (2D, 3D ou nD) constitue désormais un classique en géométrie algorithmique [PS85, BY95, Lem97]. Dans notre cas, les points se trouvant sur des surfaces, nous nous intéressons davantage aux méthodes de maillage surfacique. Suivant [Bes99], on peut classer les différentes méthodes de construction de maillage surfacique suivant les types de données au départ :

– maillage sur une image 2,5D [GB96] ,

– fusion de maillages de plusieurs vues 2,5D [WSI98, HI97, HSIW96, MY95, SL95, RAS97],

– maillage à partir de points 3D [Alg95, HDD+92, ABK98, ST92, GM97, Guy95, TM98].

En ce qui concerne la construction de maillage à partir de points 3D, la méthode de Hoppe et al. [HDD+92] est une référence fréquemment citée et employée de construction de maillage à partir de points 3D. Notons que cette méthode a été appliquée à des scènes où les points sont sur une seule surface, fermée, et que les points sont uniformément répartis sur cette surface (Figure 2.2). Ce sont des conditions idéales, rarement vérifiées en pratique, pour lesquelles la plupart des algorithmes de construction de maillages produisent un bon résultat [ABK98]. On peut s’attendre à ce que cette méthode ne donne pas les résultats escomptés lorsque la surface est ouverte et que la densité de points n’est plus uniforme. D’autre part, la triangulation de Delaunay en 2D peut s’étendre simplement au cas du maillage de surfaces en 3D du moment que l’on a une indication de la topologie de la surface. En effet, si l’on sait que la surface peut se projeter sur un plan, et que ce plan est connu, il suffit de réaliser une triangulation de Delaunay sur le plan que l’on projette sur la surface. C’est le principe de construction de maillage utilisé dans plusieurs logiciels, dont 3Dipsos et Imageware Surfacer (EDS). Notons que l’on peut faire de même avec un cylindre, une sphère, etc. Ceci suppose que l’on connaisse le type de surface, ce qui n’est bien entendu pas toujours le cas au départ ! Remarquons également que l’on peut construire une triangulation surfacique en prenant comme surface de projection le plan tangent au nuage de points (avec le centre d’inertie). Ici intervient alors la taille du voisinage utilisé (soit une taille fixe, soit un nombre de voisins).

TRAITEMENTS «BAS NIVEAU» DES DONNÉES 3D (SANS MODÈLES)

Sur un nuage de points 3D La méthode de R. McLaughlin et Alder décrite ci avant a également été appliquée au cas 3D (cf. [McL00]), pour l’extraction de courbes (chaînettes) ou de surfaces. Le maillage 3D permet de faire à peu près comme dans le cas 2,5D : on peut estimer (même grossièrement) les normales, les courbures, etc. et ainsi faire une classification des points suivant ces informations. Aussi la plupart des auteurs utilisent-ils, plus ou moins explicitement, une structure de maillage au préalable de la phase de segmentation proprement dite. Hoppe et al. effectuent d’abord une construction de maillage avec la méthode introduite dans [HDD+92], et dont il a été fait référence précédemment (adaptée au cas d’un seul objet). Ensuite, Hoppe et al. [HDD+94] construisent une fonction lisse par morceaux ainsi que des arêtes et des jonctions à l’aide de surfaces de subdivision. Fisher et al. [FFE97] utilisent la même méthode pour construire un maillage. Ensuite, les angles entre normales voisines sont estimés afin de classer les zones élémentaires en «plan, arête et courbe». Un exemple de scène segmentée est donné figure 2.9 (noter l’absence de segmentation entre cylindre et plan latéraux lors de la première phase). FIG. 2.9 – Pièce «BAe»(U Edinburgh) Wu et Levine [WL95, WL97] simulent la répartition d’une charge électrique sur le maillage pour dégager les minima de convexité, qu’ils utilisent pour segmenter un objet en parties convexes (part segmentation). Les scènes utilisées dans les exemples donnés par les auteurs sont cependant relativement simples. Chaine et Bouakaz [Cha00, CB00] estiment les normales et dégagent des zones connexes par rapport à leurs orientations. Ceci fournit une segmentation initiale. Celle-ci est complétée par une méthode de fusion de régions (Figure 2.10). Appliquée aux images de [HJBJ+96], cette méthode a donné des résultats comparables et s’est avérée plus rapide que UE, WSU et USF, moins rapide que UB.

Enfin, les méthodes de décomposition d’un nuage de points en composantes -connexes [Gou97, PTVF92b] ou en groupements (clusters) [CM98] peuvent aussi être considérées comme des méthodes de segmentation particulières. Dans [Gou99, Gou97], l’estimation des centres de courbure permet de passer du problème de la segmentation entre cylindre et tore telle que sur la figure 2.13 au problème de la segmentation des centres de courbures en segments de droite et cercles. Cette segmentation est faite à l’aide de la valeur de la courbure minimale : les centres correspondant au cylindre ont une courbure minimale nulle. Notons toutefois que la courbure minimale seule n’est pas idéale pour faire cette segmentation car des points sur le tore peuvent aussi avoir une courbure minimale nulle [Gou97, p. 67]. Cependant, une difficulté de cette approche réside à mon avis dans l’estimation des courbures (bruitée et lente). La méthode de Medioni et al. [GM97, Guy95, TM98] permet de construire, en même temps que les surfaces les plus probables, les courbes les plus probables étant donné l’ensemble (peu dense) de points. Aussi peut on trouver les arêtes en même temps que le maillage de l’objet (dans l’exemple de la figure 2.11, la méthode permet d’extraire les points correspondant à la jonction entre la cacahuète et le plan). FIG. 2.11 – Tensorvoting de U Southern California. Reconstruction de surfaces et de jonctions Un test du programme TensorVoting, téléchargé depuis le site de U Southern California, a montré que le temps d’exécution croît rapidement avec le nombre de points initiaux : sur un nuage de 5000 points («pipe.dat») comprenant deux cylindres concentriques (Figure 2.12), la reconstruction des surfaces des deux cylindres a pris 7 min environ (résultat : 28210 triangles) sur PC Pentium III. D’autre part, ce programme a été testé sur la scène «coude» (Figure 2.13), avec également 5000 points. Notons tout d’abord que cette scène ne peut pas être segmentée par cette méthode, car la jonction entre les deux primitives est lisse. Par contre, il paraissait intéressant de tester la reconstruction de la surface formée par le cylindre et le tore. Les surfaces reconstruites par l’algorithme, qui apparaissent à droite de la figure 2.14, ne forment clairement pas une représentation correcte du coude.

TRAITEMENTS DES DONNÉES 3D À BASE DE MODÈLES

Modèles déformables On peut également classer les courbes et surfaces de niveaux (level set), ou modèles déformables (par EDP) dans les surfaces implicites. On trouve dans cette catégorie les notions de contours actifs, snakes, . . . Ces modèles sont notamment utilisés en imagerie médicale [HFG00]. Surfaces définies par des critères géométriques On peut par exemple définir les primitives vues au chapitre 1 à l’aide de caractérisations géométriques : le plan peut être défini par un produit scalaire constant, le cylindre par une distance constante (par rapport à un axe), le tore également par une distance constante (par rapport à un cercle), etc. Ceci donne lieu dans le cas général à des équations implicites non-polynomiales (voir chapitre 4 et annexe A). Remarque Ceci n’est guère employé dans la littérature. L’une des raisons est peut-être que ceci contraint à définir un type de modèle par primitive recherchée. Une autre raison est que cette approche est simple pour les surfaces simples, pour lesquelles on peut définir analytiquement la distance exacte. Toutefois, plusieurs auteurs ont souligné l’intérêt d’utiliser le plus tôt possible le type précis de primitive que l’on cherche à extraire [LMM98, LMM97, FFE97]).

Surfaces paramétrées Le domaine de la Conception Assistée par Ordinateur (CAO) utilise abondamment des définitions paramétrées pour les surfaces, comme par exemple les splines, les b-splines, et les NURBS. Ces surfaces sont des surfaces d’interpolation satisfaisant certaines contraintes de régularité [Lau72]. Elles sont le plus souvent définies par des points de contrôle, sur lesquels on peut faire un ajustement [Con96]. Les splines sont parfois utilisées pour la segmentation [Lei93]. Objets catalogués Les modèles utilisés peuvent être, comme en reconnaissance d’objets, des modèles d’objets parmi un ensemble fini et connu (c’est-à-dire un catalogue). Par exemple, le système Artisan de Carnegie Mellon University [JH97, JHOH97] (voir site Internet dont l’adresse est donnée en annexe) utilise des modèles de vannes. Modèles CAO plus complexes Parmi les modèles plus complexes, on trouve la b-rep (pour boundary representation), c’està- dire représentation par frontières, que l’on peut construire à partir d’une scène déjà segmentée [FEF97, HGB98b, HGB98a, HGB95] ; les modèles CSG (constructive solid geometry, représentation par volume et opérations ensemblistes ; ou encore des modèles CAO articulés [WFAR99, AFRW97].

Table des matières

Notations et conventions
1 Introduction
1.1 La numérisation 3D
1.1.1 Triangulation optique
1.1.2 Temps de vol
1.2 Etapes de la modélisation «tel que construit»
1.2.1 Saisie des données
1.2.2 Pré-traitement
1.2.3 Segmentation et modélisation
1.2.4 Exportation du modèle
1.2.5 Automatisation de la segmentation-modélisation
1.3 Caractéristiques des données 3D
1.3.1 Un ensemble volumineux et non-structuré de points
1.3.2 Une densité de points non-homogène
1.3.3 Des points bruités
1.4 Contributions de la thèse et structure du document
2 Etude bibliographique, état de l’art
2.1 Traitements «bas niveau» des données 3D (sans modèles)
2.1.1 Structuration du nuage de points, reconstruction 3D
2.1.2 Extraction d’information sur les surfaces
2.1.3 Classification, segmentation sans modèles
2.2 Traitements des données 3D à base de modèles
2.2.1 Différents types de modèles
2.2.2 L’ajustement de modèle
2.2.3 La reconnaissance ou sélection de modèle
2.2.4 Extraction de modèle et segmentation à base de modèles
2.2.5 Création de modèles plus complexes
2.3 Tableau récapitulatif des systèmes testés ou disponibles
3 Segmentation de lignes de tuyauterie
3.1 Connaissances «métier»
3.1.1 Qu’est-ce qu’une ligne de tuyauterie ?
3.1.2 Eléments constitutifs
3.1.3 Compléments d’information
3.1.4 Que doit-on modéliser ?
3.1.5 Caractérisation géométrique d’une ligne de tuyauterie
3.2 Extraction d’une ligne de tuyauterie
3.2.1 Présentation de l’application développée
3.2.2 Détail des différentes étapes
3.2.3 Résultats sur scènes de différents scanners
3.2.4 Tests auprès d’utilisateurs experts de 3Dipsos
3.2.5 Développements suite aux tests
3.2.6 Discussion et perspectives
3.3 Modélisation d’une ligne de tuyauterie
3.3.1 Modélisation directe avec cylindres et tores
3.3.2 Segmentation à partir du résultat de l’algorithme d’extraction
3.3.3 Résultats et perspectives
3.3.4 Perspectives sur la modélisation
3.4 Conclusion
4 Ajustement de primitives
4.1 Introduction
4.1.1 Primitives traitées
4.1.2 Motivation
4.1.3 Expression du problème et choix
4.2 Méthode de résolution du problème d’estimation
4.2.1 Algorithme d’optimisation utilisé
4.2.2 Incertitude sur les paramètres estimés
4.3 Paramétrisation et distance pour chaque primitive
4.3.1 Paramètres pour chaque primitive
4.3.2 Expression de la distance exacte
4.3.3 Gradient des distances aux primitives
4.3.4 Cas de séparabilité de l’espace de paramètres
4.4 Initialisation des paramètres
4.4.1 Primitives libres
4.4.2 Primitives contraintes
4.4.3 Tableau récapitulatif
4.5 Discussion et perspectives
4.5.1 Aspect numérique et conditionnement
4.5.2 En présence de points aberrants
4.5.3 Résultats et remarque
4.5.4 Nouvelles primitives
4.5.5 Ajustement de primitives plus complexes
5 Sélection et validation de modèle
5.1 Sélection de modèle
5.1.1 En régression linéaire
5.1.2 Pour des primitives géométriques 3D
5.1.3 Cas dégénérés
5.1.4 Résultats et conclusion
5.2 Validation de modèle
5.2.1 Vérification des paramètres
5.2.2 Test si le niveau de bruit est connu
5.2.3 Loi statistique des résidus
5.2.4 Méthodes à partir de séquences binaires
5.2.5 Approche par régression linéaire
5.2.6 Approche par lissage des résidus à partir du modèle
5.3 Conclusion
6 Extraction de primitives géométriques
6.1 Extraction locale d’une primitive de type fixé
6.1.1 Extraction directe sur un voisinage de taille fixe
6.1.2 Extraction multi-résolution sur voisinages emboîtés
6.2 Extraction globale d’une primitive de type fixé
6.3 Extraction globale d’un nombre inconnu de primitives de type fixé
6.4 Perspectives : extraction de primitives de types non fixés
6.5 Méthode à partir de quorum de points
6.6 Conclusion
7 Conclusion et perspectives
7.1 Conclusion
7.2 Perspectives
A Distance euclidienne et gradient
A.1 Primitives usuelles
A.1.1 Droite 3D
A.1.2 Plan
A.1.3 Sphère
A.1.4 Cylindre
A.1.5 Cône
A.1.6 Cercle 3D
A.1.7 Tore
A.2 Primitives contraintes
A.2.1 «Cylindre sécant»
A.2.2 «Cylindre sécant de rayon fixé»
A.2.3 «Cylindre-rotule»
A.2.4 «Cylindre après tore»
A.2.5 « Tore après cylindre»
A.2.6 « Tore entre cylindres »
B Normale et courbures
B.1 Normale
B.2 Courbures
B.3 Estimation sur un nuage de points
B.3.1 Normale
B.3.2 Courbures
B.3.3 Question sur la taille du voisinage
C Ajustement par méthodes d’algèbre linéaire
C.1 Modèles du type aT q(x,y, z) = 0
C.1.1 Plan libre
C.1.2 Plan contraint à passer par un point fixe
C.1.3 Extension à d’autres modèles
C.1.4 Surface algébrique
C.1.5 Cercle 2D
C.1.6 Sphère
C.2 Modèles du type z = aT q(x,y)
D Construction d’une primitive à partir d’un quorum de points
D.1 Modèles du type aT q(x,y, z) = 0
D.1.1 Cas général
D.1.2 Plan
D.1.3 Cercle 2D
D.1.4 Sphère
D.2 Modèles du type z = aT q(x,y)
D.3 Cercle 3D
D.4 « Cylindre-rotule »
D.5 Cylindre
E Quelques mots sur l’implémentation
F Questionnaire des tests utilisateurs
Références

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *