Title: Curve Partitioning
1Curve Partitioning
Issues in curve partitioning
- Intent or purpose of the partitioning
- Vocabulary
- Representation (related to the vocabulary)
- Evaluation (related to its believability)
- Computational effort
2Intent, or Purpose
- To build structural descriptions (generalized
graphs) - For recognition
- To characterize some known thing
- To isolate certain types of features
- To eliminate clutter, or to simplify the curve
- As an explanation of curve construction, or to
recognize portions of the curve
3Vocabulary of the Partitioning
- Primitive type(s)
- Relations among the primitives
- Definition of noise
- Believability
4Paradigms for Curve Partitioning
- The local detection of distinguished points
- Repeated extraction of parameterized segments
- Best global description
- Piecewise polynomial, splines, etc.
- Confirming evidence
- Find consensus among multiple methods
- Recursive simplification
- Hierarchical, as above, e.g. across scales
5Distinguished Points
- Points of high curvature
- Inflection points
- Extremal distance from axis or centroid
- Discontinuities in the above
- Zeroes or inflections in the above
6Extraction of Parameterized Segments
- Straight
- Smooth
- Constant curvature
- Conic sections
- Polynomials
7Evaluation Criteria
- Stability The segmentation should vary smoothly
with changes in the input data minor
perturbations in the curve should produce only
minor differences in the output. - Completeness The segmentation should capture all
salient features of the curve the formalism
should be able to explain all important
characteristics. Rich enough. - Conciseness The description should be compact
the representation should express the curves
behavior in the fewest possible terms. But
just rich enough. - Complexity The number of primitive types, and
their own complexities, should be limited, as
should the algorithm(s) to compute them.
Again, just rich enough.
8Intent A simple example
Suppose we want to recognize scissors among the
following set of objects, using their silhouettes
Finding two nearly closed, nearly circular
segments in the silhouette might be enough.
9Intent
But if we add a box-end wrench, or if we want
to do more than find scissors, we will need to
extract straight lines, at least, and possibly
other arcs and their spatial relations.
10Recursive Splitting
Ramers Algorithm -- Its been around a loooong
time.
Approximation 1
Approximation 2
11Approximation 3 And so on.... 1. Draw a
straight line between the endpoints (If a
closed curve, pick two points, usually the
farthest apart, and split the curve into two
open halves.) 2. For each point on the real
curve, compute its perpendicular distance to
the approximating line (error). 3. If the
maximum error is within a preset tolerance,
STOP. 4. Else, insert a new breakpoint (vertex)
at the point of greatest error. 5. Recurse
on the two subproblems, each identical to the
initial problem, only smaller. 6. Output a
polygonal approximation to the input curve.
12Curvature Breakpoints
It is often useful to construct a polygonal
approximation by breaking the contour a points
of high curvature. There is ample psychovisual
evidence that points of high curvature convey
a great deal of shape information in a few
points. (Attneaves cat ) I believe (but not
quite so strongly) that arguments can be made
to support this compact encoding idea that are
analogous to the arguments for edge
detection. To do this, apply a local curvature
estimator to each point.
13 Compute and threshold on that. Or, just
take the dot product of the inbound and
outbound vectors from the central point and
threshold on that.
NOTE In general, points i, i1, and i-1 are
not adjacent. Otherwise, we could just use
chain code s.
14 In fact, selecting the span of this type of
simple curvature operator can be tricky. It will
impact the scale (in a monotonic, but otherwise
rather unpredictable way) of the curvatures you
can detect. Long span -- Will filter
spatial curvature. We will approximate sizeable
portions of the contour with straight
lines. May miss features of
importance. Short span -- Less filtering
of curvature. More sensitive to noise and other
perturbations. May retain useless (or
worse, obscuring) details, and if this
happens, we will not achieve a compact encoding
of the shapes salient features.
Selecting the thresholds for declaring a point to
be of high curvature is not an exact science,
either. Long, smooth curves of large radius
are problematic with any choice of span,
threshold. Can easily be represented
(erroneously) by a single straight line
(short span), or maybe two (long span). (Think
of the Earths curvature.)
15(No Transcript)
16Scale Based Curve Description
Mokhtarian Mackworth describe a scale space
curvature calculation for planar curves to
build a representation based on inflection
point locations as a function of scale.
Parametric representation of curve
Curvature
(s in pixels)
Define
Then the curvature is
This is inconvenient, because our curve will
not usually be functional.
17 Denote ... and similarly for y.
Then And the curvature becomes
Notice that we can now compute the curvature by
considering only the projections of the curve
onto the x and y coordinate axes. Applying
this equation for curvature directly can be
noise-enhancing (lots of derivatives) and the
analysis is for a single scale. Mokhtarian and
Mackworth recognized the value of multiscale
curvature analysis.
18 So, we can control noise and limit the scale by
smoothing the projection functions with a
Gaussian kernel Then, using the
convolution theorem for differentiation...
... and similarly for Y.
19The WB Algorithm
- Constant curvature criterion
- Nonlinear blip filter
- Overlapping voting scheme
- Stable with respect to modest viewpoint change
- Stable with respect to local perturbations
- Decompose without inflections (Wankel rotors)
- Subjectively pleasing results
- Multiple scales
20Overlapping Votes
- Build consensus for strongest segment first
- Each contour point votes for its curvature, and
all those within a tolerance (overlap) - Then
21 The resulting pseudohistogram is then polled
for the bin receiving the greatest number of
votes. The longest contiguous section of
points voting in this bin is extracted as a
trial section. The longest sections from
each other bin are also extracted and
compared. The longest of these longest
contiguous sections is retained as the first
segment extracted. All the votes
corresponding to points in the extracted
segment are deleted from the pseudohistogram.
Repeat until exhausted.