Intrinsic Deformation
Intrinsic deformations are defined as sequences of speed vectors applied to the points of a shape. The length of such a sequence is computed thanks to a Riemannian metric, whose role is to penalize certain transformation. Choosing such a metric roughly corresponds to penalize some distortions of the shape.
Math
In intrinsic deformation is determined by a sequence of velocity vector fields
We also define intermediate states
The length of the deformation is determined by a Riemannian metric:
where
Code
Intrinsic Deformation is accessible in scikit-shapes through the class IntrinsicDeformation
. The argument n_steps
controls the number of time steps n_steps
is, the more flexible is the model. However, the memory impact grows linearly in n_steps
and the running time is also impacted. The Riemannian metric is given with the argument metric
. Available metrics are:
as-isometric-as-possible
(requires points and edges)shell-energy
(requires triangles)
import skshapes as sks
loss = ...
metric = sks.ShellEnergyMetric
model = sks.IntrinsicDeformation(n_steps=10, metric=metric)
registration = sks.Registration(loss=loss, model=model)
registration.fit(source=source, target=target)
path = registration.path_
morphed_source = registration.morphed_shape_