Spectral shape analysis

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Spectral shape analysis relies on the spectrum (eigenvalues and/or eigenfunctions) of the Laplace–Beltrami operator to compare and analyze geometric shapes. Since the spectrum of the Laplace–Beltrami operator is invariant under isometries, it is well suited for the analysis or retrieval of non-rigid shapes, i.e. bendable objects such as humans, animals, plants, etc.

Laplace

The Laplace–Beltrami operator is involved in many important differential equations, such as the heat equation and the wave equation. It can be defined on a Riemannian manifold as the divergence of the gradient of a real-valued function f:

\Delta f := \operatorname{div}\; \operatorname{grad} f.

Its spectral components can be computed by solving the Helmholtz equation (or Laplacian eigenvalue problem):


\Delta \phi_i + \lambda_i \phi_i = 0. \,

The solutions are the eigenfunctions \phi_i (modes) and corresponding eigenvalues \lambda_i, representing a diverging sequence of positive real numbers. The first eigenvalue is zero for closed domains or when using the Neumann boundary condition. For some shapes, the spectrum can be computed analytically (e.g. rectangle, flat torus, cylinder, disk or sphere). For the sphere, for example, the eigenfunctions are the spherical harmonics.

The most important properties of the eigenvalues and eigenfunctions are that they are isometry invariants. In other words, if the shape is not stretched (e.g. a sheet of paper bent into the third dimension), the spectral values will not change. Bendable objects, like animals, plants and humans, can move into different body postures with only minimal stretching at the joints. The resulting shapes are called near-isometric and can be compared using spectral shape analysis. However, the isometric deformation of surfaces in 3D in the strict sense are rigid transformations. To characterize the actual deformation undergoing for the interest of nonrigid shape analysis, smooth deformations are introduced as an alternative family of deformation to isometry, where eigenvalues are allowed to perturb with finite error bounds.[1]

Discretizations

Geometric shapes are often represented as 2D curved surfaces, 2D surface meshes (usually triangle meshes) or 3D solid objects (e.g. using voxels or tetrahedra meshes). The Helmholtz equation can be solved for all these cases. If a boundary exists, e.g. a square, or the volume of any 3D geometric shape, boundary conditions need to be specified.

Several discretizations of the Laplace operator exist (see Discrete Laplace operator) for the different types of geometry representations. Many of these operators do not approximate well the underlying continuous operator.

Spectral shape descriptors

ShapeDNA and its variants

The ShapeDNA is one of the first spectral shape descriptors. It is the normalized beginning sequence of the eigenvalues of the Laplace–Beltrami operator.[2][3] Its main advantages are the simple representation (a vector of numbers) and comparison, scale invariance, and in spite of its simplicity a very good performance for shape retrieval of non-rigid shapes.[4] Competitors of shapeDNA include singular values of Geodesic Distance Matrix (SD-GDM) [5] and Reduced BiHarmonic Distance Matrix (R-BiHDM).[1] However, the eigenvalues are global descriptors, therefore the shapeDNA and other global spectral descriptors cannot be used for local or partial shape analysis.

Global point signature (GPS)

The global point signature[6] at a point x is a vector of scaled eigenfunctions of the Laplace–Beltrami operator computed at x (i.e. the spectral embedding of the shape). The GPS is a global feature in the sense that it cannot be used for partial shape matching.

Heat kernel signature (HKS)

The heat kernel signature[7] makes use of the eigen-decomposition of the heat kernel:


h_t(x,y) = \sum_{i=0}^\infty \exp(-\lambda_i t) \phi_i(x) \phi_i(y).

For each point on the surface the diagonal of the heat kernel h_t(x,x) is sampled at specific time values t_j and yields a local signature that can also be used for partial matching or symmetry detection.

Wave kernel signature (WKS)

The WKS[8] follows a similar idea to the HKS, replacing the heat equation with the Schrödinger wave equation.

Improved wave kernel signature (IWKS)

The IWKS[9] improves the WKS for non-rigid shape retrieval by introducing a new scaling function to the eigenvalues and aggregating a new curvature term.

Spectral graph wavelet signature (SGWS)

SGWS provides a general form for spectral descriptors, where one can obtain HKS and WKS by specifying the filter functions.

Spectral Matching

The spectral decomposition of the graph Laplacian associated with complex shapes (see Discrete Laplace operator) provides eigenfunctions (modes) which are invariant to isometries. Each vertex on the shape could be uniquely represented with a combinations of the eigenmodal values at each point, sometimes called spectral coordinates:


s(x) = \left(\phi_1(x), \phi_2(x), ..., \phi_N(x)\right)   for vertex x.

Spectral matching consists of establishing the point correspondences by pairing vertices on different shapes that have the most similar spectral coordinates. Early work [10][11][12] focused on sparse correspondences for stereoscopy. Computational efficiency now enables dense correspondences on full meshes, for instance between cortical surfaces.[13] Spectral matching could also be used for complex non-rigid image registration, which is notably difficult when images have very large deformations.[14] Such image registration methods based on spectral eigenmodal values indeed capture global shape characteristics, and contrast with conventional non-rigid image registration methods which are often based on local shape characteristics (e.g., image gradients).

References

  1. 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.