Méthodes et Algorithmes Graphiques

Preview:

DESCRIPTION

Méthodes et Algorithmes Graphiques. Ian Jermyn. Quelques points avant de commencer. Pour me contacter : Ian Jermyn. Ian.Jermyn@sophia.inria.fr . www-sop.inria.fr/ariana/personnel/Ian.Jermyn . Nationalité : Britannique. Excusez mon français s’il vous plait. - PowerPoint PPT Presentation

Citation preview

Méthodes et Algorithmes Graphiques

Ian Jermyn

2

Quelques points avant de commencer. Pour me contacter: Ian Jermyn.

Ian.Jermyn@sophia.inria.fr. www-sop.inria.fr/ariana/personnel/Ian.Jermyn.

Nationalité: Britannique. Excusez mon français s’il vous plait. Chercheur en traitement d’image et

vision par ordinateur à l’INRIA dans projet Ariana.

Formation: en physique théorique, puis vision par ordinateur.

3

Quelques points avant de commencer. N’hésitez pas à:

Me questionner: c’est la façon meilleure d’apprendre.

Demander que: Je parle plus fort. Je répète ou explique quelque chose.

Vous pouvez trouver ce fichier à l’URL precedent, sous ‘Teaching/Advising’ puis ‘Courses’, à partir de lundi.

4

But Donner une structure mathématique

afin que vous puissiez: Comprendre la littérature. Utiliser ces méthodes pour:

Systématiser vos idées. Bien poser les problèmes.

Donner des algorithmes flexibles: Pour que vous compreniez les possibilités

de ces techniques. Que vous pouvez adapter à vos problèmes. Que vous pouvez incorporer dans des

solutions plus complètes.

5

Motivation Beaucoup des problèmes en traitement

d’image peuvent être exprimés ainsi: Trouver une structure linéique avec telles

ou telles propriétés. Trouver une région ou son contour (i.e.

bord) avec telles ou telles propriétés. Exemples:

Extraction de réseaux routiers. Extraction de zones urbaines.

6

Exemples

7

Motivation Les graphes image sont une

représentation discrète de la géométrie de l’image.

Les problèmes précédents se traduisent par des problèmes sur des graphes définis à partir de l’image: Trouver un chemin (de poids minimum)

dans un graphe. Trouver un cycle (de poids (ratio) minimum)

dans un graphe.

8

Plan du cours Graphes et graphes image Fonctions sur les graphes Problèmes graphiques et algorithmes

Chemins de poids minimum Cycles divers Cycle de poids rationnel minimum

Fonctions sur les graphes image Problèmes image Exemples

Graphes et graphes image

10

Graphes orientés: intuition On peut imaginer un

graphe orienté en termes de sommets (cercles verts) et d’arcs (flèches noires): On peut avoir des

sommets isolés (7). On peut avoir des

boucles (g). On peut avoir plus d’un

arc entre deux sommets (h,i).

1

5

6

7

2

43

ab

c d

f

g

e

hi

11

Graphes orientés Un graphe consiste

de deux ensembles E (arcs) et V (sommets) et deux applications s (source) et b (but) de E à V:

On peut penser à une seule application de E à V £ V:

s(e) e b(e)

1 a 4

2 b 1

4 c 2

3 d 2

3 e 4

3 f 1

6 g 6

h 5 s bE V V

s

b

E V

12

Types de graphes Si il y a plus d’un arc entre deux sommets,

on a un multigraphe (s £ b pas injective). Sinon (s £ b est injective), on peut identifier E

avec un sous-ensemble de V £ V. Si il n’y a pas de boucle, on a un graphe

simple. Si on a tous les arcs possibles (E = V £ V),

le graphe est complet (s £ b surjective). Nous utiliserons le mot graphe pour les

non-multigraphes simples.

13

Graphe symétrique Pour chaque arc e, il y a un autre arc (e-

1) entre les mêmes sommets mais avec l’orientation inverse. 8 e 2 E. 9 ! e-1 2 E t.q. s £ b(e-1) = b £ s(e).

14

Connectivité Un graphe n’est pas

connecté si les sommets se divisent en deux parties, sans un arc entre les deux.

On parle de graphes connectés dans le cours.

15

Sous-graphes Un sous-graphe H = (U, D) d’un graphe

