vc 18/19 tp8 segmentation - dccmcoimbra/lectures/vc_1819/vc_1819_tp… · vc 18/19 - tp8 -...
TRANSCRIPT
Mestrado em Ciência de Computadores
Mestrado Integrado em Engenharia de Redes e
Sistemas Informáticos
VC 18/19 – TP8
Segmentation
Miguel Tavares Coimbra
VC 18/19 - TP8 - Segmentation
Outline
• Thresholding
• Geometric structures
• Hough Transform
VC 18/19 - TP8 - Segmentation
Topic: Thresholding
• Thresholding
• Geometric structures
• Hough Transform
VC 18/19 - TP8 - Segmentation
Boundaries of Objects
Marked by many users
http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/segbench/bench/html/images.html
VC 18/19 - TP8 - Segmentation
Boundaries of Objects from
Edges
Brightness Gradient (Edge detection)
• Missing edge continuity, many spurious edges
VC 18/19 - TP8 - Segmentation
Boundaries of Objects from
Edges
Multi-scale Brightness Gradient
• But, low strength edges may be very important
VC 18/19 - TP8 - Segmentation
Image
Machine Edge Detection
Human Boundary Marking
VC 18/19 - TP8 - Segmentation
Boundaries in Medical Imaging
Detection of cancerous regions.
[Foran, Comaniciu, Meer, Goodell, 00]
VC 18/19 - TP8 - Segmentation
Boundaries in Ultrasound
Images
Hard to detect in the presence of large amount of speckle noise
VC 18/19 - TP8 - SegmentationSometimes hard even for humans!
VC 18/19 - TP8 - Segmentation
What is ‘Segmentation’?
• Separation of the
image in different
areas.
– Objects.
– Areas with similar
visual or semantic
characteristics.
Not trivial! It is the holy grail of
most computer vision problems!
VC 18/19 - TP8 - Segmentation
Subjectivity
• A ‘correct’
segmentation result is
only valid for a
specific context.
– Subjectivity!
– Hard to implement.
– Hard to evaluate.
Person Suitcase
Face
What is the
correct
segmentation?
VC 18/19 - TP8 - Segmentation
Core Technique: Thresholding
• Divide the image into two areas:
– 1, if f(x,y)>K
– 0, if f(x,y)<=K
• Not easy to find the ideal kmagic number.
• Core segmentation technique
– Simple
– Reasonably effective
Adequate
threshold
VC 18/19 - TP8 - Segmentation
Finding the ‘magic number’
Wrong!
(k = 128)Correct
(k = 74)
VC 18/19 - TP8 - Segmentation
http://www.cee.hw.ac.uk/hipr/html/adpthrsh.html
Global thresholds are not
always adequate...
VC 18/19 - TP8 - Segmentation
Adaptive Thresholding
• Adapt the threshold
value for each pixel.
• Use characteristics of
nearby pixels.
• How?
– Mean
– Median
– Mean + K
– ...
Mean of 7x7 neighborhood
VC 18/19 - TP8 - Segmentation7x7 window; K = 7 75x75 window; K = 10
VC 18/19 - TP8 - Segmentation
Topic: Geometric structures
• Thresholding
• Geometric structures
• Hough Transform
VC 18/19 - TP8 - Segmentation
Points
• What is a point?
– Pixel with a significant
illumination difference
to its neighbors.
– Group of pixels?
• Spatial Mask!
• Need to define a
threshold K.
-1 -1 -1
-1 8 -1
-1 -1 -1
point!
9
1
KR
zwRi
ii
VC 18/19 - TP8 - Segmentation
Lines
• Spatial filter
– One per line direction
– Sensitive to line width
-1 -1 -1
2 2 2
-1 -1 -1
-1 2 -1
-1 2 -1
-1 2 -1
Horizontal Vertical
Diagonal?
VC 18/19 - TP8 - Segmentation
Edges
• Edge:
– Spatial discontinuity of pixel amplitude.
– High spatial gradient• First derivative (peak)
• Second derivative (zero crossing)
VC 18/19 - TP8 - Segmentation
Popular operators
• Edge detection
– Great utility for
several problems.
– Well studied
problem.
• A variety of
solutions exists.
VC 18/19 - TP8 - Segmentation
VC 18/19 - TP8 - Segmentation
Processing Edge Images
Image
Edge detection
and ThresholdingNoisy edge image
Incomplete boundaries
Edge Tracking
Thinning
VC 18/19 - TP8 - Segmentation
Edge Tracking Methods
• Adjusting a priori Boundaries
Given: Approximate Location of Boundary
Task: Find Accurate Location of Boundary
• Search for STRONG EDGES along normals to approximate boundary.
• Fit curve (eg., polynomials) to strong edges.
VC 18/19 - TP8 - Segmentation
Edge Tracking Methods
• Divide and ConquerGiven: Boundary lies between points A and B
Task: Find Boundary
• Connect A and B with Line
• Find strongest edge along line bisector
• Use edge point as break point
• Repeat
VC 18/19 - TP8 - Segmentation
Fitting Lines to Edges (Least
Squares)cmxy
cmxy ii
),( ii yx
y
x
Given: Many pairs
Find: Parameters
Minimize: Average square distance:
Using:
Note:
),( ii yx),( cm
i
ii
N
cmxyE
2)(
0&0
c
E
m
Exmyc
i
i
i
ii
xx
yyxx
m2)(
))((
N
y
y i
i
N
x
x i
i
VC 18/19 - TP8 - Segmentation
Topic: Hough Transform
• Thresholding
• Geometric structures
• Hough Transform
VC 18/19 - TP8 - Segmentation
Hough Transform
• Elegant method for direct object
recognition
• Edges need not be connected
• Complete object need not be visible
• Key Idea: Edges VOTE for the possible
model
VC 18/19 - TP8 - Segmentation
Image and Parameter Spaces
cmxy
),( ii yx
y
x
Equation of Line:
Find:
Consider point:
cmxy
),( cm
),( ii yx
iiii ymxcorcmxy m
c
),( cm
Image
Space
Parameter
Space
Parameter space also called Hough Space
VC 18/19 - TP8 - Segmentation
Line Detection by Hough Transform
y
x
),( cm
Parameter Space
1 1
1 1
1 1
2
1 1
1 1
1 1
),( cmA
Algorithm:
• Quantize Parameter Space
• Create Accumulator Array
• Set
• For each image edge increment:
• If lies on the line:
• Find local maxima in
),( cm
),( cmA
cmcmA ,0),(
),( ii yx
1),(),( cmAcmA
),( cm
),( cmA
ii ymxc
VC 18/19 - TP8 - Segmentation
Better Parameterization
NOTE:
Large Accumulator
More memory and computations
Improvement:
Line equation:
Here
Given points find
m
sincos yx
max0
20
(Finite Accumulator Array Size)
),( ii yx ),(
),( ii yx
y
x
Image
Space
Hough
Space
?
Hough Space Sinusoid
VC 18/19 - TP8 - Segmentation
Image spaceVotes
Horizontal axis is θ,
vertical is rho.
VC 18/19 - TP8 - Segmentation
VC 18/19 - TP8 - Segmentation
VC 18/19 - TP8 - Segmentation
Mechanics of the Hough Transform
• Difficulties– how big should the
cells be? (too big, and we merge quite different lines; too small, and noise causes lines to be missed)
• How many lines?– Count the peaks in the
Hough array
– Treat adjacent peaks as a single peak
• Which points belong to each line?– Search for points close
to the line
– Solve again for line and iterate
VC 18/19 - TP8 - Segmentation
Fewer votes land in a
single bin when noise increases.
VC 18/19 - TP8 - Segmentation
Adding more clutter increases
number of bins with false peaks.
Real World Example
Original Edge Detection
Found Lines
Parameter Space
VC 18/19 - TP8 - Segmentation
Other shapes
OriginalEdges when using circle
model
VC 18/19 - TP8 - Segmentation
Resources
• Gonzalez & Woods – Chapter 7
• N. Otsu, “A threshold selection method
from gray-level histograms,” IEEE Trans.
Sys., Man., Cyber., vol. 9, pp. 62–66,
1979.