Transcript notes

Shape Analysis and Retrieval
Structural Shape Descriptors
Notes courtesy of
Funk et al., SIGGRAPH 2004
Outline:
• Structural Shape Descriptors
• Skeletons
Statistical Shape Descriptors
Represent the geometry of the model:
 Good for comparing across rigid body transformations
 Good for comparing whole models
 Bad for comparing deformable models
 Bad for comparing parts of a model
Structural Shape Descriptors
General Approach:
– Construct graph where nodes represent parts
and edges represent relationships between parts
– Compare nodes
– Match graphs
Query
Shape
Descriptor
Best
Matches
Database
Structural Shape Descriptors
Advantages:
– Articulation of nodes does not change the descriptor.
– Statistical shape descriptors can be used to match nodes
– Sub-graph isomorphisms can be used for partial matching.
Query
Shape
Descriptor
Best
Matches
Database
Outline:
• Structural Shape Descriptors
• Skeletons
Skeletons
Idea:
Represent a surface/contour as the collection
of quench points of waves propagating from
the boundary.
Skeletons
Alternatively:
– Locus of points equidistant from surface
– Locus of centers of maximal balls
– 1st order discontinuity in distance transform
boundary
skeleton
maximal circle
Skeletons
Specifically:
If we define the ball of radius r about the
point p as:
B r (p )  q s.t. p  q  r 
then given a surface S, the skeleton of S is the
collection of points (with associated radii) that
are simultaneously closest to at least two
points on S:
Skel(S )  (p , r ) s.t. B r (p )  S  1 and B s (p )  S  0 , s  r 
Skeletons
Example:
Skel(S )  (p , r ) s.t. B r (p )  S  1 and B s (p )  S  0 , s  r 
S
r1
p1
Skel(S)
p3
r3
r2
p2
Skeletons
Properties:
– By taking the union of the skeleton balls you
can reconstruct the shape:
S
B r (p )

pr S
( , )
Skeletons
Properties:
– By taking the union of the skeleton balls you
can reconstruct the shape:
S
B r (p )

pr S
( , )
Skeletons
Properties:
– Skeletons characterize a model in terms of
spatially local information. (The skeleton of the
union is similar to the union of the skeletons)
Skeletons
Properties:
– Robust to articulated motion.
Skeletons to Graphs
Generate a graph representing the skeleton
with nodes corresponding to:
– Singular points
– Continuous regions
Model
Skeleton
Graph
Computing the Skeleton
Equivalent Definitions:
– Locus of points equidistant from surface
– Locus of centers of maximal balls
– 1st order discontinuity in distance transform
boundary
skeleton
maximal circle
Euclidean Distance Transform
The Euclidean Distance Transform (EDT) of a
surface is a function giving the distance of
every point in space to the boundary.
EDTS ( p )  min  p  q
q S
Surface

EDT
Euclidean Distance Transform
The EDT grows smoothly away from the
surface. At skeleton points the derivative
becomes discontinuous.
Surface
EDT
Computing the EDT
Brute Force:
Compute the distance to each surface point
and store the minimum.
If there are m surface points and we want the
values on a grid of resolution n, the overall
complexity becomes:
– O(n2m) for a 2D grid
– O(n3m) for a 3D grid
Computing the EDT
Graphics Hardware (2D):
For each surface point (x,y), draw a 3D rightcone with apex at (x,y,0) and axis aligned with
the positive z-axis.
Draw the cones with orthogonal projection,
looking down the positive the z-axis.
The values of the depth-buffer are the values
of the EDT.
Computing the EDT
Graphics Hardware (2D):
At the point p0, the height of a right-cone with
apex at p is equal to the distance from p to p0.
|p-p0|
p
p0
Computing the EDT
Graphics Hardware (2D):
The height of a right-cone with apex at p is
equal to the distance from p.
Given a collection of points:
– Draw right-cones at each point
Cone 1
Cone 2
45o
45o
Computing the EDT
Graphics Hardware (2D):
The height of a right-cone with apex at p is
equal to the distance from p.
Given a collection of points:
Depth
– Draw right-cones at each point
Cone 1
– View along the z-direction
View
Plane
Cone 2
Computing the EDT
Graphics Hardware (2D):
The height of a right-cone with apex at p is
equal to the distance from p.
Given a collection of points:
EDTS(x)
– Draw right-cones at each point
– View along the z-direction
– Read back the frame-buffer
x
Computing the Skeleton
Graphics Hardware (2D):
–
–
–
–
Draw right-cones at each point
View along the z-direction
Read back the frame-buffer
Extract the skeleton
z-axis
Surface
Right-Cones
Skeleton
Computing the Skeleton
3D Skeletons:
They can be computed similarly using the 3D
Euclidean Distance Transform and looking for
discontinuities of the gradient.
The skeleton is made up of:
– Points (Sphere)
– Curves (Cylinders)
– Surfaces (General)
Surface
Skeleton
Skeletons
Limitations:
– The skeletons of 3D models are combinations
of 0D points,1D curves, and 2D surfaces.
– The skeleton of a surface is very sensitive to
noise in the model.
Skeletons
Limitations:
– The skeletons of 3D models are combinations
of points,1D curves, and 2D surfaces.
– The skeleton of a surface is very sensitive to
noise in the model.
Surface
Skeleton
Small changes in the surface can cause very
significant changes in the skeleton
Skeletons
Noise:
– The skeleton of a surface is very sensitive to
noise in the model.
As a result, it is difficult to compute the
skeleton of a rasterized model (e.g. images,
MRIs, etc.).
Skeletons
Goal:
Try to identify the good segments of the
skeleton and discard the bad ones.
Skeletons
Goal:
Try to identify the good segments of the
skeleton and discard the bad ones.
Points on the main segment are good because they
are generated by pairs of points that are far apart
Skeletons
Goal:
Try to identify the good segments of the
skeleton and discard the bad ones.
Points on the spur are bad because they are
generated by pairs of points that are close together
Skeletons
Specifically:
Associate the angle of the generating pair to
each point on the skeleton (speed).
The bigger the angle, the more meaningful the
skeleton point, the bigger the 1st order
discontinuity.

Skeleton
Skeletons
Speed:
If p is a skeleton point and r is its associated
radius, the speed at p is:
p
: The change in position over the change in time
r
r
p

Skeleton
p
1

r cos( / 2)
p
1

r cos( / 2)
Skeletons
Cleaning Noise:
Use the speed/angle of a skeleton point to
determine its quality.
Model
Skeleton
Speed-Weighted
Skeleton
Summary
Skeletons provide a new way of thinking about
shapes that is based on excitation principals
mimicking human perception.
Pros:
–
–
–
–
An invertible representation
Well suited for partial matching
Unchanged by articulated motion
Fast to compute
Cons:
– Complex structure for 3D models
– Difficult to compute robustly