Estimates an As Conformal As Possible (ACAP) fitting energy.
tfg.geometry.deformation_energy.as_conformal_as_possible.energy( vertices_rest_pose, vertices_deformed_pose, quaternions, edges, vertex_weight=None, edge_weight=None, conformal_energy=True, aggregate_loss=True, name=None )
For a given mesh in rest pose, this function evaluates a variant of the ACAP  fitting energy for a batch of deformed meshes. The vertex weights and edge weights are defined on the rest pose.
The method implemented here is similar to , but with an added free variable capturing a scale factor per vertex.
: Yusuke Yoshiyasu, Wan-Chun Ma, Eiichi Yoshida, and Fumio Kanehiro. "As-Conformal-As-Possible Surface Registration." Computer Graphics Forum. Vol. 33. No. 5. 2014. : Olga Sorkine, and Marc Alexa. "As-rigid-as-possible surface modeling". Symposium on Geometry Processing. Vol. 4. 2007.
In the description of the arguments, V corresponds to the number of vertices in the mesh, and E to the number of edges in this mesh.
In the following, A1 to An are optional batch dimensions.
vertices_rest_pose: A tensor of shape
[V, 3]containing the position of all the vertices of the mesh in rest pose.
vertices_deformed_pose: A tensor of shape
[A1, ..., An, V, 3]containing the position of all the vertices of the mesh in deformed pose.
quaternions: A tensor of shape
[A1, ..., An, V, 4]defining a rigid transformation to apply to each vertex of the rest pose. See Section 2 from  for further details.
edges: A tensor of shape
[E, 2]defining indices of vertices that are connected by an edge.
vertex_weight: An optional tensor of shape
[V]defining the weight associated with each vertex. Defaults to a tensor of ones.
edge_weight: A tensor of shape
[E]defining the weight of edges. Common choices for these weights include uniform weighting, and cotangent weights. Defaults to a tensor of ones.
boolindicating whether each vertex is associated with a scale factor or not. If this parameter is True, scaling information must be encoded in the norm of
quaternions. If this parameter is False, this function implements the energy described in .
booldefining whether the returned loss should be an aggregate measure. When True, the mean squared error is returned. When False, returns two losses for every edge of the mesh.
name: A name for this op. Defaults to "as_conformal_as_possible_energy".
When aggregate_loss is
True, returns a tensor of shape
[A1, ..., An]
containing the ACAP energies. When aggregate_loss is
False, returns a
tensor of shape
[A1, ..., An, 2*E] containing each term of the summation
described in the equation 7 of .
ValueError: if the shape of
edge_weightis not supported.