Vous êtes sur la page 1sur 74

Graphes en analyse d’images, vision, reconnaissance

Florence Tupin

Florence.Tupin@enst.fr

http://www.tsi.enst.fr/ ˜ tupin

Ecole Nationale Superieure´

des Tel´ ecommunications´ Paris - France

Ecole Nationale Superieure´ des Tel´ ecommunications´ Paris - France - CNRS UMR 5141 LTCI F. Tupin

- CNRS UMR 5141 LTCI

F. Tupin - Graphes – p.1/53

Plan du cours

1. Définitions et modèles de représentation

2. Méthodes mono-graphes

Méthodes de segmentation et graph-cuts

Graphes et reconnaissance des formes

3. Mise en correspondance de graphes

Isomorphismes de graphes et de sous-graphes

Isomorphismes de sous-graphes avec tolérance d’erreur

Mise en correspondance approximative (inexact matching)

F. Tupin - Graphes – p.2/53

Plan du cours

1. Définitions et modèles de représentation

2. Méthodes mono-graphes

Méthodes de segmentation et graph-cuts

Graphes et reconnaissance des formes

3. Mise en correspondance de graphes

Isomorphismes de graphes et de sous-graphes

Isomorphismes de sous-graphes avec tolérance d’erreur

Mise en correspondance approximative (inexact matching)

F. Tupin - Graphes – p.3/53

Pourquoi des graphes ?

Intérêt : représentation compacte, structurée, complète, facile à manipuler

Applications :

Traitement d’images : segmentation, détection de contours

Reconnaissance des formes : caractères, objets (bâtiments 2D ou 3D,

structures cérébrales,

Recalage d’images

Indexation

Interprétation de scènes structurées

),

reconnaissance de visages (avec ou sans modèle)

F. Tupin - Graphes – p.4/53

Définition et rappels

Graphe :

G = ( X, E )

X ensemble des sommets ( | X | ordre du graphe)

E ensemble des arêtes ( | E | taille du graphe)

graphe complet (taille n ( n 1) )

2

graphe

partiel G = ( X, E ) avec E partie

de E

sous-graphe F = ( Y, E ) , Y X et E

E

degré d’un sommet x : d( x) = nombre d’arêtes

graphe connexe : pour toute paire de sommets, il existe une chaîne les reliant

arbre : graphe connexe sans cycles

clique : sous-graphe complet

graphe dual (face nœud)

graphe aux arêtes (arête nœud)

hypergraphe (relations n-aires)

graphes pondérés : coûts ou poids sur les arcs

F. Tupin - Graphes – p.5/53

Représentation

Matrice d’adjacence, listes d’adjacence d b a f c e
Matrice d’adjacence, listes d’adjacence
d
b
a
f
c
e

a

b

c

d

e

f

a 0

1

1

1

0

0

b 1

0

0

0

0

0

c 1

0

0

0

1

1

d 1

0

0

0

1

0

e 0

0

1

1

0

0

f 0

0

1

0

0

0

F. Tupin - Graphes – p.6/53

Notion de complexité

Majorant du nombre d’opérations élémentaires pour obtenir le résultat

algorithme polynomial / exponentiel

problème NP-complet : il n’existe pas d’algorithme qui soit dans tous les cas non exponentiel (polynomial)

F. Tupin - Graphes – p.7/53

Exemples de graphes

Graphe relationnel attribué : G = ( X, E, µ, ν )

µ : X L X interpréteur de sommets ( L X = attributs des nœuds)

ν : E L E interpréteur d’arcs (L E = attributs des arcs)

Exemples :

graphe des pixels

graphe d’adjacence de régions

régions de Voronoï / triangulation de Delaunay

graphe de primitives avec des relations plus complexes

Graphe aléatoire : sommets et arcs = variables aléatoires

Graphe

flou : G = ( X, E = X × X, µ f , ν f )

µ f : X [0, 1]

ν f : E

avec ( u, v ) X × X

[0, 1]

ν f ( u, v ) µ f ( u ) µ f ( v ) ou

ν f ( u, v ) min[ µ f ( u ) µ f ( v )]

F. Tupin - Graphes – p.8/53

Exemples de graphes (suite)

