IP Library Granted Patent US 11,544,871
Granted Patent B2
US 11,544,871 · App. 16/112,264 · Granted Jan 3, 2023

Hand skeleton learning, lifting, and denoising from 2D images

Inventor: Onur Guleryuz (San Francisco, CA)
Assignee: GOOGLE LLC
G06T7/75G06F3/017G06F3/0304G06K9/6255G06T5/002G06V40/10G06V40/107G06T7/60G06T2207/20081G06T2207/30196G06V2201/033
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 11,544,871
App. No.
16/112,264
Granted
Jan 3, 2023
Kind
B2
Abstract

A processor identifies keypoints on a hand in a two-dimensional image that is captured by a camera. A three-dimensional pose of the hand is determined using locations of the keypoints to access lookup tables (LUTs) that represent potential poses of the hand as a function of the locations of the keypoints. In some embodiments, the keypoints include locations of tips of fingers and a thumb, joints that connect phalanxes of the fingers and the thumb, palm knuckles that represent a point of attachment of the fingers and the thumb to a palm, and a wrist location that indicates a point of attachment of the hand to a forearm. Some embodiments of the LUTs represent 2D coordinates of the fingers and the thumb in corresponding finger pose planes as a function of the locations of the tips of the fingers or thumb relative to the corresponding palm knuckles.

Claims (67)

1. A method comprising:

identifying, at a processor, keypoints on a hand in a two-dimensional (2D) image captured by a camera;

determining, at the processor, a three-dimensional (3D) pose of the hand using locations of the keypoints to access lookup tables (LUTs) that represent potential 3D poses of the hand as a function of the locations of the keypoints;

determining a set of coordinates of a set of hand features associated with the hand using a set of training images, at least one LUT, and at least one hand feature triangle associated with the hand that has one or more vertices at one or more hand features of the set of hand features associated with the hand, wherein the at least one hand feature triangle comprises:

a thumb triangle that has vertices at a wrist location, a palm knuckle of a thumb of the hand, and a palm knuckle of an index finger; and

a palm triangle that has a vertex at the wrist location, wherein the vertex is opposite a side of the palm triangle that includes palm knuckles of fingers of the hand; and

determining, based on the set of training images, parameters that define the thumb triangle that has vertices at the wrist location, the palm knuckle of the thumb, and the palm knuckle of the index finger.

2. The method of claim 1 , wherein the keypoints comprise locations of tips of fingers and the thumb of the hand, joints that connect phalanxes of the fingers and the thumb, palm knuckles that represent a point of attachment of the fingers and the thumb to a palm of the hand, and the wrist location that indicates a point of attachment of the hand to a forearm.

3. The method of claim 2 , wherein the LUTs comprise finger pose LUTs that represent 2D coordinates of the fingers and the thumb in corresponding finger pose planes as a function of the locations of the tips of the fingers or thumb relative to corresponding palm knuckles of the fingers or thumb.

4. The method of claim 3 , further comprising:

generating the finger pose LUTs based on the set of training images of the hand in a plurality of 3D training poses.

5. The method of claim 4 , wherein generating the finger pose LUTs comprises determining lengths of the phalanxes of the fingers and the thumb from the set of training images.

6. The method of claim 5 , wherein generating the finger pose LUTs comprises generating the finger pose LUTs based on the lengths of the phalanxes and anatomical constraints on ranges of motions of the joints that connect the phalanxes.

7. The method of claim 6 , further comprising:

identifying two or more potential 3D poses that have similar keypoints determined based on the finger pose LUTs.

8. The method of claim 6 , further comprising:

determining, based on the set of training images, parameters that define the palm triangle that has the vertex at the wrist location, wherein the vertex is opposite the side of the palm triangle that includes the palm knuckles of the fingers of the hand.

9. The method of claim 1 , wherein identifying the keypoints comprises identifying 3D locations of noisy keypoints in the 2D image of the hand, and wherein identifying the 3D pose of the hand comprises generating a skeleton model that represents the 3D pose of the hand based on the noisy keypoints.

10. The method of claim 9 , further comprising:

generating skeleton-compliant keypoints based on the skeleton model;

modifying the skeleton-compliant keypoints based on a line connecting corresponding noisy keypoints and a vanishing point associated with the 2D image;

setting the noisy keypoints equal to the modified skeleton-compliant keypoints; and

iterating until the noisy keypoints satisfy convergence criteria.

11. A method comprising:

determining, at a processor, based on a set of training images of a hand in a plurality of 3D training poses, hand feature triangle parameters that define a thumb triangle that has vertices at a wrist location, a palm knuckle of a thumb, and a palm knuckle of an index finger and hand feature triangle parameters that define a palm triangle that has a vertex at the wrist location and a side of the palm triangle comprising palm knuckles of fingers of the hand opposite to the vertex at the wrist location;

identifying keypoints on a hand in a two-dimensional (2D) image captured by a camera, wherein the keypoints are based on the hand feature triangle parameters; and

determining, at the processor, a three-dimensional (3D) pose of the hand in the 2D image using locations of the keypoints to access one or more lookup tables (LUTs) that represent potential 3D poses of the hand as a function of the locations of the keypoints.

12. The method of claim 11 , wherein determining the 3D pose of the hand comprises determining 2D coordinates of the fingers and the thumb from the finger pose LUTs based on relative locations of corresponding fingertips and palm knuckles of the fingers and the thumb.

13. The method of claim 12 , wherein determining the 3D pose of the hand comprises determining orientations of a palm triangle and the thumb triangle from the 2D image.

14. The method of claim 13 , wherein determining the 3D pose of the hand comprises rotating the 2D coordinates of the fingers and the thumb based on the orientations of the palm triangle and the thumb triangle, respectively.

