Corresponding Points through MDL

Minimum Description Length optimization of PCA model for 2D/3D ASM model building
1.4K Downloads
Updated 14 May 2012

View License

An Active Shape Model (ASM) can only be trained if we have a set of corresponding points between object contours (2D) or object surfaces(3D). Usually these corresponding points are found by manual annotation of all objects by landmark points, or using shape-features. Another approach is the Minimum Description Length (MDL). In MDL all objects are mapped to lines/circles/spheres, then rough corresponding points are defined. From those points the PCA-shape model of the ASM is constructed. If the points have good correspondence the variation in the PCA model will be small, and first eigenvalues larges, in case of bad correspondence the variation will be large. We use an optimizer which moves the corresponding points along the contour/surfaces to minimize the variation and optimize the correspondence.

There are three examples,
1D, Line optimization
2D, Circle MDL of hand contours
3D, Sphere MDL of jaw surfaces

Notes!
The code can be a bit messy (because I have no spare time left).
3D MDL works much worse then my Shape-Context Registration approach on Mathworks. This is caused by the Mapping to the Sphere, which is not (yet) a conformal mapping.

Literature
- Genus Zero Surface Conformal Mapping and Its Application to Brain Surface Mapping
- MODELING THREE-DIMENSIONAL
MORPHOLOGICAL STRUCTURES USING
SPHERICAL HARMONICS
- Parametrization of closed surfaces
for 3-D shape description
- 3D Active Shape Models Using Gradient
Descent Optimization of Description Length

Cite As

Dirk-Jan Kroon (2024). Corresponding Points through MDL (https://www.mathworks.com/matlabcentral/fileexchange/36695-corresponding-points-through-mdl), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2011a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Functions/

Functions1D/

Functions2D/

Functions3D/

Functions3D/Mesh2Tetra_Version1b/

Functions3D/Mesh2Tetra_Version1b/functions/

Functions3D/Mesh2Tetra_Version1b/functions/subfunctions/

Version Published Release Notes
1.0.0.0