Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University.

Similar presentations


Presentation on theme: "Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University."— Presentation transcript:

1 Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University

2

3 Demo

4

5 f1f1 f2f2 f3f3 f4f4 f5f5 f6f6 f7f7 f8f8 f9f9 f 10 w1w1 w2w2 w3w3 w4w4 w5w5 w6w6 w7w7 w8w8 w9w9 w 10 Compute Feature Vectors Nonlinear Combination F= Σw i f i

6 What is this paper about? New framework – Feature Vectors –Traditional Point-based Nonlinear mesh interpolation –Linear is good? Efficient Optimization

7 Feature Vector = a group of deformation gradients. What is deformation gradient – affine mapping is –Φ(p) = T*p + d, T = rotation, scaling, skewing – dΦ(p) / dp = T is deformation gradient So given two triangles, how to find T? Feature Vectors ┌││└┌││└ ┐││┘┐││┘ T ┌││└┌││└ ┐││┘┐││┘ XYZXYZ ┌││└┌││└ ┐││┘┐││┘ d X +

8 ReferenceDeformed

9 Feature Vectors Deformation gradient of affine mapping –Φ(p) = T*p+d, T = rotation, scaling, skewing Illustration in 2-D curve Φ 1Φ 1 Φ 2Φ 2 Φ 3Φ 3 Φ 4Φ 4 Φ 5Φ 5 Φ 6Φ 6 F = [T 1, T 2, T 3, T 4, T 5, T 6 ] T

10 In Mesh IK T d T 1T 1 T 2T 2 T 3T 3 T 4T 4 T 5T 5 T 6T 6 Interpolation among feature vectors Yet

11 In 3D Output ? Target Output ?

12 How it works? Actually solving for position directly –x = argmin x || f(x) - F || –f(x) = deformation gradient using x –x = argmin x ||G’x – (F + c)|| Output

13 f1f1 f2f2 x = argmin x ||G’x – [(f 1 *w 1 + f 2 *w 2 ) + c] ||

14 Outline New framework Non-linear mesh interpolation –How to interpolate linearly? –Polar decomposition –Exponential map Efficient Optimization

15 Linear Feature Space We can find the desired mesh with feature vector f w = M*w, M is [f 1,f 2, … f n ] x*, w* = argmin || Gx – (Mw + c) || If set Mw = d avg + Σw i d i –x*, w* = argmin || Gx – (Mw + c) || + k*||w|| = *[1/3 2/3] T ┌││││└┌││││└ ┐││││┘┐││││┘

16 NonLinear versus Linear

17 Alternative: Nonlinear Polar decomposition –rotation & scaling differently Exponential map –different interpolation “Matrix animation and Polar Decomposition” - Shoemake & Duff “Linear Combination of Transformation” - Marc Alexa

18 Polar Decomposition RRS ┌││││││││└┌││││││││└ ┐││││││││┘┐││││││││┘ R 1 S 1 R 2 S 2 R 3 S 3. R n S n ┌││││││││└┌││││││││└ ┐││││││││┘┐││││││││┘ T 1 T 2 T 3. T n = = R must be orthogonal => SVD : UΣV T, QR : RL

19 Exponential Map T ==> Half T = => For T x M = T b x T a x M if a = b = 1/2 So ½ T x ½ T = T => ½ of T = T ½ AxB = BxA? (Commutative) For T ½ ⊙ T ½ ⊙ = exp( Log(A) + Log(B) ) T ½ ⊙ T ½ = exp( ½ Log(T) + ½ Log(T) ) = T

20 Examples

21 Nonlinear Feature Space Polar decomposition T j = R j * S j, Exponential map –T j (w) = exp(Σw i *log(R ij )) * Σw i *S ij We can find the desired mesh with feature vector f w = M*w = [f 1,f 2, … f n ] * [w 1, w 2, … w n ] T Defined as f w = [T 1 (w 1 ), T 2 (w 2 ), … T n (W n )] = M(w) = *[1/3 2/3] T ┌││││└┌││││└ ┐││││┘┐││││┘

22 Why use exponential map? 1.Easier to find derivatives, with respect to w – T j (w) = R(w) * S(w) –d wk T j (w) = dR(w) * S(w) + R(w) * dS(w) 2.Then why do we need derivatives? –x*, w* = argmin || Gx – [M(w)+c] || –Gauss-Newton Algorithm –M(w +δ) = M(w) + d w M(w)* δ

23 Gauss-Newton Method For k-th iteration: δ k, x k+1 = argmin||Gx – d w M(w k )*δ–(M(w k )+c)|| w k+1 = w k + δ k A T A * [x, δ] T = A T ( M(w k ) + c ) A = Take about a minute or longer to solve ┌││└┌││└ ┐││┘┐││┘ G | - J 1 G | - J 2 G | - J 3 J i = d w M(w)

24 Outline New framework Non-linear mesh interpolation Efficient Optimization –Specialized Cholesky-Factorization

25 Optimized Solver General Cholesky or QR factorization might not suffice The structure of A T A in previous normal equation is well defined ┌│││└┌│││└ ┐│││┘┐│││┘ G T G - G T J 1 G T G - G T J 2 G T G - G T J 3 - J 1 T G - J 2 T G - J 3 T G ΣJ i T J i A T A = ┌││└┌││└ ┐││┘┐││┘ G | - J 1 G | - J 2 G | - J 3 A = A T A * [x, δ] T = A T ( M(w k ) + c )

26 Precomputation ┌│││└┌│││└ ┐│││┘┐│││┘ G T G - G T J 1 G T G - G T J 2 G T G - G T J 3 - J 1 T G - J 2 T G - J 3 T G ΣJ i T J i A T A = ┌│││└┌│││└ ┐│││┘┐│││┘ R - R 1 R - R 2 R - R 3 R s U = Make U such that U T U = A T A where R T R = G T G, this R can be pre-computed ┌││└┌││└ ┐││┘┐││┘ G | - J 1 G | - J 2 G | - J 3 A = A T A * [x, δ] T = A T ( M(w k ) + c )

27 Solving for ┌│││└┌│││└ ┐│││┘┐│││┘ R T R - R T R 1 R T R - R T R 2 R T R - R T R 3 - R 1 T R - R 2 T R - R 3 T R ΣR i T R i + R s T R s U T U = ┌│││└┌│││└ ┐│││┘┐│││┘ G T G - G T J 1 G T G - G T J 2 G T G - G T J 3 - J 1 T G - J 2 T G - J 3 T G ΣJ i T J i A T A = = 1. Solve R i,where R T R i = G T J i, 1<=i<=3 2. Solve R s,where R s T R s = Σ J i T J i - R i T R i 3. The bottleneck for MeshIK

28 Numerical Result


Download ppt "Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University."

Similar presentations


Ads by Google