Graphe d’attributs flous : graphe relationnel attribué avec valeur floue pour chaque attribut

Graphe hiérarchique :

graphes à plusieurs niveaux et graphe biparti entre deux niveaux

(approches multi-échelles, regroupements d’objets,

)

Exemples :

quadtrees, octrees

représentation hiérarchique du cerveau

Graphes de raisonnement (graphe de mise en correspondance, arbre de décision,

Graphes d’aspect

)

F. Tupin - Graphes – p.9/53

Exemple de graphe hiérarchique du cerveau

Niveaux 1 et 2 :

FB

B

FB B MB B HB

MB

B

HB
HB
Tel I;B Die B MB B Met B MO
Tel
I;B
Die
B
MB
B
Met
B
MO

F. Tupin - Graphes – p.10/53

Exemple de graphe hiérarchique du cerveau

Niveau 3 :

cc H H LVL LVR E E CdL CdR PuL E E E E I
cc
H
H
LVL
LVR
E
E
CdL
CdR
PuL
E
E
E
E
I
I
E
E
I
ClL
emcL
I
B
B
icL
icR
E
E
E
GPL
V3
E
E
E
E
excL
ThL
ThR
MB
B
Pons
Ar
Ar
CbL
CbR
V4
B
MO
PuR E E I I emcR ClR
PuR
E
E
I
I emcR
ClR
GPR
GPR

E

excR
excR

F. Tupin - Graphes – p.10/53

Exemple de graphe hiérarchique du cerveau

Niveau 4 (partiel) :

H FLV cc I E H spt I Pu HCd BLV I E E I
H
FLV
cc
I
E
H
spt
I
Pu
HCd
BLV
I
E
E
I
aic
B
LGP
BCd
CLV
E
Av
E
E
I
pic
Th
V3
I
H
MGP
TCd
TLV
OLV

F. Tupin - Graphes – p.10/53

Quelques algorithmes classiques sur un graphe

Recherche de l’arbre couvrant de poids minimal

algorithme

algorithme

de Kruskal O ( n 2 + mlog 2 ( m))

de Prim O ( n 2 )

Problèmes de plus court chemin

poids positifs : algorithme de Dijkstra O ( n 2 )

valuations quelconques mais sans cycle : algorithme de Bellman O ( n 2 ) Flot maximum et coupe de capacité minimum

G = ( X, E )

partition en 2 parties A et B ( A B = X , A B = )

cut ( A, B ) = P xA,y B w ( x, y )

algorithme de Ford et Fulkerson

F. Tupin - Graphes – p.11/53

Plan du cours

1. Définitions et modèles de représentation

2. Méthodes mono-graphes

Méthodes de segmentation et graph-cuts

Graphes et reconnaissance des formes

3. Mise en correspondance de graphes

Isomorphismes de graphes et de sous-graphes

Isomorphismes de sous-graphes avec tolérance d’erreur

Mise en correspondance approximative (inexact matching)

F. Tupin - Graphes – p.12/53

Segmentation par arbre couvrant

Constantinidès (1986)

graphe des pixels pondéré par les différences de niveaux de gris

recherche de l’arbre couvrant de poids minimal

arbre couvrant partition par suppression d’arêtes (= les ( N 1) plus coûteuses)

d’arêtes (= les ( N − 1) plus coûteuses) image 0 255 0 255 0 255

image

0

255

0

255

0

255

0

0

128

128

graphe des pixels attribué

0 255 0

0

0 255 0

255

0 255 0

0

0 255 0
0 255 0
0 255 0
0 255 0
 

0

     
     
   
     
     
 
     
     
 
   
   
 
   
 

0

0

128

arbre couvrant de poids minimal

suppression des arêtes les plus coûteuses

F. Tupin - Graphes – p.13/53

Calcul de l’arbre couvrant de poids minimal

Algorithme de Kruskal

A partir d’un graphe partiel initialement sans arête, itérer ( n 1) fois : choix d’une arête de poids minimum ne formant pas de cycle avec les arêtes précédemment choisies

Mise en œuvre :

1. tri des arêtes par ordre des poids croissants

2. tant qu’on n’a pas retenu ( n 1) arêtes :

sélection de la première arête non examinée

