Mustapha Hamidou Vendredi 20 août Stage Contour Matching
Mustapha Hamidou Vendredi 20 août SOMMAIRE Introduction 1. Présentation de la bibliographie 2. Appariement des contours opposés : « Vector Matching » 3. Structuration des quadrilatères construits Conclusion
Mustapha Hamidou Vendredi 20 août Introduction L’appariement de contours se décompose en deux grandes phases : Détection de contours et vectorisation Appariement de vecteurs afin de construire des quadrilatères Rq : pas traité, seulement la bonne qualité des quadrilatères dépend de la qualité des vecteurs
Mustapha Hamidou Vendredi 20 août Présentation de la bibliographie A structural representation for understanding line-drawing images by J.Y. Ramel, N. Vincent, H. Emptoz Partir d’une liste de vecteurs, la parcourir, et tester pour chaque vecteur s’il répond aux critères d’appariement avec un autre. Si c’est le cas, on construit donc un quadrilatère, que l’on stocke alors dans une nouvelle liste.
Mustapha Hamidou Vendredi 20 août Présentation de la bibliographie Skeleton generation of engineering drawings via contour matching by C.C. Han and K.C. Fan Ce critère d’appariement se décompose en trois étapes : –Condition 1 : le parallélisme –Condition 2 : la superposition des vecteurs –Condition 3 : la distance entre les deux vecteurs
Mustapha Hamidou Vendredi 20 août Présentation de la bibliographie Feature analysis using line sweep thinning algorithm by F. Chang, Y.C. Lu, T. Pavlidis Vetcorization in graphics recognition : To thin or not to thin by K. Tombre and S. Tabbone La génération des quadrilatères à plusieurs applications différentes : les relations de voisinages entre quadrilatères, la détection de jonction ou encore la correction, etc …
Mustapha Hamidou Vendredi 20 août Appariement de contours opposés : « Vector Matching » L’algorithme d’appariement de contours se décompose en 5 étapes :. Teste d’appariement : 3 critères logiques. Calcul des critères. Filtrage des « appariements éloignés ». Trie logique des propositions d’appariement. Appariement
Mustapha Hamidou Vendredi 20 août Appariement de contours opposés : « Vector Matching » Trois conditions logiques :. « !isConnected » : les vecteurs ne doivent pas être connectés. « isOpposite » : ils doivent être de sens opposés. « isOpposite » : ils doivent être de sens opposés. « overlap » : ils doivent se superposés, c'est-à-dire que leurs projections sur l’axe des abscisses et des ordonnés devront correspondre à un segment continue. « overlap » : ils doivent se superposés, c'est-à-dire que leurs projections sur l’axe des abscisses et des ordonnés devront correspondre à un segment continue
Mustapha Hamidou Vendredi 20 août Appariement de contours opposés : « Vector Matching » Trois critères calculés :. « gapStroke » : nous donne une pseudo représentation de la distance entre deux vecteurs Rq : pas bijectif
Mustapha Hamidou Vendredi 20 août Appariement de contours opposés : « Vector Matching ». « matchLength » : détermine si les deux vecteurs ont à peu près la même longueur (longueur max – longueur min) / longueur min. « matchTeta » : détermine si les deux vecteurs sont parallèles ou non. « matchTeta » : détermine si les deux vecteurs sont parallèles ou non
Mustapha Hamidou Vendredi 20 août Appariement de contours opposés : « Vector Matching » Filtrage des « appariements éloignés », grâce à un seuil imposé par l’utilisateur sur la valeur du gapStroke. Trie logique des propositions d’appariement suivant les valeurs des 3 critères calculés. Problèmes de double matching de 2 vecteurs identiques, positionnés à différentes places dans la liste résultat, dus à la non bijectivité du critère gapStroke. Appariement : liste définitive contenant des quadrilatères
Mustapha Hamidou Vendredi 20 août Appariement de contours opposés : « Vector Matching » Exemple critères :
Mustapha Hamidou Vendredi 20 août
Mustapha Hamidou Vendredi 20 août Appariement de contours opposés : « Vector Matching » Exemples svg de quadrilatères :
Mustapha Hamidou Vendredi 20 août Appariement de contours opposés : « Vector Matching »
Mustapha Hamidou Vendredi 20 août Structuration des quadrilatères construits Récupération des vecteurs non appariés Nous rajoutons cette étape à la phase de Contour Matching :. Marquage des vecteurs appariés. Copie des vecteurs non appariés dans une nouvelle liste. Copie des vecteurs non appariés et des quadrilatères dans une autre liste
Mustapha Hamidou Vendredi 20 août Structuration des quadrilatères construits Résultats :
Mustapha Hamidou Vendredi 20 août Structuration des quadrilatères construits Construction d’un graphe de relation. - A partir de la liste de quadrilatères et de vecteurs non appariés, nous établissons les relations entre ces objets. - Création d’un fichier XSLT pour la transformation d’un fichier XML en un fichier XGMML - Visualisation du fichier XGMML sous l’application ojgBE
Mustapha Hamidou Vendredi 20 août Structuration des quadrilatères construits Construction du graphe - Transformation, grâce à la GOMLib, des objets en nœuds - Détermination des relations entre nœuds:. 2 quadrilatères connectés (QConnected). 2 vecteurs connectés (VConnected). 1 point commun entre 2 quadrilatères (Commun_Point). 1 quadrilatère connecté à 1 vecteur (link_QV) et création des arcs et création des arcs - génération d’un fichier XML
Mustapha Hamidou Vendredi 20 août Structuration des quadrilatères construits Création d’un fichier XSLT : - extraction à partir du fichier XML contenant le graphe des données nécessaire à la génération d’un fichier XGMML : - extraction à partir du fichier XML contenant le graphe des données nécessaire à la génération d’un fichier XGMML :. numéro des nœuds et arcs. label. centre des noeuds
Mustapha Hamidou Vendredi 20 août Structuration des quadrilatères construits Visualisation du fichier XGMML sous ojgBE (open java graph Base Editor : permet l’édition de base de graphes orientée et/ou non orientée )
Mustapha Hamidou Vendredi 20 août Structuration des quadrilatères construits A la suite de cette construction de graphe, on peut commencer à parler de correction. Cette correction aura pour but d’améliorer la qualité des quadrilatères, c’est-à-dire de diminuer au maximum le nombre de vecteurs non appariés. Split & Merge de quadrilatères ExtrémitésAberrations Etc …
Mustapha Hamidou Vendredi 20 août Structuration des quadrilatères construits Mais il se pose alors une question, à savoir si cette correction doit être inclus dans l’algorithme ou si on pourrait trouver une meilleure solution.
Mustapha Hamidou Vendredi 20 août Structuration des quadrilatères construits On peut ainsi constater que la correction à utiliser sur l’image traitée dépend de cette image, donc correction application dépendante. Pour le « MH », sur le « M », fusion de vecteur et fusion de quadrilatère, sur le « H », un split & merge. Pour le « L », une fusion de quadrilatère Pour la forme, détection d’aberrations Plutôt que d’insérer une correction dans l’algorithme, établir un système à base de règles pour la correction (pourrait être développé dans un stage ?)
Mustapha Hamidou Vendredi 20 août Conclusion Différentes applications : - détection de jonctions - squelettisation On pourra ainsi discuter des résultats obtenus avec une squelettisation différente, des jonctions obtenus avec une Squelettisation.