Difference between revisions of "Projects:SphericalWaveletsInITK"

From NAMIC Wiki
Jump to: navigation, search
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Description ==
+
Back to [[NA-MIC_Collaborations|NA-MIC_Collaborations]], [[Algorithm:Stony Brook|Stony Brook Algorithms]], [[Algorithm:UNC|UNC Algorithms]]
  
For a general description of how we are using spherical wavelets for shape analysis, see [[NA-MIC/Projects/Structural/Shape_Analysis/3D_Shape_Analysis_Using_Spherical_Wavelets|3D Shape Analysis Using Spherical Wavelets]]
+
= ITK Spherical Wavelet Transform Filter =
 +
 
 +
For a general description of how we are using spherical wavelets for shape analysis, see [[Algorithm:GATech:Multiscale_Shape_Analysis|Multiscale Shape Analysis]]  
 +
 
 +
= Description =
  
 
This page outlines the steps we will take to code the Spherical Wavelet transform in ITK.
 
This page outlines the steps we will take to code the Spherical Wavelet transform in ITK.
Line 12: Line 16:
 
In this paper, it is shown how to do decompose a scalar signal defined on a spherical mesh into spherical wavelet coefficients (analysis step, also called forward transform), and vice-versa (synthesis step, also called inverse transform).
 
In this paper, it is shown how to do decompose a scalar signal defined on a spherical mesh into spherical wavelet coefficients (analysis step, also called forward transform), and vice-versa (synthesis step, also called inverse transform).
  
* With the goal of analysizing the scalar function defined on a spherical topological surface, the spherical parametrization is needed as the first step. Then, we can deem the function to be defined on a sphere. (If the function is a vector one, we can apply the analysis component by component. Thus the scalar function is used for simplicity in the future.)
+
* With the goal of analyzing the scalar function defined on a spherical topological surface, the spherical parametrization is needed as the first step. Then, we can deem the function to be defined on a sphere. (If the function is a vector one, we can apply the analysis component by component. Thus the scalar function is used for simplicity in the future.)
  
* For our case of SHAPE representation, the function we are going to analize are the x, y and z coordinates of the original triangulated surface.  
+
* For our specific case of SHAPE representation, the function we are going to analyze are the x, y and z coordinates of the original triangulated surface.  
  
 
* The numerical computation of spherical wavelet analysis requires the scalar function to be defined on a special triangulated sphere, the one generated by a recursive subdivision process. Also for a better performance, the base shape of the triangulation is selected as an icosahedron. The scalar function defined on the original spherical mesh is then interpolated onto the mesh generated by the recursive subdivision using bi-linear interpolation.
 
* The numerical computation of spherical wavelet analysis requires the scalar function to be defined on a special triangulated sphere, the one generated by a recursive subdivision process. Also for a better performance, the base shape of the triangulation is selected as an icosahedron. The scalar function defined on the original spherical mesh is then interpolated onto the mesh generated by the recursive subdivision using bi-linear interpolation.
Line 20: Line 24:
 
* The forward wavelet transformation is carried out on the configuration of the previous step and a set of wavelet coefficients are obtained, called Gamma coefficients. The backward transformation can recover the Gamma coefficients into an approximation of the original scalar function.
 
* The forward wavelet transformation is carried out on the configuration of the previous step and a set of wavelet coefficients are obtained, called Gamma coefficients. The backward transformation can recover the Gamma coefficients into an approximation of the original scalar function.
  
== Implementation ==
+
''Progress''
  
 
* Before the spherical wavelet transformation, the scalar function is interpolated onto a sphere which is generated from recursively subdividing an icosahedron and which has the least number of vertexes more than that of the original mesh.
 
* Before the spherical wavelet transformation, the scalar function is interpolated onto a sphere which is generated from recursively subdividing an icosahedron and which has the least number of vertexes more than that of the original mesh.
Line 28: Line 32:
 
* The processes going within the class are:
 
* The processes going within the class are:
 
# The hierarchy of the recursive subdivision is built from the icosahedron. The parameters needed for wavelet decomposition are calculated and stored in the internally. The level of the subdivision is chosen so that the finest sphere in the subdivision coincides with the one in the previous interpolation step.
 
# The hierarchy of the recursive subdivision is built from the icosahedron. The parameters needed for wavelet decomposition are calculated and stored in the internally. The level of the subdivision is chosen so that the finest sphere in the subdivision coincides with the one in the previous interpolation step.
 
 
# The scalar function is set using the API SetScalarFunction().
 
# The scalar function is set using the API SetScalarFunction().
 
+
# The wavelet coefficients are calculated from the finest level and downward. It's and implementation of the lifting scheme of the second generation of wavelet transformation.
# The wavelet coefficients are calculated from the finest level and downward. It's and implementation of the lifting scheme of the second generation of wavelet transformatiom.
 
 
 
 
# The coefficients of all levels are stored in one structure of vector and can be exported to a file if needed.
 
# The coefficients of all levels are stored in one structure of vector and can be exported to a file if needed.
 
 
# If needed, the reconstruction of function can be carried out from the coefficients. The difference between the reconstructed function and the original function is around 10^{-16}.
 
# If needed, the reconstruction of function can be carried out from the coefficients. The difference between the reconstructed function and the original function is around 10^{-16}.
  
 
For a preliminary API, see [[NA-MIC/Projects/Structural/Shape_Analysis/ITK_Spherical_Wavelets_API|ITK Spherical Wavelets API]]
 
