IP Library Granted Patent US 7,996,793
Granted Patent B2
US 7,996,793 · App. 12/422,661 · Granted Aug 9, 2011

Gesture recognizer system architecture

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 7,996,793
App. No.
12/422,661
Granted
Aug 9, 2011
Kind
B2
Abstract

Systems, methods and computer readable media are disclosed for a gesture recognizer system architecture. A recognizer engine is provided, which receives user motion data and provides that data to a plurality of filters. A filter corresponds to a gesture, that may then be tuned by an application receiving information from the gesture recognizer so that the specific parameters of the gesture—such as an arm acceleration for a throwing gesture—may be set on a per-application level, or multiple times within a single application. Each filter may output to an application using it a confidence level that the corresponding gesture occurred, as well as further details about the user motion data.

Claims (63)

1. A method for providing recognition of gestures made by a user using a filter representing a gesture, the filter comprising base information about the gesture, comprising:

receiving data captured by a camera, the data corresponding to a first application;

applying the filter to the data and determining an output from the base information about the gesture;

sending the first application the output;

receiving second data captured by the camera, the data corresponding to a second application;

applying the filter to the second data and determining a second output from the base information about the gesture; and

sending the second application the second output.

2. The method of claim 1 , wherein a filter comprises a parameter about the gesture, further comprising:

receiving from the first application a value for a parameter of the filter; and

wherein determining the output from the base information about the gesture comprises: determining the output from the value of the parameter.

3. The method of claim 2 , further comprising:

receiving from the second application a second value for the parameter of the filter, the second value differing from the value; and

wherein applying the filter to the second data and determining a second output from the base information about the gesture comprises: determining the second output from the second value of the parameter.

4. The method of claim 2 , wherein receiving from the first application the value for a parameter comprises setting the parameter with the value, and receiving data captured by a camera comprises receiving data from a first user, further comprising:

setting the parameter with a second value in response to receiving data captured by the depth camera indicative of a change in the first user's fatigue, an change in the first user's competence, or a second user replacing the first user.

5. The method of claim 2 , wherein receiving from the first application a value for the parameter of the filter comprises:

receiving third data captured by the camera, the third data corresponding to a user of the first application making a body motion or a body pose.

6. The method of claim 2 , wherein a parameter comprises an indication of a body part, a volume of space, a velocity, a direction of movement, an angle, or a place where a movement occurs.

7. The method of claim 1 , wherein the output comprises a confidence level that the data is indicative of the gesture being performed.

8. The method of claim 1 , wherein the data captured by a camera is indicative of a user's first gesture being performed, the first application has a context, and the output comprises a confidence level that the gesture is being performed, further comprising:

changing the context;

receiving third data captured by the camera indicative of the user's first gesture being performed;

determining from the third data that a confidence level that a second gesture represented by a second filter is being performed is greater than the confidence level from the second data that the represented by the filter is being performed.

9. The method of claim 1 , wherein the gesture comprises:

a crouch, a jump, a lean, an arm throw, a toss, a swing, a dodge, a kick, or a block.

10. The method of claim 1 , wherein the filter is a member of a genre package comprising a plurality of filters representing gestures, the genre package comprising a first-person shooter, action, driving, or sports genre package.

11. The method of claim 1 , wherein the base information about the gesture has a plurality of contexts, and a parameter of each context of the base information about the gesture is unique.

12. The method of claim 1 , wherein the filter is received from the first application.

13. The method of claim 1 , wherein a filter comprises a number of inputs, a collective type of inputs, a number of outputs, and a collective type of outputs, comprising:

replacing the filter with a second filter, the second filter comprising base information about the gesture, the number of inputs of the second filter equaling the number of inputs of the filter, the collective type of inputs of the second filter equaling the collective type of inputs of the filter, the number of outputs of the second filter equaling the number of outputs of the filter, the collective type of outputs of the second filter equaling the collective type of outputs of the filter,

receiving third data captured by a camera;

applying the third filter to the data and determining a third output from the base information of the second filter; and

sending the first application the third output.

14. A system for providing recognition of gestures made by a user using a filter representing a gesture, the filter comprising base information about the gesture, comprising:

a processor; and

a memory communicatively coupled to the processor when the system is operational, the memory bearing processor-executable instructions that, when executed on the processor, cause operations comprising:

receiving data captured by a camera, the data corresponding to a first application;

applying the filter to the data and determining an output from the base information about the gesture;

sending the first application the output;

receiving second data captured by the camera, the data corresponding to a second application;

applying the filter to the second data and determining a second output from the base information about the gesture; and

sending the second application the second output.

15. The system of claim 14 , wherein a filter comprises a parameter, wherein the memory further bears processor-executable instructions that, when executed on the processor cause the performance of operations comprising:

receiving from the first application a value for a parameter of the filter; and

wherein determining the output from the base information about the gesture comprises: determining the output from the value of the parameter.

16. The system of claim 15 , wherein the filter is one of a plurality of complimentary filters, and wherein the memory further bears processor-executable instructions that, when executed on the processor cause the performance of operations comprising:

setting a parameter with the value; and

setting a complimentary parameter of a complimentary filter based on the value.

17. The system of claim 14 , wherein the memory further bears processor-executable instructions that, when executed on the processor cause the performance of operations comprising:

receiving voice data; and

determining the first output based on the voice data.

18. The system of claim 14 , wherein

the output comprises an indication of a velocity of movement, a release point, a distance, or a body part that made the gesture.

19. The system of claim 14 , wherein the memory further bears processor-executable instructions that, when executed on the processor cause the performance of operations comprising:

applying a second filter to the data, the second filter representing a second gesture, the second filter comprising base information about the second gesture, and determining a third output from the base information about the second gesture; and

sending the first application the third output.

20. A computer readable storage medium for providing recognition of gestures made by a user using a filter representing a gesture, the filter comprising base information about the gesture, the computer readable storage medium comprising computer readable instructions that when executed on a processor, cause the performance of operations comprising:

receiving data captured by a camera, the data corresponding to a first application; and

applying the filter to the data and determining from the base information about the gesture;

sending the first application the output;

receiving second data captured by the camera, the data corresponding to a second application;

applying the filter to the second data and determining a second output from the base information about the gesture; and

sending the second application the second output.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →