Presentation is loading. Please wait.

Presentation is loading. Please wait.

Machine Learning – Lecture 15

Similar presentations


Presentation on theme: "Machine Learning – Lecture 15"— Presentation transcript:

1 Machine Learning – Lecture 15
Efficient MRF Inference with Graph Cuts Bastian Leibe RWTH Aachen TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAAAAAAAAAAAAAAAAAAAAAAA

2 Lecture Evaluation: Numerical Results
Lecturer Lecture B. Leibe

3 Lecture Evaluation: Positive Comments
“Very good lecture. Difficult topics presented in a good & comprehensible way. Good slides.” “Thanks a lot for the lecture – it gives a very good overview.” “Good slides. Good examples at whiteboard.” “Very interesting lecture! ” “This lecture finally enables me to understand probability theory – but of course it is quite hard to follow the lecture without having understood it beforehand.”  Glad to hear that! B. Leibe

4 Lecture Evaluation: Detailed Critique
“At some points I would appreciate if the slides would be a bit more self contained for looking up things later.” “I think the course is way too hard to follow with only basic understanding in stochastics. A lot of formulae are on the slides but many of them are only explained very roughly.” “Less formulas, more examples.” “It is sometimes hard to follow the slides when you haven't been to the lecture (e.g., it is not always clear why different fonts are used in formulas – sometimes it means something, sometimes it doesn't.” “At the beginning of the semester the textbook wasn't available at the library (and it is very expensive).”

5 Lecture Evaluation: Exercises
“Exercises are too long and are often referring to a lecture two weeks ago.” “The exercises are very helpful for understanding the contents of the lecture, and the slides in the exercise course are very well-structured and comprehensible.” B. Leibe