si cycle, rejet

sinon ajout de l’arête

Complexité O ( n 2 + mlog 2 ( m))

Algorithme de Prim

Extension de proche en proche de l’arbre couvrant minimal

Complexité O ( n 2 )

F. Tupin - Graphes – p.14/53

Segmentation par coupe de capacité minimale Graph-cut

Wu et Leahy (1993)

Graphe des pixels, poids des arcs w ( x, y ) en fonction de similarités

Segmentation : partitionnement du graphe en sous-graphes

Principe : recherche itérative de la coupe de capacité minimale

coupe : partition du graphe en 2 parties A et B

A B

cut ( A, B ) = P xA,y B w ( x, y )

= X , A B =

Extension possible au graphe d’adjacence d’une sur-segmentation

F. Tupin - Graphes – p.15/53

Calcul de la coupe de capacité minimale (flot maximal)

Algorithme de Ford et Fulkerson

flot : f lot ( u ) capa ( u ) et conservation du flot en chaque sommet

Théorème :

valeur max du flot = coupe de capacité min

Principe de l’algorithme de Ford et Fulkerson :

partant du flot nul, chercher s’il existe une chaîne augmentante pour augmenter le flot le long de la chaîne

1. algorithme de marquage pour détecter une chaîne augmentante

2. amélioration du flot courant s’il existe une chaîne

Sortie : valeur du flot et coupe de capacité minimale

Complexité : O ( mn c max )

Variantes plus rapides pour très grand nombre de sommets

F. Tupin - Graphes – p.16/53

image Un exemple simple 0 255 0 255 0 255 255 255 128 128 graphe

image

Un exemple simple

0

255

0

255

0

255

255

255

128

128
128

graphe des pixels attribué

coupe de capacité minimale

partition

Influence du nombre d’arcs dans la coupe : Cut ( A, B ) = 4b , Cut ( A , B ) = 3b

a

coupe normalisée

5 1 2 b a b a b a a b a 3 4 b
5
1
2
b
a
b
a
b
a
a
b
a
3
4
b
6
Cut(A,B)

Cut(A’,B’)

F. Tupin - Graphes – p.17/53

Segmentation par coupe normalisée

Shi et Malik (2000)

Principe : segmentation par partitionnement du graphe par coupe de coût minimal

+ suppression de l’influence du nombre d’arcs dans la coupe : coupe “normalisée”

Ncut ( A, B ) =

cut ( A, B )

cut ( A, B )

assoc( A, X ) + assoc( B, X )

assoc( A, X ) =

X

a A,xX

w ( a, x)

Mesure de l’association à l’intérieur d’un groupe

Nassoc( A, B ) =

assoc( A, A )

assoc( B, B )

assoc( A, X ) + assoc( B, X )

Ncut ( A, B ) = 2 Nassoc( A, B )

minimiser le coût de séparation ⇔ maximiser l’association
minimiser le coût de séparation ⇔ maximiser l’association

F. Tupin - Graphes p.18/53

Segmentation par coupe normalisée (suite)

Problème NP complet

Optimisation :

x = ( x i ) avec x i = 1 si i A , x i = 1 sinon D = diag ( d i ) avec d i = P j w ij

W = ( w ij )

min Ncut ( x) = min

x

y

y T ( D W ) y

y T Dy

P x i >0 P x i <0

d

i

avec y ( i ) ∈ {1, b } ( b =

Solution : vecteur propre associé à la seconde plus petite valeur propre de

d

i

) et y T D 1 = 0

( z = D 1 2 y )

( D W ) y = λDy ou D 1

1

2 ( D W ) D 2 z = λz

Itérations : en fonction de la “qualité” de la partition

Autre application : classification en fonction des valeurs des vecteurs propres

F. Tupin - Graphes – p.19/53

Exemples (univ. Berkeley)

Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53

http://www.cs.berkeley.edu/projects/vision/Grouping/

Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53

F. Tupin - Graphes – p.20/53

Exemples (univ. Berkeley)

Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53
Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F. Tupin - Graphes – p.20/53

http://www.cs.berkeley.edu/projects/vision/Grouping/

F. Tupin - Graphes – p.20/53

Exemples (univ. Berkeley)

