Human Motion Analysis by WZv3K4

VIEWS: 37 PAGES: 61

									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 z-,y-,x-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 tx                      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×15 joints + 6 DOF (root)
   Using Open Dynamic Engine (ODE)
       Dynamic simulation and detecting collision
Result (1)
Result (2)
Result (3)
                     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

								
To top