Segmentation from Examples

advertisement
Segmentation from
Examples
By: A’laa Kryeem
Lecturer: Hagit Hel-Or
What is Segmentation from
Examples?
 Segment an image based on one
(or more) correctly segmented
image(s) assumed to be from the
same domain
 Effective when making a
semantic segmentation
Why to use Examples
 The example defines the
granularity of the desired
output
 Give us the ability to
characterize meaningful
parts in the image
 Using example allow us to
use non-parametric model
The example defines the
granularity of the desired output:
Training image
Desired Segmentation
Test Image
Induced Segmentation
Why to use Examples
The example defines the
granularity of the desired output
Give us the ability to
characterize meaningful parts in
the image
Give us the ability to
characterize meaningful parts
in the image
Semantic Segmentation from an
example
 We want to segment an image
into semantically meaningful parts
 Required in various applications
Semantic Segmentation from an
example
 We want to segment an image
into semantically meaningful parts
 Required in various applications
 Problems:
 Meaningful parts are often too
complex
Semantic interpretation is highly
subjective, depending on both
the application, and the user
Meaningful parts are often too complex
Semantic Segmentation from an
example
 We want to segment an image
into semantically meaningful parts
 Required in various applications
 Problems:
 Meaningful parts are often too
complex
Semantic interpretation is highly
subjective, depending on both
the application, and the user
Example of image different
segmentation
Semantic Segmentation from an
example
 So, How to achieve semantic
segmentation
Getting segmented training image(s)
as input
Training set
Semantic Segmentation from an
example
 So, How to achieve semantic
segmentation
Getting segmented training image(s)
as input
Using non-parametric representation
non-parametric model
Each semantic part is represented
by a set of square patches
Semantic Segmentation from an
example
 So, How to achieve semantic
segmentation
Getting segmented training image(s)
as input
Using non-parametric representation
Over-segmenting the Test image into
small fragments
Over segmented image
Semantic Segmentation from an
example
 So, How to achieve semantic
segmentation
Getting segmented training image(s)
as input
Using non-parametric representation
Over-segmenting the Test image into
small fragments
Compute costs for fragment-label
pairs
(fragment,label) cost example
?
Semantic Segmentation from an
example
 So, How to achieve semantic
segmentation
Getting segmented training image(s)
as input
Using non-parametric representation
Over-segmenting the Test image into
small fragments
Compute costs for fragment-label
pairs
Graph-cuts multi-label optimization
Why do we need graph-cuts
 Graph-cuts optimization is used to label each
fragment in a globally optimal manner
Classification
scores
Patch sets
Classification
Training set
Fragments
Test image
Graph-Cuts
optimization
Fragmentation
Result
Over segmenting
 Fragment: small arbitrarily-shaped
and simply-connected pixel clusters
 We assume that small homogeneous
regions always belong to the same
semantic part
Over segmenting
 Fragment: small arbitrarily-shaped
and simply connected pixel clusters
 We assume that small homogeneous
regions always belong to the same
semantic part
 Advantages:
Enforces a locally coherent labeling
Reduces the computational complexity
Graph-cuts multi-label
optimization
 For each fragment we have k cost values,
we need to determine which one is the
optimal
 Using expanded version of the graph-cuts
we saw at Jad’s lecture, where we may
have more than two labels (background ,
object)
Algorithm for semantic
segmentation
1.Pixel labeling costs
2.Fragmentation
3.Fragment labeling costs
4.Graph-cuts optimization
Algorithm for semantic
segmentation
1.Pixel labeling costs
2.Fragmentation
3.Fragment labeling costs
4.Graph-cuts optimization
Pixel labeling costs
Given Itrain and Ltrain
Representing each
label(segment) in Ltrain by a set
of square patches
We get k sets {Sl} l=1,…,k one for
each label
Pixel labeling costs (cont.)
 Next, we define φ (p, l) for each
(pixel,label) pair
The cost of assigning label l to pixel p Itest
φ(p,l)=
𝑠𝑠𝑑(𝑃,𝑃′ )
min
𝑀
P’ Sl
p:pixel at Itest
l : label in Ltrain
ssd(P,P’) is the sum of squared distances
between P,P’
M:mxmx3
P:mXm neighborhood centered at p
P’:mxm patch
Algorithm for semantic
segmentation
1.Pixel labeling costs
2.Fragmentation
3.Fragment labeling costs
4.Graph-cuts optimization
Fragmentation
We partition Itest into small,colorhomogeneous regions using mean shift
segmentation
Fragmentation
We partition Itest into small,colorhomogeneous regions using mean shift
segmentation
Fragment size is adjusted according to
Itest.(fragments are smaller in more detailed
areas of Itest, and larger in more
homogeneous regions)
Fragmentation
We partition Itest into small,colorhomogeneous regions using mean shift
segmentation
Fragment size is adjusted according to
Itest.(fragments are smaller in more detailed
areas of Itest, and larger in more
homogeneous regions)
Fragment boundaries align with edges in
the image
Fragmentation (cont.)
Random colorization
Detailed close-up
Algorithm for semantic
segmentation
1.Pixel labeling costs
2.Fragmentation
3.Fragment labeling costs
4.Graph-cuts optimization
Fragment labeling costs
 Voting scheme in order to compute
labeling costs of each fragment
 For each fragment f Itest we pick a few
