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