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 Ian Jermyn. 2 Quelques points avant de commencer. Pour me contacter: Ian Jermyn.

Présentations similaires


Présentation au sujet: "Méthodes et Algorithmes Graphiques Ian Jermyn. 2 Quelques points avant de commencer. Pour me contacter: Ian Jermyn."— Transcription de la présentation:

1 Méthodes et Algorithmes Graphiques Ian Jermyn

2 2 Quelques points avant de commencer. Pour me contacter: Ian Jermyn. www-sop.inria.fr/ariana/personnel/Ian.Jermyn. www-sop.inria.fr/ariana/personnel/Ian.Jermyn Nationalité: Britannique. Excusez mon français sil vous plait. Chercheur en traitement dimage et vision par ordinateur à lINRIA dans projet Ariana. Formation: en physique théorique, puis vision par ordinateur.

3 3 Quelques points avant de commencer. Nhésitez pas à: Me questionner: cest la façon meilleure dapprendre. Demander que: Je parle plus fort. Je répète ou explique quelque chose. Vous pouvez trouver ce fichier à lURL precedent, sous Teaching/Advising puisCourses, à partir de lundi.

4 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 5 Motivation Beaucoup des problèmes en traitement dimage 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 6 Exemples

7 7 Motivation Les graphes image sont une représentation discrète de la géométrie de limage. Les problèmes précédents se traduisent par des problèmes sur des graphes définis à partir de limage: Trouver un chemin (de poids minimum) dans un graphe. Trouver un cycle (de poids (ratio) minimum) dans un graphe.

8 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 10 Graphes orientés: intuition On peut imaginer un graphe orienté en termes de sommets (cercles verts) et darcs (flèches noires): On peut avoir des sommets isolés (7). On peut avoir des boucles (g). On peut avoir plus dun arc entre deux sommets (h,i) a b c d f g e h i

11 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)eb(e) 1a4 2b1 4c2 3d2 3e4 3f1 6g6 h5

12 12 Types de graphes Si il y a plus dun 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 ny 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 13 Graphe symétrique Pour chaque arc e, il y a un autre arc (e -1 ) entre les mêmes sommets mais avec lorientation inverse. 8 e 2 E. 9 ! e -1 2 E t.q. s £ b(e -1 ) = b £ s(e).

14 14 Connectivité Un graphe nest 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 15 Sous-graphes Un sous-graphe H = (U, D) dun 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 16 Graphes spéciaux: chemins et cycles Un chemin est une séquence darcs: {e i } i 2 [1..n], t.q. b(e i ) = s(e i + 1 ) pour i 2 [1..(n – 1)]. Un cycle est un chemin avec b(e n ) = s(e 1 ). On dit quun graphe contient un chemin ou un cycle si il a un sous-graphe qui est un chemin ou un cycle.

17 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 18 Graphes image V est lensemble 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 19 Exemples Image =

20 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 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 dune fonction sommet, qui est un fonction arc: (df)(e) = f(b(e)) – f(s(e)).

23 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 24 Fonctions symétriques Rappel quun 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 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 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 27 Exemple Une fonction f sur V. Une fonction g sur E. Dans ce cas, g = df

28 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 30 Problèmes Chemins de poids minimum. Cycle de poids minimum. Détection de cycles négatifs. Cycle de poids rationel minimum.

31 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. nest pas toujours utilisé. On peut supposer que et sont entiers.

32 Problèmes graphiques et algorithmes I Chemins de poids minimum

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

34 34 Différents cas Cycle négatifPas de cycle négatif Chemin ¸ 0 : impossible. GA.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.GA. ¸ 0. ¸ 0 : impossible. général.

35 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 V n {s}: (v) = 1 ; Relax(e,,, ) Si (b(e)) > (s(e)) + (e) (b(e)) = (s(e)) + (e) (b(e)) = s(e)

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

37 37 général: algorithme de Bellman/Ford BellmanFord(G, s, ) Init(, s) Pour n 2 {1,…,( j V j – 1)} Q = V Tant que Q ; u = arb(Q); Q = Q n {u} Pour e 2 s -1 (u) Relax(e,,, ) Complexité: O(VE).

38 38 Commentaire Noter que si lon veut calculer la distance entre un sommet et un sous-ensemble des autres sommets lalgorithme de Dijkstra peut être arrêté au point où les sommets sont selectionnés.

39 Problèmes graphiques et algorithmes II Cycles divers

