Méthodes d`optimisation par coupe minimale UE GREC (M2 IMA
Transcription
Méthodes d`optimisation par coupe minimale UE GREC (M2 IMA
Méthodes d’optimisation par coupe minimale UE GREC (M2 IMA, UPMC) Sylvain LOBRY 30 mars 2014 Table des matières 1 Introduction 1.1 Notations et définitions . . . . . . . . . . . . . . . . . . . . . . 1.2 Rappels sur les champs de Markov . . . . . . . . . . . . . . . 1.3 Intérêt des méthodes par coupe minimale . . . . . . . . . . . . 1 2 3 5 2 Cas binaire 2.1 Modèle d’Ising . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Généralisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 8 3 Cas 3.1 3.2 3.3 multi-étiquettes 12 Alpha-Beta swap . . . . . . . . . . . . . . . . . . . . . . . . . 12 Alpha expansion . . . . . . . . . . . . . . . . . . . . . . . . . 15 Algorithme exact . . . . . . . . . . . . . . . . . . . . . . . . . 18 4 Conclusion 1 21 Introduction Dans ce dossier, nous allons présenter des méthodes d’optimisation de modèles markovien dans le cadre de problèmes de traitement d’image à l’aide de coupe minimale. Les champs de Markov représentent une façon de modéliser des problèmes en intégrant de l’information spatiale contenue dans un voisinage et sont présentés par [4]. Aujourd’hui, les champs de Markov sont utilisés pour des tâches telles que la restauration d’images, l’inpainting ou la segmentation ([8]). Dans cette introduction, nous allons commencer par préciser les notations qui seront utilisées dans la suite de ce document avant de rappeler rapidement les bases des champs de Markov. Ensuite, nous présenterons les motivations qui conduisent à utiliser des méthodes par coupe minimale afin d’optimiser des champs de Markov. 1.1 Notations et définitions Dans ce document, nous allons considérer que l’image est formée d’un ensemble de sites fini S = {s}. S est donc un sous-ensemble de Zd , où est d est la dimension de l’image (classiquement, on prendra d = 2 ou 3). À chaque site s, on associe un descripteur xs prenant ses valeurs dans E et représentant la valeur du site. E peut-être, par exemple, un ensemble d’étiquettes (e.g. E = {1, q}), l’ensemble des niveaux de gris (e.g. E = {0, 255}). La formalisation par champs de Markov ayant pour principal intérêt d’ajouter des informations spatiales, il nous faut maintenant définir ces relations entre les sites. On ajoute donc à notre modélisation de l’image un système de voisinage : Définition 1 (Voisinage) Vs = {t} avec = s 6∈ Vs t ∈ Vs =⇒ s ∈ Vt À partir de ce système de voisinage, on déduit un système de clique : Définition 2 (Clique) Une clique est soit : – Un singleton de S. – Un ensemble de sites tous voisins les uns des autres. On remarque donc que le système de clique est entièrement dépendant de V. On note C l’ensemble des cliques, et Ck l’ensemble des cliques de cardinal k. 2 On définit les interactions locales entre différents descripteurs de sites constituant une clique c comme un potentiel de clique noté Uc . On peut alors définir les énergies globales et locales du système : Définition 3 (Énergie) Énergie globale : U = P Uc c∈C Énergie locale d’un site s : Us = P Uc c∈C,s∈c Nous allons maintenant définir des notations probabilistes pour l’image. À chaque site s, on associe une variable aléatoire Xs . Le descripteur xs définit auparavant est donc une réalisation de Xs . On définit le champ aléatoire X = {Xs }. x = {xs } est donc une configuration de l’image. On en déduit l’espace des configuration possibles Ω = E |S| . 1.2 Rappels sur les champs de Markov On définit un champ de Markov de la manière suivante : Définition 4 (Champ de Markov) X est un champ de Markov si et seulement si : – ∀x ∈ Ω, P (X = x) > 0 – ∀s ∈ S, ∀x ∈ Ω, P (Xs = xs |Xt = xt , s 6= t) = P (Xs = xs |Xt = xt , t ∈ Vs ) En d’autres termes, X est un champ de Markov si et seulement si la probabilité conditionnelle locale en un site ne dépend que de la configuration des sites appartenant à son voisinage. Afin de pouvoir calculer les probabilités conditionnelles locales, nous devons définir le champs de Gibbs de potentiel associé à V. 3 Définition 5 (Champ de Gibbs) Le champ de Gibbs de associé à V est le champ aléatoire X dont la probabilité est une mesure de Gibbs associé à V : P Uc (x)) P (X = x) = Z1 exp(−U (x)) = Z1 exp(− c∈C On peut donc dans un champ de Gibbs décomposer la probabilité d’une configuration en une somme de potentiels de cliques locaux. Pour pouvoir lier ce résultat aux champs de Markov, nous utilisons le théorème de HammersleyClifford ([1]) : Théorème 1 (Hammersley-Clifford) Si les hypothèses suivantes sont réunies : – S est fini ou dénombrable – V est borné – E est discret Alors, X est un champ de Markov relativement à V et P (X = x) > 0 si et seulement si X est un champs de Gibbs de potentiel associé à V. On peut déduire des résultats précédents que dans le cas d’un champ Markovien : exp(−Us (xs |Vs )) P (Xs = xs |Xt = xt , s 6= t) = P exp(−Us (xs |Vs )) (1) xs ∈E On remarque que maximiser P (X) revient donc à minimiser U . Applications dans un cadre bayesien Afin de pouvoir appliquer les résultats précédents à des problèmes classiques du traitement d’image, nous devons nous placer dans un cadre bayesien. On part d’une image y qui est une réalisation d’un champ aléatoire Y . On cherche une réalisation x d’un champ de Markov X correspondant à une 4 solution de la problématique. Dans ce cas là, X est un champ de Markov « caché », car l’observation que nous avons n’est pas issue de X mais de Y . On utilise le critère du maximum à posteriori afin de trouver la configuration x optimale conditionnellement à notre donnée y. D’après le théorème de Bayes : P (X = x|Y = y) = P (Y = y|X = x)P (X = x) P (Y = y) Dans les 3 termes, P (Y = y) est une constante indépendante de x. On fait (x)) l’hypothèse que X est un champ de Markov, donc P (X = x) = exp(−U , Z où Z est une constante de normalisation. Enfin, P (Y = y|X = x) décrit le processus d’acquisition des donnés, et on fait souvent l’hypothèse (forte !) que les probabilités conditionnelles des sites sont indépendantes, ce qui nous permet d’écrire : Y P (Ys = ys |Xs = xs ) P (Y = y|X = x) = s Ainsi, on peut réécrire notre expression du maximum à posteriori comme : exp(ln(P (Y = y|X = x)) − U (x) exp(−U(x|y)) = K K P P Avec K une constante de normalisation et U(x|y) = Uc (ys |xs ) + Uc . P (X = x|Y = y) = s∈S c∈C On appellera souvent Uc (ys |xs ) le terme d’attache aux données (car il impose le fait que xs soit proche de ys ) et Uc le terme de régularisation. 1.3 Intérêt des méthodes par coupe minimale Dans les problèmes exprimés sous forme de champs de Markov, la fonction à optimiser est non-convexe, avec un espace d’état bien trop grand pour être exploré entièrement. En effet, celui-ci est Ω de cardinal |E||s| . Sur une image binaire de 10 par 10, cela représente donc environ 1030 possibilités, rendant une exploration complète de l’espace des solutions inenvisageable pour des raisons de complexité. Plusieurs techniques ont alors été proposée afin de trouver des solutions proches de l’optimum global de manière efficace. [4] propose de s’inspirer de la physique avec le recuit simulé. Cette méthode converge vers le minimum 5 global de la fonction à la condition que la température baisse suffisamment lentement. Cette dernière nécessité fait que les calculs peuvent être lourds, sans avoir la garantie que le schéma de décroissance de la température soit assez lent pour trouver le minimum global. D’autres solutions existent, comme par exemple l’ICM (iterated conditional modes) qui est très rapide, mais converge vers un minimum local dépendant de l’initialisation. On peut alors relancer l’algorithme plusieurs fois afin de prendre le meilleur minimum local. En pratique, il y a bien trop de minimum locaux dans l’espace des solutions pour espérer converger vers le minimum global. C’est pour répondre à ce problème d’optimisation que des solutions par coupes minimales ont été proposé. Nous allons voir que ces algorithmes nous permettent de converger vers un minimum éventuellement global très rapidement, mais seulement pour certaines formes d’énergies. Le principe général de ces techniques est de construire un graphe tel que la coupe minimale soit en correspondance directe avec une configuration de l’image. Ainsi, les méthodes que nous allons décrire dans la suite de ce document ont pour but de proposer des constructions de ce type. 2 2.1 Cas binaire Modèle d’Ising Principe Il existe plusieurs algorithmes permettant d’optimiser un champ de Markov lorsque l’espace des états possible à pour cardinal 2. Le premier d’entre eux proposé par [5] permet de trouver l’optimum global avec comme condition que la régularisation soit définie selon un modèle d’Ising. Dans ce cas, le champ de Markov, si on se limite aux cliques d’ordre 2, est défini par : U(x|y) = X Uc (ys |xs ) + β s X δ(xs , xt ) (2) (s,t) Avec δ(x, y) = 6 1 x 6= y 0 x=y (3) Figure 1 – Construction du graphe selon [5] Le terme de régularisation (δ(xs , xt )) cherche à favoriser les solutions homogènes. La pondération imposée par β indique à quel point on cherche une solution régulière. Une valeur de β élevée donnera des solutions très homogènes, mais respectant moins bien l’observation y. Au contraire, un β faible conduira à des solutions proche de y mais peu régularisées. Afin d’optimiser ce type de champs de Markov avec des coupe minimale dans un graphe, il faut définir la construction de ce dernier. On ajoute un noeud par site présent dans notre image. En plus de cela, on ajoute les deux noeuds terminaux nommé s et t. On a donc |S|+2 noeuds. On ajoute ensuite les arcs en respectant pour tous les noeuds is correspondant à un site s de l’image : – Entre la source et is : On ajoute un arc de poids w(is , s) = Uc (ys |0). – Entre le puits et is : On ajoute un arc de poids w(is , t) = Uc (ys |1). – Entre is et jt /t ∈ Vs : On ajoute un arc de poids w(is , jt ) = β. Le graphe correspondant pour une image 1D munie du voisinage naturel (Vi = {i − 1, i + 1}) est présenté dans la Figure 1. On note S l’ensemble des noeuds dans la partition de la source, et T ceux 7 dans celle du puits. On peut calculer le coût de la coupe : X X X C(S, T ) = Uc (ys |0) + Uc (ys |1) + s/is ∈S s/is ∈T β s,t/t∈Vs ,is ∈S,it ∈T On remarque que C(S, T ) est exactement égal à U(x|y) si on prend pour chaque site s : – xs = 1 si is ∈ T – xs = 0 si is ∈ S Étant donné que la coupe est minimale, et que toutes les configurations x ∈ Ω peuvent être décrites via une coupe de ce graphe, on a la garantie d’avoir trouvé le U(x|y) de valeur minimale. Avec cette correspondance entre la coupe minimale du graphe et le champ de Markov, on réussit donc à trouver le minimum global de notre fonction d’énergie. Critique Cet article a réussi à relancer l’intérêt pour les champs de Markov, en présentant une manière efficace de trouver le minimum global de la fonction d’énergie. En effet, comme nous l’avons vu dans la sous-section 1.3, il n’existait pas de moyen efficace de trouver le minimum global d’un champ de Markov avant cet article. Lorsque le champ de Markov est défini dans le cadre imposé par l’article, il n’y a pas de raisons d’utiliser d’autres moyens d’optimisation : celui-ci est rapide, et peu coûteux en mémoire. En revanche, la modélisation demandée pour cette méthode est très restrictive : il faut que |E| = 2 et que la régularisation soit faite par un modèle d’Ising. Cet article a ouvert la voie à des méthodes d’optimisation par coupe de graphe plus évoluées, à commencer par une généralisation à d’autres termes de régularisation pour le cas binaire que nous allons voir maintenant. 2.2 Généralisation Dans [7], l’auteur cherche à caractériser les énergies pouvant être optimiser à l’aide de coupes minimales dans un graphe. Celui-ci choisit de se placer dans un cas binaire, tout en précisant que ce cas peut se généraliser à l’aide de [2] que nous présenteront dans la sous-section 3.1 et la sous-section 3.2. L’auteur s’intéresse principalement aux énergies définies à l’aide de cliques d’ordre 2 (classe notée F 2 ) et à celle définies à l’aide de cliques d’ordre 3 8 (classe notée F 3 ). De plus, il propose une condition nécessaire sur une fonction quelconque binaire afin de pouvoir minimiser celle-ci à l’aide de coupe minimales. On remarque que F 2 est un sous-ensemble de F 3 et donc qu’il est suffisant d’étudier le cas F 3 . Néanmoins, les preuves sont ici constructives (nécessaire afin de pouvoir définir le graphe), et la construction de F 2 est plus simple. Les deux résultats sont donc montrés de manière séparée. Les théorèmes présentés dans la suite de cette partie ne sont pas tous démontrés. Le lecteur est invité à se référer aux annexes de [7] pour les démonstrations. Énergies de F 2 On commence par définir la sous-modularité : Définition 6 (Sous-modularité) Une fonction binaire Uc est dite sous-modulaire si et seulement si : Uc (0, 0) + Uc (1, 1) ≤ Uc (0, 1) + Uc (1, 0) Avec cette définition, [7] propose le théorème suivant : Théorème 2 (Théorème de F 2 ) Une énergie de la forme U(x|y) = X Uc (ys |xs ) + s X Uc (xs , xt ) (s,t) est optimisable par coupe minimale dans un graphe si et seulement si Uc (., .) est sous-modulaire. De plus, [7] montre que l’optimisation de toute autre forme d’énergie est NP-difficile. Nous allons maintenant prouver le théorème de F 2 en exhibant la construction d’un graphe représentant l’énergie dans le cas où celle-ci est sous-modulaire. On s’intéresse d’abord à la construction permettant la représentation du terme d’attache aux données (Uc (ys |xs )). On construit le graphe en ajoutant 9 (a) Cas Uc (0|xs ) − Uc (1|xs ) < 0 (b) Cas Uc (0|xs ) − Uc (1|xs ) ≥ 0 Figure 2 – Construction du graphe représentant le terme d’attache aux données selon [7]. un noeud par site de l’image, plus deux noeuds terminaux, s et t. Le graphe contient donc |S| + 2 noeuds. Chacun des noeuds is représentants un site va être relié à l’un des deux terminaux selon la valeur de Uc (0|xs ) − Uc (1|xs ) : – Si Uc (0|xs ) − Uc (1|xs ) < 0 : On relie is à s avec le poids Uc (1|xs ) − Uc (0|xs ). – Sinon : On relie is à t avec le poids Uc (0|xs ) − Uc (1|xs ). Cette construction est schématisée dans la Figure 2. Une fois le graphe représentant ce terme d’attache aux données construit, nous en définissons un autre pour les cliques d’ordre 2. On note A = Uc (0, 0), B = Uc (0, 1), C = Uc (1, 0) et D = Uc (1, 1). Ces termes peuvent être décomposés selon le tableau présenté dans la Figure 3. L’idée de [7] est de construire un graphe pour représenter chacun des 4 termes de la décomposition présentée dans la Figure 3. Le premier terme étant constant, il n’intervient pas dans la représentation. Le second dépend seulement de xs , et le troisième de xt . Ainsi, on peut reprendre la construction de l’attache aux données (qui ne dépend également que d’une variable) pour ces deux termes. Enfin, pour représenter le dernier terme, on ajoute un arc entre is et it ayant pour poids B +C −A−D. Ce poids est bien positif grâce à la contrainte 10 Figure 3 – Décomposition (tirée de [7]). de sous-modularité : Uc (0, 0) + Uc (1, 1) ≤ Uc (0, 1) + Uc (1, 0) ⇐⇒ A + D ≤ B + C ⇐⇒ B + C − A − D ≥ 0 Une fois ces graphes définis pour chacun des sites et des deux termes de l’énergie, il suffit de les fusionner à l’aide du théorème d’additivité : Théorème 3 (Théorème d’additivité) La somme de deux fonctions représentables par graphe est représentable par graphe. La démonstration de ce théorème est donnée dans [7]. Énergies de F 3 L’auteur propose de généraliser la notion de sous-modularité aux fonctions de plus de 2 variables. On appelle donc une fonction de n variables (n > 2) sous-modulaire si toutes les projections obtenues en fixant n − 2 variables sont sous-modulaires. Cette généralisation de la sous-modularité fournie donc une condition nécessaire et suffisante afin de pouvoir représenter une fonction de la classe F 3 sous forme de graphe : il faut qu’elle soit sous-modulaire. Encore une fois la preuve est constructive. Les constructions pour les cliques d’ordre 1 et d’ordre 2 sont effectuées de la même manière que pour la classe F 2 . Pour les cliques d’ordre 3, la construction est effectuée d’une manière similaire à celle des cliques d’ordre 2, en passant par une décomposition en termes représentables par graphe. 11 Critique Cet article généralise fortement le précédent en caractérisant toutes les fonctions optimisable par coupe minimale de graphe et en donnant leur construction. Il ne s’étend néanmoins sur des cas multi-étiquettes que de manière approximée (voir sous-section 3.1 et sous-section 3.2). 3 Cas multi-étiquettes Après avoir montré comment optimiser une fonction binaire à l’aide de coupe minimale, nous allons étendre ce résultat à des fonction prenant leur valeur dans E avec |E| > 2 et |E| fini. Deux approches sont ici possibles : on peut se ramener à un cas binaire afin d’utiliser les constructions définies dans la section 2 ou bien utiliser une nouvelle construction de graphe. La première approche est présentée dans la sous-section 3.1 et la soussection 3.2, tandis que la seconde est présentée dans la sous-section 3.3. 3.1 Alpha-Beta swap Principe et algorithme Dans son article, [2] s’intéresse aux fonctions de la forme : X X Uc (ys |xs ) + Uc (xs , xt ) U(x|y) = s (s,t) C’est à dire aux fonctions définies sur des cliques d’ordre 2. Il propose deux résultats, conditionnés par la forme de Uc (., .). Pour le résultat que nous allons étudier dans cette partie il est nécessaire que la fonction Uc soit une semi-métrique. Définition 7 (Semi-métrique) Une fonction Uc (., .) est une semi-métrique si : – Uc (a, b) = Uc (b, a) ≥ 0 – Uc (a, b) = 0 ⇐⇒ a = b On part d’une solution initiale P. On parle d’un mouvement α-β swap donnant une solution P’ si après celui-ci, P=P’ pour tous les pixels dont le 12 label était différent de α et de β. À partir de ce mouvement simple dont l’optimisation par coupe de graphe va être présentée, [2] propose un algorithme permettant de converger vers un minimum local exposé dans l’algorithme 1 (on notera x0 les solutions accessibles en un α-β swap de x). Algorithm 1 α-β swap 1: 2: 3: 4: 5: procedure α-β swap(x) . x une solution éventuellement aléatoire repeat MadeProgress ← false for all (α, β) ∈ E 2 do x̂ ← arg min U(x0 |y) 0 x 6: 7: 8: 9: 10: 11: 12: 13: if U(x̂|y) < U(x|y) then x ← x̂ MadeProgress ← true end if end for until !MadeProgress return x end procedure L’idée est donc que temps qu’on arrive à optimiser l’énergie en réalisant des α-β swap, on le fait. En effet, avec cette solution, on peut aisément voir qu’on va converger vers un minimum local. On note tout de même la complexité de la boucle « for » qui va tourner sur |E|2 . Il reste désormais à définir comment arriver à trouver efficacement le minimum x̂ des solutions x0 éloignée d’un α-β swap de x. Pour cela, il est proposé de construire un graphe représentant ce problème. Construction du graphe pour le α-β swap optimal La construction de ce graphe est fortement inspirée de celle proposée par [5]. Le but est donc de construire un graphe permettant à des sites s dont la valeur est xs = α de prendre la valeur β et inversement. On prend donc un graphe avec deux noeuds terminaux S et T . Cette fois-ci, ils ne représentent plus les valeurs 0 et 1 mais α et β. Ainsi, pour chaque site s dont la valeur dans x est xs = α ou xs = β, on ajoute un noeud is . Ce noeud est relié aux noeuds S et T selon : 13 Figure 4 – Construction du graphe pour l’α-β swap dans le cas où s ∈ Vt et u 6∈ Vt . – w(is , S) = Uc (α) + P Uc (α, xt ) t∈Vs xt 6=α,xt 6=β – w(is , T ) = Uc (β) + P Uc (β, xt ) t∈Vs xt 6=α,xt 6=β De plus, si 2 sites s et t présents dans le graphe sont voisins selon V, on ajoute l’arc : – w(is , it ) = Uc (α, β). La présentation de cette construction est illustrée dans le cas 1D dans la Figure 4. À partir de la méthode proposée par [5], on peut aisément associer une solution x0 à une coupe minimale dans le graphe présenté dans la Figure 4 et donc trouver le x̂ donnant l’énergie minimale parmis tous les mouvements éloignés d’un α-β swap de x. Critique Cette méthode permet une première généralisation au cas multiétiquettes des méthodes vues pour le cas binaire. Néanmoins, elle a deux défauts importants : 14 – La solution trouvée n’est qu’un minimum local, et aucune garantie que ce minimum local soit proche du global. – L’algorithme permettant d’arriver à cette solution a une complexité forte, dûe à la double boucle sur les valeurs de E. En revanche, cette solution permet d’utiliser indirectement les travaux de [5] et est adaptable à de nombreuses fonctions d’énergies avec seulement une contrainte de semi-métrique. De plus, même si la complexité est importante, en pratique la méthode finit plus vite qu’un recuit simulé. En rajoutant une contrainte sur la forme du terme de régularisation, on peut obtenir une méthode plus rapide avec des garanties théoriques sur l’éloignement du minimum local obtenu au minimum global. C’est cette méthode que nous allons désormais présenter. 3.2 Alpha expansion Principe et algorithme Dans cette seconde méthode, [2] s’intéresse aux fonctions de la forme : X X Uc (ys |xs ) + Uc (xs , xt ) U(x|y) = s (s,t) où la fonction Uc (., .) est une métrique (une semi-métrique vérifiant en plus l’inégalitée triangulaire). Définition 8 (Métrique) Une fonction Uc (., .) est une métrique si : – Uc (a, b) = Uc (b, a) ≥ 0 – Uc (a, b) = 0 ⇐⇒ a = b – Uc (a, b) ≤ Uc (a, c) + Uc (c, b) Pour les fonctions dont le terme de régularisation est une métrique, on peut utiliser l’algorithme de l’α-expansion ayant deux avantages par rapport au α-β swap. Le premier est, nous allons le voir, le gain en complexité de chaque cycle de l’algorithme. Le second est qu’on est capable de majorer le minimum c (a,b)) local obtenu par un facteur 2k du minimum global avec k = max(U . min(Uc (a,b)) 15 Afin de réaliser cette méthode, on part d’une solution initiale P. On parle d’un mouvement α-expansion donnant une solution P’ si après celuici, P=P’ pour tous les pixels dont le label est différent de α dans P’. En d’autre termes, un mouvement α-expansion permet seulement aux sites de l’image n’ayant pas pour valeur α de prendre la valeur α, et uniquement celle-ci. À partir de ce mouvement, [2] propose un algorithme permettant de converger vers un minimum local exposé dans l’algorithme 2 (on notera x0 les solutions accessibles en un α-expansion de x). Algorithm 2 α-expansion 1: 2: 3: 4: 5: procedure α-expansion(x) . x une solution éventuellement aléatoire repeat MadeProgress ← false for all α ∈ E do x̂ ← arg min U(x0 |y) 0 x 6: 7: 8: 9: 10: 11: 12: 13: if U(x̂|y) < U(x|y) then x ← x̂ MadeProgress ← true end if end for until !MadeProgress return x end procedure On note que cet algorithme est très similaire à l’algorithme 1, à la différence prêt que la boucle for ne tourne plus que sur les valeurs de E, présentant un gain important en complexité. La difficulté est encore une fois de trouvé le x̂ minimisant la fonction d’énergie. Pour cela, [2] propose une construction de graphe dont la coupe minimale donne une solution dont l’énergie est minimale. Cette construction fait l’objet du prochain paragraphe. Construction du graphe pour le α-expansion optimal Ici aussi, la construction du graphe est inspirée de celle de [5], quoique différente de celle présentée dans la sous-section 3.1. On commence par fixer un α. On ajoute deux noeuds terminaux : le premier représente la valeur α et sera noté comme tel, et le second représente toutes les valeurs sauf α et sera noté α. On rajoute un noeud is pour chaque 16 Figure 5 – Construction du graphe pour l’α-expansion dans le cas où xs = α, xt 6= α, xu = α et xv = α. site s de l’image. Enfin on ajoute un noeud auxiliaire pour chaque paire de site (s, t) tel que t ∈ Vs et que xs 6= xt dans la solution X. On note ce noeud a(s,t) . Les arcs sont définis de la manière suivante : 1. w(α, is ) = Uc (ys |α). 2. w(α, is ) = ∞ si xs = α. 3. w(α, is ) = Uc (ys |xs ) si xs 6= α. 4. w(is , a(s,t) ) = Uc (xs , α) si xs 6= xt . 5. w(a(s,t) , it ) = Uc (xt , α) si xs 6= xt . 6. w(a(s,t) , α) = Uc (xs , xt ) si xs 6= xt . 7. w(is , it ) = Uc (xs , α) si xs = xt . On illustre cette construction dans le cas 1D dans la Figure 5 (où (i) est une arrête construite selon la ieme règle). On prouve qu’une coupe minimale dans ce graphe nous donne bien la solution optimale dans les parties utilisants 17 les règles 4, 5 et 6 en utilisant la contrainte de sous-modularité : Uc (α, α) + Uc (α(s), α(t)) ≤ Uc (α, α(s)) + Uc (α(t), α) ⇐⇒ 0 + Uc (xs , xt ) ≤ Uc (α, xs ) + Uc (xt , α) Pour les autres parties, le lecteur peut s’en convaincre en enlevant les noeuds auxiliaires et les noeuds qui leur sont rattachés. Critique Cette méthode permet de calculer rapidement un minimum local majoré par un multiple du minimum global lorsque le terme de régularisation de l’énergie est une métrique. Ce résultat est fort, et en fait une technique toujours utilisée aujourd’hui. On retiendra néanmoins que le graphe à optimiser contient un nombre relativement important de noeuds (O(2|S|)). De plus, il n’y a pas de garanties théoriques sur la rapidité de la convergence vers le minimum local, même si les résultats expérimentaux présentés dans [2] convergent bien plus rapidement que le recuit simulé. Enfin, la condition sur le terme de régularisation fait que cette construction n’est pas utilisable pour toutes les énergies minimisables par coupe minimale dans un graphe. 3.3 Algorithme exact Nous venons de voir deux méthodes permettant de trouver un minimum local dans le cas où |E| > 2. Nous allons désormais étudier celle proposée par [6] traitant le même problème mais proposant une solution donnant le minimum global de la fonction d’énergie. Pour cette partie, on reformule le terme de régularisation de notre fonction d’énergie : X X U(x|y) = Uc (ys |xs ) + Uc s∈S = X c∈C Uc (ys |xs ) + s∈S X g(xs − xt ) (s,t)∈C Nous allons séparer cette méthode en deux parties ; le cas où le terme de régularisation est de type Total Variations (TV, c’est à dire que g(x) = |x|), et le cas plus général où la fonction de régualrisation est convexe (g(αx + (1 − α)y) ≤ αg(x) + (1 − α)g(y), ∀α ∈ [0, 1]). 18 Cas TV On commence par prendre un graphe avec deux noeuds terminaux, S et T . On ajoute un noeud is,v pour chaque valeur possible v que peut prendre chaque site s. Autrement dit, chaque site s nécessite la construction de |E| noeuds. On a donc un graphe avec |E| × |S| noeuds. Il reste maintenant à ajouter les arcs définis de la manière suivante (pour une attache aux données normalisée) : – w(S, is,1 ) = ∞ – w(is,j , is,j+1 ) = Uc (ys |j). – w(is,j , T ) = Uc (ys |j) – w(is,j+1 , is,j ) = ∞ – w(is,j , it,j ) = 1 La construction réalisée en suivant ses règles est présentée dans la Figure 6. On peut calculer le coût de cette coupe : C(S, T ) = w(i1,1 , i1,2 ) + w(i1,2 , i2,2 ) + w(i2,2 , i2,3 ) + w(i3,2 , i3,3 ) + w(i3,3 , i4,3 ) + w(i4,3 , T ) = Uc (y1 |1) + 1 + Uc (y2 |2) + Uc (y3 |2) + 1 + Uc (y4 |3) On voit facilement que ce coût est exactement notre fonction d’énergie pour la solution x = {1, 2, 2, 3}. Même si la régularisation TV est souvent utilisée, il est utile d’être capable de définir des graphes pour d’autres fonctions d’énergie. C’est l’objet du prochain paragraphe. Cas général Pour généraliser la construction précédente, on autorise chaque paire de noeuds is,j , it,l à avoir un arc les reliant. Supposons que xs = j et que xt = k. D’après les règles définies ci-dessus, les arcs (is,j , is,j+1 ) et (it,k , it,k+1 ) sont dans la coupe. De plus, comme chaque paire de noeuds peut avoir un arc, on a tous les arcs is,a , it,b pour a ≤ s, b > t et it,b , is,a pour a > s et b ≤ t dans la coupe. Ainsi, pour ces arcs, la somme des poids est (en notant l la valeur maximale de E) : f (s, t) = s l X X w(is,a , it,b ) + a=1 b=t+1 j l X X w(it,b , is,a ) a=i+1 b=1 Si on suppose que f (s, t) ne dépend que de s − t, alors on peut définir une fonction g̃(s − t) = f (s, t). L’auteur montre que cette fonction g̃ est convexe. Cette démonstration se fait en montrant que la dérivée seconde de g̃ est positive (ce qui caractérise une fonction convexe). 19 Figure 6 – Construction du graphe pour une image 1D avec |S| = 4 et |E| = 3. Les flèches noires représentent les règles 1, 2 et 3, les flèches en pointillés la règle 4 et les flèches grises la règle 5 (figure tirée de [6]). 20 En prenant le problème de manière opposé, c’est-à-dire en partant de la fonction g (connue) et en cherchant à définir les poids, on obtient le résultat suivant : w(is,j , it,k ) = g(j − k + 1) − 2g(j − k) + g(j − k − 1) 2 qui nous permet donc de définir les poids des arcs ajoutés. Critique Cette méthode a le double avantage d’être capable de donner le minimum global au problème posé et de le faire en une seule coupe minimale dans un graphe. En revanche, on remarque que le graphe ainsi construit est imposant. Il faut |E| × |S| noeuds. Pour une image à niveaux de gris de 100 × 100, cela fait 2560000 noeuds ! La construction du graphe et la recherche de la coupe de coût minimale peut donc être relativement longue à cause de la taille importante du graphe construit. On ajoutera qu’avec une hypothèse de convexité sur le terme d’attache aux données, il est possible d’utiliser une approche par dichotomie pour ramener le problème à une construction de graphes binaires (voir [3]). 4 Conclusion Nous avons donc présenté dans ce document quelques manières de réaliser une optimisation d’énergie à l’aide de coupe minimale dans un graphe. Après avoir proposé un cadre markovien dans lequel définir et appliquer ces fonctions d’énergies, nous avons présenté deux méthodes permettant d’optimiser des énergies dont l’attache aux données est faite selon un modèle d’Ising (sous-section 2.1), ou bien sous-modulaire (sous-section 2.2). Ensuite, nous avons regardé comment étendre ce type de constructions aux niveaux de gris, d’abord de manière approchée avec sous-section 3.1 et sous-section 3.2, puis de manière exacte mais avec une grande taille mémoire requise avec sous-section 3.3. Le Tableau 1 résume les principales caractéristiques des méthodes étudiées dans ce document. 21 Méthode Ising Généralisation α-β swap α-expansion Exact |E| 2 2 >2 >2 >2 Modèle Uc (., .) Ising Sous-modulaire Semi-métrique Métrique Convexe Solution Exacte Exacte Approchée Approchée Exacte Complexité Spatiale Temporelle θ(|S|) GC θ(|S|) GC O(|S|) o(|E|2 × GC) θ(|S|) o(|E| × GC) θ(|S| × |E|) GC Table 1 – Caractéristiques des méthodes étudiées dans ce document (où GC est la complexité d’une coupe). Références [1] Julian Besag. Spatial interaction and the statistical analysis of lattice systems. Journal of the Royal Statistical Society. Series B (Methodological), pages 192–236, 1974. [2] Yuri Boykov, Olga Veksler, and Ramin Zabih. Fast approximate energy minimization via graph cuts. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 23(11) :1222–1239, 2001. [3] Jérôme Darbon and Marc Sigelle. Image restoration with discrete constrained total variation part i : Fast and exact optimization. Journal of Mathematical Imaging and Vision, 26(3) :261–276, 2006. [4] Stuart Geman and Donald Geman. Stochastic relaxation, gibbs distributions, and the bayesian restoration of images. Pattern Analysis and Machine Intelligence, IEEE Transactions on, (6) :721–741, 1984. [5] DM Greig, BT Porteous, and Allan H Seheult. Exact maximum a posteriori estimation for binary images. Journal of the Royal Statistical Society. Series B (Methodological), pages 271–279, 1989. [6] H. Ishikawa. Exact optimization for markov random fields with convex priors. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 25(10) :1333–1336, Oct 2003. [7] Vladimir Kolmogorov and Ramin Zabin. What energy functions can be minimized via graph cuts ? Pattern Analysis and Machine Intelligence, IEEE Transactions on, 26(2) :147–159, 2004. [8] Stan Z Li and S Singh. Markov random field modeling in image analysis, volume 3. Springer, 2009. 22