IP Library Granted Patent US 12711720
Granted Patent B2
US 12711720 · App. 18/403,709 · Granted Aug 18, 2026

Updating pose of an articulated object

Inventors: Mohammand Sadegh Ali Akbarian (Cambridge, GB); Tadas Baltrusaitis (Cambridge, GB)
Assignee: Microsoft Technology Licensing, LLC
G06T19/20G06T7/73G06T2200/24G06T2207/20081G06T2207/20084G06T2219/2004G06T2219/2021
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12711720
App. No.
18/403,709
Granted
Aug 18, 2026
Kind
B2
Abstract

A method of updating a pose of a plurality of joints of a kinematic tree of an articulated object is described. The method comprises receiving, for each of the joints in the kinematic tree, an initial pose. A single first embedding vector is computed by encoding the initial poses in an embedding space. For each of some but not all of the joints in the kinematic tree, a target pose is received. A single second embedding vector representing the target poses is computed in the embedding space. The first embedding vector is modified using the second embedding vector to form a third embedding vector. Decoding the third embedding vector produces the updated pose of the articulated object.

Claims (42)

1 . A computer-implemented method of updating a pose of a plurality of joints of a kinematic tree of an articulated object, the method comprising:

receiving, for each of the joints in the kinematic tree, an initial pose;

computing a single first embedding vector by encoding the initial poses in an embedding space;

for each of some but not all of the joints in the kinematic tree, receiving a target pose;

computing a single second embedding vector representing the target poses in the embedding space;

modifying the first embedding vector using the second embedding vector to form a third embedding vector;

decoding the third embedding vector to produce the updated pose of the articulated object.

2 . The method of claim 1 wherein the updated pose of the articulated object is an approximation of inverse kinematics applied to the kinematic tree using the target poses.

3 . The method of claim 1 wherein computing the first embedding vector comprises:

concatenating the initial poses; and

using a first encoder neural network to encode the concatenated initial poses producing the first embedding vector.

4 . The method of claim 3 wherein the first encoder neural network is a multi- layer perceptron.

5 . The method of claim 3 wherein computing the second embedding vector comprises concatenating the target poses and using a second encoder neural network to encode the concatenated target poses.

6 . The method of claim 5 wherein the second encoder neural network is different from the first encoder neural network.

7 . The method of claim 5 wherein the second encoder neural network is a multi-layer perceptron.

8 . The method of claim 1 wherein the first embedding vector is in a multi-dimensional space and the second embedding vector is in the same multi-dimensional space.

9 . The method of claim 1 wherein modifying the first embedding vector using the second embedding vector comprises concatenating the first embedding vector and the second embedding vector to form a concatenated embedding vector and decoding the concatenated embedding vector using a decoder neural network.

10 . The method of claim 9 wherein the decoder neural network comprises a transformer neural network.

11 . The method of claim 9 wherein the decoder neural network comprises a transformer neural network and a decoder neural network.

12 . The method of claim 1 comprising applying self-attention to the second embedding vector using a transformer neural network prior to using the first embedding vector to modify the second embedding vector.

13 . The method of claim 1 comprising applying cross attention to the first embedding vector and the second embedding vector using a transformer neural network.

14 . The method of claim 1 comprising receiving values of shape parameters of the articulated object and computing the first embedding vector by encoding both the initial poses and the values of the shape parameters such that the updated pose of the articulated object takes into account the values of the shape parameters.

15 . The method of claim 1 comprising using neural networks to compute the first embedding vector, the second embedding vector and the third embedding vector and to decode the third embedding vector, where the neural networks are trained end-to-end using supervised learning.

16 . The method of claim 15 comprising carrying out the supervised learning using training examples, each training example comprising a triplet X, Y, T where X is first pose of the kinematic tree of the articulated object, Y is a second pose of the kinematic tree of the articulated object created by copying X and replacing one or more leaf joints of X using Z, where Z is another pose of the kinematic tree of the articulated object, and where T is the pose of replaced leaf joints computed using forward kinematics.

17 . The method of claim 1 comprising presenting the kinematic tree of the initial pose in a graphical user interface and receiving user input to specify the target pose.

18 . The method of claim 1 comprising using the updated pose of the articulated object for any of: enabling a non-artist to update pose of an avatar, task-specific pose augmentation, augmenting an upper body motion by modifying lower body pose or vice versa, full body pose estimation given signals from a wearable device, full body pose estimation from inertial measurement unit sensors worn only on wrists and ankles.

19 . A computer storage medium having computer-executable instructions that, when executed by a computing system, direct the computing system to perform operations for updating a pose of a plurality of joints of a kinematic tree of an articulated object, the operations comprising:

receiving, for each of the joints in the kinematic tree, an initial pose;

computing a single first embedding vector by encoding the initial poses in an embedding space;

for each of some but not all of the joints in the kinematic tree, receiving a target pose;

computing a single second embedding vector representing the target poses in the embedding space;

modifying the first embedding vector using the second embedding vector to form a third embedding vector, by using a transformer neural network; and

decoding the third embedding vector to produce the updated pose of the articulated object.

20 . An apparatus comprising:

a processor; and

a memory storing instructions that, when executed by the processor, perform a method of updating a pose of a plurality of joints of a kinematic tree of an articulated object, the method comprising:

receiving, for each of the joints in the kinematic tree, an initial pose;

computing a single first embedding vector by encoding the initial poses;

for each of some but not all of the joints in the kinematic tree, receiving a target pose;

computing a single second embedding vector representing the target poses;

modifying the first embedding vector using the second embedding vector to form a third embedding vector; and

decoding the third embedding vector to produce the updated pose of the articulated object.