Exemples (univ. Berkeley) http://www.cs.berkeley.edu/projects/vision/Grouping/ F . T u p i n - G r a p

http://www.cs.berkeley.edu/projects/vision/Grouping/

F. Tupin - Graphes p.20/53

Graph-cuts

Autres méthodes

Variantes sur la définition du “coût de la coupe” (Minimum mean cut, etc.)

Variantes sur les fonctions de coût des arcs

Contours actifs optimisés par graph-cuts

Bibliographie

An optimal graph theoretic approach to data clustering: theory and its application to image segmentation, Z. Wu et R. Leahy, IEEE PAMI, vol.15, num.11, nov. 93

Normalized cuts and image segmentation, J. Shi et J. Malik, IEEE PAMI, vol. 22, num. 8, 2000

Image segmentation with minimum mean cut, 8th ICCV, 2001

Object segmentation using graph cuts based active contours, CCVPR 2003, vol.2

F. Tupin - Graphes – p.21/53

Plan du cours

1. Définitions et modèles de représentation

2. Méthodes mono-graphes

Méthodes de segmentation et graph-cuts

Graphes et reconnaissance des formes

3. Mise en correspondance de graphes

Isomorphismes de graphes et de sous-graphes

Isomorphismes de sous-graphes avec tolérance d’erreur

Mise en correspondance approximative (inexact matching)

F. Tupin - Graphes – p.22/53

Interprétation d’images

Tenenbaum et Barrow (1977)

Segmentation en régions

Construction du graphe d’adjacence des régions

Interprétation contrainte par un ensemble de règles sur :

1. les objets (taille, couleur, texture,

)

2. les relations entre objets (au-dessus de, à l’intérieur de, à côté de

Généralisation avec des graphes d’attributs flous

)

F. Tupin - Graphes – p.23/53

Méthodes markoviennes (graphes aléatoires)

U ( x| y ) = U ( y | x) + U ( x) = U ( y | x) + X V c ( x)

Applications de bas-niveau :

c ∈C

graphe des pixels

segmentation, classification, restauration

Applications de plus haut-niveau :

graphe des régions (bassins versants de la LPE, Suk,

graphe de primitives (contours, points caractéristiques, lignes,

)

)

segmentation, reconnaissance d’objets structurés, interprétation de la scène

F. Tupin - Graphes – p.24/53

Exemple sur un graphe d’adjacence (T. Géraud)

Exemple sur un graphe d’adjacence (T. Géraud) F. Tupin - Graphes – p.25/53

F. Tupin - Graphes – p.25/53

Exemple sur un graphe de segments (F. Tupin)

F. Tupin - Graphes – p.26/53

Exemple sur un graphe de régions (F. Tupin)

Exemple sur un graphe de régions (F. Tupin) F. Tupin - Graphes – p.27/53
Exemple sur un graphe de régions (F. Tupin) F. Tupin - Graphes – p.27/53

F. Tupin - Graphes – p.27/53

Exemple sur un graphe de régions (F. Tupin)

Exemple sur un graphe de régions (F. Tupin) F. Tupin - Graphes – p.28/53
Exemple sur un graphe de régions (F. Tupin) F. Tupin - Graphes – p.28/53

F. Tupin - Graphes – p.28/53

Méthodes markoviennes et optimisation par graph-cuts

Segmentation binaire (Greig et al. 89) :

U ( x| y ) = X V c ( y i | x i ) + X β ( x i x j ) 2

i

(

i,j )

source S (label 1), puits P (label 0)

arcs terminaux de poids l’attache aux données

arcs entre voisins de poids V c (0, 1)

solution MAP coupe de poids minimale

cut ( E S , E P ) = X V c ( y i | 1) + X V c ( y i | 0) +

iE S

iE P

( x i = 1 pour i E S , x i = 0 pour i E P )

X

β

( iE s ,j E P )

F. Tupin - Graphes – p.29/53

Méthodes markoviennes et optimisation par graph-cuts

( x i = 1 pour i E S , x i = 0 pour i E P )

S(label 0)

coupe Vc(yi|0) β β β β i Vc(yi|1)
coupe
Vc(yi|0)
β
β
β
β
i
Vc(yi|1)

