IP Library Granted Patent US 9,830,703
Granted Patent B2
US 9,830,703 · App. 14/825,129 · Granted Nov 28, 2017

Model-based three-dimensional head pose estimation

Inventors: Gregory P. Meyer (Champaign, IL); Shalini Gupta (San Francisco, CA); Iuri Frosio (San Jose, CA); Nagilla Dikpal Reddy (Palo Alto, CA); Jan Kautz (Lexington, MA)
Assignee: NVIDIA Corporation
G06T7/004G06T7/0053G06T2207/10012
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 9,830,703
App. No.
14/825,129
Granted
Nov 28, 2017
Kind
B2
Abstract

One embodiment of the present invention sets forth a technique for estimating a head pose of a user. The technique includes acquiring depth data associated with a head of the user and initializing each particle included in a set of particles with a different candidate head pose. The technique further includes performing one or more optimization passes that include performing at least one iterative closest point (ICP) iteration for each particle and performing at least one particle swarm optimization (PSO) iteration. Each ICP iteration includes rendering the three-dimensional reference model based on the candidate head pose associated with the particle and comparing the three-dimensional reference model to the depth data. Each PSO iteration comprises updating a global best head pose associated with the set of particles and modifying at least one candidate head pose. The technique further includes modifying a shape of the three-dimensional reference model based on depth data.

Claims (70)

1. A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to estimate a head pose of a user, by performing the steps of:

acquiring depth data associated with a head of the user;

initializing each particle included in a set of particles with a different candidate head pose associated with a three-dimensional reference model; and

performing at least one optimization pass that comprises:

performing at least one iterative closest point (ICP) iteration for each particle in the set of particles, wherein each ICP iteration comprises:

rendering the three-dimensional reference model based on the candidate head pose associated with the particle,

comparing the three-dimensional reference model to the depth data to determine at least one error value, and

modifying the candidate head pose associated with the particle based on the at least one error value,

performing at least one particle swarm optimization (PSO) iteration, comprising:

updating a global best head pose associated with the set of particles, and

modifying at least one of candidate head poses associated with the set of particles based on the global best head pose, and

modifying the three-dimensional reference model based on the global best head pose.

2. The non-transitory computer-readable storage medium of claim 1 , wherein comparing the three-dimensional reference model to the depth data to determine the at least one error value is based on at least one weighting coefficient associated with at least one vertex included in the three-dimensional reference model.

3. The non-transitory computer-readable storage medium of claim 2 , further comprising, after performing at least one optimization pass, updating the at least one weighting coefficient based on the depth data and the global best head pose associated with the set of particles.

4. The non-transitory computer-readable storage medium of claim 3 , wherein the three-dimensional reference model comprises a face region having a plurality of vertices, and the at least one weighting coefficient comprises a different weighting coefficient for each vertex included in the plurality of vertices.

5. The non-transitory computer-readable storage medium of claim 1 , wherein acquiring the depth data associated with the head of the user comprises scaling an adaptive matched filter based on at least one distance included in the depth data, and aligning the adaptive matched filter with the depth data.

6. The non-transitory computer-readable storage medium of claim 5 , wherein the adaptive matched filter includes a head region and a shoulder region.

7. The non-transitory computer-readable storage medium of claim 6 , wherein aligning the adaptive matched filter with the depth data comprises:

analyzing the depth data to determine a silhouette of the user;

positioning the adaptive matched filter at a plurality of locations relative to the silhouette of the user;

for each of the plurality of locations:

multiplying each of a plurality of values included in the adaptive matched filter by a corresponding value associated with the silhouette of the user to determine a plurality of products; and

adding the plurality of products to determine a sum; and

determining which location has the highest sum.

8. The non-transitory computer-readable storage medium of claim 1 , wherein modifying the shape of the three-dimensional reference model comprises modifying a shape of the three-dimensional reference model by estimating a difference between the shape of the three-dimensional reference model and the depth data, and updating the shape of at least a portion of the three-dimensional reference model based on the difference.

9. The non-transitory computer-readable storage medium of claim 1 , further comprising:

acquiring additional depth data associated with the head of the user;

for each particle included in a first portion of the set of particles, initializing the particle with a different candidate head pose that is based on the global best head pose; and

for each particle included in a second portion of the set of particles, initializing the particle with a different candidate head pose that is not based on the global best head pose.

10. A computer system, comprising:

a memory storing a head pose estimation engine;

at least one sensor configured to acquire depth data associated with a head of a user; and

