Shape context
Shape context is a feature descriptor used in object recognition. Serge Belongie and Jitendra Malik proposed the term in their paper "Matching with Shape Contexts" in 2000.
Theory
The shape context is intended to be a way of describing shapes that allows for measuring shape similarity and the recovering of point correspondences. The basic idea is to pick n points on the contours of a shape. For each point pi on the shape, consider the n − 1 vectors obtained by connecting pi to all other points. The set of all these vectors is a rich description of the shape localized at that point but is far too detailed. The key idea is that the distribution over relative positions is a robust, compact, and highly discriminative descriptor. So, for the point pi, the coarse histogram of the relative coordinates of the remaining n − 1 points,is defined to be the shape context of. The bins are normally taken to be uniform in log-polar space. The fact that the shape context is a rich and discriminative descriptor can be seen in the figure below, in which the shape contexts of two different versions of the letter "A" are shown.
and are the sampled edge points of the two shapes. is the diagram of the log-polar bins used to compute the shape context. is the shape context for the point marked with a circle in, is that for the point marked as a diamond in, and is that for the triangle. As can be seen, since and are the shape contexts for two closely related points, they are quite similar, while the shape context in is very different.
For a feature descriptor to be useful, it needs to have certain invariances. In particular it needs to be invariant to translation, scaling, small perturbations, and, depending on the application, rotation. Translational invariance comes naturally to shape context. Scale invariance is obtained by normalizing all radial distances by the mean distance between all the point pairs in the shape although the median distance can also be used. Shape contexts are empirically demonstrated to be robust to deformations, noise, and outliers using synthetic point set matching experiments.
One can provide complete rotational invariance in shape contexts. One way is to measure angles at each point relative to the direction of the tangent at that point. This results in a completely rotationally invariant descriptor. But of course this is not always desired since some local features lose their discriminative power if not measured relative to the same frame. Many applications in fact forbid rotational invariance e.g. distinguishing a "6" from a "9".
Use in shape matching
A complete system that uses shape contexts for shape matching consists of the following steps :- Randomly select a set of points that lie on the edges of a known shape and another set of points on an unknown shape.
- Compute the shape context of each point found in step 1.
- Match each point from the known shape to a point on an unknown shape. To minimize the cost of matching, first choose a transformation that warps the edges of the known shape to the unknown. Then select the point on the unknown shape that most closely corresponds to each warped point on the known shape.
- Calculate the "shape distance" between each pair of points on the two shapes. Use a weighted sum of the shape context distance, the image appearance distance, and the bending energy.
- To identify the unknown shape, use a nearest-neighbor classifier to compare its shape distance to shape distances of known objects.
Details of implementation
Step 1: Finding a list of points on shape edges
The approach assumes that the shape of an object is essentially captured by a finite subset of the points on the internal or external contours on the object. These can be simply obtained using the Canny edge detector and picking a random set of points from the edges. Note that these points need not and in general do not correspond to key-points such as maxima of curvature or inflection points. It is preferable to sample the shape with roughly uniform spacing, though it is not critical.Step 2: Computing the shape context
This step is described in detail in the [|Theory section].Step 3: Computing the cost matrix
Consider two points p and q that have normalized K-bin histograms g and h. As shape contexts are distributions represented as histograms, it is natural to use the χ2 test statistic as the "shape context cost" of matching the two points:The values of this range from 0 to 1.
In addition to the shape context cost, an extra cost based on the appearance can be added. For instance, it could be a measure of tangent angle dissimilarity :
This is half the length of the chord in unit circle between the unit vectors with angles and. Its values also range from 0 to 1. Now the total cost of matching the two points could be a weighted-sum of the two costs:
Now for each point pi on the first shape and a point qj on the second shape, calculate the cost as described and call it Ci,j. This is the cost matrix.
Step 4: Finding the matching that minimizes total cost
Now, a one-to-one matching pi that matches each point pi on shape 1 and qj on shape 2 that minimizes the total cost of matching,is needed. This can be done in time using the Hungarian method, although there are more efficient algorithms.
To have robust handling of outliers, one can add "dummy" nodes that have a constant but reasonably large cost of matching to the cost matrix. This would cause the matching algorithm to match outliers to a "dummy" if there is no real match.
Step 5: Modeling transformation
Given the set of correspondences between a finite set of points on the two shapes, a transformation can be estimated to map any point from one shape to the other. There are several choices for this transformation, described below.Affine
The affine model is a standard choice:. The least squares solution for the matrix and the translational offset vector o is obtained by:Where with a similar expression for. is the pseudoinverse of.
Thin plate spline
The thin plate spline model is the most widely used model for transformations when working with shape contexts. A 2D transformation can be separated into two TPS function to model a coordinate transform:where each of the ƒx and ƒy have the form:
and the kernel function is defined by. The exact details of how to solve for the parameters can be found elsewhere but it essentially involves solving a linear system of equations. The bending energy will also be easily obtained.
Regularized TPS
The TPS formulation above has exact matching requirement for the pairs of points on the two shapes. For noisy data, it is best to relax this exact requirement. If we let denote the target function values at corresponding locations , relaxing the requirement amounts to minimizingwhere is the bending energy and is called the regularization parameter. This ƒ that minimizes H can be found in a fairly straightforward way. If one uses normalize coordinates for, then scale invariance is kept. However, if one uses the original non-normalized coordinates, then the regularization parameter needs to be normalized.
Note that in many cases, regardless of the transformation used, the initial estimate of the correspondences contains some errors which could reduce the quality of the transformation. If we iterate the steps of finding correspondences and estimating transformations we can overcome this problem. Typically, three iterations are all that is needed to obtain reasonable results.
Step 6: Computing the shape distance
Now, a shape distance between two shapes and. This distance is going to be a weighted sum of three potential terms:Shape context distance: this is the symmetric sum of shape context matching costs over best matching points:
where T is the estimated TPS transform that maps the points in Q to those in P.
Appearance cost: After establishing image correspondences and properly warping one image to match the other, one can define an appearance cost as the sum of squared brightness differences in Gaussian windows around corresponding image points:
where and are the gray-level images and is a Gaussian windowing function.
Transformation cost: The final cost measures how much transformation is necessary to bring the two images into alignment. In the case of TPS, it is assigned to be the bending energy.
Now that we have a way of calculating the distance between two shapes, we can use a nearest neighbor classifier with distance defined as the shape distance calculated here. The results of applying this to different situations is given in the following section.