Notions préliminaires de géométrie discrète

Slides:



Advertisements
Présentations similaires
CHAPITRE 5 Suites réelles.
Advertisements

Traitement d’images : concepts fondamentaux
Traitement d’images : concepts fondamentaux
Traitement d’images : concepts fondamentaux
Traitement d’images : concepts fondamentaux
Traitement d’images : concepts avancés
Traitement d’images : concepts fondamentaux
Traitement d’images : concepts fondamentaux
Traitement d’images : concepts avancés
Algorithmes et structures de données avancés
Calcul géométrique avec des données incertaines
Cours de morphologie mathématique
1 Réunion biblio 13/12/00 Support Vectors Présentation générale SSS Maintaining Algorithm.
2. Echantillonnage et interpolation des signaux vidéo

Xialong Dai, Siamak Khorram
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Traitement d’images : briques de base S. Le Hégarat
Encadrés: Chapitre 13 Distances
Génération de colonnes
Analyse d’images Détection de contour Cours 8
Réalisateur : PHAM TRONG TÔN Tuteur : Dr. NGUYEN DINH THUC
ASI 3 Méthodes numériques pour l’ingénieur
Concepts avancés en mathématiques et informatique appliquées
Le filtrage d’images.
Chapitre 2 : Filtrage Professeur. Mohammed Talibi Alaoui
Opérateurs morphologiques
Fronts d’onde 3-D Introduction ; Fronts d’onde Trame cuboctaèdrique
Construction de modèles visuels
Traitements d'images et Vision par ordinateur
La segmentation
Rappel... Solution itérative de systèmes linéaires (suite et fin).
Traitement d’images : concepts avancés
Espaces vectoriels Montage préparé par : S André Ross
Traitement d’images : concepts fondamentaux
Génération d’un segment de droite
Optimisation dans les réseaux
Recherche Opérationnelle
PIF-6003 Sujets spéciaux en informatique I
Chapitre 4 : Morphologie Mathématique
Distance de BORGEFORS Et Applications
Calcul des groupes d'homologie d’objets discrets
Le filtrage d’images.
TRAITEMENT D’IMAGE SIF-1033.
Projet de session – SCG-67210
Segmentation par analyse d’une image de gradient (ligne de partage des eaux) par fusion de régions dans un graphe par méthode variationnelle (Mumford.
Morphologie mathématique ensembliste
Module 4: Le filtrage d’images. Objectifs du filtrage.
DU TRAITEMENT DU SIGNAL
Programmation linéaire en nombres entiers
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Classification : objectifs
Extraction de segments pour la reconnaissance de symboles : Une approche robuste par Transformée de Hough Présenté par : Simon BERNARD Encadré par : Jean-Marc.
Modèles Mathématiques et représentation discrètes pour la description des images couleur Luc Brun.
Les réseaux de neurones à réservoir en traitement d’images
Traitement de base d'une image (partie 1)
Morphologie mathématique (cas fonctionnel)
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Chapitre VIII Découpage d’une scène selon une fenêtre donnée.
CHAPITRE III Calcul vectoriel
SIF1033 TRAITEMENT D’IMAGE
Equipe synthèse d ’images et réalité virtuelle IRIT-UPS Toulouse Surfaces implicites Les différents modèles analytiques.
Mathématiques pour Informaticien I
Partie II : Segmentation
PIF-6003 Sujets spéciaux en informatique I
Programmation créative – Les vecteurs
Traitement d’images Semaine 09 v.A15.
Filtrage des images.
Chapitre 4 Equations différentielles ordinaires à n variables.
Transcription de la présentation:

Notions préliminaires de géométrie discrète Topologie 2D discrète :  nombre de composantes connexes, de trous,  représentation hiérarchique des objets. Distances discrètes :  dimension (e.g. rayon) des composantes connexes,  distance entre les objets. Relations ensemblistes entre les parties d’un objet

Voisinage élémentaire et entourage Image discrète = graphe Connexité trame carrée trame hexagonale Chemin sur le graphe = succession de nœuds du graphe joints par des arcs chemin 4-connexe : chemin 8-connexe : Théorème de Jordan : toute courbe simple fermée sépare l’espace en 2 composantes : l’intérieur et l’extérieur de la courbe. Cas de la trame carrée : tout chemin 4-connexe (resp. 8-connexe) simple fermé (Ai=Aj  i=j et Ai voisin de Aj  |i-j|=1[n]) sépare l’espace en 2 composantes 8-connexes (resp. 4-connexes)

Exemple : nombre d’Euler Nombre d’Euler = différence entre le nombre composantes connexes et le nombre de trous (attention à la dualité des connexités). Soit : s=nb singletons, a=nb couples ligne ou colonne, d=nb couples diagonaux, t=nb trinômes, q=nb quadrinômes, alors en 4-connexité E=s-a+q en 8-connexité E=s-a-d+t-q Ex: Cas 4-connexe : nombre composantes 4-connexes = 3 nombre de trous (8-connexes) = 1  E4=2 Cas 8-connexe : nombre composantes 8-connexes = 1 nombre de trous (4-connexes) = 2  E8=-1 s=16, a=14, d=13, t=10, q=0  En 4-connexité E4=s-a+q=2 En 8-connexité E8=s-a-d+t-q=-1

Distances discrètes (I) Distance à 1 objet  minimum des distances euclidiennes (approximées) aux points de l’objet Propagation de distances locales Distances définies à partir d’un ensemble de vecteurs de déplacement Utilisation de masques Exemple : 1 1 1 0 1 1 1 1 4 3 4 3 0 3 11 11 11 7 5 7 11 5 0 5 7 5 7 11 1

Distances discrètes (II) Partition du masque en 2 sous-masques g1 et g2 causaux ULLR et LRUL Algorithme de calcul séquentiel 1) Poser 2) f0  image / points de l’objet  0 et les autres  + 3) pour k=1,2 si k=1, balayer l’image dans le sens UL  LR si k=2, balayer l’image dans le sens LR  UL 4) image des distances  f2 4 3 4 3 0 3

