The parallel transport model implements the parallel transport procedure described in [Louis et al. 2017].
The idea is, given a known progression of shapes, to transport this progression onto a new shape.
A toy example
We follow the example in /examples/parallel_transport/image/2d/snowman. We assume here that we have previously run a registration or a regression to obtain a reference progression of images starting from an image I1:
We would like to transport this progression onto a new shape I2:
We assume that the reference progression is given by the deformation of the initial image I0 with initial control points and momenta given in the txt files data/Reference_progression_ControlPoints.txt and data/Reference_progression_Momenta.txt. These files are formatted as any output file of a Deformetrica run. We also assume that the image I1 has been registered to the image I2, and that the obtained deformations has control points and momenta described in the files data/Registration_ControlPoints.txt and data/Registration_Momenta.txt.
We then configure the model.xml file for the parallel transport model by specifying initial-control-points, initial-momenta, initial-control-points-to-transport and initial-momenta-to-transport. The rest of the configuration of the model xml file is standard. The template file is set to the I1 image.
Parallel transport is a forward computation, and does not require a data_set.xml file. The generic command line is in this case deformetrica compute model.xml -p optimization_parameters.xml. In our example, we even drop the optional optimization_parameters.xml, and therefore simply launch the parallel transport application with deformetrica compute model.xml.
The run will compute the parallel transport of the registration from I1 to I2 along the reference progression, and shoot from the reference progression in the transported direction to obtain a predicted progression for I2.
The parallel trajectory obtained for this example is:
We get the same progression translated into the particular anatomy of the image I2.
The output folder of a parallel transport run contains:
The reference trajectory
The trajectory of the control points along the reference trajectory
The trajectory of the momenta and of the transported momenta along the reference trajectory
The obtained parallel trajectory.
Other example: alien
We display here the results for the example of parallel transport. In this example, the motion of a human face getting scared is transported onto an alien face. Below is a gif of the results: left is the original trajectory, right is the obtained trajectory transported onto the alien face. This example is available in examples/parallel_transport/landmark/3d/alien (data courtesy of Paolo Piras, Sapienza Università di Roma, Italy).