Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parTrystan Pineau Modifié depuis plus de 10 années
1
Découpage d’images GIF-4105/7105 Photographie Algorithmique
Jean-François Lalonde Beili Liu, image: Don Mason
2
La semaine dernière Synthèse de textures
Re-dimensionnement d’images (TP2)
3
Segmentation (ou découpage) d’images
Aujourd’hui Segmentation (ou découpage) d’images
4
Application: composer les images
Source: Hoiem
5
Segmentation semi-automatique
L’utilisateur n’indique ses préférences qu’approximativement —l’algorithme doit faire le reste! Problèmes: Quels groupes de pixels forment des régions cohérentes? Quels pixels sont probablement à la frontière de ces régions? Quelle région l’utilisateur désire-t-il? Source: Hoiem
6
Les caractéristiques d’une “bonne” région?
Contient couleurs et textures similaires Différente de l’arrière-plan Compacte Similar color/texture, compact Source: Hoiem
7
Les caractéristiques d’une “bonne” frontière?
Gradient élevé Gradient dans la bonne direction Lisse et continue Smooth, high gradient along boundary Source: Hoiem
8
Idée principale: l’image est un graphe!
Noeud: pixel Arc: relation entre les pixels L’idée principale du cours d’aujourd’hui: considérer l’image comme étant un graphe!
9
L’image est un graphe! Synthèse de textures
Noeuds: différence de chevauchement Arcs: voisinage Redimensionnement Noeuds: “importance” d’un pixel Arcs: voisinage Algorithme: trouver chemin au coût total minimum
10
Trouver un “chemin” dans l’image…
Synthèse de textures Redimensionnement 2 _ =
11
Modéliser les régions: Baguette magique
Modèle: couleur doit être similaire Bonne région Mauvaise région
12
Baguette magique Algorithme: Cliquer sur un pixel
Tant que la couleur est similaire au pixel original Étendre la sélection en parcourant le graphe vers l’extérieur Départ
13
Démonstration (gimp)
14
Ciseaux intelligents Mortenson and Barrett, Intelligent Scissors, SIGGRAPH 1995
15
Ciseaux intelligents But: trouver une bonne frontière entre deux points Défis Définir: qu’est-ce qu’une bonne frontière? Calculer le chemin rapidement pour minimiser le temps d’interaction Dessiner au tableau? Source: Hoiem
16
Qu’est-ce qu’une bonne frontière?
Considérons deux pixels adjacents dans l’image. Il est probable qu’il y ait une frontière entre les deux si: il y a une arête edge(im, ‘canny’) le gradient est fort le gradient est dans la direction de la frontière Source: Hoiem
17
Gradients, arêtes, et coûts
Magnitude des gradients Coût (faible = frontière) Arêtes Source: Hoiem
18
Ciseaux intelligents Calculer le “coût de frontière” pour chaque pixel
Trouver le chemin minimisant ce coût entre le point de départ et point courant 1 3 2 Départ 2 1 4 3 1 3 5 3 1 2 2 1 1 1 Arrivée Source: Hoiem
19
Algorithme: ciseaux intelligents
Calculer le “coût de frontière” pour chaque pixel; L’utilisateur clique sur un point de départ (origine); Tant que l’utilisateur déplace le curseur: Calculer le plus court chemin entre l’origine et le curseur; Algorithme de Dijkstra Source: Hoiem
20
L’algorithme de Dijkstra
Initialisation, étant donné origine o cout(o) = 0, cout(autres pixels) = Inf A = {o}, pixels à visiter V = { }, pixels visités P(q), pointeur vers pixel qui mène vers q Tant que A n’est pas vide: q = pixel dans A au coût minimum Retirer q de A, rajouter dans V (nous l’avons visité) Pour chaque pixel p dans le voisinage de q et qui n’est pas dans V: cout_tmp = cout(q) + cout2(q,p) Si (r n’est pas dans A) OU (cout_tmp < cout(p)) cout(p) = cout_tmp P(p) = q Rajouter p à A Exemple au tableau!! Source: Hoiem
21
Ciseaux intelligents: améliorations
Premier départ: “sauter” vers la frontière la plus proche Ajuster la frontière de façon interactive quand l’utilisateur bouge le curseur Geler le chemin et créer de nouveaux points d’origine Source: Hoiem
22
Démonstration (gimp)
23
Quand est-ce que ça marche?
Quelle est l’information manquante? — sur les régions!! Source: Hoiem
24
Segmentation par coupure de graphe
Basic idea is to combine the information which was used in the 2 well known tools: MW and IS. MS select a region of similar colour according to your input. Fat pen and the boundary snapps to high contrast edges. Grabcut combines it. And this allows us to simplify the user interface considerably by … Rother et al., “Grab Cut”, SIGGRAPH 2004 Li et al., “Lazy Snapping”, SIGGRAPH 2004
25
Segmentation par coupure de graphe
Idée: combiner régions & frontières Régions Baguette magique (198?) Frontières Ciseaux intelligents (1995) Régions & frontières Segmentation interactive (2004) Basic idea is to combine the information which was used in the 2 well known tools: MW and IS. MS select a region of similar colour according to your input. Fat pen and the boundary snapps to high contrast edges. Grabcut combines it. And this allows us to simplify the user interface considerably by … Source: Rother
26
Segmentation par coupure de graphe
Basé sur un algorithme de segmentation par coupure de graphe. Exemple en 1 dimension.
27
Segmentation par coupure de graphe
Objet Arrière-plan
28
Segmentation par coupure de graphe
Objet Arrière-plan
29
Segmentation par coupure de graphe
Objet Arrière-plan
30
Segmentation par coupure de graphe
Objet Algorithme: coupure minimale (qui sépare la source du puits) Arrière-plan
31
Modéliser les régions Modèle de couleur: basé sur la sélection de l’utilisateur En contraste avec la “baguette magique” Objet: rouge, beige, blanc Arrière-plan: noir, vert-jaune
32
Modéliser les régions Probabilité qu’une couleur fasse partie
de l’objet de l’arrière-plan Histogrammes, mixture de gaussiennes
33
Modéliser les frontières
Similarité entre les couleurs de deux pixels adjacents
34
Segmentation par graphe
Objet Arrière-plan
35
Segmentation par coupure de graphe
Définir graphe (4- ou 8-voisins) Définir poids pour premier- et arrière-plan Histogramme de couleur (ou mixture de gaussiennes) Définir poids sur les arcs entre les pixels Appliquer algorithme de coupure minimale Revenir à 2, mettre à jour les modèles de l’objet et de l’arrière-plan avec la nouvelle sélection Dessiner au tableau (pour probabilités) Source: Hoiem
36
Colour Model R R G G Gaussian Mixture Model (typically 5-8 components)
Color enbergy. Iterations have the effect of pulling them away; D is – log likelyhood of the GMM. R R Iterated graph cut Foreground & Background Foreground Background G Background G Gaussian Mixture Model (typically 5-8 components) Source: Rother
37
Exemples faciles et difficiles
Pourquoi? Source: Rother
38
Exemples faciles Source: Rother
Moderately straightforward examples- after the user input automnatically Source: Rother
39
Exemples plus difficiles
Similarité avec arrière-plan Camouflage Structure fine You might wonder when does it fail. 4 cases. Low contrats – an edge not good visible Source: Rother
40
Démonstration (gimp)
41
Limites des coupures de graphes
Requiert des graphes associatifs Noeuds connectés préfèrent avoir la même valeur Optimal seulement pour problèmes binaires (ex: objet vs arrière-plan) Source: Hoiem
42
Autres applications: composition
Graphcut Textures – Kwatra et al. SIGGRAPH 2003
43
Autre application: composition
Graphcut Textures – Kwatra et al. SIGGRAPH 2003 + Frontière idéale: Couleur similaire dans les deux images Gradient élevé dans les deux images
44
“Soft Scissors” (Wang et al., SIGGRAPH’07)
Variante “Soft Scissors” (Wang et al., SIGGRAPH’07)
45
Résumé des idées principales
Considérer l’image comme un graphe Noeuds: pixels Poids des arcs déterminé par les gradients entre les pixels Parfois: rajouter des poids pour chaque pixel basé sur la ressemblance avec l’objet et l’arrière-plan Les bonnes frontières sont des chemins courts dans le graphe (Ciseaux intelligents, re-dimensionnement d’images) Les bonnes régions sont générées par une coupure avec coût minimum (coupure par graphe)
46
Retour sur le TP1 (pyramides)
47
Mercredi prochain Composer les images, sans découpage
TP2 dû dimanche 23h55
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.