Distances discrètes : exemple Image binaire (objet en noir) ∞ Initialisation ∞ 1 2 3 4 5 Fin itération 1 4 3 2 1 5 Fin itération 2

Distances géodésiques Intérêt des métriques géodésiques : tient compte des obstacles ( dist. euclidienne ou versions digitales).  distance géodésique : étant donnés 2 points a et b d’un compact X,  toujours un plus court chemin de a à b qui soit  X; la longueur de ce chemin est dX(a,b). Propriétés : dX est une distance généralisée, i.e. a b d c Séparation Sous-additivité

Introduction à la morphologie mathématique Traitement non linéaire de l’information Extraction des informations à partir de tests (analyse morphologique) Exemples de problèmes : Repose sur la théorie des treillis (ens. ordonnés) complets, … – s’applique aux ensembles des parties d’un ens., aux fonctions, … Comment séparer 2 composantes ? Comment éliminer le bruit ? Comment étiqueter différemment 2 formes connexes ? Comment comparer 2 formes ?

Treillis de l’ensemble des parties d’1 ensemble S : Définition: 1 treillis complet est 1 ensemble ordonné (E,) tel que toute partie de E admette 1 borne supérieure et 1 borne inférieure  : réflexive (xE, xx), antisymétrique ((x,y)E2, xy et yx  x=y), transitive ((x,y,z)E3, xy et yz  xz ) plus petit des majorants plus grand des minorants Treillis de l’ensemble des parties d’1 ensemble S : éléments parties de S relation d’ordre inclusion borne supérieure union borne inférieure intersection involution complémentaire

Opérateurs de MM : fondements mathématiques principes fondamentaux Compatibilité avec les translations Compatibilité avec les homothéties Localité propriétés Croissance Extensivité / anti-extensivité Idempotence Dualité Indépendance par rapport à l’origine de l’espace: t, y(f+t)=y(f)+t Indépendance par rapport au paramètre d’échelle: l, y(lf)=ly(f)  E’ borné,  E borné / y(f)E’=y(fE)E’ A,B AB  y(A)  y(B) Extensivité:  A, Ay(A) y(y(.))=y(.) y et f duales :

