Download presentation
Presentation is loading. Please wait.
Published byCory Morris Modified over 9 years ago
1
Mesh-Based Inverse Kinematics Robert W. Sumner Matthias Zwicker. Jovan Popovic MIT Craig Gotsman Harvard University
3
Demo
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.