Rapport - Ensiwiki

Transcription

Rapport - Ensiwiki
G RENOBLE INP - E NSIMAG
Introduction à la Recherche en Laboratoire
Analyse morphologique d’objets 3D :
identification de propriétés structurantes
Sébastien Tourneux
Grenoble INP - Ensimag & INRIA : équipe IMAGINE
sous la supervision de Jean-Claude Léon et Damien Rohmer
27 mai 2014
Rapport d’IRL
1
R EMERCIEMENTS
Je tiens à remercier ici toutes les personnes qui ont pu contribuer à mes travaux d’IRL.
Mes remerciements s’adressent d’abord à Jean-Claude Léon et Damien Rohmer, mes encadrants pour leur aide très précieuse et leur disponibilité.
Je souhaite enfin remercier Marie-Paule Cani et son équipe IMAGINE, pour m’avoir chaleureusement accueillis dans leur équipe, pour m’avoir fait découvrir tant de choses, et surtout
pour toute la beauté de leur travail.
Rapport d’IRL
2
F IGURE 0.1 – Un bloc foré et les configurations que l’on souhaite détecter dans la face avant
1 I NTRODUCTION
1.1 C ONTEXTE PRATIQUE
Ce rapport présente les travaux réalisés au sein de l’équipe IMAGINE 1 (équipe de l’INRIA 2 )
sur le thème de l’analyse de propriétés structurante d’objets 3D sous la supervision de JeanClaude Léon et Damien Rohmer.
L’équipe IMAGINE travaille sur la création efficace de contenu 3D, principalement sur les
axes de la modélisation géométrique, la synthèse du mouvement, et la création de contenu
narratif 3 .
1.2 S UJET
On se propose d’étudier les répétitions (linéaires ou circulaires) dans un object 3D de type
industriel, généré par un logiciel de CAO (Catia par exemple).
Le principe de génération de ces objets est de définir des primitives de formes simples qui
successivement combinées permettent de complexifier progressivement la forme de l’objet
jusqu’à obtenir la forme finale souhaitée. Ces répétitions constituent des opérateurs couramment disponibles dans les logiciels de CAO et constituent des opérations de haut niveau. Ces
objets possèdent une représentation de type B-Rep 4 (définis par des surfaces limites de type
plan, cylindre, cône, sphère, tore) et sont donc à différencier des représentation facettisées
comme les "mesh". Les répétitions de primitives ainsi détectées pourront alors s’intégrer dans
un graphe de construction [8]. Les primitives considérées dans notre approche sont de type
extrusion ou révolution d’un profil plan.
Notons que cette détection doit être réalisée à la précision du modeleur, c’est à dire de l’ordre
du dixième de millimètre pour une pièce pouvant atteindre un mètre.
1.
2.
3.
4.
http://team.inria.fr/imagine/
http://www.inria.fr/centre/grenoble
http://www.inria.fr/equipes/imagine
Boundary Representation
Rapport d’IRL
3
1.3 M OTIVATION
Lors de transferts de modèles CAO dans un format de fichier standard, format STEP par
exemple, entre différentes entités (entreprises ou logiciels), les informations décrivant le processus de construction de l’objet sont perdues. Un travail fastidieux de remodélisation est alors
nécessaire dans 40% des cas [1] pour accéder à des informations de construction et corriger
des imperfections de modélisation.
Afin de permettre l’édition simple de haut niveau d’un modèle CAO complexe tout en garantissant que celui-ci reste viable après déformation, il est nécessaire de trouver et de traiter
spécifiquement les éléments caractéristiques de celui-ci. L’une des spécificité nécessaire à
la viabilité d’un modèle, est que celui-ci doit pouvoir être construit et assemblé. Le graphe
de construction d’un modèle CAO représente de manière exhaustive toutes les possibilités
d’assemblage permettant de former un objet donné (voir Figure 1.1). Ainsi il devient possible
de vérifier qu’un modèle CAO déformé reste viable si il existe un chemin possible dans le
graphe de construction.
Les éléments caractéristiques tels que les trous présents sur une pièce sont généralement
disposés de manière répétitive et structuré. Déplacer l’un de ces éléments sans tenir compte
de cette structure aboutit généralement à un élément mécanique non viable. Il est donc
nécessaire de reconnaître ces structures afin de pouvoir mettre en place des opérateurs de
déformation de haut niveau tenant compte de cette disposition tel que la modification du pas
de répétition, le rayon du trous, etc.
Dans ce cadre, nous proposons une approche efficace permettant d’identifier l’organisation
des structures répétitive sur une pièce planaire. A savoir que nous cherchons ici à détecter si
des structures sont disposées de manière alignée, ou bien de manière co-circulaire.
En effet, si l’utilisateur veut agir et modifier une primitive utilisée lors de la construction
de l’objet, il doit pouvoir la trouver dans le graphe de construction. D’où la nécessité d’avoir
un graphe exhaustif et non pas seulement un arbre de construction comme le propose les
logiciels de CAO actuellement. Pour la même raison, l’intégration de primitives de répétition
se révèle utile lorsque l’utilisateur souhaite agir sur le pas d’une répétition précise, par exemple.
1.4 E TAT DE L’ ART
Récemment, F. Boussuge [8] a proposé une première approche pour la génération d’un
graphe de construction. Dans le domaine de l’informatique graphique et pour des modèles
de type ‘mesh’, des travaux ont été réalisés pour détecter des symétries [10, 9]. Cependant,
certaines configurations structurantes ne peuvent se traduire comme des symétries globales.
Le recours à des symétries locales accroît significativement la complexité algorithmique de
leur détermination et pose le problème de la sélection de celles qui sont significatives [9] (voir
Figure 1.2).
Des recherches ont donc été réalisées pour détecter les symétries dans des modèles CAO
B-Rep et les intégrer au graphe de construction [7] sous forme d’opérations de construction
d’un objet et grâce à des approches de type ‘diviser pour conquérir’. On observe également
Rapport d’IRL
4
F IGURE 1.1 – Graphe de construction. Les zones oranges représentent les primitives supprimées à chaque étapes. Source [3]
que pour des produits manufacturés, les dispositions de trous ou, plus généralement, les
répétitions de primitives possédant des propriétés de symétrie locales, sont souvent liées à
une même face de référence. Dans le cas de la Figure ??, les séries de trous apparaissent sur une
même face F et c’est dans cette face que des propriétés de symétrie locale apparaissent pour
caractériser la disposition des trous. L’analyse de symétrie développée par [9] montre que la
complexité algorithmique est importante (polynomiale d’ordre 4,5) et devrait être complétée
par le traitement des symétries locales trouvées pour extraire des informations de structure
des trous. On se propose ici d’utiliser ces observations afin de rechercher des propriétés des
dispositions de primitives telles que leur alignement et leur répartition circulaire qui sont très
largement utilisées dans les produits manufacturés et les logiciels CAO. Il s’agit également
d’extraire ces propriétés sans s’appuyer sur l’analyse de symétries locales.
2 E XTRACTION DE POINTS CLÉS
Partant des observations précédentes, le problème consiste à analyser la disposition de
primitives à l’intérieur d’une surface de référence. La disposition des primitives se traduit par
une disposition particulière des contours intérieurs appartenant à la face de référence (voir
Rapport d’IRL
5
F IGURE 1.2 – Répétition pour laquelle les symétries locales sont difficiles à exploiter
Figure 2.1 l’image du haut). Dans la face de référence, ces contours intérieurs peuvent être
ramenés à des points clés comme indiqué par la suite. L’extraction de ces points clés ramène
ainsi le problème de détermination de propriétés structurantes à l’étude de la disposition
des points clés à l’intérieur de la face de référence. Toute face du modèle B-Rep de l’objet
contenant des contours intérieurs est susceptible d’être une face de référence en fonction des
propriétés utilisées pour la détermination des points clés.
L’extraction des points clés est un travail préalable à la détection de répétitions. Dans le cas
d’une représentation B-rep, on obtient les points clés grâce aux propriétés intrinsèques des
éléments de la représentation. On obtient alors les éléments structurants :
— l’axe des cylindres
— le centre des sphères
— l’axe et le sommet des cônes
— l’axe des tores
— le plan d’une face
On obtient donc des points clés dans un plan en couplant ces informations. Dans l’exemple
d’un bloc foré, les points clés sont les intersections des axes des cylindres décrivant les trous
du bloc et des faces dans lesquelles ces trous sont insérés (voir Figure 2.1). De plus, on limite
les points clés à des éléments de mêmes caractéristiques, i.e., trous de même rayon et d’axes
parallèles, par exemple.
La démarche de génération de points clés peut s’appliquer de manière similaire à des faces
cylindriques, coniques, toriques, sphériques.
Rapport d’IRL
6
F IGURE 2.1 – Extraction des points clés à partir de la face de base d’un bloc foré (??) (en haut).
On obtient ici 5 ensembles de points clés (les centres des trous) qui seront traités
séparéments
3 A PPROCHES NAÏVES
Une approche de type force brute consiste à chercher parmi l’ensemble des combinaisons
possibles de sommets. La complexité associé à une telle recherche exhaustive est de l’ordre de
2n , où n est le nombre de point clés, ce qui la rend impraticable pour des problèmes concrets.
Une autre approche classique dans le domaine de la vision par ordinateur concerne l’utilisation de la transformée de Hough [6]. Cette approche discrète permet de classer des points
dans un espace adapté à la recherche d’alignement ou de co-circularité.
Sa complexité associée est linéaire en fonction de n, mais nécessite cette fois une discrétisation
de l’espace. Cette discrétisation, naturelle dans le cas de l’analyse d’une image issue d’une
caméra, se révèle beaucoup plus pénalisante pour obtenir une méthode garantissant une
Rapport d’IRL
7
détection à la précision d’un modeleur numérique. Par exemple, une pièce d’un mètre carré à
la précision d’un millième de millimètre nécessiterait une discrétisation sur une grille de 1012
valeurs afin d’obtenir cette garantie.
Nous proposons une approche différente, indépendante de toute discrétisation et adapté au
cas de pièce CAO. L’un des point clé de notre approche consiste à remarquer que les structures
alignées ou co-circulaires sont généralement formés de positions clés spatialement proches.
Cette propriété est principalement due à la manière dont sont utilisés les logiciels de CAO qui
viennent générer une série de duplication d’un trou de manière locale.
En pratique, cela revient à noter que les positions clés d’un même alignement, ou positionnés
sur un même cercle, sont généralement des sommets voisins au sens des "plus proches voisins".
Notre idée consiste à introduire une formulation de recherche d’alignement et de circularité efficace par le biais d’une triangulation de Delaunay, ou de sont dual : le diagramme de
Voronoi. En effet, ces outils classiques de l’informatique graphiques permettent d’extraire
des informations de voisinages de manière efficace tout en restant indépendant de toute
discrétisation sur le plan théorique.
On peut alors considérer une formulation plus précise du problème : rechercher toutes dispositions linéaires et circulaires de points clés comportant, pour chacune d’entre elle, le nombre
maximum de points clés, celle-ci apparaît particulièrement combinatoire. Il s’agirait en effet
de déterminer les alignements et les cercles concernés et également les valeurs maximales de
nombres de points clés.
4 T RIANGULATION DE D ELAUNAY ET D IAGRAMME DE V ORONOÏ
La triangulation de Delaunay [5] est une triangulation d’un ensemble de points, p i , telle
qu’aucun point n’est à l’intérieur du cercle circonscrit à un triangle de la triangulation. Elle
maximise le plus petit angle des triangles de telle sorte à éviter les triangles aplatis. Elle est
unique si l’ensemble de points ne contient pas 4 points arbitraires ou plus de p i qui sont
co-circulaires.
Le diagramme de Voronoï est le dual de la triangulation de Delaunay (Figure 4.1). La cellule
de Voronoï d’un point p i de notre ensemble de points E est l’ensemble des points de l’espace
qui sont plus proches de p i que de tous les autres points de E .
Ces graphes possèdent des propriétés intéressantes pour notre problème. Ils traduisent
des informations de proximités entre les points liés, informations qui sont sous-jacentes de
certaines fonctions de répétitions des logiciels CAO.
4.1 U TILISATION DIRECTE
Dans la triangulation de Delaunay d’un ensemble de points, on repère des alignements par
des triangles applatis. En effet, comme la triangulation de Delaunay évite les triangles applatis,
leur apparition signale un alignement.
Rapport d’IRL
8
F IGURE 4.1 – Exemple de diagramme de Voronoï (en rouge) et triangulation de Delaunay (en
noir) du même ensemble de points
De la même façon, dans le diagramme de Voronoï, on détecte les co-circularités par les
sommets de Voronoï de degré important (≥ 4)
F IGURE 4.2 – Configurations simples détectées directement : un alignement avec un seul point
perturbateur et un cercle parfait
5 U TILISATION DE LA PROPRIÉTÉ DE CONVEXITÉ
On considère dans cette partie l’hypothèse suivante : H1 : les configurations à trouver sont
indépendantes, i.e., elles ne se croisent pas.
La triangulation de Delaunay retourne un convexe. Il en découle la propriété suivante : si une
configuration (alignement ou co-circularité) est sur la frontière de la triangulation, alors
elle est maximale, i.e., on ne peut pas rajouter de point à cette configuration. Cette propriété
(non-démontrée dans le cadre de notre travail) est compréhensible graphiquement (voir
Figure 5.1). On obtient donc l’algorithme :
L’hypothèse H1 est forte, néanmoins on remarque concrètement que beaucoup d’objets
CAO possèdent des répétitions sur le bord d’une face (par exemple Figure ??) qui pourront
Rapport d’IRL
9
Algorithme 1 : Utilisation de la convexité de la triangulation
Entrées : un ensemble E de points clé satisfaisant l’hypothèse H1
début
Calculer la triangulation de Delaunay de E.;
tant que Une configuration C est détectée sur le bord de la triangulation et contenue
dans la triangulation faire
Stocker la configuration C = {p 1 , . . . , p n };
E ← E \C ;
Calculer la triangulation de Delaunay de E;
F IGURE 5.1 – Exemple d’itérations de l’algorithme 1 utilisant la propriété de convexité. Les
alignements sur la frontière sont détectés directement dans la triangulation et
les points de l’alignement sont retirés de l’ensemble à traiter.
être détectées grâce à cette méthode.
6 A LGORITHME DE B OWYER-WATSON
6.1 D ESCRIPTION DE L’ ALGORITHME
L’algorithme de Bowyer-Watson [4, 11] est un algorithme incrémental qui calcule une triangulation de Delaunay. Il insère un point à la fois, à l’intérieur d’une précédente triangulation
de Delaunay valide. A chaque insertion, on supprime les triangle dont le cercle circonscrit
contient le point inséré et on triangule le polygone ainsi créé (cf Figure 6.1).
6.2 M ODIFICATION DE L’ ALGORITHME POUR LA DÉTECTION DE RÉPÉTITIONS
— co-circularités :
A chaque insertion, l’algorithme de base vérifie si le point inséré se trouve à l’intérieur
où à l’extérieur du cercle circonscrit de chaque triangle. Si le point se trouve sur le cercle,
on stocke la configuration détectée.
— alignements :
A chaque itération, on vérifie si une nouvelle arête créée est colinéaire avec une arête
déjà existante dans la triangulation (cf Algorithme 2)
5. Source : http://paulbourke.net/papers/triangulate/
Rapport d’IRL
10
(a) Un nouveau point est
ajouté dans une triangulation existante
(b) Les triangles dont le cercle (c) On créée de nouveaux tricirconscrit contient le
angles en liant le point inpoint inséré forment un
séré avec les cotés du polypolygone
gone
F IGURE 6.1 – Exemple d’insertion d’un point grâce à l’algorithme de Bowyer-Watson 5
6.3 R ÉSULTATS
Cette méthode donne des résultats satisfaisant sur des configurations complexes, où des
alignements et des co-circularités se croisent (Figure 6.2).
(a) Configuration de cercle croisé avec un alignement
(b) Configuration de grille
F IGURE 6.2 – Résultats de la détection avec l’algorithme de Bowyer-Watson sur des configurations complexes
On remarque sur la Figure 6.2b que les alignements détectés dépendent de la triangulation
(ici la triangulation de Delaunay n’est pas unique à cause des carrés). En effet, on détecte
mal les alignements dans le sens de la diagonale affichée des carrés. Ce cas reste néanmoins
pathogène et les alignements principaux sont quand mêmes détectés.
Rapport d’IRL
11
Algorithme 2 : Algorithme de Bowyer-Watson modifié pour la détection de configurations.
Les modifications de l’algorithme de base sont soulignées
Entrées : un ensemble E de points clé
début
Ajouter à la triangulation T un "super-triangle" englobant l’ensemble E ;
tant que il reste un point p dans E à insérer faire
Insérer p dans la triangulation T .;
pour tous les triangle de T dont le cercle circonscrit contient p faire
si p est sur le cercle circonscrit alors
Ajouter p et les trois points du triangle à la liste de configurations circulaires C cer cl es
Supprimer le triangle de la triangulation;
Créer une nouvelle arête entre chaque sommet du trou polygonal laissé par la
suppression des triangles et le sommet p inséré;
si Une nouvelle arête est colinéaire à une arête d’un alignement déjà détecté alors
Ajouter l’arête à la liste de configurations linéaires C al i g nement s
si Une nouvelle arête est colinéaire à une arête présente dans T alors
Ajouter l’arête à la liste de configurations linéaires C al i g nement s
Supprimer les triangles de T contenant un point du super-triangle;
7 T RAVAIL A POSTERIORI DE LA TRIANGULATION
La méthode précédente est efficace mais dépends de l’ordre d’insertion des points. De plus,
bien que le critère de proximité entre les points est intéressant, il peut être utile de détecter
des configurations plus espacées.
On réalise alors un travail a posteriori du calcul de triangulation. Les arêtes qui peuvent
brouiller le plus la détection sont les arêtes le plus petites (celles avec la plus forte propriété de
proximité).
On sélectionne alors l’arête a mi n = p i p j la plus petite. On réalise alors la triangulation de
l’ensemble de points E \ {p i } d’une part et E \ {p j } d’autre part. On itère alors jusqu’à ce qu’il
ne reste plus de points à traiter, en détectant et stockant les configurations selon la méthode
directe de la section 4.1. Exemple Figure 7.1.
8 P ERSPECTIVES
8.1 T RANSFORMÉE DE H OUGH
La transformée de Hough [6] (utilisée en vision par ordinateur) permet notamment de
détecter des alignements et des cercles dans une images discrète. On a vu (section 3) que
cette méthode n’était pas appliquable directement à notre problème. On pourrait néanmoins
utiliser cet outil en amont de notre détection, avec une faible résolution pour dégager un
sous-ensemble de points clés où il existe une configuration à détecter.
Rapport d’IRL
12
(a) L’alignement ABCD est brouillé par le (b) L’alignement est détecté après suppoint E
pression du point E
F IGURE 7.1 – Suppression du point E, extrémité de la plus petite arête (BE)
8.2 T RANSFORMÉE DE H OUGH ANALYTIQUE
Une autre méthode de détection en calcul exact est une généralisation analytique de la
transformée de Hough [2].
8.3 A PPLICATION AUX MESH
Le processus décrit dans ce document pourrait s’appliquer aux mesh. Un travail important préalable serait nécessaire pour extraire les points clés. On devrait alors extraire des
informations sur la structure du mesh pour alors rechercher des répétitions de groupes de
facettes.
Rapport d’IRL
13
R ÉFÉRENCES
[1] Multi-cad design chain benchmark report : Insulating engineering from today‘s multi-cad
environment. Technical report, Aberdeen group, 2006.
[2] Sere Abdoulaye, Sie Oumarou, and Eric Andres. Extended standard hough transform for
analytical line recognition. International Journal, 2013.
[3] Flavien Boussuge, J-C Léon, Stefanie Hahmann, and Lionel Fine. Idealized models
for fea derived from generative modeling processes based on extrusion primitives. In
Proceedings of the 22nd International Meshing Roundtable, pages 127–145. Springer, 2014.
[4] Adrian Bowyer. Computing dirichlet tessellations. The Computer Journal, 24(2) :162–166,
1981.
[5] Boris Delaunay. Sur la sphère vide. Bulletin of Academy of Sciences of the USSR, pages
793–800, 1934.
[6] Richard O Duda and Peter E Hart. Use of the hough transformation to detect lines and
curves in pictures. Communications of the ACM, 15(1) :11–15, 1972.
[7] A. Johal, J-C. Léon, G-P. Bonneau, and R. Marc. Répétition linéaire de primitives comme
opérateur dans un graphe de construction d’objets b-rep. AFIG, 2013.
[8] Jean-Claude Léon, Flavien Boussuge, Stefanie Hahmann, Lionel Fine, et al. Décomposition d’un objet numérique 3d sous la forme de primitives et d’un graphe de construction.
2013.
[9] Ming Li, Frank C Langbein, and Ralph R Martin. Detecting design intent in approximate
cad models using symmetry. Computer-Aided Design, 42(3) :183–201, 2010.
[10] Niloy J Mitra, Mark Pauly, Michael Wand, and Duygu Ceylan. Symmetry in 3d geometry :
Extraction and applications. In Computer Graphics Forum, volume 32, pages 1–23. Wiley
Online Library, 2013.
[11] David F Watson. Computing the n-dimensional delaunay tessellation with application to
voronoi polytopes. The computer journal, 24(2) :167–172, 1981.
Rapport d’IRL
14