Tutorial-ImageSegmentationGraph-cut1-Shi
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Tutorial</strong><br />
Graph Based Image Segmentation<br />
Jianbo <strong>Shi</strong>, David Martin, Charless Fowlkes, Eitan Sharon
Topics<br />
• Computing segmentation with graph cuts<br />
•<br />
•<br />
Segmentation benchmark, evaluation criteria<br />
Image segmentation cues, and combination<br />
• Muti-grid computation, and cue aggregation
i<br />
Wij<br />
j<br />
W ij<br />
G = {V, E}<br />
V: graph nodes<br />
E: edges connection nodes<br />
Image = { pixels }<br />
Pixel similarity
Topics<br />
• Computing segmentation with graph cuts<br />
•<br />
•<br />
Segmentation benchmark, evaluation criteria<br />
Image segmentation cues, and combination<br />
• Muti-grid computation, and cue aggregation
Topics<br />
• Computing segmentation with graph cuts<br />
•<br />
•<br />
Segmentation benchmark, evaluation criteria<br />
Image segmentation cues, and combination<br />
• Muti-grid computation, and cue aggregation
Original Image<br />
Texture<br />
Brightnes<br />
s<br />
L*<br />
Colo<br />
r<br />
a*<br />
b*<br />
Boundary Processing<br />
Region<br />
Processing<br />
Textons<br />
D<br />
E<br />
Proximity<br />
C<br />
B<br />
A<br />
χ 2<br />
χ 2<br />
W ij<br />
C<br />
A<br />
B
Topics<br />
• Computing segmentation with graph cuts<br />
•<br />
•<br />
Segmentation benchmark, evaluation criteria<br />
Image segmentation cues, and combination<br />
• Muti-grid computation, and cue aggregation
Part I: Graph and Images<br />
Jianbo <strong>Shi</strong>
Graph Based Image Segmentation<br />
i<br />
Wij<br />
j<br />
W ij<br />
G = {V, E}<br />
V: graph nodes<br />
E: edges connection nodes<br />
Image = { pixels }<br />
Pixel similarity<br />
Segmentation = Graph partition
Right partition cost function?<br />
Efficient optimization algorithm?
Graph Terminology<br />
adjacency matrix,<br />
degree,<br />
volume,<br />
graph cuts
Graph Terminology<br />
Similarity matrix S = [ Sij ]<br />
i<br />
Sij<br />
j<br />
is generalized adjacency matrix<br />
1<br />
20<br />
10<br />
0<br />
20<br />
40<br />
60<br />
80<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
!10<br />
100<br />
0.3<br />
!20<br />
!10 0 10 20 30 40<br />
120<br />
140 0<br />
20 40 60 80 100 120 140<br />
0.2<br />
0.1
Graph Terminology<br />
Degree of node:<br />
d i = ∑ j<br />
S ij<br />
i<br />
1<br />
20<br />
10<br />
0<br />
20<br />
40<br />
60<br />
80<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
!10<br />
100<br />
0.3<br />
!20<br />
!10 0 10 20 30 40<br />
120<br />
140 0<br />
20 40 60 80 100 120 140<br />
0.2<br />
0.1
Graph Terminology<br />
Volume of set:<br />
vol(A) = ∑ i∈A<br />
d i , A ⊆ V<br />
A<br />
1<br />
20<br />
10<br />
0<br />
20<br />
40<br />
60<br />
80<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
!10<br />
100<br />
0.3<br />
!20<br />
!10 0 10 20 30 40<br />
120<br />
140 0<br />
20 40 60 80 100 120 140<br />
0.2<br />
0.1
Cuts in a graph<br />
cut(A, Ā) =<br />
∑<br />
i∈A,j∈Ā<br />
S i,j<br />
1<br />
20<br />
10<br />
0<br />
20<br />
40<br />
60<br />
80<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
!10<br />
100<br />
0.3<br />
!20<br />
!10 0 10 20 30 40<br />
120<br />
140 0<br />
20 40 60 80 100 120 140<br />
0.2<br />
0.1
Graph Terminology<br />
Similarity matrix S = [ Sij ]<br />
i<br />
Sij<br />
j<br />
Degree of node:<br />
i<br />
d i = ∑ j<br />
S ij<br />
Volume of set:<br />
Graph Cuts<br />
A
Useful Graph Algorithms<br />
• Minimal Spanning Tree<br />
• Shortest path<br />
• s-t Max. graph flow, Min. cut
Minimal/Maximal Spanning Tree<br />
Tree is a graph G without cycle<br />
Graph<br />
Maximal<br />
Minimal
Kruskal’s algorithm<br />
• sort the edges of G in increasing order by length<br />
• for each edge e in sorted order<br />
if the endpoints of e are disconnected in S<br />
add e to S<br />
Randonmalized version can compute Typical cuts
Leakage problem in MST<br />
Leakage
Graph Cut and Flow<br />
Source<br />
Sink<br />
1) Given a source (s) and a sink node (t)<br />
2) Define Capacity on each edge, C_ij = W_ij<br />
3) Find the maximum flow from s->t, satisfying the capacity constraints<br />
Min. Cut = Max. Flow
Problem with min cuts<br />
Min. cuts favors isolated clusters
Normalize cuts in a graph<br />
• (edge) Ncut = balanced cut<br />
Ncut(A, B) = cut(A, B)(<br />
1<br />
vol(A) + 1<br />
vol(B) )<br />
NP-Hard!
Representation<br />
Partition matrix:<br />
segments<br />
X = [X 1 , ..., X K ]<br />
pixels<br />
Pair-wise similarity matrix W<br />
Degree matrix D:<br />
D(i, i) = ∑ j<br />
W i,j<br />
Laplacian matrix D-W
Graph weight matrix W<br />
(a)<br />
W<br />
n=nr * nc<br />
i1<br />
(b)<br />
nr<br />
i2<br />
nc<br />
W(i1,j)<br />
(c)<br />
W(i2,j)<br />
n=nr * nc<br />
(d)
Laplacian matrix D-W<br />
Let x = X(1,:) be the indicator of group 1<br />
asso(A, A) =<br />
x T W x<br />
x T<br />
W<br />
1<br />
x<br />
20<br />
0.9<br />
0.8<br />
40<br />
0.7<br />
60<br />
0.6<br />
0.5<br />
80<br />
0.4<br />
100<br />
120<br />
0.3<br />
0.2<br />
0.1<br />
140 0<br />
20 40 60 80 100 120 140
Laplacian matrix D-W<br />
x T Dx<br />
Cut(A, V-A) = vol(A) -<br />
x T W x<br />
asso(A,A)<br />
1<br />
20<br />
0.9<br />
0.8<br />
40<br />
0.7<br />
60<br />
0.6<br />
0.5<br />
80<br />
0.4<br />
100<br />
120<br />
0.3<br />
0.2<br />
0.1<br />
140 0<br />
20 40 60 80 100 120 140<br />
Cut(A, V − A) = x T (D − W )x
Ncut(X) = 1 K<br />
K∑<br />
l=1<br />
cut(V l , V − V l )<br />
vol(V l )<br />
1<br />
20<br />
40<br />
0.9<br />
0.8<br />
0.7<br />
60<br />
80<br />
0.6<br />
0.5<br />
0.4<br />
100<br />
0.3<br />
120<br />
0.2<br />
0.1<br />
140 0<br />
20 40 60 80 100 120 140<br />
= 1 K<br />
K∑<br />
l=1<br />
X T l (D − W )X l<br />
X T l DX l<br />
X ∈ {0, 1} N×K , X1 K = 1 N
Step I: Find Continuous Global Optima<br />
Scaled partition matrix.<br />
Z = X(X T DX) − 1 2<br />
X =<br />
⎡<br />
⎢<br />
⎣<br />
1 0 0<br />
1 0 0<br />
0 1 0<br />
0 1 0<br />
0 0 1<br />
⎤<br />
⎥<br />
⎦<br />
Z =<br />
⎡<br />
⎢<br />
⎣<br />
√<br />
1<br />
0 0<br />
vol(A)<br />
√<br />
1<br />
0 0<br />
vol(A)<br />
1<br />
0 √ 0<br />
vol(B)<br />
1<br />
0 √ 0<br />
vol(B)<br />
1<br />
0 0 √<br />
vol(C)<br />
⎤<br />
⎥<br />
⎦
Step I: Find Continuous Global Optima<br />
Ncut<br />
= 1 K<br />
K∑<br />
l=1<br />
X T l (D − W )X l<br />
X T l DX l<br />
becomes<br />
Ncut(Z) = 1 K tr(ZT W Z)<br />
Eigensolutions<br />
(D − W )z ∗ = λDz ∗<br />
Z T DZ = I K<br />
y 2 i<br />
A<br />
i<br />
Z ∗ = [z ∗ 1, z ∗ 2, ..., z ∗ k]<br />
y 2 i<br />
A<br />
i
Interpretation as a Dynamical System
Interpretation as a Dynamical System
Step I: Find Continuous Global Optima<br />
X =<br />
⎡<br />
⎢<br />
⎣<br />
Partition<br />
1 0 0<br />
1 0 0<br />
0 1 0<br />
0 1 0<br />
0 0 1<br />
⎤<br />
⎥<br />
⎦<br />
⎡<br />
Z =<br />
⎢<br />
⎣<br />
Scaled Partition<br />
√<br />
1<br />
0 0<br />
vol(A)<br />
√<br />
1<br />
0 0<br />
vol(A)<br />
1<br />
0 √ 0<br />
vol(B)<br />
1<br />
0 √ 0<br />
vol(B)<br />
1<br />
0 0 √<br />
vol(C)<br />
⎤<br />
⎥<br />
⎦<br />
⎡<br />
Z ∗ =<br />
⎢<br />
⎣<br />
Eigenvector solution<br />
√<br />
1<br />
0 0<br />
vol(A)<br />
√<br />
1<br />
0 0<br />
vol(A)<br />
1<br />
0 √ 0<br />
vol(B)<br />
1<br />
0 √ 0<br />
vol(B)<br />
1<br />
0 0 √<br />
vol(C)<br />
⎤<br />
⎥<br />
⎦<br />
[ cos(θ) -sin(θ)<br />
×<br />
sin(θ) cos(θ)<br />
]<br />
.<br />
(D − W )Z ∗ = λDZ ∗<br />
If Z* is an optimal, so is {ZR : R T R = I K }
Step II: Discretize Continuous Optima<br />
Z2<br />
Target<br />
partition<br />
X =<br />
⎡<br />
⎢<br />
⎣<br />
1 0<br />
1 0<br />
0 1<br />
0 1<br />
0 1<br />
⎤<br />
⎥<br />
⎦<br />
Z1<br />
Rotation R<br />
Eigenvector<br />
solution<br />
Z ∗ =<br />
⎡<br />
⎢<br />
⎣<br />
1 -1.4<br />
1 -1.3<br />
1 0.8<br />
1 0.9<br />
1 0.7<br />
Rotation R can be found exactly in 2-way partition<br />
⎤<br />
⎥<br />
⎦
Brightness Image<br />
Segmentation
ightness image<br />
segmentation
Part II:<br />
Segmentation Measurement,<br />
Benchmark