B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization...

28
Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented path algorithm • Optimization for binary image graphs • Applications Max Flow Given: a weighted directed graph with two distinguished nodes: source s, sink (destination) t Interpret edge weights (all positive) as capacities Goal: Find maximum flow from s to t • Flow does not exceed capacity in any edge • Flow at every vertex satisfies equilibrium [ flow in equals flow out ] e.g. oil flowing through pipes, internet routing B1 reminder

Transcript of B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization...

Page 1: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Lecture 4

C25 Optimization Hilary 2013 A. Zisserman

Optimization on graphs

• Max-flow & min-cut

• The augmented path algorithm

• Optimization for binary image graphs

• Applications

Max FlowGiven: a weighted directed graph with two distinguished nodes:

• source s, • sink (destination) t

Interpret edge weights (all positive) as capacities

Goal: Find maximum flow from s to t

• Flow does not exceed capacity in any edge

• Flow at every vertex satisfies equilibrium[ flow in equals flow out ]

e.g. oil flowing through pipes, internet routing

B1 reminder

Page 2: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Example 3 cont.

Slide: Robert Sedgewick and Kevin Wayne

B1 reminder

Example 2 cont.B1 reminder

Page 3: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

TS

1

2

1

2 1

3

2

Max flow example

• max flow is unique = 2

• but there may be multiple paths (solutions) that achieve it

Matlab LP function linprog for max-flow

>> f = [ -1; -1; 0; 0; 0 ];

>> A = [1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 1 ];

>> b = [1; 2; 2; 3; 1];

>> Aeq = [1 0 -1 -1 0 0 1 1 0 -1];

>> beq = [ 0; 0 ];

>> lb = zeros(5,1);

>> x = linprog( f, A, b, Aeq, beq, lb );

TS

1

2

1

2 1

3

2

>> Optimization terminated.

>> x

x = 1.0 1.0 0.0 1.0 1.0

>> flow = - x’ * f

flow = 2.0

e1

e2

e3e4

e5

e1 e2 e3 e4 e5

Page 4: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Another example

Source

Sink

v1 v2

2/2

3/5

5/9

4/43

1/1

Max Flow = 7

Source

Sink

v1 v2

2

5

9

42

1

The st-Mincut Problem

Source

Sink

v1 v2

2

5

9

42

1

Slides from Pushmeet Kohli

• Each node is either assigned to the source S or sink T

• The cost of the edge (i, j) is taken if (i∈S) and (j∈T)

•An st-cut (S,T) divides the nodes between source and sink

• The cost of the cut is the sum of costs of all edges going from S to T

• The st-min-cut is the cut with lowest cost

Page 5: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

The st-Mincut Problem

Source

Sink

v1 v2

2

5

9

42

1

5 + 2 + 9 = 16

• Each node is either assigned to the source S or sink T

• The cost of the edge (i, j) is taken if (i∈S) and (j∈T)

•An st-cut (S,T) divides the nodes between source and sink

• The cost of the cut is the sum of costs of all edges going from S to T

• The st-min-cut is the cut with lowest cost

The st-Mincut Problem

Source

Sink

v1 v2

2

5

9

42

1

2 + 1 + 4 = 7

• Each node is either assigned to the source S or sink T

• The cost of the edge (i, j) is taken if (i∈S) and (j∈T)

•An st-cut (S,T) divides the nodes between source and sink

• The cost of the cut is the sum of costs of all edges going from S to T

• The st-min-cut is the cut with lowest cost

Page 6: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Min-cut\Max-flow Theorem

Source

Sink

v1 v2

2

5

9

42

1

In every network, the maximum flow equals the cost of the st-mincut

Max flow = min cut = 7

Next: the augmented path algorithm for computing the max-flow/min-cut

Maxflow Algorithms

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Source

Sink

v1 v2

2

5

9

42

1

Algorithms assume non-negative capacity

Flow = 0

Page 7: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Maxflow Algorithms

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Source

Sink

v1 v2

2

5

9

42

1

Algorithms assume non-negative capacity

Flow = 0

Maxflow Algorithms

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Source

Sink

v1 v2

2-2

5-2

9

42

1

Algorithms assume non-negative capacity

Flow = 0 + 2

Page 8: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Maxflow Algorithms

Source

Sink

v1 v2

0

3

9

42

1

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Algorithms assume non-negative capacity

Flow = 2

Maxflow Algorithms