representative pixels:
Rep(f)={pi f } i=I,…,Rf
Rf is proportional to |f|
Fragment labeling costs
(cont.)
We talked about the cost of
assigning a pixel into a label φ(p,l),
now we need to adjust φ to work on
fragments
φ(f,l)= median {φ(p,l) | p Rep(f)}
Fragment labeling vs. pixel
labeling
Fragment labeling reducing
complexity
We have n=
𝑓 |𝑓| ,
Assume
|Rep(f)|= |𝑓| ,then we need to
compute costs only for 𝑛 pixels
Fragment labeling vs. pixel labeling
Enforces a locally coherent labeling
Training image
Pixel
labeling
Training seg.
Input image
Fragment
labeling
Algorithm for semantic
segmentation
1.Pixel labeling costs
2.Fragmentation
3.Fragment labeling costs
4.Graph-cuts optimization
Graph-cuts optimization
After calculating labeling cost for all
image fragments we get k images.
Image i describes the cost assigning
each pixel at the test image to label i
fragment labeling costs. Costs range in the interval
[0,1]
Graph-cuts optimization
 Now for each pixel p Itest we have a labeling
cost
 We need to find Ltest the globally optimal
labeling
Requirements:
Minimizes the total labeling cost
Consistent with presence (or absence) of
edges
Graph-cuts optimization
(cont.)
 For each pair of neighboring pixels 𝑝, 𝑞 we
define:
0
Ψ(p,q,L(p),L(q))=
1 − 𝛻 𝑝, 𝑞
𝐿 𝑝 = 𝐿(𝑞)
𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
L(p),L(q) : labels assigned to p,q
𝛻 𝑝, 𝑞 : difference between pixels
p,q (RGB euclidian distance)
Graph-cuts optimization
(cont.)
 In order to force pixels within each fragment to be
labeled the same, and reduce complexity we specify
the energy term E(L) (E(L) the value of a labeling
scheme) in terms of fragments instead of pixels :
𝐸 𝐿 =
𝑓
𝑓 ∙ 𝜑 𝑓, 𝐿 𝑓
+𝛼
𝑓1, 𝑓2
Ψ(𝑓1 , 𝑓2 , 𝐿 𝑓1 , 𝐿 𝑓2 )
𝜑 𝑓, 𝐿 𝑓 : cost of assigning fragment f to label L(f),
weighted by the size of each fragment.
𝑓1, 𝑓2 : neighboring fragments in Itest.
Ψ(𝑓1 , 𝑓2 , 𝐿 𝑓1 , 𝐿 𝑓2 =
𝑝,𝑞 ,𝑝𝜖𝑓1 ,𝑞𝜖𝑓2 Ψ(p,q,L(𝑓1 ),L(𝑓2 ))
𝛼 :controls trade-off between regions and boundaries
Intuition:
Ψ(𝑝, 𝑞, 𝐿 𝑝 , 𝐿 𝑞 )
𝛼
𝑝,𝑞
 Big 𝛼 value:
For pixels p,q even with different colors the
graph-cuts step prefers to connect them
to the same label to have Ψ=0 and
reduce the energy. Instead of 1-𝛻 𝑝, 𝑞
althout 𝛻 𝑝, 𝑞 can be big too.
This mean we prefer continues regions
and not edges.
Intuition:
Ψ(𝑓1 , 𝑓2 , 𝐿 𝑓1 , 𝐿 𝑓2 )
𝛼
𝑓1, 𝑓2
 small 𝛼 value:
For pixels p,q even with similar colors
the graph-cuts step won’t care about
connecting them to different labels
because of small 𝛼 value. Even with
big value at1-𝛻 𝑝, 𝑞 multiplying 𝛼 still
give us small E value.
Favors boundaries, holding out noncontinues regions .
Graph-cuts optimization
(cont.)
Finally Ltest is determined by solving
Ltest=minL E(L)
Fragment labeling
Labeling after GraphCuts Optimization
Multi-label graph-cut
Colored nodes:labels
Squares : fragments
For each
(fragment,label) pair we
have an edge.
Edge weigh according
to φ.
Edges between two
squares weighed
according to Ψ.
Multi-label graph-cut
Induced graph
Each fragment
connected to a
single label.
Multi-label graph-cut is
NP-complete problem!
 Using Isolation Heuristic we can get an
approximation of E(L)
1. For 1≤i ≤ k construct a minimum weight
isolating cut Ei for label Li .
2. Determine h such that Eh has max weight.
3. E=
𝐸𝑖 ≠𝐸ℎ 𝐸𝑖 .
4. Return E.
𝛼 effect
Training image
𝛼=0.1
Training segmentation
Input image
𝛼=5
𝛼=1
Algorithm for semantic
segmentation
1.Pixel labeling costs
2.Fragmentation
3.Fragment labeling costs
4.Graph-cuts optimization
Algorithm results
Training set
a
b
c
Bear results
invariant to the number of
instances of each semantic part
within the image, and insensitive
to the shape of each part.
We can’t separate multiple
objects belonging to the same
label (c).
Algorithm results
Training set
a
b
c
d
Summary
 We saw that giving segmented example from
the same domain of an image can effectively
perform a semantic segmentation
 Using example also defines the granularity of
the desired output
 determining whether an entity belongs to a
particular semantic part is more easily done at
the fragment level, than on a pixel-by-pixel
basis
 Using graph-cuts with multi-label support can
help making global optimization step for
finding optimal labeling
 Only one parameter needed 𝛼, controlling the
trade-off between regions and boundaries
Thank You For Listening
References
 Inducing Semantic Segmentation from an Example,
Yaar Schnitman, Yaron Caspi, Daniel Cohen-Or,
and Dani Lischinski.
 "Segmentation by Example“, Sameer Agarwal and
Serge Belongie.
 Christoudias, C.M., Georgescu, B.: Edge detection
and image segmentation (edison) system.
 Boykov, Y., Veksler, O., Zabih, R.: Fast approximate
energy minimization via graph cuts. IEEE Trans.
Pattern Anal. Mach. Intell. 23 (2001) 1222–1239
Download