Erosion / dilatation : définitions (1) Élément structurant B  relations de l’objet X avec l’élément (taille, forme données) Addition de Minkowski : Union des translatés de X par chaque ‘point’ de B propriétés : commutative, associative, croissante, élément neutre Soustraction de Minkowski : Intersection des translatés de X par chaque point de B propriétés : non commutative, associative, croissante, élément neutre Ө

Erosion / dilatation : définitions (2) Dilatation (binaire) : lieu géométr. des points x tels que Bx intersecte X Erosion (binaire) : lieu géométr. des points x tels que Bx soit inclus dans X dualité érosion / dilatation

Erosion / dilatation : algorithmes (1) Cas général (binaire) : En chaque pixel z de l’image examiner la relation entre l’élément struct. Bz et l’objet X Dilatation: pour i[1,#lignes] // boucle sur les lignes pour j[1,#colonnes] { // boucle sur les colonnes initializer y à 0 pour i’[iBmin,iBmax] // origine de B en 0  B inclus dans [iBmin,iBmax] [jBmin,jBmax] pour j’[jBmin,jBmax] si (y nul et ima(i+i’,j+j’) non nul et B(i’,j’) non nul) alors y  1 ima_dilate(i,j)  y } Erosion: initializer y à 1 si (y non nul et ima(i+i’,j+j’) nul et B(i’,j’) non nul) alors y  0 ima_erode(i,j)  y

Erosion / dilatation : algorithmes (2) Exploitation de l’associativité de la dilatation / érosion Cas d’un élément B qui est le résultat de l’addition de Minkowski de et avec B1 (B à la taille élémentaire) : Itérer la dilatation (érosion) par B1 Cas d’un élément convexe : Dilatations (érosions) successives par 2 segments Cas d’un élément structurant ‘boule’ : Seuillage de la transformée en distance de l’image binaire ou de son complémentaire

Dilatation binaire : exemples dB4(X) , B4: dB2(X), B2: dB2(dB2(X)) dB2(dB2(dB2(X))) dB0(X), B0: dB0(dB0(X)) dB0(dB0(dB0(X))) dB1(dB0(dB0(dB0(X)))), B1: dB1(dB1(dB0 (dB0(dB0(X))))) dB1(dB1(dB1(dB0 (dB0(dB0(X)))))) Dist1 4 3 4 3 0 3 11 11 11 7 5 7 11 5 0 5 7 5 7 11 Dist1 Dist1,5 Dist1,5 Dist2 Dist2 Dist2,5 Dist2,5

Érosion binaire : exemples eB4(X) , B4: eB2(X), B2: eB2(eB2(X)) eB2(eB2(eB2(X))) eB0(X), B0: eB0(eB0(X)) eB0(eB0(eB0(X))) eB1(eB0(eB0(eB0(X)))), B1: eB1(eB1(eB0 (eB0(eB0(X))))) eB1(eB1(eB1(eB0 (eB0(eB0(X)))))) Dist1 Dist1,5 4 3 4 3 0 3 11 11 11 7 5 7 11 5 0 5 7 5 7 11 Dist2 Dist2,5

Erosion / dilatation : propriétés (1) Croissance par rapport à X En effet : Extensivité / anti-extensivité (si centre de B inclus dans B) Croissance / décroissance par rapport à B

Erosion / dilatation : propriétés (2) Commutations en effet : Adjonction  La partie de Bz qui n’intersecte pas avec X est dans le complémentaire de Bz’  quand on se restreint à BzBz’ on ‘est dans’ X

Erosion / dilatation : exemples illustrant les propriétés Soit les éléments structurants : et B1   · B2 ·           X=dB1B2(X) dB1(X) dB2(X) dB1(X)dB2(X)         X=eB1B2(X) eB1(X) eB2(X) eB1(X)eB2(X)

Ouverture / fermeture binaires Définition Exemples binarisation e5(X) X-e5(X) g5(X) X-g5(X) X-g15(X) g15(X) X-e15(X) e15(X)

Ouverture / fermeture : propriétés (1) Croissance / X trivial car eB et dB  / X Extensivité / anti-extensivité propriété d’adjonction  car  car Illustration avec (Dé)croissance / B B   ·       X dB(X); XdB(X) jB(X); XjB(X)

Ouverture / fermeture : propriétés Idempotence Min-max : L’ouverture de X est le plus petit X’ de même érodé que X La fermeture de X est le plus grand X’ de même dilaté que X

Ouverture / fermeture : exemples illustrant les propriétés g15(X) = X g5(X) e15(g5(X)) g15(g5(X)) e15(X) e15(g15(X)) =

Profil morphologique : définition (gl)l≥0 une ‘granulométrie’ et (jl)l≥0 l’anti- granulométrie associée Fonction de distribution granulométrique m mesure bornée sur le treillis (e.g. aire#pixels) Xl = gl(X) et X-l = jl(X)  FX(l)=1-m(Xl)/m(X0) Spectre granulométrique fX(l)= F’X(l) (dérivée de FX) (gl)l0 / 0ll’  gl’gl=glgl’=gl’

Profil morphologique : application à l’analyse de texture X1=g(X0) X2=g(X1) X3=g(X2) X4=g(X3) X-1=j(X0) X-3=j(X-2) X-4 X-5 X-6 X-7 X-8

Dilatation / Erosion géodésique binaire Boules géodésiques Quand l , les boules géodésiques progressent comme le front d’une onde émise depuis z dans le milieu X Dilatation géodésique de taille l de Y dans X (YBl)X Erosion géodésique X eX(Y1) Y1 Y2 e(Y2)X

Reconstruction géodésique binaire Principe : à partir de marqueurs d’une composante connexe, on reconstruit toute la composante Méthode : dilatation géodésique dans X Algorithme Initialisation de la pile avec les pixels de XY Tant qu’il reste des éléments dans la pile : Extraire un élément (pixel) de la pile Le traiter labelisation de la composante connexe dans l’image résultat Calcul de ses voisins (dilatation par B) Ajout dans la pile (si nécessaire) des voisins situés dans X

Reconstruction géodésique : exemple Itération contenu de la pile 1 2 3 4 5 6 7 0 1 2 3 4 5 1 (2,1) 2 (1,1) (3,1) 3 (3,1) (1,2) 4 (1,2) (3,2) (4,1) 5 (3,2) (4,1) (1,3) 6 (4,1) (1,3) (3,3) 7 (1,3) (3,3) (5,1) 8 (3,3) (5,1) (2,3) (1,4) 9 (5,1) (2,3) (1,4) (4,3) (3,4) 10 (2,3) (1,4) (4,3) (3,4) (5,2) 11 (1,4) (4,3) (3,4) (5,2) (2,4) 12 (4,3) (3,4) (5,2) (2,4) (5,3) (4,4) 13 (3,4) (5,2) (2,4) (5,3) (4,4) 14 (5,2) (2,4) (5,3) (4,4) 15 (2,4) (5,3) (4,4) 16 (5,3) (4,4) (5,4) 17 (4,4) (5,4) 18 (5,4)

Exemples d’application (1&2) Reconstruction géodésique à partir de Y X Algorithme : k=0; Pour chaque pixel s de X : si xs et !zs : - calcul de EBX({s}) - k++ - t  EBX({s}), zt=k nbre composantes connexes = k Etiquettage de composantes connexes

Exemples d’application (3) Filtrage par Erosion-Reconstruction (ne modifie pas les contours des objets restants  Erosion-Dilatation)  Erosion de X puis reconstruction de eB(X) dans X   = g15(X) - X Exemple ‘cellules’ EBX(e15(X)) - = X

Exemples d’application (4) Suppression d’objets touchant le bord de l’image  Différence entre X et la reconstruction du bord dans X Exemple ‘cellules’ - = - = X EBX({l=0[nlig-1]} {c=0[ncol-1]})

Exemples d’application (5) Bouchage de trous Complément de la reconstruction dans Xc d’un ensemble qui n’intersecte pas X  Bouchage de trous Filtrage par reconstruction Exemple cellules cancer

Exemples d’application (6) Seuillage avec hystérésis  Reconstruction des points au-dessus du seuil haut dans l’ensemble des points au-dessus du seuil bas. Seuil=160 Seuil=210 Reconstructuion géodésique Bouchage de trou  et Application à la détection de contours

Erodé ultime : définition / algorithme Cas général (binaire) Ensemble des composantes connexes de X disparaissant à l’itération suivante lors d’une séquence d’érosions par un élément structurant élémentaire B1  Pour chaque pixel (non déjà dans érodé ultime) disparaissant à l’itération t, calculer la composante connexe à t-1 et tester si tous les pixels ont effectivement disparus à t. Cas d’un élément structurant disque Ensemble des maxima régionaux de la fonction distance de X à son complémentaire Algorithme : Calcul de l’image des distances Calculer l’ensemble des maxima locaux Pour chaque maximum local (xsxt, tVs) non déjà traité : Reconstitution géodésique de la composante connexe à xs conditionnellement à l’image des valeurs supérieures à xs  CC(xs) Si xtCC(xs): xt>xs, alors marquer comme traités les maxima locaux qui appartiennent à CC(xs) Sinon, alors xs est un maximum régional et CC(xs)  érodé ultime

Erodé ultime : exemple Distance 4-connexité Distances 8-connexité, respectivement masque (1,0), (4,3,0) et (11,7,5,0) Érosions successives par B

Transformation en ‘tout ou rien’ Définition :  teste l’appartenance de certains voisins à X ET de certains autres à Xc Notation des éléments structurants : noir = objet (1), blanc = fond (0), gris = quelconque Ex. d’application : détection de coins (saillants) UL UR LL LR généralisé pour des dimensions >3

Calcul de l’enveloppe convexe Définition: L'enveloppe convexe d'un objet O est l’ensemble convexe (Ec /  (A,B) 2 points de Ec, [A,B] est entièrement contenu dans Ec) le plus petit parmi ceux incluant O.  épaississement (ajout des points sélectionnés) par la transformation en Tout ou Rien suivante : 12 elts struct. Exemple :  avec 1 elt. struct. 33, il n’est pas possible de gérer des pentes autres que {0,/2,/4,3/4}

Squelette morphologique : définition Même forme, respect des parties allongées, etc… Mêmes nombres de composantes connexes, de trous. Exemples de propriétés souhaitées : Préservation de la géométrie, de la topologie Invariance aux translations, rotations, homothéties Réversibilité, continuité, épaisseur nulle Squelette morphologique euclidien (cas continu) U des centres des boules maximales (contenues ds X) Cas discret : U des résidus d’ouverture des érodés successifs :  Épaisseur nulle, réversible Mais ne préserve pas la topologie, ex: non continu, ex: La forme peut être retrouvée connaissant le squelette et la taille des érosions (p.e.). 1 ‘petite’ variation de forme engendre 1 petite variation du squelette.

Homotopie discrète et simplicité Définition : F fct de R2  R2 préserve la topologie si  A ouvert, A et F(A) sont homotopes Cas discret : A’ K-homotope à A   2 bijections préservant la relation d’entourage (au sens du théorème de Jordan) entre : (i) les ensembles des K-cc (K{4,8}) de A et de A’, (ii) les ensembles des K’-cc (K’=12-K) de Ac et de (A’)c  pour A’A (i) toute K-cc (K{4,8}) de A contient exactement 1 K-cc de A’ et (ii) toute K’-cc (K’=12-K) de (A’)c contient exactement 1 K’-cc de Ac Définition : x point K-simple dans X  X-{x} homotope à X  x a au moins 1 K’-voisin dans Xc et x est K-voisin d’1 seule K-cc de X  se calcule en examinant les 8 voisins

Homotopie discrète et simplicité x3 x1 x2 x4 x0,x8 x x5 x7 x6 Propriété : x est K-simple  NKX(x)=1 Retrait des points K-simples : séquentiel  perte des propriétés métriques, parallèle  risque de perte de l’homotopie solution : ‘¼ parallèle’ : on ne retire ensemble que les points qui ont 1 voisin ‘Nord’ (resp. ‘Est’, ‘Sud’, ‘Ouest’) dans Xc Rq : noyau homotopique ne préserve pas la forme de X  utilisation de ‘points d’ancrage’ Une union de points K-simples n’est pas nécessairement 1 ens. simple, ex : x et y sont simples mais pas {x,y} x y

Caractérisation géométrique des points K-simples Définition : transformation ‘tout ou rien’  teste l’appartenance de certains voisins à X ET de certains autres à Xc Définition : amincissement (resp. épaississement) de X  enlever (resp. ajouter) des points de X sélectionnés par 1 transformation en tout ou rien. Propriété : 1 amincissement (épaississement) est homotopique si l’inversion de couleur du point central ne modifie pas la topologie. Ex.   préserve topo Exemples d’élément structurant : Lskel Mskel Ebardage

Squelette morphologique : algorithme Rq : noyau homotopique ne préserve pas la forme de X  utilisation de ‘points d’ancrage’ , e.g. maxima locaux de la distance Algorithme préservant la topologie : Initialiser S(X) à X Répéter (jusqu’à avoir traité tous les points de X) : Soit ESd les points de S(X) ayant un voisin immédiat dans (S(X))c dans la direction ‘Nord’ (resp. ‘Est’, ‘Sud’, ‘Ouest’) Déterminer LK-s l’ensemble (parmi les points de ESd) des points ‘K-simples’ (en K connexité) Retirer simultanément de S(X) tous les points de LK-s (sauf points d’ancrage) Changer la direction considérée (N, E, S, ou O) Informatiquement, utilisation de ‘piles’ de pixels

1 1 2 1 2 1 2 2 1 1 2 2 1

Exemple : X 4-connexité Itérations 0, 1, 2 Itérations 3, 4, 5

Squelette par zones d’influence (SKIZ) Définition : Soit X compact de R2, la zone d’influence d’une composante connexe Xi de X est l’ens. des points plus près de Xi que de tout autre composante Le SKIZ est la frontière des zones d’influence Calcul du SKIZ : 1. Amincissement du fond par Lskel 2. Puis ébardage du résultat de 1. Ex :

SKIZ : Exemple SKIZ Composantes connexes de Ib Transformée en distance de Ib Composantes connexes de Iz Image binaire des cellules (Ib) Maxima régionaux de la transformée en distance Zones d’influence géodés. (Iz) des max. reg. des dist. dans Ib SKIZ

Exercices (II) Démontrer les propriétés de commutation des opérateurs dilatation et érosion binaires. (Utiliser les définitions de ces opérateurs) Démontrer les propriétés de croissance / décroissance et extensivité / anti-extensivité des opérateurs ouverture et fermeture binaires. (Utiliser les propriétés des opérateurs dilatation et érosion, notamment l’adjonction pour démontrer l’extensivité / anti-extensivité)

Exercices (II) : correction Commutation des opérateurs dilatation et érosion. Propriétés des ouvertures / fermetures binaires Croissance / X : trivial car eB et dB  / X Extensivité / anti-extensivité propriété d’adjonction  car  car (Dé)croissance / B

Exercice Soit l’image suivante : On cherche à compter les différents types de cellules et leur proportions respectives. Proposez une solution, décrivez le synoptique de l’algorithme à mettre en œuvre et les fonctions à développer (notamment les entrées / sorties), puis pour chacune d’elles le pseudo-code.

Éliminer les objets touchant le bord Seuillage Image niveaux de gris Image binaire Image binaire filtrée Éliminer les objets touchant le bord Seuillage Image segmentée des particules Détection des différentes particules Image binaire filtrée Éliminer le bruit (petites particules) Image des squelettes des particules Squelette Détermination des paramètres pour chaque particule Liste des objets avec caractérist. Liste des objets avec étiquettes Classification