4.3 Human body shape
4.3.2 Data-Driven Body Shape Parameterisation
One popular data-driven method for characterising the variation between forms is the technique of Principal Component Analysis (PCA). In the field of computer graph- ics, PCA has been applied to sets of facial features [Blanz and Vetter 1999], human head models [Xi et al. 2007], human body models [Azouz et al. 2006] and more. PCA breaks down each example into a linear combination of orthonormal component vec- tors. These component vectors are arranged such that the first component explains as much of the variance in the examples as possible. The second vector explains as much of the remaining variance as possible after factoring out the first component, and so on. As a result, PCA serves two main purposes. First of all, it identifies cor- related aspects of the examples within each component. Secondly, it gives us a way to reduce the amount of data we need to store. If we were to throw away the compo- nents above a certain threshold, we would still be able to reconstruct each example as a linear combination of just the low-numbered components.
The PCA based approach used in this section is similar to the method proposed in [Allen et al. 2003]. The major difference between our approach and [Allen et al. 2003] is that we use software to generate a variety of synthesised human humanoids as the dataset, rather than 3D body scan data. This allow us great flexibility in simulat- ing variations in body shape and registering the mesh with the articulated skeleton. The open source software packages MakeHuman [MakeHuman 2010] and Blender [Blender 2010] are used to create the synthesised dataset. A script is used to generate 6561 models corresponding to different combinations of eight properties: gender, age, muscle tone, height, weight, chest circumference, waist circumference and hip cir- cumference. Each model is also associated with a feature vectorfthat defines height, weight, muscle tone, gender, body shape and a flag component. All models have an identical number of verticesnv, and the same posture. For each model, we put all of the vertex positions into a single shape vectorai, which has 3nvelements in a single column. The indexiranges from 1 to N, with Nequal to 6561 in this case. To begin, we calculate the mean ¯a of the example vectors, ¯a = N1 ∑Ni=1ai. Next, we define a matrixAwhoseith column is equal toai−a¯. To obtain the principal components, we multiplyAby the eigenvectors ofATA. Associated with each principal component is a varianceσi2, which is equal to the corresponding eigenvalue. We sort the eigenvec- tors in order of decreasingσi2. Because we have subtracted the mean, there are at most
N−1 components with variance greater than zero. It turns out that the overall shape of the body can be captured reasonably well with as few as 25 components. Therefore, we use only the 25 most significant components to represent the template model.
Principal component analysis is able to characterise the space of human body vari- ation, but it does not provide a direct way to explore the range of bodies with intuitive controls, which can be easily perceived by a human being (e.g. weight and height). Blanz and Vetter [Blanz and Vetter 1999] devised such controls for single variables us- ing linear regression. Below, several variables are mapped simultaneously by learning
§4.3 Human body shape 71
trols, the mapping can be represented as an(N−1)×(l+1)matrix (wherelis 6 in this case) denoted byM:
Mf= p
where fi are the feature values of an individual, and p are the corresponding PCA
weights. The last component 1 of the feature vectorfenablesMto include an offset; without this parameter, setting the feature values to 0 would always result in a zero p. Assembling all feature vectors for all models into an (l+1)×Nfeature matrixF, we solve forMas:
M=PF†
whereF†is the pseudoinverse ofF, andPis a matrix containing all of the PCA recon- struction weights as a column for each individual. We can then create a new feature vector, with a desired height and weight, and create an average-looking individual with those characteristics. In this way, the user can edit features independently, or to- gether. So far, we have shown how to synthesise generic models according to feature values, but in addition, we can edit existing models by creating delta-feature vectors of the form: ∆ = [∆f1, ...,∆fl, 0] where each ∆fi is the difference between a target feature value and the actual feature value for an individual. By adding∆p=M∆fto the PCA weights of that individual, we can edit their features, e.g., make them gain or lose weight, and/or become taller or shorter. Some examples of body deformation are shown in Figures 4.8, 4.9, 4.10, 4.11 and 4.12.
4.3.2.1 Dynamic Bone Length and Collision Bounding Box Adjustment
Another advantage of data-driven body shape parameterisation is that bone length and collision bounding boxes can be associated directly to the body shape param- eterisation. For instance, when height is increased, the forearm bone length is also increased accordingly. When weight is increased, the breadth of the thigh is also in- creased and so is the dimension of the bounding box. This is simply done by calculat-
Figure 4.8: Gender Control: from left to right, male body shape is morphed to female body shape.
Figure 4.9: Height Control: from left to right, the height of the body is increased with other body parts changed accordingly.
Figure 4.10: Weight Control: from left to right, the body shape is changed correspond- ing to weight gain.
§4.3 Human body shape 73
Figure 4.11: Shape Control: from left to right, the body shape is transformed from triangular to inverse triangular.
Figure 4.12: Muscle Tone Control, from left to right, the body parts are changed to reflect increasing muscle tone.
Figure 4.13: Bone lengths and collision bounding boxes are adjusted dynamically re- flecting the underlying body morphing and body dimension changes.
ing a joint centre as the mean point of a predefined set of vertices and a bounding box of a set of vertices specifying a body segment.