G = (V, E) est un sous-ensemble des sommets U ½ V, et un sous-ensemble des arcs entre eux: D ½ E (U £ U).

H

G

16

Graphes spéciaux: chemins et cycles Un chemin est une séquence d’arcs:

{ei}i 2 [1..n], t.q. b(ei) = s(ei + 1) pour i 2 [1..(n – 1)].

Un cycle est un chemin avec b(en) = s(e1).

On dit qu’un graphe contient un chemin ou un cycle si il a un sous-graphe qui est un chemin ou un cycle.

17

Simplicité Graphe acyclique (GA):

Une graphe qui ne contient pas un sous-graphe qui est un cycle.

Chemin simple: Une chemin qui ne contient pas un sous-

graphe qui est un cycle. Cycle simple:

Un cycle qui ne contient pas un sous-graphe propre qui est un cycle.

18

Graphes image V est l’ensemble des

pixels. Deux graphes

symétriques: Vert: G = (E, V). Rouge: G = (E, V).

Il existe une bijection ¤: E $ E. Rotation positive de /2. ¤¤e = e-1.

=

19

Exemples Image

=

20

Et maintenant? On cherche un chemin ou un cycle dans

un des deux graphes image. Mais comment on va le sélectionner?

On définit une fonction (poids) qui donne une valeur pour chaque chemin ou chaque cycle dans le graphe. On cherche le chemin ou le cycle avec le

poids minimum. Comment construire une telle fonction?

Fonctions sur les graphes

22

Fonctions sommet et arc Sommets:

Pour chaque sommet v, on a une valeur (un poids) f(v).

Arcs: Pour chaque arc e, on a une valeur (un

poids) f(e). On peut définir la dérivée d’une fonction

sommet, qui est un fonction arc: (df)(e) = f(b(e)) – f(s(e)).

23

Fonctions spéciales On peut définir des fonctions

Positives: f(u) > 0. Entières: f(u) 2 Z. Binaires: f(u) 2 {0,1}. (Sous-ensemble de U.)

Soit g et h deux fonctions, h positive. On définit une fonction rationelle g/h(u) =

g(u)/h(u).

24

Fonctions symétriques Rappel qu’un graphe symétrique a

pour chaque arc e, un arc e-1. Pour les fonctions arc, on définit:

-1(e) = (e-1). On définit les fonctions symétriques:

= -1

On définit les fonctions antisymétriques: = --1

(e) = 2

(e-1) = §2

25

Fonctions sur ensembles Etant donné une fonction sommet

ou arc, on peut définir une fonction sur sous-ensembles de V ou E par sommation. E.g.: U ½ V; f(U) = v 2 U f(v).

Noter que df(c) = 0 si c est un cycle.

26

Cycles négatifs Une fonction arc a un cycle négatif si

le graphe contient un cycle c t.q. (c) < 0.

Les cycles négatifs jouent une rôle important dans la suite du cours.

27

Exemple Une fonction f sur V. Une fonction g sur E. Dans ce cas, g = df.

4.0

2.5

-9.2

-2.1

-13.2

1.5

11.7

4.6

6.1

-7.1

28

Et maintenant? On a vu comment définir des fonctions

sur les chemins et les cycles. Comment trouver le chemin ou cycle

avec le poids minimum?

Problèmes graphiques et algorithmes

30

Problèmes Chemins de poids minimum. Cycle de poids minimum. Détection de cycles négatifs. Cycle de poids rationel minimum.

31

Généralités On suppose:

Un graphe G = (E, V). C est le sous-ensemble de cycles dans G.

Deux fonctions arc, et . est positive. n’est pas toujours utilisé. On peut supposer que et sont entiers.

Problèmes graphiques et algorithmes I

Chemins de poids minimum

33

Chemins de poids minimum Problème:

Trouver le chemin qui a le poids minimum de parmi les chemins qui passent entre un sommet s et un sommet t.

Différents Cas: G contient un cycle négatif. G ne contient aucun cycle négatif.

1 6

4

12

1

2

t

s

34

Différents casCycle négatif Pas de cycle

négatif

Chemin ¸ 0 : impossible. GA.

Par défaut, on trouve un chemin simple.

¸ 0. général. Mal défini

général.

Chemin simple

général. NP-complet

GA.

¸ 0. ¸ 0 : impossible.

général.

35