a processor coupled to the memory and the at least one sensor, wherein, when executed by the processor, the head pose estimation engine configures the processor to:

initialize each particle included in a set of particles with a different candidate head pose, wherein each candidate head pose comprises a rotation vector and a translation vector associated with a three-dimensional reference model; and

perform one or more optimization passes, wherein, each optimization pass comprises:

performing at least one iterative closest point (ICP) iteration for each particle, wherein each ICP iteration comprises:

rendering the three-dimensional reference model based on the candidate head pose associated with the particle,

comparing the three-dimensional reference model to the depth data to determine at least one error value, and

modifying the candidate head pose based on the at least one error value,

performing at least one particle swarm optimization (PSO) iteration, comprising:

updating a global best head pose associated with the set of particles, and

modifying at least one candidate head pose based on the global best head pose, and

modifying a shape of the three-dimensional reference model based on the depth data.

11. The computer system of claim 10 , wherein comparing the three-dimensional reference model to the depth data to determine the at least one error value is based on at least one weighting coefficient associated with at least one vertex included in the three-dimensional reference model.

12. The computer system of claim 11 , wherein the head pose estimation engine further configures the processor to, after performing at least one optimization pass, update the at least one weighting coefficient based on the depth data and the global best head pose associated with the set of particles.

13. The computer system of claim 12 , wherein the three-dimensional reference model comprises a face region having a plurality of vertices, and the at least one weighting coefficient comprises a different weighting coefficient for each vertex included in the plurality of vertices.

14. The computer system of claim 10 , wherein the head pose estimation engine further configures the processor to scale an adaptive matched filter based on at least one distance included in the depth data, and align the adaptive matched filter with the depth data to determine a location of the head of the user.

15. The computer system of claim 14 , wherein the adaptive matched filter includes a head region and a shoulder region.

16. The computer system of claim 15 , wherein the processor is configured to align the adaptive matched filter with the depth data by:

analyzing the depth data to determine a silhouette of the user;

positioning the adaptive matched filter at a plurality of locations relative to the silhouette of the user;

for each of the plurality of locations:

multiplying each of a plurality of values included in the adaptive matched filter by a corresponding value associated with the silhouette of the user to determine a plurality of products; and

adding the plurality of products to determine a sum; and

determining which location has the highest sum.

17. The computer system of claim 10 , wherein the head pose estimation engine further configures the processor to modify the shape of the three-dimensional reference model by estimating a difference between the shape of the three-dimensional reference model and the depth data, and updating the shape of at least a portion of the three-dimensional reference model based on the difference.

18. The computer system of claim 10 , wherein the at least one sensor is further configured to acquire additional depth data associated with the head of the user, and the head pose estimation engine further configures the processor to:

for each particle included in a first portion of the set of particles, initialize the particle with a different candidate head pose that is based on the global best head pose; and

for each particle included in a second portion of the set of particles, initialize the particle with a different candidate head pose that is not based on the global best head pose.

19. A method for estimating a head pose of a user, comprising:

acquiring depth data associated with a head of the user;

initializing each particle included in a set of particles with a different candidate head pose; and

performing at least one optimization pass that comprises:

performing at least one iterative closest point (ICO) iteration for each particle in the set of particles, wherein each ICP iteration comprises:

rendering a three-dimensional reference model based on the candidate head pose associated with the particle,

comparing the three-dimensional reference model to the depth data to determine at least one error value, and

modifying the candidate head pose associated with the particle based on the at least one error value,

performing at least one particle swarm optimization (PSO) iteration to update a global best head pose associated with the set of particles, and

modifying a shape of the three-dimensional reference model based on the depth data and the global best head pose.

20. The method of claim 19 , wherein comparing the three-dimensional reference model to the depth data to determine the at least one error value is based on at least one weighting coefficient associated with at least one vertex included in the three-dimensional reference model.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF THE THIRD INVENTORS NAME PREVIOUSLY RECORDED ON REEL 039574 FRAME 0919. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 23, 2018
From: MEYER, GREGORY P.; GUPTA, SHALINI; FROSIO, IURI; REDDY, NAGILLA DIKPAL; KAUTZ, JAN
To: NVIDIA CORPORATION
Reel/Frame 045128/0533 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2016
From: MEYER, GREGORY P.; GUPTA, SHALINI; FROSIO, LURI; REDDY, NAGILLA DIKPAL; KAUTZ, JAN
To: NVIDIA CORPORATION
Reel/Frame 039574/0919 →
Continuity (1)
Related Publication 20170046827A1 · Feb 16, 2017