La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Méthodes et Algorithmes Graphiques

Présentations similaires


Présentation au sujet: "Méthodes et Algorithmes Graphiques"— Transcription de la présentation:

1 Méthodes et Algorithmes Graphiques
Ian Jermyn

2 Quelques points avant de commencer.
Pour me contacter: Ian Jermyn. 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. Emphasize that these transparencies are more complete than the lecture, and that due to time constraints I will not cover everything in the lecture. Instead the transparencies give a lot of information that can be studied later on. The first half of the lecture is math. There is too much to absorb in one go, but it is there to give the framework, so that later on they can recognize the structures involved in other situations. They need not worry on this account for the exam. There will be one question and it will focus more, although not exclusively, on the algorithmic side.

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. Expand on what is meant by a linear structure, a region, and a function, emphasizing 1d, 2d. Use next transparency.

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. Say that you will come back to this slide after you have defined a graph and given some examples.

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

9 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). 5 i 1 h g b 2 a f 6 c d 7 4 e 3

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 c 3 d f 6 g h 5

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. Explain simple intuition.

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).

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): Chemin simple: Cycle simple:
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 p/2. ¤¤e = e-1. =

19 Exemples Image = Explain the basic ideas of an image and a graph.

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?

21 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: l-1(e) = l(e-1). On définit les fonctions symétriques: l= l-1 On définit les fonctions antisymétriques: l= -l-1 l(e) = 2 l(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 l a un cycle négatif si le graphe contient un cycle c t.q. l(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 1.5 2.5 -13.2 6.1 11.7 4.6 -9.2 -7.1 -2.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?

29 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, l et t. t est positive. t n’est pas toujours utilisé. On peut supposer que l et t sont entiers.

32 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 l 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.

34 Différents cas Cycle négatif Pas de cycle négatif Chemin
l ¸ 0 : impossible. GA. Par défaut, on trouve un chemin simple. l ¸ 0. l général. Mal défini Chemin simple NP-complet

35 Notations, Init et Relax
A la fin de chaque algorithme: d: V ! R sera le poids du chemin de poids minimum (valeur minimal de l) entre s et v. r: V ! V est le prédécesseur de chaque sommet dans le chemin de poids minimum de s. Init(d, s) d(s) = 0; 8 v 2 Vn{s}: d(v) = 1; Relax(e, d, r, l) Si d(b(e)) > d(s(e)) + l(e) d(b(e)) = d(s(e)) + l(e) r(b(e)) = s(e)

36 l ¸ 0: algorithme de Dijkstra
Dijkstra(G, s, l) Init(d, s) Q = V Tant que Q ¹ ; u = arg minv 2 Q {d(v)} Q = Qn{u} Pour e 2 s-1(u) Relax(e, d, r, l) Complexité: O(E log(V)).

37 l général: algorithme de Bellman/Ford
BellmanFord(G, s, l) Init(d, 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, d, r, l) 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.

39 Problèmes graphiques et algorithmes II
Cycles divers

40 Cycle de poids minimum Cycle négatif Pas de cycle négatif Cycle
l ¸ 0 : impossible. l ¸ 0. Trivial. Par défaut, on trouve un cycle simple, mais trivial. l général. Mal défini ld = l - dd Cycle simple NP-complet

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 r(u) = v DFS(u) Si M(u) = 1 Rend u (cycle détecté) M(v) = 2

42 Détection de cycles négatifs: algorithme
CycNeg(G, l) s = arb(V) d = BellmanFord(G, s) Pour e 2 E u = s(e) v = b(e) Si d(v) > d(u) + l(e) (ou dd(e) > l(e)) Il y a une cycle négatif.

43 Détection de cycles zéro.
d(v) · d(u) + l(hu, vi). Donc ld(hu, vi) = l(hu, vi) - dd(hu, vi) est positive. Pour un cycle c: ld(c) = l(c) parce que df(c) = 0 pour toutes fonctions sommet f et tous cycles. Donc, l(c) = 0 ) ld(e) = 0 8 e 2 c.

44 Cycles zéro: algorithme
ZeroCyc(G, l) s = arb(V) d = BellmanFord(G, s, l) E0 = {e 2 E : ld(e) = 0} G0 = (E0, b(E0) [ s(E0)) c = Cycle(G0)

45 Problèmes graphiques et algorithmes III
Cycle de poids rationnel minimum

46 Cycle de poids rationnel minimum
Problème: Trouver arg minc 2 C l/t(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 de poids rationnel minimum
Cycle négatif Pas de cycle négatif Cycle l ¸ 0 : impossible. l ¸ 0. G, l sym: trivial. Par défaut, on trouve un cycle simple. l général l général. ld = l - dd Cycle simple

48 Commentaires Pas de restriction sur l:
l peut avoir des cycles négatifs. On trouve toujours un cycle simple. Pour les graphes symétriques, l antisymétrique, t symétrique: arg minc 2 C l/t(c) = arg maxc 2 C jl/t(c)j. Donc l’algorithme maximise jl/tj.

49 Lemmes On définit une fonction arc paramétrisée lb = l - bt.
Lemme: Soit b¤ t.q. minc 2 C lb¤(c) = 0 et soit c¤ un cycle minimisant lb¤(c¤) = 0, alors b¤ = minc 2 C l/t(c) et l/t(c¤) = b¤. lb(c) = 0 ) l/t(c) = b. Supposons b¤ ¹ minc 2 C l/t(c), alors 9 c t.q. l/t(c) < b¤ ) lb¤(c) < 0. Contradiction parce que minc 2 C lb¤(c) = 0. Lemme: Soit b¤ = minc 2 C l/t(c) et soit c¤ un cycle minimisant, alors minc 2 C lb¤(c) = 0 et lb¤(c¤) = 0. lb(c) = 0 ( l/t(c) = b. Supposons minc 2 C lb¤(c) ¹ 0, alors 9 c t.q. lb¤(c) < 0 ) l/t(c) < b¤. Contradiction parce que b¤ = minc 2 C l/t(c).

50 Nouveau problème Donc le problème devient: comment trouver b¤ t.q. minc 2 C lb¤(c) = 0, puis comment trouver un cycle de poids zéro. Noter: lmin = mine 2 E l(e) · b¤ · maxe 2 E l(e) = lmax 9 c 2 C. lb(c) < 0 ) minc 2 C lb(c) < 0 ) b > b¤ lb(c) < 0 ) b¤ · l/t(c) < b l/t(c) ¹ l/t(c0) ) j l/t(c) - l/t(c0) j ¸ (Etmax)-2

