where denote the unknown variables, which in our case are the pose parameters that animate the template mesh into a specific pose in order to fit into the current live data. The different error terms are:
These can be categorized with respect to their domain:
Pose | ||
---|---|---|
Chamfer distance () | Silhouette error () | Anthropometric prior () |
Surface alignment() | ||
Self-penetration error () |
or a data fitting perspective:
Data Terms | Constraints |
---|---|
Chamfer distance () | Self-penetration error () |
Surface alignment () | Anthropometric prior () |
Silhouette error () |
Our complete objective as formulated above is a linear weighted combination of these terms as weighted by the respective weights . More details can be found in [6].
Each pose parameter vector , corresponds to a global root rotation and translation , as well as per joint rotation parameters for all joints ,parameterized by their exponential map [1]. All template meshes are automatically skinned and rigged with [2]. By animating the rigged and skinned template with the pose parameters we get a re-posed mesh of the template , with and the template’s vertices and normals respectively (connectivity, i.e. triangles/faces remain consistent). For animation we use dual quaternion skinning (DQS) [3].
Four error functions are formulated indirectly to the optimized variables through the animated mesh, while the anthropometric prior is calculated solely on the pose parameters .
Regarding the former, we first calculate the Euclidean Distance Transform (EDT) using a separable Chamfer implementation [4] defined on a voxel grid whose bounding box is tightly calculated using the input live data. Thus our error terms are defined:
where a sampling operation defined on the EDT grid, samples the distance at each animated vertex , clamped within the confines of the bounding box that the EDT was calculated in through . Given that pose parameters may be explored outside the bounding box that the EDT is defined in, we further supplement the sampled distance, with an approximate distance that is negligible within the bounding box, but allows the error to extrapolate outside its bounds and offer meaningful evaluations.
which represents a surface alignment error using the gradient of the distance field and the animated template’s surface normals (an adaptation of [4]). Both and provide a combined animated-to-live distance.
which enforces a penalization of unnatural poses (body parts being inside, i.e. penetrating, other body parts). We use a coarse proxy of the template to avoid excessive computational costs, with being a binary function that tests whether the query vertex is inside the body part proxy shape.
Finally, we also employ a projective error:
which represents a Jaccard metric of (dis-)similarity, otherwise known as intersection-over-union (IoU) [5]. This is defined after rendering the silhouette images of the live and animated meshes at each input viewpoints. This error offers an approximate notion of the live-to-animated distance.
The overall error calculation process for each input pose parameters is depicted below:
[1] Grassia, F. S. (1998). Practical parameterization of rotations using the exponential map. Journal of graphics tools, 3(3), 29-48.
[2] Baran, I., & Popović, J. (2007). Automatic rigging and animation of 3d characters. ACM Transactions on graphics (TOG), 26(3), 72-es.
[3] Kavan, L., Collins, S., Žára, J., & O’Sullivan, C. (2007, April). Skinning with dual quaternions. In Proceedings of the 2007 symposium on Interactive 3D graphics and games (pp. 39-46).
[4] Coeurjolly, D., & Montanvert, A. (2007). Optimal separable algorithms to compute the reverse euclidean distance transformation and discrete medial axis in arbitrary dimension. IEEE transactions on pattern analysis and machine intelligence, 29(3), 437-448.
[4] Smirnov, D., Fisher, M., Kim, V. G., Zhang, R., & Solomon, J. (2020). Deep parametric shape predictions using distance fields. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 561-570).
[5] Jaccard, P. (1901). Distribution de la flore alpine dans le bassin des Dranses et dans quelques régions voisines. Bull Soc Vaudoise Sci Nat, 37, 241-272.