40 40 Cycle de poids minimum Cycle négatifPas 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 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 dabord 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 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 43 Détection de cycles zéro. (v) · (u) + ( h u, v i ). Donc ( h u, v i ) = ( h u, v i ) - d ( h u, v i ) 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 44 Cycles zéro: algorithme ZeroCyc(G, ) s = arb(V) = BellmanFord(G, s, ) E 0 = {e 2 E : (e) = 0} G 0 = (E 0, b(E 0 ) [ s(E 0 )) c = Cycle(G 0 )

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

46 46 Cycle de poids rationnel minimum Problème: Trouver arg min c 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 47 Cycle négatifPas 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 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 min c 2 C / (c) = arg max c 2 C j / (c) j. Donc lalgorithme maximise j / j.

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

50 50 Nouveau problème Donc le problème devient: comment trouver ¤ t.q. min c 2 C ¤ (c) = 0, puis comment trouver un cycle de poids zéro. Noter: min = min e 2 E (e) · ¤ · max e 2 E (e) = max 9 c 2 C. (c) ¤ (c) < 0 ) ¤ · / (c) < / (c) / (c 0 ) ) j / (c) - / (c 0 ) j ¸ (E max ) -2

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

52 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, lintensité. Le résultat de lapplication dun filtre (e.g. qui mesure une texture) est une fonction sommet rouge.

53 Fonctions sur les graphes image

54 54 Graphes image Deux graphes symétriques: Vert: G = (E, V). Rouge: G = (E, V). V est lensemble des pixels. Il existe une bijection ¤ : E $ E. Rotation positive de /2. ¤¤ e = e -1. =

55 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. « Lintégrale » de f le long dun 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 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 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 dorientation). Théorème de Stokes/Green: Pour un cycle c: f(c) = v 2 Int(c) df(v).

58 58 Fonction sommet ) fonction arc Pour chaque fonction sommet rouge (vert), on peut trouver une fonction arc vert (rouge) antisymétrique A f t.q. dA f = f Alors, on a v 2 Int(c) f(v) = A f (c). Donc on peut calculer « linté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 59 Fonctions arc antisymétriques Trois façons pour créer une fonction arc antisymétrique à partir dune 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 A f. Intégrale sur une région: elle décrit le masse de f. Propriété de région.

60 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 dune fonction sommet rouge, en utilisant une fonction h symétrique. « Lintégrale » de f le long dun chemin. À partir de, fonction arc antisymétrique: On définit = j j par j j (e) = j ( (e)) j. Exemple j¤ df j : gradient sans orientation.

61 Problèmes image

62 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 lobjet. La relation entre lobjet et limage.

63 63 Commentaires Ces exemples sont illustratifs. Ils ne sont pas les solutions complètes aux problèmes mentionnés. Pourquoi? Les solutions complètes nexistent pas. E.g. lextraction des réseaux routiers est encore un sujet actuel de recherche (problème ouvert). Il vaut mieux dexpliquer 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 64 Réseaux routiers Un réseau routier est composé de routes, donc: Utiliser les chemins de poids minimum et lalgorithme 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 = k G + A, (k 2 R + ).

65 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 66 Attache aux données Soit f une fonction sommet rouge, lintensité 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 67 Initialisation Pour utiliser lalgorithme de Dijkstra, il faut s. On ne veut pas les chemins de s à tous les autres sommets: Juste aux sommets qui font partie dun chemin. Choisir les intersections des routes avec le bord de limage.

68 68 Résultat réel

69 69 Bord dune région Le bord dune région est un cycle: Utiliser le cycle de poids rationel minimum. On voudrait le bord dune 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: lalgorithme essaye de maximiser j / j.

70 70 Modèle simple 1. Soit f une fonction sommet rouge, lintensité 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. Lalgorithme 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 sinverse.

71 71 Modèle simple 2 Soit f une fonction sommet rouge ´ 1. = A f mesure laire de la région. Soit g une fonction sommet rouge, lintensité des pixels. = 1/ j¤ dg j mesure la somme des valeurs inverses du gradient non-orienté sur le bord. Donc, j / j est grand quand: Laire est grande. Les gradients sont identiques et grands.

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

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

74 Fin

75 75 GA: ordre topologique On peut définir un ordre Á des sommets t.q. si u Á v, il nexiste 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 + Lordre est: u Á v, F(v) < F(u). Lordre nest pas unique. Complexité: O(E).

76 76 GA: algorithme CPMGA(G, s, ) Init(, s) Q = V Tant que Q ; u = min Á Q; Q = Q n {u} Pour e 2 s -1 (u) Relax(e,,, ) Complexité: O(E).


Télécharger ppt "Méthodes et Algorithmes Graphiques Ian Jermyn. 2 Quelques points avant de commencer. Pour me contacter: Ian Jermyn."

Présentations similaires


Annonces Google