P (label 1)

F. Tupin - Graphes – p.30/53

Méthodes markoviennes et optimisation par graph-cuts

Segmentation ou restauration à niveaux de gris (Boykov, Veksler 99) :

généralisation de la méthode précédente Définition de deux espaces de mouvement (permettant de se ramener au cas binaire)

expansion de label α : source S et puits P correspondant à 2 labels différents α et

α

)

échange α β : source S et puits P aux labels α et β

Optimisation par recherche itérative du graph-cut :

le graphe : pixels étiquetés à ces labels

les poids définis par la segm. courante

faible nombre d’itérations par rapport au recuit simulé

NB : contrairement au cas binaire : pas de garantie sur l’optimalité de la solution

F. Tupin - Graphes – p.31/53

Reconnaissance des formes

Objet : défini par un ensemble de primitives (nœuds du graphe)

Relations binaires de compatibilité entre primitives (arcs du graphe)

Clique : sous-ensemble de primitives compatibles 2 à 2 = configuration possible de l’objet

Reconnaissance par détection de la clique maximale

Recherche des cliques :

Problème NP-complet

Pas d’algorithme qui soit dans tous les cas non exponentiel

Construction d’un arbre de décision : un nœud de l’arbre = 1 clique du graphe

Elagage de l’arbre pour ne pas réengendrer les mêmes cliques

Théorème : soit S un nœud de l’arbre de recherche T , et soit x le premier fils de S à être exploré. Si tous les sous-arbres de S ∪ {x} ont été générés, il suffit d’explorer les fils de S qui ne sont pas adjacents à x.

F. Tupin - Graphes – p.32/53

Exemple : détection du bâti par recherche de la clique maximale (IGN)

Exemple : détection du bâti par recherche de la clique maximale (IGN) F. Tupin - Graphes
Exemple : détection du bâti par recherche de la clique maximale (IGN) F. Tupin - Graphes
Exemple : détection du bâti par recherche de la clique maximale (IGN) F. Tupin - Graphes
Exemple : détection du bâti par recherche de la clique maximale (IGN) F. Tupin - Graphes
Exemple : détection du bâti par recherche de la clique maximale (IGN) F. Tupin - Graphes
Exemple : détection du bâti par recherche de la clique maximale (IGN) F. Tupin - Graphes
Exemple : détection du bâti par recherche de la clique maximale (IGN) F. Tupin - Graphes
Exemple : détection du bâti par recherche de la clique maximale (IGN) F. Tupin - Graphes

F. Tupin - Graphes – p.33/53

Plan du cours

1. Définitions et modèles de représentation

2. Méthodes mono-graphes

Méthodes de segmentation et graph-cuts

Graphes et reconnaissance des formes

3. Mise en correspondance de graphes

Isomorphismes de graphes et de sous-graphes

Isomorphismes de sous-graphes avec tolérance d’erreur

Mise en correspondance approximative (inexact matching)

F. Tupin - Graphes – p.34/53

Mise en correspondance (matching) de graphes

Problème :

Graphe(s) modèle(s) (atlas, carte, modèle(s) d’objet(s))

Graphe image construit à partir des données

Mise en correspondance des deux graphes

G = ( X, E, µ, ν )

? G = ( X ,

E , µ , ν )

Isomorphismes de graphes : fonction bijective f : X X

µ( x) = µ ( f ( x))

e = ( x 1 , x 2 ) , e = ( f ( x 1 ) , f ( x 2 )) /

ν ( e ) = ν ( e ) et réciproquement

Souvent trop strict isomorphismes de sous-graphes

F. Tupin - Graphes – p.35/53

Isomorphismes de sous-graphes

Il existe un sous-graphe S de G tel que f soit un isomorphisme de G dans S

1 8 2 7 3 5 4 6
1
8
2
7
3 5
4
6
a b c e d
a
b
c
e
d
8 1 7 2 5 3 4 6
8
1
7
2
5
3
4
6
a b d c d
a
b
d
c
d

Il existe un sous-graphe S de G et un sous-graphe S de G tel que f soit un isomorphisme de S dans S

F. Tupin - Graphes – p.36/53

Isomorphismes de sous-graphes : recherche de cliques maximales

