VIEWS: 37 PAGES: 61 POSTED ON: 5/23/2012
Human Motion Analysis Shunsuke Kudoh (Ikeuchi lab.) Overview Basic knowledge Motion capturing system Expression of human postures Expression of joint angles Case studies Papers in SIGGRAPH Studies in Ikeuchi lab. Motion capturing system Optical motion capture (infrared camera) Magnetic motion capture Video movie Bend sensor etc. Optical motion capture Acquirable data 赤外カメラ Position of markers Advantage High accuracy (1mm) High frame rate (200 fps) Disadvantage Occlusion Expensive ($300,000) マーカ Magnetic motion capture Acquirable data Pos. and rot. of markers エミッタ Advantage Occlusion-free Small number of markers Cheaper ($500,000) Disadvantage トランスミッタ Limited environment マーカ Weak for magnetic field (impossible to use in a building) Large transmitter Human posture ルート marker position (joint position) Joint angles ≒Output from a motion capture (pos of root + joint angles) Joint angle Euler angle Quaternion (Rotation matrix) Euler angle 3-tuple of angles ( z , y , x ) Rotation around ｚ-，ｙ-，ｘ-axis Problem of Euler angle Singular point (Gimbal lock) Impossible to calculate differential parallel Rotating 90 degrees in the middle joint Euler joint Gimbal lock quaternion Extension of complex numbers q t xi yj zk ij ji k jk kj i ki ik j i 2 j 2 k 2 ijk 1 Usually, written as follows: q (t ; x, y, z ) q (t ; x) q tx x ( x, y, z ) Basic operation of quaternion product q1q2 (t1t2 x1 x2 ; t1x2 t2 x1 x1 x2 ) q1 (t1; x1 ), q2 (t2 ; x2 ) conjugate q (t;x) unit quaternion quaternion of norm one (i.e. qq 1) t x y z 1 2 2 2 2 Rotation by unit quaternions Rotation around a unit vector u by an angle q (cos ; u sin ) 2 2 Rotating a vector v by a quaternion q (0; v' ) q(0; v)q Rotation by unit quaternions qv q cos u sin v cos u sin 2 2 2 2 v cos 2 (uv vu) cos sin uvu sin 2 2 2 2 2 v cos 2 2(u v ) cos sin {2(u v)u v} sin 2 2 2 2 2 {v (u v)u} cos (u v) sin (u v)u u v {v (u v)u} cos (u v) sin (u v)u v v (u v)u uv u v u v u v slerp Interpolation between two quaternions v slerp( q1 , q2 , ) (cos v ; sin v ) v q (cos ; u sin ) (0 1) v (1 )1u1 2 u2 q2 q1 1 Motion Graphs Lucas Kovar, Michael Gleicher, Frederic Pighin (SIGGRAPH2002) Overview The top images are original motions The bottom images are generated motion by motion graph Overview Concatenating motion clips Generating motion to follow a given path Motion graph Information in a motion clip Position of the root joint Joint angles （quaternion） Label to describe the motion “walking” “karate” etc. Information about constraints “left heel must touch the ground” etc. Motion graph Structure of motion graph Edge: motion sequence Node: a choice point to connect motion clips Trivial motion graph （original data） Inserting a node Inserting a new transition (edge) Similarity of postures Distance D( Ai , B j ) between frames Ai , B j Windows of frames derivative information Point cloud appropriate weight for each joint Horizontal rotation and translation are ignored essentially same motions Defining similarity considering above factors Similarity of postures Using windows of frames derivative information D( Ai , B j ) transition from Ai to B j The i-th frame sequence A Considering windows of k frames sequence B The j-th frame Similarity of posture Comparing by point clouds considering weight of each joint ＝ comparing by real appearance Similarity of posture Horizontal rotation and translation are ignored the motion is fundamentally unchanged if we translate it along the floor plane or rotate it about the vertical axis. Similarity T , x0 , z0 : horizontal translati on and rotation pi , p'i : correspond ing points in point clouds wi : weights Example of similarity Motion 2 White values lower errors Black values higher errors Green dots local minima Motion 1 Creating transitions Creating transitions between nodes whose values are lower than a threshold The i-th frame sequence A transition The j-th frame sequence B Blending k frames (window size) Creating transitions Blending windows Using a cubic blending function ルート位置 関節角度 Pruning graph Avoiding dead ends Nodes that are not part of any cycle Strongly connected component Searching motion path Searching the best path in motion graph optimization problem about f (w) e : edge of a graph w : path （ [e1 , e2 ,, en ]） g ( w, e) : additional cost when edge e is appended to w A naïve solution Start and end nodes are selected Searching the shortest path by depth-first search The result is not good Advanced solution Defining the cost function g ( w, e) as follows P : target path given by a user P' : path estimated from motion graph P( s) : point on P whose arc - distance from the start of P is s Result Original motion （and its mirror motion） Created motion Result Creating motion from “walking” motion Creating motion from “karate” motion Result Result from walking, sneaking, and karate. A user can indicate the desired transition points. Summary Creating motion sequence by concatenating motion clips Construct motion graph based on similarity Evaluating similarity between motion clips Blending two motion clips Creating motion along the path given by a user Dynamic Response for Motion Capture Animation V. B. Zordan, A. Majkowska, B. Chiu, M. Fast (SIGGRAPH2005) Overview Flowchart Database Simulation 1 Motion selection Motion capture Motion capture Passive response (transition-to) Simulation 2 Active response Interpolation Plausible response Flowchart Database Simulation 1 Motion selection Motion capture Motion capture Passive response (transition-to) Simulation 2 Active response Interpolation Plausible response Related work Motion graph [Arikan02], [Kovar02],[Lee02],[Li02],[Metoyer02] Aligning motion clips (search, compare) Blending motion clips Creating appropriate motion by simulation Combination of physical model and motion capture [Oshita01],[Zordan02],[Komura04] Natural motion against sudden disturbance Feasible motion (dynamically consistent motion) Simulation is limited in short time period natural Procedure of creating motion 1. Passive response 2. Selecting transition-to motion 3. Active response 4. Plausible response Passive response Generating a reaction from motion- captured data Controlling torque of a human model by PD control Generating a reaction by changing the gain Torque controller Generating joint torque by PD control to follow the motion-captured data t torque at joints d target tr ajectory (motion - captured data) kt , bt coefficien ts (based on inertial moment) Passive response Changing ”stiffness” of joints ＝ changing the gain of PD control tc time of impact, te response time, t f recovery t ime In order to absorbing impact force, the lower gain is selected after the impact Passive response Procedure of creating motion 1. Passive response 2. Selecting transition-to motion 3. Active response 4. Plausible response Transition-to motion Extracting a motion sequence from the library that is similar to the simulation result. Comparing successive frames (frame window) Comparing differential factor (such as velocity) Windows size is changeable between 0.1sec～1.0sec Normalizing frame windows by the position and rotation of the root Formulation Human posture (1 frame) pi position, i rotation Distance between frame windows pos rot W* frame window, f*i frame, e the number of frames Weight coefficients Quadric decrease •Large weight in the trunk •Large weight in the support foot → avoiding foot sliding フレーム Effective search Searching motion takes 70 % of the computation time! Motion search area Limiting from 0.1 to 1.0 sec after the impact Start point of a frame window Selecting a candidate roughly Searching precisely around the candidate Procedure of creating motion 1. Passive response 2. Selecting transition-to motion 3. Active response 4. Plausible response Active response Response that is created by considering transition-to motion Passive response is created only by the previous motion Necessary to creating realistic motion (significant characteristic of this method) Formulation torque at joints d target tr ajectory k p , kv coefficien ts I coefficien ts based on the inertial moment • Similar to passive response • Target trajectory is different Target trajectory Blending two motion-captured data Not considering the interaction to the ground Initial motion Motion-captured data ブレンド Motion-captured data Transition-to motion Procedure of creating motion 1. Passive response 2. Selecting transition-to motion 3. Active response 4. Plausible response Method Blending active response and transition-to motion Linear interpolation for the root position Slerp interpolation for the joints Implementation details Capturing motion of two persons 110 motions (each motion is 3 ~ 10 sec.) Offense: kicking and punching Defense: no stepping, stepping, loss of balance Human model of 51 DOF 3 DOF×１５ joints ＋ 6 DOF （root） Using Open Dynamic Engine （ODE) Dynamic simulation and detecting collision Result （１） Result （２） Result （３） Summary Creating natural human motion easily Less than 10 min including initial setting by a user and computation By an animator, it may takes 1 hour Reaction is created by simulation Intended motion is not necessary to exist in database