Source

Sink

v1 v2

0

3

9

42

1

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Algorithms assume non-negative capacity

Flow = 2

Page 9: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Maxflow Algorithms

Source

Sink

v1 v2

0

3

9

42

1

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Algorithms assume non-negative capacity

Flow = 2

Maxflow Algorithms

Source

Sink

v1 v2

0

3

5

02

1

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Algorithms assume non-negative capacity

Flow = 2 + 4

Page 10: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Maxflow Algorithms

Source

Sink

v1 v2

0

3

5

02

1

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Algorithms assume non-negative capacity

Flow = 6

Maxflow Algorithms

Source

Sink

v1 v2

0

3

5

02

1

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Algorithms assume non-negative capacity

Flow = 6

Page 11: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Maxflow Algorithms

Source

Sink

v1 v2

0

2

4

02+1

1-1

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Algorithms assume non-negative capacity

Flow = 6 + 1

Maxflow Algorithms

Source

Sink

v1 v2

0

2

4

03

0

Augmenting Path Based Algorithms

1. Find path from source to sink with positive capacity

2. Push maximum possible flow through this path

3. Repeat until no path can be found

Algorithms assume non-negative capacity

Flow = 7

Page 12: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Maxflow Algorithms

Source

Sink

v1 v2

0

2

4

03

0

Flow = 7

Source

Sink

v1 v2

2

5

9

42

1

2 + 1 + 4 = 7

Min‐cut = 7

Image Graphs

pixels

• many loops

• very large number of nodes (variables) – millions

• dynamic programming can’t be used

Consider binary graphs (h = 2)

Page 13: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

ji

Example: noise removal in an image

• n is the number of pixels in the image, e.g. n = 1 M

• Graph structure: each vertex is connected to four neighbours

1

0

i

N (i)

f(x) =Xi

(zi−xi)2+dφ(xi, xi−1)

noisy data

zi = xi+ wi

where

xi ∈ {0,1} wi ∼ N(0,σ2)and

φ(xi, xj) =