Notations, Init et Relax A la fin de chaque algorithme:

: V ! R sera le poids du chemin de poids minimum (valeur minimal de ) entre s et v.

: V ! V est le prédécesseur de chaque sommet dans le chemin de poids minimum de s.

Init(, s) (s) = 0; 8 v 2 Vn{s}: (v) = 1;

Relax(e, , , ) Si (b(e)) > (s(e)) + (e)

(b(e)) = (s(e)) + (e) (b(e)) = s(e)

36

¸ 0: algorithme de Dijkstra Dijkstra(G, s, )

Init(, s) Q = V Tant que Q ;

u = arg minv 2 Q {(v)} Q = Qn{u} Pour e 2 s-1(u)

Relax(e, , , )

Complexité: O(E log(V)).

37

général: algorithme de Bellman/Ford BellmanFord(G, s, )

Init(, s) Pour n 2 {1,…,(jVj – 1)}

Q = V Tant que Q ;

u = arb(Q); Q = Qn{u} Pour e 2 s-1(u)

Relax(e, , , )

Complexité: O(VE).

38

Commentaire Noter que si l’on veut calculer la

distance entre un sommet et un sous-ensemble des autres sommets l’algorithme de Dijkstra peut être arrêté au point où les sommets sont selectionnés.

Problèmes graphiques et algorithmes II

Cycles divers

40

Cycle de poids minimumCycle négatif Pas de cycle

négatif

Cycle ¸ 0 : impossible.

¸ 0. Trivial. Par

défaut, on trouve un cycle simple, mais trivial.

général. Mal défini

général. = - d

Cycle simple

général. NP-complet

¸ 0.Trivial.

¸ 0 : impossible.

général. = - d

41

Détection de cycles: algorithme Cycle(G)

Pour v 2 V Si M(v) = 0

DFS (v)

DFS(v) – depth-first search – recherche par profondeur d’abord

M(v) = 1; Pour u 2 b(s-1(v))

Si M(u) = 0 (u) = v DFS(u)

Si M(u) = 1 (u) = v Rend u (cycle détecté)

M(v) = 2

42

Détection de cycles négatifs: algorithme CycNeg(G, )

s = arb(V) = BellmanFord(G, s) Pour e 2 E

u = s(e) v = b(e) Si (v) > (u) + (e) (ou d(e) > (e))

Il y a une cycle négatif.

43

Détection de cycles zéro. (v) · (u) + (hu, vi). Donc (hu, vi) = (hu, vi) - d(hu, vi)

est positive. Pour un cycle c:

(c) = (c) parce que df(c) = 0 pour toutes fonctions sommet f et tous cycles.

Donc, (c) = 0 ) (e) = 0 8 e 2 c.

44

Cycles zéro: algorithme ZeroCyc(G, )

s = arb(V) = BellmanFord(G, s, ) E0 = {e 2 E : (e) = 0} G0 = (E0, b(E0) [ s(E0)) c = Cycle(G0)

Problèmes graphiques et algorithmes III

Cycle de poids rationnel minimum

46

Cycle de poids rationnel minimum Problème:

Trouver arg minc 2 C /(c).

Ce problème ne presente pas les difficultés rencontrées avec le cycle de poids minimum.

Dans les applications, il y a aussi des propriétés théoriques intéressantes.

47

Cycle négatif Pas de cycle négatif

Cycle ¸ 0 : impossible. ¸ 0. G, sym: trivial.

Par défaut, on trouve un cycle simple.

général

Par défaut, on trouve un cycle simple.

général. = - d

Cycle simple

général

¸ 0.G, sym: trivial.

¸ 0 : impossible. général. = - d

Cycle de poids rationnel minimum

48

Commentaires Pas de restriction sur :

peut avoir des cycles négatifs. On trouve toujours un cycle simple.

Pour les graphes symétriques, antisymétrique, symétrique: arg minc 2 C /(c) = arg maxc 2 C j/(c)j. Donc l’algorithme maximise j/j.

49

Lemmes On définit une fonction arc paramétrisée = - . Lemme: Soit ¤ t.q. minc 2 C ¤(c) = 0 et soit c¤ un

cycle minimisant ¤(c¤) = 0, alors ¤ = minc 2 C /(c) et /(c¤) = ¤.

(c) = 0 ) /(c) = . Supposons ¤ minc 2 C /(c), alors 9 c t.q. /(c) < ¤ ) ¤