Recherche de la clique maximale du graphe d’association

principe : construction du graphe d’association

clique maximale = isomorphisme de sous-graphes

3’

a b b 2 3 a a a a a 4’ 1 4 1’ 2’
a
b
b
2
3
a
a
a
a
a
4’
1
4
1’
2’
(1,2’)
(1,4’)
(1,1’)
(2,1’)
(4,4’)
(4,2’)
(2,4’)
(4,1’)
(3,3’)

(2,2’)

F. Tupin - Graphes – p.37/53

Isomorphismes de sous-graphes :

d’Ullman

algorithme

Principe : extension d’un ensemble d’associations ( v i , w x i ) jusqu’à ce que tout le graphe G ait été parcouru. En cas d’échec, on “remonte” l’arbre des associations (“backtrack”). Accélération : procédure “forward checking” avant d’ajouter une association.

Algorithme :

matrice des associations de sommets

matrice des associations futures possibles pour une liste d’associations donnée

liste des associations mise à jour par les 2 procédures “Backtrack” et “ForwardChecking”

Complexité : pire cas O ( m n n 2 ) ( n ordre de X ,

m de X , n < m)

F. Tupin - Graphes – p.38/53

Plan du cours

1. Définitions et modèles de représentation

2. Méthodes mono-graphes

Méthodes de segmentation et graph-cuts

Graphes et reconnaissance des formes

3. Mise en correspondance de graphes

Isomorphismes de graphes et de sous-graphes

Isomorphismes de sous-graphes avec tolérance d’erreur

Mise en correspondance approximative (inexact matching)

F. Tupin - Graphes – p.39/53

Isomorphismes de sous-graphes avec tolérance d’erreurs

Monde réel : graphes bruités, incomplets, distorsions

Distance entre graphes (opérations d’édition, fonction de coût,

Isomorphisme de sous-graphe avec tolérance d’erreurs : recherche du sous-graphe de G à distance minimale de G

Algorithmes optimaux : A (solution correcte assurée, complexité exponentielle)

Algorithmes approximatifs : génétiques, recuit simulé, réseaux de neurones, relaxation probabiliste,

)

minimisation itérative d’une fonction objectif (distance de la solution courante à la solution optimale)

mieux adaptés pour les grands graphes

problèmes de minima locaux et de convergence

F. Tupin - Graphes – p.40/53

Algorithme A

Principe : construction d’un arbre de recherche par appariements successifs des sommets avec évaluation de la fonction de coût pour chaque état (seuls les états de coûts inférieurs sont ensuite propagés)

Complexité :

Amélioration : estimation des coûts futurs pour ne pas propager inutilement des branches

O ( n 2 m n ) (pire cas)

F. Tupin - Graphes – p.41/53

Recalage carte + image SPOT (M. Roux)

Recalage carte + image SPOT (M. Roux) F. Tupin - Graphes – p.42/53

F. Tupin - Graphes – p.42/53

Recalage carte + image SPOT (M. Roux)

Recalage carte + image SPOT (M. Roux) F. Tupin - Graphes – p.42/53

F. Tupin - Graphes – p.42/53

Recalage carte + image SPOT (M. Roux)

Recalage carte + image SPOT (M. Roux) F. Tupin - Graphes – p.42/53

F. Tupin - Graphes – p.42/53

Recalage carte + image SPOT (M. Roux)

Recalage carte + image SPOT (M. Roux) F. Tupin - Graphes – p.42/53

F. Tupin - Graphes – p.42/53

Recalage carte + image SPOT (M. Roux)

Recalage carte + image SPOT (M. Roux) F. Tupin - Graphes – p.42/53

F. Tupin - Graphes – p.42/53

Recalage carte + image SPOT (M. Roux)

Recalage carte + image SPOT (M. Roux) F. Tupin - Graphes – p.42/53

F. Tupin - Graphes – p.42/53

Décomposition en éléments communs

Messmer (1996)

G1

