CSE 554 Lecture 9: Laplacian Deformation Fall 2013 CSE554 Laplacian Deformation Slide 1 Review Source • Alignment – Registering source to target by Input rotation and translation Target • Rigid-body transformations • Methods – Aligning principle directions (PCA) After PCA – Aligning corresponding points (SVD) – Iterative improvement (ICP) • Combines PCA and SVD After ICP CSE554 Laplacian Deformation Slide 2 Non-rigid Registration • Rigid alignment cannot account for shape variance • Non-rigid deformation can give a better fit Source Target Rigid alignment CSE554 After non-rigid deformation Laplacian Deformation Slide 3 Non-rigid Registration • A minimization problem – Minimizing the distance between the deformed source and the target • “Fitting term” – Minimizing the distortion to the source shape • “Distortion term” CSE554 Laplacian Deformation Slide 4 Intrinsic vs. Extrinsic • Intrinsic methods – Deforms points on the source curve/surface – App: boundary curve or surface matching • Extrinsic methods – Deforms all points on and interior to the source curve/surface – App: image or volume matching CSE554 Laplacian Deformation Slide 5 Laplacian-based Deformation • An intrinsic method – Simple, efficient, producing reasonable results • Preserving local shape features – Widely used in graphics applications for interactive deformation Reference: “Laplacian surface editing”, by Sorkine et al., 2004 (citation ~ 500) CSE554 Laplacian Deformation Slide 6 Setup • Input – Source with n points: p1,…,pn • Let the first m points be “handles” – Target location of handles: q1,…,qm When deforming the source to fit a target shape: m=n and qi is the point on the target closest to pi. • Output – Deformed locations of source points: p1’,…,pn’ q2 Deformed Source p3=q3 p1=q1 p2 An example with 3 target points, two of which are stationary (red) CSE554 Laplacian Deformation Slide 7 Overview • Finding deformed locations pi’ that minimize: E Ef Ed – Ef: fitting term • Measures how close are the deformed handles to the target – Ed: distortion term • Measures how much the source shape is changed CSE554 Laplacian Deformation Slide 8 Fitting Term • Sum of squared distances to target handle locations m Ef pi ' qi 2 i 1 q2 p2 CSE554 Laplacian Deformation Slide 9 Distortion Term • Q: How to measure shape? • A: By “bumpiness” at each vertex – Laplacian: vector from the centroid of neighbors to the vertex • Recall that in fairing, we reduced this vector to “smooth out” bumps • A linear operator over point locations L pi pi 1 Ni pj j Ni where Ni are indices of neighboring vertices of pi CSE554 pi Laplacian Deformation pi1 pi2 pi1 pi2 2 Slide 10 Distortion Term • Minimizing changes in Laplacians during deformation – Over all source points n Ed L pi ' i 2 i 1 i: Laplacian at pi before deformation pi ' pi L pi ' i CSE554 Laplacian Deformation Slide 11 Putting Together • Finding deformed locations pi’ that minimize: E Ef Ed m n pi ' i 1 qi 2 L pi ' i 2 i 1 – A quadratic equation in terms of variables (pix’, piy’, piz’) • qi, i are constants • L[] is a linear operator CSE554 Laplacian Deformation Slide 12 Quadratic Minimization • A general form of quadratic minimization: k ai T x min bi 2 i 1 – There are s variables: x=(x1,…,xs)T – Each a1,…, ak is a length-s column vector (linear coefficients) – Each b1,…, bk is a scalar (constant coefficients) – k should be greater than s (so that the problem is over-constrained) CSE554 Laplacian Deformation Slide 13 Quadratic Minimization • To solve: k ai T x min bi 2 i 1 • Re-write in matrix form: min A x B 2 a1 T where A is a k by s matrix ak T b1 B is a length-k vector bk CSE554 Laplacian Deformation Slide 14 Quadratic Minimization • The minimizer is where the partial derivatives are all zero 0 Ax B x 2 AT A x 2 2 AT B AT A x AT B – To solve for x in this equation: • Taking matrix inverse (good for small s, but numerically unstable for large s) x AT A 1 AT B • Using specialized linear system solver (LinearSolve in Mathematica, TNT/LAPACK in C) CSE554 Laplacian Deformation Slide 15 Quadratic Minimization • Re-writing our minimization in the general form E Ef Ed m n pi ' i 1 qi 2 L pi ' i 2 i 1 – In 2D, there are s=2n variables: x = (p1x’,…, pnx’, p1y’,…, pny’ )T • In 3D, there are s=3n variables – We will next re-write each quadratic term in 2D as (aix-bi)2 • Can be extended easily to 3D CSE554 Laplacian Deformation Slide 16 Quadratic Minimization • The ai and bi in the fitting term m Ef m pi ' i 1 qi 2 m pix ' qi x 2 i 1 pi y ' qi y 2 i 1 – There are 2m quadratic terms x 2m ai T x bi p1x ', …, pnx ', p2y ', …, pny ' 2 i 1 – In the first set of m terms: • For i=1,…,m, bi=qix, ai contains all zero, except its (i)th entry is 1. – In the second set of m terms: • For i=1,…,m, bi+m=qiy, ai+m contains all zero, except its (i+n)th entry is 1 CSE554 Laplacian Deformation Slide 17 Quadratic Minimization • The ai and bi in the fitting term m Ef m pi ' qi i 1 2 m pix ' qi x 2 pi y ' i 1 qi y 2 i 1 – There are 2m quadratic terms 2m ai T x bi 2 i 1 – Example with 3 vertices and 2 fitting constraints (n=3; m=2): a1 T 1 0 0 0 0 0 a2 T 0 1 0 0 0 0 a3 T 0 0 0 1 0 0 a4 T 0 0 0 0 1 0 x p1x ' p2x ' p3x ' p1y ' b1 b2 b3 q1 x q2 x q1 y p2y ' b4 q2 y p3y ' CSE554 Laplacian Deformation Slide 18 Quadratic Minimization • The ai and bi in the distortion term: n Ed L pi n L pi ' i 2 ix 2 i 1 – There are 2n quadratic terms Ni L piy ' iy pj j Ni 2 i 1 2n ai T x i 1 – The first set of n terms: 1 n L pi x ' i 1 pi bi x 2 p1x ', …, pnx ', p2y ', …, pny ' • For i=1,…,n, ai is all zero except the (i)th entry is 1, the (j)th entries are -1/|Ni| for all jNi, and bi=ix – The second set of n terms: • For i=1,…,n, ai+n is all zero except the (i+n)th entry is 1, the (j+n)th entries are -1/|Ni| for all jNi, and bi+n=iy CSE554 Laplacian Deformation Slide 19 Quadratic Minimization • The ai and bi in the distortion term: n n Ed L pi ' i L pi x ' – There are 2n quadratic terms – Example with 3 vertices (n=3): a2 T a3 T a4 T CSE554 1 2 1 2 1 2 1 2 1 2 1 1 2 2 0 0 0 a6 T 0 0 0 0 0 0 1 2 1 2 1 2 L piy ' 1 2 1 2 1 1 2 1 Ni x iy pj j Ni 2 i 1 2n ai T x bi 2 i 1 0 0 0 1 0 0 0 0 0 0 1 T a5 ix i 1 1 pi n 2 i 1 a1 T L pi p1x ' p2x ' p3x ' p1y ' b1 b2 b3 b4 1x p2y ' b5 2y p3y ' b6 3y p3 2x 3x 1y p1 p2 1 Laplacian Deformation Slide 20 Summary • Compute Laplacians (i) • Construct coefficients (ai, bi) – Put them into matrices (A,B) • Solve (x) – AT A x CSE554 AT B x p1x ', …, pnx ', p2y ', …, pny ' Laplacian Deformation Slide 21 Results Deformed A small deformation CSE554 Laplacian Deformation Slide 22 Results Deformed A larger deformation CSE554 Laplacian Deformation Slide 23 Results Deformed Stretching CSE554 Laplacian Deformation Slide 24 Results Deformed Shrinking CSE554 Laplacian Deformation Slide 25 Results Deformed Rotation CSE554 Laplacian Deformation Slide 26 Discussion • Limitations – Local features are “skewed”, and they don’t scale with the model • Reason: Laplacian changes with rotation or scale – Two bumps that differ by rotation or scale have different Laplacians • Which will be penalized by our distortion term pi ' pi L pi ' L pi CSE554 L pi L pi ' Laplacian Deformation Slide 27 A Better Distortion Term • Not penalizing rotation and scaling of local features – Transforming the original Laplacian vectors before comparing to the deformed Laplacians n Ed L pi ' Ti i 2 i 1 • Ti is a matrix that describes how the local shape around pi is deformed pi CSE554 Ti Laplacian Deformation pi ' Slide 28 Key Questions • How to represent transformations as matrices? • How to compute Ti? • We will focus in the derivations of the 2D case – 3D results will be briefly presented at the end CSE554 Laplacian Deformation Slide 29 Transformation Matrices (2D) • Homogeneous coordinates – A 2D point: (x,y,1) • A 2D vector: (x,y,0) – A 3D point: (x,y,z,1) • A 3D vector: (x,y,z,0) CSE554 Laplacian Deformation Slide 30 Transformation Matrices (2D) • Translation – Cartesian coordinates: vector addition p'x p'y vx vy px py – Homogeneous coordinates: matrix product p'x p'y 1 CSE554 1 0 vx 0 1 vy 0 0 1 px py 1 Laplacian Deformation Slide 31 Transformation Matrices (2D) • Isotropic scaling – Cartesian coordinates: vector scaling p'x p'y s px py – Homogeneous coordinates: matrix product p'x p'y 1 CSE554 s 0 1 0 s 1 0 0 1 px py 1 Laplacian Deformation Slide 32 Transformation Matrices (2D) • Rotation – Cartesian coordinates: matrix product p'x p'y Cos Sin px py Sin Cos – Homogeneous coordinates: matrix product p'x p'y 1 CSE554 Cos Sin 0 Sin Cos 0 Laplacian Deformation 0 0 1 px py 1 Slide 33 Transformation Matrices (2D) • Summary of elementary similarity transformations – To combine transformations: take the product of these matrices Trs v p'x p'y 1 M px py 1 Scl s Rot CSE554 Cos Sin 0 Laplacian Deformation 1 0 vx 0 1 vy 0 0 1 s 0 1 0 s 1 0 0 1 Sin Cos 0 0 0 1 Translation by vector v Scaling by scalar s Rotation by angle Slide 34 Similarity Transforms (2D) • General similarity transformations T a w tx w a ty 0 0 1 – The product of any set of elementary matrices can be written this way – Any choice of (a, w, tx, ty) can be written as a sequence of rotation, isotropic scaling and translation a w tx w a ty 0 0 1 Trs tx , ty .Scl a2 w2 .Rot ArcTan a w • Note that a and w can’t be both zero CSE554 Laplacian Deformation Slide 35 Computing Ti (2D) • Suppose we know the deformed locations pi’ • Compute Ti as the similarity transform that best fits the neighborhood of pi to that of pi’ min Ti pi pi ' 2 Ti pj pj ' 2 j Ni pi CSE554 Ti Laplacian Deformation pi ' Slide 36 Computing Ti (2D) • Suppose we know the deformed locations pi’ • Compute Ti as the similarity transform that best fits the neighborhood of pi to that of pi’ min Ti pi pi ' 2 Ti pj pj ' 2 j Ni • This is a quadratic minimization problem for entries of Ti – E.g., a, w, tx, ty CSE554 Laplacian Deformation Slide 37 Computing Ti (2D) • The matrix form of the minimization is: min C a w tx ty pix ' piy ' pi1x ' pi1y ' pi x where C piy 1 0 pi y pix 0 1 pi1x pi1y 1 0 pi1y CSE554 2 pi1x 0 1 is a 2|Ni|+2 by 4 matrix, and Ni={i1, i2,…} are indices of neighboring vertices of pi Laplacian Deformation Slide 38 Computing Ti (2D) • By quadratic minimization: a w tx ty pix ' piy ' CT C 1 CT pi1x ' pi1y ' – Linear expressions of variables (pix’ , piy’) CSE554 Laplacian Deformation Slide 39 Distortion Term (2D) • Two parts of each distortion term: L pi ' Ti i 2 – Transformed Laplacian: Ti i a w tx ty D pix ' piy ' D CT C 1 CT pi1x ' pi1y ' where D ix iy iy ix 0 0 0 0 – Laplacian of the deformed locations: pix ' piy ' L pi ' CSE554 L pi1x ' pi1y ' 1 0 where L 0 1 1 Ni 0 0 1 Ni Laplacian Deformation ... ... is a 2 by 2|Ni|+2 matrix Slide 40 Distortion Term (2D) • Putting together: n Ed L pi ' Ti i 2 i 1 pix ' piy ' n H 1 i 1 pi1x ' pi1y ' 2 pi x ' pi y ' n H 2 i 1 pi1x ' pi1y ' 2 where H L D CT C 1 CT and H 1 , H 2 are its rows – They form 2n quadratic terms (aix-bi)2 for x = (p1x’,…, pnx’, p1y’,…, pny’ )T • All bi are zero • Each ai can be extracted from H CSE554 Laplacian Deformation Slide 41 Results (2D) Old distortion term New distortion term CSE554 Laplacian Deformation Slide 42 Results (2D) Old distortion term CSE554 Laplacian Deformation New distortion term Slide 43 Results (2D) Old distortion term New distortion term CSE554 Laplacian Deformation Slide 44 Results (2D) Old distortion term New distortion term CSE554 Laplacian Deformation Slide 45 Registration • Use nearest neighbors as corresponding target locations – Assuming the source is already close to the target • Iterative closest point (ICP) – 1. For each point on the source pi, treat it as a handle, and assign its closest point on the target as its target location qi. Compute Laplacianbased deformation. • A threshold on the closest distance can be used to throw away unlikely correspondences – 2. Repeat step (1) until a termination criteria is met. • Maximum iteration or minimum RMSD improvement CSE554 Laplacian Deformation Slide 46 Result CSE554 After rigid alignment 1 iteration of Laplacian 7 iterations of Laplacian Overlaying all curves Laplacian Deformation Slide 47 Result • Weighting the distortion term E Ef w Ed large w medium w small w CSE554 Laplacian Deformation Slide 48 Similarity Transforms (3D) • Elementary transformation matrices – To perform a sequence of transformations: take the product of these matrices Trs v p'x p'y p'z 1 M px py pz 1 Scl s Rot X, CSE554 1 0 0 Cos 0 Sin 0 0 Laplacian Deformation 1 0 0 0 s 0 0 0 0 1 0 0 0 s 0 0 0 Sin Cos 0 0 vx 0 vy 1 vz 0 1 0 0 s 0 1 1 1 1 0 0 0 1 Translation by vector v Scaling by scalar s Rotation by angle around X axis Slide 49 Similarity Transforms (3D) • General similarity transformations in 3D T s h3 h2 0 h3 s h1 0 h2 tx h1 ty s tz 0 1 – Approximates the product of a set of elementary matrices • Up to a small rotation angle • May introduce skewing for large rotations CSE554 Laplacian Deformation Slide 50 Computing Ti (3D) • Assuming known deformation, by quadratic minimization: s h1 h2 h3 tx ty tz CT C 1 CT pix ' piy ' pix 0 piz piy piz 0 pix 0 1 0 piz ' pi1x ' pi1y ' piz piy pix 0 0 0 1 pi1x 0 pi1z pi1y pi1z 0 pi1x 0 1 0 pi1x 0 0 0 1 where C pi1z ' pi1z pi1y piy 1 0 0 pi1y 1 0 0 – Linear expressions of the deformed points pi’ • C is a 3|Ni|+3 by 7 matrix CSE554 Laplacian Deformation Slide 51 Distortion Term (3D) • Constructing transformed Laplacian: Ti i D pix ' piy ' s h1 h2 h3 tx ty tz pi1z ' ix where D iy iz CSE554 1 D CT C piz ' where CT pi1x ' pi1y ' 0 iz iy iz 0 ix iy 1 0 0 ix 0 1 0 0 0 0 1 Laplacian Deformation Slide 52