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
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.
- Genus Zero Surface Conformal Mapping and Its Application to Brain Surface Mapping
- MODELING THREE-DIMENSIONAL
MORPHOLOGICAL STRUCTURES USING
- Parametrization of closed surfaces
for 3-D shape description
- 3D Active Shape Models Using Gradient
Descent Optimization of Description Length
Dirk-Jan Kroon (2020). Corresponding Points through MDL (https://www.mathworks.com/matlabcentral/fileexchange/36695-corresponding-points-through-mdl), MATLAB Central File Exchange. Retrieved .
which is the main program should i run in the file in order to get the output ?
thanks for this code very much.
i run test program in folder "function3D" and How long does it take?
my pc is corei7 and 16G ram
Is the function "isocontour" missing? CircleMDL2D.m gives me this error.