14. A computer program product, comprising a computer readable medium storing computer executable code for recognizing and tracking human motion, the computer executable code when executed causing a processor to perform steps of: receiving a plurality of learned motion segments representing different learned motions within a motion class, wherein each learned motion segment comprises a plurality of state vectors and each state vector comprises a time stamp, and wherein one of the learned motion segments comprises temporally contiguous state vectors clustered together in a low-dimensional space based on the time stamps; receiving a representation of human motion having at least one motion from the motion class, the at least one motion comprising a sequence of pose states represented in a high dimensional space; projecting the sequences of pose states from the high dimensional space to the low dimensional space according to a discriminative model that when applied to the sequence of pose states increases the inter-class separability between pose states of different motion classes and decreases the intra-class separability between pose states of a same motion-class; determining an integer P nearest neighbors of a first projected pose state in the low dimensional space, the P nearest neighbors from P different learned motion segments; determining P pose predictions for the P different learned motion segments; and determining the pose prediction that best matches a current frame of the representation of human motion; and storing the determined pose prediction to a memory.
15. The computer program product of claim 14 wherein determining the pose prediction that best matches a current frame of the representation of human motion comprises steps of: reconstructing at least one pose prediction in the high dimensional space based on the discriminative model; and determining an optimal matching of the at least one pose prediction in the high dimensional space to a current frame of the representation of human motion.