b d a c
b
d
a
c
G2 d a c e 3 d G3 1 2 d a 4 6 5
G2
d
a
c
e
3
d
G3
1
2
d
a
4
6
5
a
c
e
b d a e 1 2 3 4 c 5 {1} {2} {5} {4} {3}
b
d
a
e
1
2
3
4
c
5
{1}
{2}
{5}
{4}
{3}
{6}
d
a
{1,2}
{3,2}
d
a
c
{1,2,5}
{3,2,5}
d
a
b
d
a
c
c
e
G1
G2

{1 2 5 4}

F. Tupin - Graphes – p.43/53

Exemple

Reconstruction 3D par appariement entre un ensemble de graphes modèles et un graphe de données (IGN)

3D par appariement entre un ensemble de graphes modèles et un graphe de données (IGN) F.
3D par appariement entre un ensemble de graphes modèles et un graphe de données (IGN) F.
3D par appariement entre un ensemble de graphes modèles et un graphe de données (IGN) F.
3D par appariement entre un ensemble de graphes modèles et un graphe de données (IGN) F.

F. Tupin - Graphes – p.44/53

Plan du cours

1. Définitions et modèles de représentation

2. Méthodes mono-graphes

Méthodes de segmentation et graph-cuts

Graphes et reconnaissance des formes

3. Mise en correspondance de graphes

Isomorphismes de graphes et de sous-graphes

Isomorphismes de sous-graphes avec tolérance d’erreur

Mise en correspondance approximative (inexact matching)

F. Tupin - Graphes – p.45/53

Relaxation probabiliste

Expression du problème par MAP :

P ( θ i = ω λ | x j,j N 0 , A ij,j N i )

max

ω λ

Règle de mise à jour d’un nœud :

P ( n +1) ( θ i = ω θ i ) =

P ( n ) ( θ i

= ω θ i ) Q ( n ) ( θ i = ω θ i )

P ω λ P ( n ) ( θ i = ω λ ) Q ( n ) ( θ i = ω λ )

Q ( n ) ( θ i = ω α ) = Π j N i X P ( n ) ( θ j = ω β ) × p ( A ij | θ i = ω α , θ j = ω β )

Initialisation :

ω β

P (0) ( θ i = ω θ i ) = P ( θ i = ω θ i | x i )

Arrêt : nombre d’itérations, probabilité proche de 1 des étiquettes des nœuds, évolution négligeable

Modèle d’erreur gaussien par rapport au modèle : évaluation des p ( A ij | θ i = ω α , θ j = ω β )

Contraintes : définir la probabilité d’appariement au nœud nul (nœud du modèle manquant, nœuds faux des données) (niveau de bruit attendu dans le graphe) F. Tupin - Graphes p.46/53

Reconnaissance des sillons corticaux (J.-F. Man- gin)

Reconnaissance des sillons corticaux (J.-F. Man- gin) F. Tupin - Graphes – p.47/53

F. Tupin - Graphes – p.47/53

Reconnaissance des sillons corticaux (J.-F. Man- gin)

Reconnaissance des sillons corticaux (J.-F. Man- gin) F. Tupin - Graphes – p.47/53

F. Tupin - Graphes – p.47/53

Reconnaissance des sillons corticaux (J.-F. Man- gin)

Reconnaissance des sillons corticaux (J.-F. Man- gin) F. Tupin - Graphes – p.47/53

F. Tupin - Graphes – p.47/53

Reconnaissance des sillons corticaux (J.-F. Man- gin)

Reconnaissance des sillons corticaux (J.-F. Man- gin) F. Tupin - Graphes – p.47/53

F. Tupin - Graphes – p.47/53

Activations

Coulon)

en

imagerie

fonctionnelle

(O.

F. Tupin - Graphes – p.48/53

Activations

Coulon)

en

imagerie

fonctionnelle

(O.

F. Tupin - Graphes – p.48/53

Activations

Coulon)

en

imagerie

fonctionnelle

(O.

F. Tupin - Graphes – p.48/53

Activations

en

imagerie

fonctionnelle

(O.

Coulon)

Activations en imagerie fonctionnelle (O. Coulon) F. Tupin - Graphes – p.48/53

F. Tupin - Graphes – p.48/53

Activations

en

imagerie

fonctionnelle

Coulon)