(c) < 0. Contradiction parce que minc 2 C ¤(c) = 0.

Lemme: Soit ¤ = minc 2 C /(c) et soit c¤ un cycle minimisant, alors minc 2 C ¤(c) = 0 et ¤(c¤) = 0.

(c) = 0 ( /(c) = . Supposons minc 2 C ¤(c) 0, alors 9 c t.q. ¤(c) < 0 )

/(c) < ¤. Contradiction parce que ¤ = minc 2 C /(c).

50

Nouveau problème Donc le problème devient: comment

trouver ¤ t.q. minc 2 C ¤(c) = 0, puis comment trouver un cycle de poids zéro.

Noter: min = mine 2 E (e) ·¤ · maxe 2 E (e) = max

9 c 2 C. (c) < 0 ) minc 2 C (c) < 0 ) > ¤

(c) < 0 ) ¤ · /(c) < /(c) /(c0) ) j /(c) - /(c0) j ¸ (Emax)-2

51

Cycle de poids rationnel minimum: algorithme CyclePRM(G, , )

= maxe 2 E (e) Tant que c = CycNeg(G, )

= /(c) ¤ = c¤ = ZeroCyc(G, ¤)

52

Et maintenant? Etant donné les fonctions arc et , on

peut trouver le chemin de poids minimum ou le cycle de poids rationnel minimum.

Mais étant donné une image, comment construire ces fonctions? Une image est une fonction sur les sommets

rouges, l’intensité. Le résultat de l’application d’un filtre (e.g.

qui mesure une texture) est une fonction sommet rouge.

Fonctions sur les graphes image

54

Graphes image Deux graphes

symétriques: Vert: G = (E, V). Rouge: G = (E, V).

V est l’ensemble des pixels.

Il existe une bijection ¤: E $ E. Rotation positive de /2. ¤¤e = e-1.

=

55

Fonctions simples Etant donné une fonction f sur les

sommets rouges, on peut définir une fonction g sur les arcs rouges: g(e) = h(f(s(e)), f(b(e))).

Deux exemples: Somme: h(x, y) = x + y.

Fonction symétrique. « L’intégrale » de f le long d’un chemin.

Différence: h(x, y) = x – y. h = df. Fonction antisymétrique. Pas très utile: si c est un cycle, alors df(c) = 0.

56

Fonctions duelles Etant donné une fonction f sur les arcs

rouges, on peut definir une fonction ¤f sur les arcs verts (et vice-versa):

¤f(e) = f(¤e). Donc, étant donné une fonction f sur les

sommets rouges, on peut définir une fonction ¤df sur les arcs verts.

Pour un cycle c: ¤df(c) = e 2 c [f(b(¤e)) – f(s(¤e))]. Donc le flux du gradient de f à travers c. Dérivée: elle décrit les changements de f. Propriété de bord.

57

Fonction arc ) fonction sommet Etant donné une fonction arc vert

(rouge) f antisymétrique, définir la dérivée df comme la fonction sommet rouge (vert): df(v) = e 2 c(v) f(e) Où c(v) est le cycle autour de v (choix

d’orientation). Théorème de Stokes/Green:

Pour un cycle c: f(c) = v 2 Int(c) df(v).

58

Fonction sommet ) fonction arc Pour chaque fonction sommet rouge

(vert), on peut trouver une fonction arc vert (rouge) antisymétrique Af t.q. dAf = f Alors, on a v 2 Int(c) f(v) = Af(c).

Donc on peut calculer « l’intégrale » de f sur une région, mais en utilisant les arcs. Intégrale: elle décrit le masse de f. Propriété de région.

59

Fonctions arc antisymétriques Trois façons pour créer une fonction arc

antisymétrique à partir d’une fonction sommet rouge: f df.

Pas très utile: si c est un cycle, alors df(c) = 0. f df ¤df.

Dérivée: elle décrit les changements de f. Propriété de bord.

f Af. Intégrale sur une région: elle décrit le masse de f. Propriété de région.

60

Fonctions arc symétriques Trois façons pour créer une fonction arc

symétrique: Directement:

8 e 2 E. (e) = 1. 8 e 2 E. (e) = la longueur géométrique de e =

l(e). À partir d’une fonction sommet rouge, en

