Skip to main content

SCAPE: Shape Completion and Animation of People

Reading NotesResearchBody ModelAbout 2 minAbout 642 words

TL;DR

  • Pose Deformation
    • Input — mesh, align with template, different poses of a human
    • Params — pose deformation ( twist vector )
    • Output – mesh
  • Body Deformation
    • Input — mesh, different individuals
    • Params — body deformation ( PCA )
    • Output – mesh

3. Acquiring and Processing Data Meshes

Range Scanning

Correspondence

Non-rigid Registration

Recovering the Articulated Skeleton

Data Format and Assumptions

4. Pose Deformation

4.1. Deformation Process

vk,ji=R[k]iQkiv^k,j,j=2,3 v_{k, j}^i = R_{\ell[k]}^i Q_k^i \hat{v}_{k, j} \qc j = 2, 3

  • ( input ) YiY^i — mesh in the data set containing different poses of a human
  • ( input ) pkp_k — triangle of the template
  • ( input ) xk,1,xk,2,xk,3x_{k, 1}, x_{k, 2}, x_{k, 3} — points of triangle pkp_k
  • ( input ) v^k,ji=xk,jxk,1,j=2,3\hat{v}_{k, j}^i = x_{k, j} - x_{k, 1} \qc j = 2, 3 — triangle edges
  • ( params ) QkiQ_k^i3×33 \times 3 linear transformation matrix
  • ( input ) RiR_{\ell}^i — rotation of the polygon’s rigid part in the articulated skeleton
  • ( input ) [k]\ell[k] — body part associated with triangle pkp_k

However, the predictions for the edges in different triangles are rarely consistent. Thus, to construct a single coherent mesh, we solve for the location of the points y1,,yMy_1, \dots, y_M that minimize the overall least squares error:

argminy1,,yMkj=2,3\normR[k]iQkiv^j,k(yj,ky1,k)2 \mathop{\mathrm{argmin}}_{y_1, \dots, y_M} \sum_k \sum_{j = 2, 3} \norm{R_{\ell[k]}^i Q_k^i \hat{v}_{j, k} - \pqty{y_{j, k} - y_{1, k}}}^2

4.2. Learning the Pose Deformation Model

t=\normθ2sin\normθ\bmqtym32m23m13m31m21m12withθ=cos1(tr(M)12) \begin{align*} t & = \frac{\norm{\theta}}{2 \sin{\norm{\theta}}} \bmqty{m_{32} - m_{23} \\ m_{13} - m_{31} \\ m_{21} - m_{12}} \\ \qq{with} \theta & = \cos^{-1}\pqty{\frac{\mathop{\mathrm{tr}}(M) - 1}{2}} \end{align*}

  • ( analogous to QkiQ_k^i ) MM — any 3×33 \times 3 rotation matrix
  • mijm_{ij}MM’s ii-th row and jj-th column
  • tt — twist for the joint angle, a 3D vector
    • direction of tt — axis of rotation
    • magnitude of tt — rotation amount

predicts the transformation matrices QkiQ_k^i as a function of the twists of its two nearest joints Δr[k]i=(Δr[k],1i,Δr[k],2i)\Delta{r_{\ell[k]}^i} = \pqty{\Delta{r_{\ell[k], 1}^i}, \Delta{r_{\ell[k], 2}^i}}

qk,lmi=\vbak,lmT\vdot[Δr[k]i1]l,m=1,2,3 q_{k, l m}^i = \vb{a}_{k, l m}^T \vdot \begin{bmatrix} \Delta{r_{\ell[k]}^i} \\ 1\\ \end{bmatrix} \quad l, m = 1, 2, 3

  • ( params ) \vbak,lm\vb{a}_{k, l m}7×17 \times 1 regression vector

Qki=Q\vbak(Δr[k]i) Q_k^i = \mathscr{Q}_{\vb{a}_k}\pqty{\Delta{r_{\ell[k]}^i}}

\mathop{\mathrm{argmin}}_{\vb{a}_{k, l m}} \sum_i \pqty{\bmqty{\Delta{r}^i & 1} \vb{a}_{k, l m} - q_{k, l m}^i}^2

argmin\BqtyQ1i,,QPikj=2,3\normRkiQkiv^k,jvk,j2+wsk1,k2 adjI(k1=k2)\vdot\normQk1iQk2i2 \mathop{\mathrm{argmin}}_{\Bqty{Q_1^i, \dots, Q_P^i}} \sum_k \sum_{j = 2, 3} \norm{R_k^i Q_k^i \hat{v}_{k, j} - v_{k, j}}^2 + w_s \sum_{k_1, k_2 \text{ adj}} I(\ell_{k_1} = \ell_{k_2}) \vdot \norm{Q_{k_1}^i - Q_{k_2}^i}^2

  • ( input ) ws=0.001ρw_s = 0.001 \rho
  • ( input ) ρ\rho — resolution of the model mesh XX
  • I()I(\cdot) — indicator function

5. Body-Shape Deformation

5.1. Deformation Process

vk,ji=R[k]iSkiQkiv^k,j v_{k, j}^i = R_{\ell[k]}^i S_k^i Q_k^i \hat{v}_{k, j}

  • Si=\BqtySki:k=1,,PS^i = \Bqty{S_k^i : k = 1, \dots, P} — model the body deformation associated with subject ii

5.2. Learning the Shape Deformation Model

PCA:

Si=SU,μ(βi)=Uβi+μ S^i = \mathscr{S}_{U, \mu}\pqty{\beta^i} = \overline{U \beta^i + \mu}

  • ( params ) SiS^i9×N9 \times N

argminSikj=2,3\normRkiSkiQkiv^k,jivk,ji2+wsk1,k2 adj\normSk1iSk2i2 \mathop{\mathrm{argmin}}_{S^i} \sum_k \sum_{j = 2, 3} \norm{R_k^i S_k^i Q_k^i \hat{v}_{k, j}^i - v_{k, j}^i}^2 + w_s \sum_{k_1, k_2 \text{ adj}} \norm{S_{k_1}^i - S_{k_2}^i}^2

6. Shape Completion

7. Partial View Completion

8. Motion Capture Animation