6 Lecture Evaluation: Exercises (cont'd)
“The exercise course is lacking prior examples that own solutions can be based on. Often the idea is to implement something of which the basic understanding has not yet been established. I am disappointed.” “The only thing that in my opinion could be better are the exercises. The solving of the task normally mean that some algorithm has to be implemented. But the implementation does not require the understanding of the material but just writing down the formulas from slides in Matlab. It would be nice to have more theoretical tasks which really require deeper understanding of the problem and its solution.” B. Leibe

7 Lecture Evaluation: Varia
“Hard to get fresh air inside with noise outside”  Unfortunately out of our control...  B. Leibe

8 Course Outline Fundamentals (2 weeks)
Bayes Decision Theory Probability Density Estimation Discriminative Approaches (5 weeks) Linear Discriminant Functions Statistical Learning Theory & SVMs Ensemble Methods & Boosting Decision Trees & Randomized Trees Generative Models (4 weeks) Bayesian Networks Markov Random Fields Exact Inference Applications B. Leibe

9 Recap: Junction Tree Algorithm
Motivation Exact inference on general graphs. Works by turning the initial graph into a junction tree and then running a sum-product-like algorithm. Intractable on graphs with large cliques. Main steps If starting from directed graph, first convert it to an undirected graph by moralization. Introduce additional links by triangulation in order to reduce the size of cycles. Find cliques of the moralized, triangulated graph. Construct a new graph from the maximal cliques. Remove minimal links to break cycles and get a junction tree.  Apply regular message passing to perform inference. B. Leibe

10 Recap: Junction Tree Example
Without triangulation step The final graph will contain cycles that we cannot break without losing the running intersection property! B. Leibe Image source: J. Pearl, 1988

11 Recap: Junction Tree Example
When applying the triangulation Only small cycles remain that are easy to break. Running intersection property is maintained. B. Leibe Image source: J. Pearl, 1988

12 Recap: MRF Structure for Images
Basic structure Two components Observation model How likely is it that node xi has label Li given observation yi? This relationship is usually learned from training data. Neighborhood relations Simplest case: 4-neighborhood Serve as smoothing terms.  Discourage neighboring pixels to have different labels. This can either be learned or be set to fixed “penalties”. Noisy observations “True” image content B. Leibe

13 Recap: How to Set the Potentials?
Unary potentials E.g. color model, modeled with a Mixture of Gaussians  Learn color distributions for each label B. Leibe

14 Recap: How to Set the Potentials?
Pairwise potentials Potts Model Simplest discontinuity preserving model. Discontinuities between any pair of labels are penalized equally. Useful when labels are unordered or number of labels is small. Extension: “contrast sensitive Potts model” where Discourages label changes except in places where there is also a large change in the observations. B. Leibe

15 Energy Minimization Goal:
Infer the optimal labeling of the MRF. Many inference algorithms are available, e.g. Simulated annealing Iterated conditional modes (ICM) Belief propagation Graph cuts Variational methods Monte Carlo sampling Recently, Graph Cuts have become a popular tool Only suitable for a certain class of energy functions. But the solution can be obtained very fast for typical vision problems (~1MPixel/sec). What you saw in the movie. Too simple. Last lecture Today! For more complex problems B. Leibe

16 Topics of This Lecture Solving MRFs with Graph Cuts
Graph cuts for image segmentation s-t mincut algorithm Graph construction Extension to non-binary case Applications B. Leibe

17 Example: Image Segmentation
E: {0,1}N → R 0 → fg 1 → bg N = number of pixels Image (D) Slide credit: Pushmeet Kohli B. Leibe

18 Example: Image Segmentation
E: {0,1}N → R 0 → fg 1 → bg N = number of pixels Unary Cost (ci) Dark (negative) Bright (positive) Slide credit: Pushmeet Kohli B. Leibe

19 Example: Image Segmentation
E: {0,1}N → R 0 → fg 1 → bg N = number of pixels Discontinuity Cost (cij) Slide credit: Pushmeet Kohli B. Leibe

20 Example: Image Segmentation
E: {0,1}N → R 0 → fg 1 → bg N = number of pixels How to minimize E(x)? Global Minimum (x*) Slide credit: Pushmeet Kohli B. Leibe

21 Graph Cuts – Basic Idea E(x) Construct a graph such that: s t
Any st-cut corresponds to an assignment of x The cost of the cut is equal to the energy of x : E(x) st-mincut t s Solution E(x) Slide credit: Pushmeet Kohli B. Leibe

22 Graph Cuts for Binary Problems
Idea: convert MRF into source-sink graph s t a cut n-links hard constraint Minimum cost cut can be computed in polynomial time (max-flow/min-cut algorithms) Slide credit: Yuri Boykov B. Leibe [Boykov & Jolly, ICCV’01]

23 Simple Example of Energy
unary potentials pairwise potentials t-links n-links s t a cut (binary object segmentation) Slide credit: Yuri Boykov B. Leibe

24 Adding Regional Properties
a cut n-links t-link t-link Regional bias example Suppose are given “expected” intensities of object and background NOTE: hard constrains are not required, in general. Slide credit: Yuri Boykov B. Leibe [Boykov & Jolly, ICCV’01]

25 Adding Regional Properties
a cut n-links t-link t-link “expected” intensities of object and background can be re-estimated EM-style optimization Slide credit: Yuri Boykov B. Leibe [Boykov & Jolly, ICCV’01]

26 Adding Regional Properties
More generally, unary potentials can be based on any intensity/color models of object and background. a cut s t Object and background color distributions Slide credit: Yuri Boykov B. Leibe [Boykov & Jolly, ICCV’01]

27 Topics of This Lecture Solving MRFs with Graph Cuts
Graph cuts for image segmentation s-t mincut algorithm Graph construction Extension to non-binary case Applications Source Sink v1 v2 2 5 9 4 1 B. Leibe

28 How Does it Work? The s-t-Mincut Problem
Source Sink v1 v2 2 5 9 4 1 Graph (V, E, C) Vertices V = {v1, v2 ... vn} Edges E = {(v1, v2) ....} Costs C = {c(1, 2) ....} Slide credit: Pushmeet Kohli B. Leibe

29 The s-t-Mincut Problem
What is an st-cut? An st-cut (S,T) divides the nodes between source and sink. Source 2 9 What is the cost of a st-cut? 1 Sum of cost of all edges going from S to T v1 v2 2 5 4 Sink = 16 Slide credit: Pushmeet Kohli B. Leibe

30 The s-t-Mincut Problem
What is an st-cut? An st-cut (S,T) divides the nodes between source and sink. Source 2 9 What is the cost of a st-cut? 1 Sum of cost of all edges going from S to T v1 v2 2 5 4 What is the st-mincut? Sink st-cut with the minimum cost = 7 Slide credit: Pushmeet Kohli B. Leibe

31 How to Compute the s-t-Mincut?
Solve the dual maximum flow problem Compute the maximum flow between Source and Sink Source Sink v1 v2 2 5 9 4 1 Constraints Edges: Flow < Capacity Nodes: Flow in = Flow out In every network, the maximum flow equals the cost of the st-mincut Min-cut/Max-flow Theorem Slide credit: Pushmeet Kohli B. Leibe

32 History of Maxflow Algorithms
Augmenting Path and Push-Relabel n: #nodes m: #edges U: maximum edge weight Algorithms assume non-negative edge weights Slide credit: Andrew Goldberg B. Leibe

33 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 0 Augmenting Path Based Algorithms Source Sink v1 v2 2 5 9 4 1 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

34 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 0 Augmenting Path Based Algorithms Source Sink v1 v2 9 4 2 1 2 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found 5 Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

35 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 0 + 2 Augmenting Path Based Algorithms Source Sink v1 v2 9 4 2 1 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found 2-2 5-2 Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

36 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 2 Augmenting Path Based Algorithms Source Sink v1 v2 9 4 2 1 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found 3 Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

37 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 2 Augmenting Path Based Algorithms Source Sink v1 v2 3 9 4 2 1 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

38 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 2 Augmenting Path Based Algorithms Source Sink v1 v2 3 2 1 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found 9 4 Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

39 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 2 + 4 Augmenting Path Based Algorithms Source Sink v1 v2 3 2 1 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found 5 Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

40 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 6 Augmenting Path Based Algorithms Source Sink v1 v2 3 5 2 1 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

41 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 6 Augmenting Path Based Algorithms Source Sink v1 v2 2 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found 5 1 3 Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

42 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 6 + 1 Augmenting Path Based Algorithms Source Sink v1 v2 2 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found 4 1-1 2 Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

43 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 7 Augmenting Path Based Algorithms Source Sink v1 v2 2 4 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

44 Augmenting Path Based Algorithms
Maxflow Algorithms Flow = 7 Augmenting Path Based Algorithms Source Sink v1 v2 2 4 Find path from source to sink with positive capacity Push maximum possible flow through this path Repeat until no path can be found Algorithms assume non-negative capacity Slide credit: Pushmeet Kohli B. Leibe

45 Applications: Maxflow in Computer Vision
Specialized algorithms for vision problems Grid graphs Low connectivity (m ~ O(n)) Dual search tree augmenting path algorithm [Boykov and Kolmogorov PAMI 2004] Finds approximate shortest augmenting paths efficiently. High worst-case time complexity. Empirically outperforms other algorithms on vision problems. Efficient code available on the web Slide credit: Pushmeet Kohli B. Leibe

46 When Can s-t Graph Cuts Be Applied?
s-t graph cuts can only globally minimize binary energies that are submodular. Submodularity is the discrete equivalent to convexity. Implies that every local energy minimum is a global minimum.  Solution will be globally optimal. unary potentials pairwise potentials t-links n-links [Boros & Hummer, 2002, Kolmogorov & Zabih, 2004] E(L) can be minimized by s-t graph cuts Submodularity (“convexity”) B. Leibe

47 Topics of This Lecture Solving MRFs with Graph Cuts
Graph cuts for image segmentation s-t mincut algorithm Graph construction Extension to non-binary case Applications Source Sink v1 v2 2 5 9 4 1 B. Leibe

48 Recap: Simple Image Segmentation Model
MRF Structure Example: simple energy function Smoothness term: penalty cij if neighboring labels disagree. Observation term: penalty ci if label and observation disagree. Noisy observations Observation process “True” image content “Smoothness constraints” Observation Smoothness ("Potts model") B. Leibe Image source: C. Bishop, 2006

49 Converting an MRF into an s-t Graph
Conversion: Energy: Unary potentials are straightforward to set. How? Just insert xi = 1 and xi = 0 into the unary terms above... Source Sink xi xj B. Leibe

50 Converting an MRF into an s-t Graph
Conversion: Energy: Unary potentials are straightforward to set. How? Pairwise potentials are more tricky, since we don’t know xi! Trick: the pairwise energy only has an influence if xi  xj. (Only!) in this case, the cut will go through the edge {xi,xj}. Source Sink xi xj B. Leibe

51 Example: Graph Construction
Source (0) a1 a2 Sink (1) Slide credit: Pushmeet Kohli B. Leibe

52 Example: Graph Construction
Source (0) 2 a1 a2 Sink (1) Slide credit: Pushmeet Kohli B. Leibe

53 Example: Graph Construction
Source (0) 2 a1 a2 5 Sink (1) Slide credit: Pushmeet Kohli B. Leibe

54 Example: Graph Construction
Source (0) 2 9 a1 a2 5 4 Sink (1) Slide credit: Pushmeet Kohli B. Leibe

55 Example: Graph Construction
Source (0) 2 9 1 a1 a2 5 4 Sink (1) Slide credit: Pushmeet Kohli B. Leibe

56 Example: Graph Construction
Source (0) 2 9 1 a1 a2 2 5 4 Sink (1) Slide credit: Pushmeet Kohli B. Leibe

57 Example: Graph Construction
Source (0) 2 9 1 a1 a2 2 5 4 Sink (1) Slide credit: Pushmeet Kohli B. Leibe

58 Example: Graph Construction
Source (0) 2 9 Cost of cut = 11 1 a1 a2 a1 = 1 a2 = 1 2 E (1,1) = 11 5 4 Sink (1) Slide credit: Pushmeet Kohli B. Leibe

59 Example: Graph Construction
Source (0) 2 9 Cost of cut = 7 1 a1 a2 a1 = 1 a2 = 0 2 E (1,0) = 7 5 4 Sink (1) Slide credit: Pushmeet Kohli B. Leibe

60 How Does the Code Look Like?
Graph *g; For all pixels p /* Add a node to the graph */ nodeID(p) = g->add_node(); /* Set cost of terminal edges */ set_weights(nodeID(p), fgCost(p), bgCost(p)); end for all adjacent pixels p,q add_weights(nodeID(p), nodeID(q), cost); g->compute_maxflow(); label_p = g->is_connected_to_source(nodeID(p)); // is the label of pixel p (0 or 1) Source (0) Sink (1) Slide credit: Pushmeet Kohli B. Leibe

61 How Does the Code Look Like?
Graph *g; For all pixels p /* Add a node to the graph */ nodeID(p) = g->add_node(); /* Set cost of terminal edges */ set_weights(nodeID(p), fgCost(p), bgCost(p)); end for all adjacent pixels p,q add_weights(nodeID(p), nodeID(q), cost); g->compute_maxflow(); label_p = g->is_connected_to_source(nodeID(p)); // is the label of pixel p (0 or 1) Source (0) bgCost(a1) bgCost(a2) a1 a2 fgCost(a1) fgCost(a2) Sink (1) Slide credit: Pushmeet Kohli B. Leibe

62 How Does the Code Look Like?
Graph *g; For all pixels p /* Add a node to the graph */ nodeID(p) = g->add_node(); /* Set cost of terminal edges */ set_weights(nodeID(p), fgCost(p), bgCost(p)); end for all adjacent pixels p,q add_weights(nodeID(p), nodeID(q), cost); g->compute_maxflow(); label_p = g->is_connected_to_source(nodeID(p)); // is the label of pixel p (0 or 1) Source (0) bgCost(a1) bgCost(a2) cost(p,q) a1 a2 fgCost(a1) fgCost(a2) Sink (1) Slide credit: Pushmeet Kohli B. Leibe

63 How Does the Code Look Like?
Graph *g; For all pixels p /* Add a node to the graph */ nodeID(p) = g->add_node(); /* Set cost of terminal edges */ set_weights(nodeID(p), fgCost(p), bgCost(p)); end for all adjacent pixels p,q add_weights(nodeID(p), nodeID(q), cost); g->compute_maxflow(); label_p = g->is_connected_to_source(nodeID(p)); // is the label of pixel p (0 or 1) Source (0) bgCost(a1) bgCost(a2) cost(p,q) a1 a2 fgCost(a1) fgCost(a2) Sink (1) a1 = bg a2 = fg Slide credit: Pushmeet Kohli B. Leibe

64 Topics of This Lecture Solving MRFs with Graph Cuts
Graph cuts for image segmentation s-t mincut algorithm Graph construction Extension to non-binary case Applications other labels B. Leibe

65 Dealing with Non-Binary Cases
Limitation to binary energies is often a nuisance.  E.g. binary segmentation only… We would like to solve also multi-label problems. The bad news: Problem is NP-hard with 3 or more labels! There exist some approximation algorithms which extend graph cuts to the multi-label case: -Expansion -Swap They are no longer guaranteed to return the globally optimal result. But -Expansion has a guaranteed approximation quality (2-approx) and converges in a few iterations. B. Leibe

66 -Expansion Move Basic idea:
Break multi-way cut computation into a sequence of binary s-t cuts. other labels Slide credit: Yuri Boykov B. Leibe

67 -Expansion Algorithm
Start with any initial solution For each label “” in any (e.g. random) order: Compute optimal -expansion move (s-t graph cuts). Decline the move if there is no energy decrease. Stop when no expansion move would decrease energy. Slide credit: Yuri Boykov B. Leibe

68 Example: Stereo Vision
Depth map ground truth Depth map Original pair of “stereo” images Slide credit: Yuri Boykov B. Leibe

69 -Expansion Moves In each -expansion a given label “” grabs space from other labels initial solution -expansion -expansion -expansion -expansion -expansion -expansion -expansion For each move, we choose the expansion that gives the largest decrease in the energy:  binary optimization problem Slide credit: Yuri Boykov B. Leibe

70 Topics of This Lecture Solving MRFs with Graph Cuts
Graph cuts for image segmentation s-t mincut algorithm Extension to non-binary case Applications B. Leibe

71 GraphCut Applications: “GrabCut”
Interactive Image Segmentation [Boykov & Jolly, ICCV’01] Rough region cues sufficient Segmentation boundary can be extracted from edges Procedure User marks foreground and background regions with a brush. This is used to create an initial segmentation which can then be corrected by additional brush strokes. Add interactive image segmentation slide Additional segmentation cues User segmentation cues Slide credit: Matthieu Bray

72 Global optimum of the energy
GrabCut: Data Model Obtained from interactive user input User marks foreground and background regions with a brush Alternatively, user can specify a bounding box Foreground color Background color Global optimum of the energy Slide credit: Carsten Rother B. Leibe

73 Color model (Mixture of Gaussians) Energy after each iteration
Iterated Graph Cuts Foreground Background G R Foreground & Background Background G R Color model (Mixture of Gaussians) 1 2 3 4 Result Energy after each iteration Slide credit: Carsten Rother B. Leibe

74 GrabCut: Example Results
This is included in the newest version of MS Office! B. Leibe Image source: Carsten Rother

75 Applications: Interactive 3D Segmentation
Slide credit: Yuri Boykov B. Leibe [Y. Boykov, V. Kolmogorov, ICCV’03]

76 Bayesian Networks What we’ve learned so far…
We know they are directed graphical models. Their joint probability factorizes into conditional probabilities, We know how to convert them into undirected graphs. We know how to perform inference for them. Sum/Max-Product BP for exact inference in (poly)tree-shaped BNs. Loopy BP for approximate inference in arbitrary BNs. Junction Tree algorithm for converting arbitrary BNs into trees. But what are they actually good for? How do we apply them in practice? And how do we learn their parameters? B. Leibe Image source: C. Bishop, 2006

77 References and Further Reading
A gentle introduction to Graph Cuts can be found in the following paper: Y. Boykov, O. Veksler, Graph Cuts in Vision and Graphics: Theories and Applications. In Handbook of Mathematical Models in Computer Vision, edited by N. Paragios, Y. Chen and O. Faugeras, Springer, 2006. Try the GraphCut implementation at B. Leibe


Download ppt "Machine Learning – Lecture 15"

Similar presentations


Ads by Google