Activations en imagerie fonctionnelle Coulon) (O. F. Tupin - Graphes – p.48/53

(O.

F. Tupin - Graphes – p.48/53

Mise en correspondance approximative (inexact matching)

Fonction à optimiser :

Fonction de dissimilarité entre nœuds

c N ( a D , a M ) = X α i d( a ( a D ) , a ( a M ))

N

i

N

i

X α i = 1

Fonction de dissimilarité entre arcs

C E (( a D , a D 2 ) , ( a M , a M 2 )) = X β j d( a ( a D , a 2 D ) , a ( a M , a M

1

1

A

j

1

A

j

1

2

))

Fonction de coût du matching h :

X β j = 1

f ( h) =

α | N D |

X

a D N D

c N ( a D , h( a D ))+ 1 α | E D |

Méthodes d’optimisation :

X

( a D ,a D 2 ) E D

1

c E (( a D , a D 2 ) , ( h( a D ) , h( a D 2 )))

1

1

algorithmes de recherche arborescente

EM

algorithmes génétiques

réseaux bayésiens et estimation de distributions F. Tupin - Graphes p.49/53

Exemple : reconnaissance de structures cérébrales (A. Perchant)

Exemple : reconnaissance de structures cérébrales (A. Perchant) F. Tupin - Graphes – p.50/53
Exemple : reconnaissance de structures cérébrales (A. Perchant) F. Tupin - Graphes – p.50/53

F. Tupin - Graphes – p.50/53

Exemple : reconnaissance de structures du visage (R. Cesar et al.)

Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –
Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –
Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –

F. Tupin - Graphes – p.51/53

Exemple : reconnaissance de structures du visage (R. Cesar et al.)

(0, 0)

(1, 1) (1, 2) (1, l ) (1, |N 2 |) min (2, 1) (2,
(1, 1)
(1, 2)
(1, l
)
(1, |N
2 |)
min
(2, 1)
(2, 2)
(2, k
)
(2, |N
min

etc.

2 |)

F. Tupin - Graphes – p.51/53

Exemple : reconnaissance de structures du visage (R. Cesar et al.)

gradient

extraction

watershed

algorithm

watershed algorithm segmented / recognized features

segmented /

recognized

features

input graph

creation

frame i

/ recognized features input graph creation frame i i = i + 1 updated landmarks model
/ recognized features input graph creation frame i i = i + 1 updated landmarks model
/ recognized features input graph creation frame i i = i + 1 updated landmarks model
/ recognized features input graph creation frame i i = i + 1 updated landmarks model

i = i + 1

updated

landmarks

graph creation frame i i = i + 1 updated landmarks model mask model graph graph

model

mask

model

graph

i i = i + 1 updated landmarks model mask model graph graph matching process affine
i i = i + 1 updated landmarks model mask model graph graph matching process affine

graph

matching

process

affine

transform

1 updated landmarks model mask model graph graph matching process affine transform F. Tupin - Graphes
1 updated landmarks model mask model graph graph matching process affine transform F. Tupin - Graphes

F. Tupin - Graphes – p.51/53

Exemple : reconnaissance de structures du visage (R. Cesar et al.)

Segmentation

Déformation du modèle au cours de la séquence (tracking)

F. Tupin - Graphes – p.51/53

Exemple : reconnaissance de structures du visage (R. Cesar et al.)

Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –
Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –
Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –

F. Tupin - Graphes – p.51/53

Exemple : reconnaissance de structures du visage (R. Cesar et al.)

Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –
Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –
Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –
Exemple : reconnaissance de structures du visage (R. Cesar et al.) F. Tupin - Graphes –

F. Tupin - Graphes – p.51/53

Matching par recherche d’une transformation

Graphe = représentation d’informations topographiques

Mise en correspondance = recherche de la transformation entre 2 graphes

transformation rigide

transformation élastique (morphing)

Méthodes de mise en correspondance :

recherche du maximum de corrélation (translation)

transformée de Hough (taille de l’espace des paramètres)

méthodes par génération et propagation d’hypothèses

après initialisation rigide, déplacements aléatoires des sommets

Exemple : reconnaissance de visages

F. Tupin - Graphes – p.52/53

Exemple (Wiskott et al.)

Exemple (Wiskott et al.) F. Tupin - Graphes – p.53/53

F. Tupin - Graphes – p.53/53