51 Cycle de poids rationnel minimum: algorithme
CyclePRM(G, l, t) b = maxe 2 E l(e) Tant que c = CycNeg(G, lb) b = l/t(c) b¤ = b c¤ = ZeroCyc(G, lb¤)

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.

53 Fonctions sur les graphes image

54 Graphes image Deux graphes symétriques: V est l’ensemble des pixels.
Vert: G = (E, V). Rouge: G = (E, V). V est l’ensemble des pixels. Il existe une bijection ¤: E $ E. Rotation positive de p/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 a df. Pas très utile: si c est un cycle, alors df(c) = 0. f a df a ¤df. Dérivée: elle décrit les changements de f. Propriété de bord. f a 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. t(e) = 1. 8 e 2 E. t(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 l, fonction arc antisymétrique: On définit t = jlj par jlj(e) = j(l(e))j. Exemple j¤dfj: gradient sans orientation.

61 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 l. Deux types de modélisation: Géométrie a priori. Attache aux données. On va construire l = klG + lA, (k2 R+).

65 Géométrie a priori La possibilité la plus simple est: Donc, sans lA:
lG = l, la longueur géométrique. Donc, sans lA: 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: lA(e) = exp[-a(f(b(e)) + f(s(e))], a 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 l. Un fonction arc symétrique et positive t. Rappel: l’algorithme essaye de maximiser jl/tj.

70 Modèle simple 1. Soit f une fonction sommet rouge, l’intensité des pixels. Donc l = ¤df mesure la somme des valeurs du gradient orienté sur le bord. Soit t = l, la longueur géométrique. l/t mesure la densité du gradient sur le bord. L’algorithme va la maximiser. Point positif: invariant à l’échelle. Par contre, l 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.
l = Af mesure l’aire de la région. Soit g une fonction sommet rouge, l’intensité des pixels. t = 1/j¤dgj mesure la somme des valeurs inverses du gradient non-orienté sur le bord. Donc, jl/tj est grand quand: L’aire est grande. Les gradients sont identiques et grands.

72 Resultat synthétique Un bord pour lequel le gradient s’inverse.
(1) (2) (3) Un bord pour lequel le gradient s’inverse. Résultat avec modèle 1. Résultat avec modèle 2.

73 Résultat réel Cratère Lunaire: JPL

74 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) 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, l) Complexité: O(E). Init(d, s) Q = V
Tant que Q ¹ ; u = minÁ Q; Q = Qn {u} Pour e 2 s-1(u) Relax(e, d, r, l) Complexité: O(E).


Télécharger ppt "Méthodes et Algorithmes Graphiques"

Présentations similaires


Annonces Google