15. An apparatus comprising:

a camera configured to acquire two-dimensional (2D) images of a hand; and

a processor configured to:

identify keypoints on a hand in a 2D image;

determine a three-dimensional (3D) pose of the hand using locations of the keypoints to access lookup tables (LUTs) that represent potential 3D poses of the hand as a function of the locations of the keypoints; and

determine a set of coordinates of a set of hand features associated with the hand using a set of training images, at least one LUT, and at least one hand feature triangle associated with the hand that has one or more vertices at one or more hand features of the set of hand features associated with the hand, wherein the at least one hand feature triangle comprises:

a thumb triangle that has vertices at a wrist location, a palm knuckle of a thumb of the hand, and a palm knuckle of an index finger; and

a palm triangle that has a vertex at the wrist location, wherein the vertex is opposite a side of the palm triangle that includes palm knuckles of fingers of the hand,

wherein the processor is configured to determine, based on the set of training images, parameters that define the thumb triangle that has vertices at the wrist location, the palm knuckle of the thumb, and the palm knuckle of the index finger.

16. The apparatus of claim 15 , wherein the keypoints comprise locations of tips of fingers and the thumb of the hand, joints that connect phalanxes of the fingers and the thumb, the palm knuckles that represent a point of attachment of the fingers and the thumb to a palm of the hand, and the wrist location that indicates a point of attachment of the hand to a forearm.

17. The apparatus of claim 16 , wherein the LUTs comprise finger pose LUTs that represent 2D coordinates of the fingers and the thumb in corresponding finger pose planes as a function of the locations of the tips of the fingers or thumb relative to the corresponding palm knuckles of the fingers or thumb.

18. The apparatus of claim 17 , wherein the processor is configured to:

generate the finger pose LUTs based on the set of training images of the hand in a plurality of 3D training poses; and

store the finger pose LUTs in a memory.

19. The apparatus of claim 17 , wherein the processor is configured to identify two or more potential 3D poses that have similar keypoints determined based on the finger pose LUTs.

20. The apparatus of claim 17 , wherein the processor is configured to determine lengths of the phalanxes of the fingers and the thumb from the set of training images.

21. The apparatus of claim 20 , wherein the processor is configured to generate the finger pose LUTs based on the lengths of the phalanxes and anatomical constraints on ranges of motions of the joints that connect the phalanxes.

22. The apparatus of claim 21 , wherein the processor is configured to determine, based on the set of training images, parameters that define the palm triangle that has the vertex at the wrist location, wherein the vertex is opposite the side of the palm triangle that includes the palm knuckles of the fingers.

23. The apparatus of claim 15 , wherein the processor is configured to determine 2D coordinates of the fingers and the thumb from the finger pose LUTs based on relative locations of corresponding fingertips and palm knuckles of the fingers and the thumb.

24. The apparatus of claim 23 , wherein the processor is configured to determine orientations of the palm triangle and the thumb triangle from the 2D image.

25. The apparatus of claim 24 , wherein the processor is configured to rotate the 2D coordinates of the fingers and the thumb based on the orientations of the palm triangle and the thumb triangle, respectively.

26. The apparatus of claim 15 , wherein the processor is configured to identify 3D locations of noisy keypoints in the 2D image of the hand, and wherein the processor is configured to generate a skeleton model that represents the 3D pose of the hand based on the noisy keypoints.

27. A method comprising:

identifying, at a processor, keypoints on a body part in a two-dimensional (2D) image captured by a camera; and

determining, at the processor, a three-dimensional (3D) pose of the body part using locations of the keypoints to access lookup tables (LUTs) that represent potential 3D poses of the body part as a function of the locations of the keypoints; and

determining a set of coordinates of a set of body part features associated with the body part using a set of training images, at least one LUT, and at least one body part feature triangle associated with the body part that has one or more vertices at one or more body part features of the set of body part features associated with the body part, wherein the at least one body part feature triangle comprises:

a thumb triangle that has vertices at a wrist location, a palm knuckle of a thumb of a hand, and a palm knuckle of an index finger; and

a palm triangle that has a vertex at the wrist location, wherein the vertex is opposite a side of the palm triangle that includes palm knuckles of fingers of the hand; and

determining, based on the set of training images, parameters that define the thumb triangle that has vertices at the wrist location, the palm knuckle of the thumb, and the palm knuckle of the index finger.

28. The method of claim 27 , wherein the body part comprises at least one of the hand, a foot, an arm, a leg, and a head.

29. An apparatus, comprising a processor configured to:

identify keypoints on a hand in a 2D image acquired from an image capture device;

determine a three-dimensional (3D) pose of the hand using locations of the keypoints to access lookup tables (LUTs) that represent potential 3D poses of the hand as a function of the locations of the keypoints; and

determine a set of coordinates of a set of hand features associated with the hand using a set of training images, at least one LUT, and at least one hand feature triangle associated with the hand that has one or more vertices at one or more hand features of the set of hand features associated with the hand, wherein the at least one hand feature triangle comprises:

a thumb triangle that has vertices at a wrist location, a palm knuckle of a thumb of the hand, and a palm knuckle of an index finger; and

a palm triangle that has a vertex at the wrist location, wherein the vertex is opposite a side of the palm triangle that includes palm knuckles of fingers of the hand,

wherein the processor is configured to determine, based on the set of training images, parameters that define the thumb triangle that has vertices at the wrist location, the palm knuckle of the thumb, and the palm knuckle of the index finger.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2018
From: GULERYUZ, ONUR
To: GOOGLE LLC
Reel/Frame 046780/0235 →
Continuity (2)
Provisional Application 62598306 · Dec 13, 2017
Related Publication 20190180473A1 · Jun 13, 2019