(0 ifxi = xj1 ifxi 6= xj.

Graph cut algorithmsBinary optimization: each variable x has one of two possible values

f(x) =nXi=1

{mi(xi) +X

j∈N(i)φi(xi, xj)}

If f(x) is sub-modular, then it can be optimized by the Min-Cut algorithm

xi ∈ {0,1}

The cost function f(x) is sub-modular if

φ(0,0) + φ(1,1) <= φ(0,1) + φ(1,0)

N (i) is the neighbourhood of node i i

Complexity of minimization:

• exhaustive search O(2n)

• min cut O(n3)

Page 14: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

original

original plus noise

Min x

20 40 60 80 100 120 140 160 180 200 220

20

40

60

20 40 60 80 100 120 140 160 180 200 220

20

40

60

20 40 60 80 100 120 140 160 180 200 220

20

40

60

d = 10

20 40 60 80 100 120 140 160 180 200 220

20

40

60

20 40 60 80 100 120 140 160 180 200 220

20

40

60

20 40 60 80 100 120 140 160 180 200 220

20

40

60

original

original plus noise

Min x

d = 60

n ∼ 20 K

Page 15: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Optimization using graph cuts

Stage 1: map the cost function f(x) onto a flow network so that a cut of the network corresponds to the cost f(x)

Stage 2: compute the min-cut of the network using an augmented path algorithm

pqw

n-links a cuts

t

Map f(x) onto network flow

Construct a network so that a cut corresponds to an assignment of xi

m1(1) D

C B

A

x1 x2

Label ‘0’

Label ‘1’ m2(1)

m1(0) m2(0)

= 0

= 1

f(x) =nXi=1

{mi(xi) +X

j∈N(i)φi(xi, xj)}

Page 16: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

m1(1) D

C B

A

x1 x2

m2(1)

m1(0) m2(0)

Sink (1)

x1

Source (0)

m1(1)

m1(0)

m2(1)

m2(0)

For unary terms only:

Sink (1)

x1 x2

Source (0)

m1(1)

m1(0)

m2(1)

m2(0)

x2

x1 = 1, x2 = 1

→ f(x) = m1(1) +m2(1)

cut

Sink (1)

x1 x2

Source (0)

m1(1) + C - A

m1(0)

m2(1) + D - C

m2(0)

DC

BA

m1(1) D

C B

A

x1 x2

m2(1)

m1(0) m2(0)

0 1

0

1

x1

x2

= A +C-AC-A

00

0 1

0

1 D-C0

D-C0

0 1

0

1 00

B+C-A-D0

0 1

0

1

+ +

B+C-A-D

Now, include pair wise term …

add C-A if x1 = 1

add D-C if x2 = 1

Sub-modular constraint: flows must be positive. So, B+C-A-D >= 0

Page 17: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Sink (1)

x1x2

Source (0)

m1(1) + C - A

m1(0)

m2(1) + D - C

m2(0)

B+C-A-Dx1 = 1, x2 = 1

→ f(x) = m1(1) +m2(1) +D − A

m1(1) D

C B

A

x1 x2

m1(0)

cut

Sink (1)

x1x2

Source (0)

m1(1) + C - A

m1(0)

m2(1) + D - C

m2(0)

B+C-A-Dx1 = 0, x2 = 1

→ f(x) = m1(0) +m2(1)

+D − C +B+ C − A−D= m1(0) +m2(1) +B −A

m1(1) D

C B

A

x1 x2

m1(0)

cut

Page 18: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Summary: optimization using graph cuts

Stage 1: map the cost function f(x) onto a flow network so that a cut of the network corresponds to the cost f(x)

Stage 2: compute the min-cut of the network using an augmented path algorithm

Applications

Optimization of binary image graph using graph-cuts:

1. Image cut-out and editing

2. Image quilting

3. Interactive Digital Photo-montage

Page 19: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

1. Image cut-out by binary segmentation

Object - white, Background - green/grey Graph G = (V,E)

Each vertex corresponds to a pixel

Edges define a 4-neighbourhood grid graph

Assign a label to each vertex from L = {obj,bkg}

Page 20: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Graph G = (V,E)

Cost of a labelling f : V L Per Vertex Cost

Cost of label ‘obj’ low Cost of label ‘bkg’ high

Object - white, Background - green/grey

Graph G = (V,E)

Cost of a labelling f : V L

Cost of label ‘obj’ high Cost of label ‘bkg’ low

Per Vertex Cost

UNARY COST

Object - white, Background - green/grey

Page 21: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Graph G = (V,E)

Cost of a labelling f : V L Per Edge Cost

Cost of same label low

Cost of different labels high

Object - white, Background - green/grey

Graph G = (V,E)

Cost of a labelling f : V L

Cost of different labels low

Per Edge Cost

PAIRWISECOST

Object - white, Background - green/grey

Page 22: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Graph G = (V,E)

Problem: Find the labelling with minimum cost f*

Object - white, Background - green/grey

f(x) =nXi=1

{mi(xi) +X

j∈N(i)φi(xi, xj)}jiN (i)

• xi = 1 for foreground pixels, xi = 0 for background

• mi(xi) is likelihood that pixel at i is foreground (if xi = 1), or back-

ground (if xi = 0 ), e.g. using colour histogram of seed regions

• φ(xi, xj) penalizes a change of state:

φi(xi, xj) =

(0 ifxi = xj

γe−β(Ii−Ij)2ifxi 6= xj.

Page 23: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Application: foreground/background image segmentation

foreground Seed Pixels

Background Seed Pixels

use seed pixels to learn colour distribution

Image editing …

Available in Microsoft Office …

Page 24: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Image Quilting

Example: Texture Synthesis

Goal of Texture Synthesis: create new samples of a given texture

Many applications: virtual environments, hole-filling, texturing surfaces

Page 25: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Input texture

B1 B2

Random placement of blocks

block

B1 B2

Neighboring blocksconstrained by overlap

B1 B2

Minimal errorboundary cut

Algorithm

• Pick size of block and size of overlap

• Synthesize blocks in raster order

• Search input texture for block that satisfies overlap constraints (above and left)

• Paste new block into resulting texture> use graph cuts to compute minimal error boundary cut

Efros & Freeman 2001, Kwatra et al. 2003

Page 26: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

min. error boundary

Minimal error boundary

overlapping blocks vertical boundary

__ ==22

overlap error

Page 27: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Interactive Digital Photomontage

Page 28: B1 reminder Max Flow - University of Oxfordaz/lectures/opt/lect4.pdf · Lecture 4 C25 Optimization Hilary 2013 A. Zisserman Optimization on graphs • Max-flow & min-cut • The augmented

Agarwala et al. 2004

Use graph-cuts to quilt images