utilisant une fonction h symétrique. « L’intégrale » de f le long d’un chemin.

À partir de , fonction arc antisymétrique: On définit = jj par jj(e) = j((e))j. Exemple j¤dfj: gradient sans orientation.

Problèmes image

62

Modélisation On veut trouver une structure linéique

ou une région dans une image qui correspond à un objet.

Il faut construire des fonctions arc (rouge ou vert) qui incorpore: Notre connaissance a priori des propriétés

de l’objet. La relation entre l’objet et l’image.

63

Commentaires Ces exemples sont illustratifs. Ils ne

sont pas les solutions complètes aux problèmes mentionnés. Pourquoi? Les solutions complètes n’existent pas.

E.g. l’extraction des réseaux routiers est encore un sujet actuel de recherche (problème ouvert).

Il vaut mieux d’expliquer comment on peut appliquer ces techniques que de donner des méthodes toutes faites.

Chaque problème est différent et il faut penser au problème spécifique.

64

Réseaux routiers Un réseau routier est composé de routes,

donc: Utiliser les chemins de poids minimum et

l’algorithme de Dijkstra. On voudrait une chaîne de pixels:

On va utiliser le graphe rouge. On doit définir:

Un fonction arc symétrique et positive . Deux types de modélisation:

Géométrie a priori. Attache aux données.

On va construire = kG + A, (k2 R+).

65

Géométrie a priori La possibilité la plus simple est:

G = l, la longueur géométrique.

Donc, sans A: Le chemin de poids minimum entre deux

sommets est donc le chemin le plus court.

66

Attache aux données Soit f une fonction sommet rouge,

l’intensité des pixels. Les chemins sont souvent clairs et ont

une radiométrie homogène. Donc, on peut essayer:

A(e) = exp[-(f(b(e)) + f(s(e))], 2 R+.

67

Initialisation Pour utiliser l’algorithme

de Dijkstra, il faut s. On ne veut pas les

chemins de s à tous les autres sommets: Juste aux sommets qui

font partie d’un chemin. Choisir les intersections

des routes avec le bord de l’image.

68

Résultat réel

69

Bord d’une région Le bord d’une région est un

cycle: Utiliser le cycle de poids

rationel minimum. On voudrait le bord d’une

région: On va utiliser le graphe vert.

On doit définir: Un fonction arc antisymétrique

. Un fonction arc symétrique et

positive . Rappel: l’algorithme essaye

de maximiser j/j.

70

Modèle simple 1. Soit f une fonction sommet rouge, l’intensité

des pixels. Donc = ¤df mesure la somme des valeurs du

gradient orienté sur le bord. Soit = l, la longueur géométrique. / mesure la densité du gradient sur le bord.

L’algorithme va la maximiser. Point positif: invariant à l’échelle.

Par contre, dépend de la longueur du bord.

Point négatif: les bords qui ont un gradient qui s’inverse.

71

Modèle simple 2 Soit f une fonction sommet rouge ´ 1. = Af mesure l’aire de la région. Soit g une fonction sommet rouge,

l’intensité des pixels. = 1/j¤dgj mesure la somme des

valeurs inverses du gradient non-orienté sur le bord.

Donc, j/j est grand quand: L’aire est grande. Les gradients sont identiques et grands.

72

Resultat synthétique

1. Un bord pour lequel le gradient s’inverse.

2. Résultat avec modèle 1.3. Résultat avec modèle 2.

(2)(1) (3)

73

Résultat réel

Cratère Lunaire: JPL

Fin

75

GA: ordre topologique On peut définir un ordre Á des sommets t.q. si

u Á v, il n’existe aucun chemin de v à u. OT(G)

Pour v 2 V Si M(v) = 0

OTT(v, T)

OTT(v, T) M(v) = 1; T = T + 1; Pour u 2 b(s-1(v))

Si M(u) = 0 OTT(u, T)

T = T + 1 F(v) = T

On a: M: V! {0,1}.

F: V! Z+

L’ordre est: u Á v , F(v) < F(u).

L’ordre n’est pas unique.

Complexité: O(E).

76

GA: algorithme CPMGA(G, s, )

Init(, s) Q = V Tant que Q ;

u = minÁ Q; Q = Qn {u} Pour e 2 s-1(u)

Relax(e, , , )

Complexité: O(E).

Recommended