For a preliminary API, see [[NA-MIC/Projects/Structural/Shape_Analysis/ITK_Spherical_Wavelets_API|ITK Spherical Wavelets API]]
  
== Current Status ==
+
''Current Status''
  
 
* Basically it's all set. All thing we need are stored internally.  
 
* Basically it's all set. All thing we need are stored internally.  
 
* So the only thing needs to be done is to choose what data to output and how to output them to fit in the whole process of shape analysis pipeline.
 
* So the only thing needs to be done is to choose what data to output and how to output them to fit in the whole process of shape analysis pipeline.
  
== Next Steps ==
+
''Next Steps''
  
 
* We will discuss the filter interfaces to fit this into the whole procedure of shape analysis.
 
* We will discuss the filter interfaces to fit this into the whole procedure of shape analysis.
  
== Members ==
+
= Key Investigators =
  
* Yi Gao (Gatech)
+
* Georgia Tech: Yi Gao, Delphine Nain, Xavier LaFaucheur, John Melonakos
* Delphine Nain (Gatech)
+
* GE: Jim Miller
* Xavier LeFaucheur (Gatech)
+
* Kitware: Luis Ibanez
* John Melonakos (Gatech)
+
* UNC: Martin Styner
* Jim Miller (GE)
 
* Luis Ibanez (Kitware)
 
* Martin Styner (UNC)
 
  
== Links ==
+
= Links =
  
 
* [[NA-MIC/Projects/Structural/Shape_Analysis/3D_Shape_Analysis_Using_Spherical_Wavelets|3D Shape Analysis Using Spherical Wavelets]]
 
* [[NA-MIC/Projects/Structural/Shape_Analysis/3D_Shape_Analysis_Using_Spherical_Wavelets|3D Shape Analysis Using Spherical Wavelets]]
 
* [[NA-MIC/Projects/Structural/Shape_Analysis/ITK_Spherical_Wavelets_API|ITK Spherical Wavelets API]]
 
* [[NA-MIC/Projects/Structural/Shape_Analysis/ITK_Spherical_Wavelets_API|ITK Spherical Wavelets API]]

Latest revision as of 01:13, 16 November 2013

Home < Projects:SphericalWaveletsInITK
Back to NA-MIC_Collaborations, Stony Brook Algorithms, UNC Algorithms

ITK Spherical Wavelet Transform Filter

For a general description of how we are using spherical wavelets for shape analysis, see Multiscale Shape Analysis

Description

This page outlines the steps we will take to code the Spherical Wavelet transform in ITK.

  • The best place to learn about the spherical wavelet transform that we will implement is in this paper, that also has pseudo-code.
Spherical Wavelets: Texture Processing (1995) Peter Schröder, Wim Sweldens
http://citeseer.ist.psu.edu/oder95spherical.html

In this paper, it is shown how to do decompose a scalar signal defined on a spherical mesh into spherical wavelet coefficients (analysis step, also called forward transform), and vice-versa (synthesis step, also called inverse transform).

  • With the goal of analyzing the scalar function defined on a spherical topological surface, the spherical parametrization is needed as the first step. Then, we can deem the function to be defined on a sphere. (If the function is a vector one, we can apply the analysis component by component. Thus the scalar function is used for simplicity in the future.)
  • For our specific case of SHAPE representation, the function we are going to analyze are the x, y and z coordinates of the original triangulated surface.
  • The numerical computation of spherical wavelet analysis requires the scalar function to be defined on a special triangulated sphere, the one generated by a recursive subdivision process. Also for a better performance, the base shape of the triangulation is selected as an icosahedron. The scalar function defined on the original spherical mesh is then interpolated onto the mesh generated by the recursive subdivision using bi-linear interpolation.
  • The forward wavelet transformation is carried out on the configuration of the previous step and a set of wavelet coefficients are obtained, called Gamma coefficients. The backward transformation can recover the Gamma coefficients into an approximation of the original scalar function.

Progress

  • Before the spherical wavelet transformation, the scalar function is interpolated onto a sphere which is generated from recursively subdividing an icosahedron and which has the least number of vertexes more than that of the original mesh.
  • The whole process is done in one ITK filter, itkSWaveletFilter inherited from itkMeshSource class.
  • The processes going within the class are:
  1. The hierarchy of the recursive subdivision is built from the icosahedron. The parameters needed for wavelet decomposition are calculated and stored in the internally. The level of the subdivision is chosen so that the finest sphere in the subdivision coincides with the one in the previous interpolation step.
  2. The scalar function is set using the API SetScalarFunction().
  3. The wavelet coefficients are calculated from the finest level and downward. It's and implementation of the lifting scheme of the second generation of wavelet transformation.
  4. The coefficients of all levels are stored in one structure of vector and can be exported to a file if needed.
  5. If needed, the reconstruction of function can be carried out from the coefficients. The difference between the reconstructed function and the original function is around 10^{-16}.

For a preliminary API, see ITK Spherical Wavelets API

Current Status

  • Basically it's all set. All thing we need are stored internally.
  • So the only thing needs to be done is to choose what data to output and how to output them to fit in the whole process of shape analysis pipeline.

Next Steps

  • We will discuss the filter interfaces to fit this into the whole procedure of shape analysis.

Key Investigators

  • Georgia Tech: Yi Gao, Delphine Nain, Xavier LaFaucheur, John Melonakos
  • GE: Jim Miller
  • Kitware: Luis Ibanez
  • UNC: Martin Styner

Links