IP Library Granted Patent US 10,503,968
Granted Patent B2
US 10,503,968 · App. 15/076,882 · Granted Dec 10, 2019

Identifying a local coordinate system for gesture recognition

Inventors: Alon Lerner (Holon, IL); Maoz Madmony (Beit Kama, IL)
Assignee: Intel Corporation
G06K9/00355G06F3/017G06F9/52G06K9/42G06K9/6215
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 10,503,968
App. No.
15/076,882
Granted
Dec 10, 2019
Kind
B2
Abstract

Identifying a local coordinate system is described for gesture recognition. In one example, a method includes receiving a gesture from a user across a horizontal axis at a depth camera, determining a horizontal vector for the user based on the received user gesture, determining a vertical vector; and determining a rotation matrix to convert positions of user gestures received by the camera to a frame of reference of the user.

Claims (51)

1. A method for aligning a user's coordinate system with a depth camera's coordinate system to facilitate gesture recognition, the method comprising:

requesting a user to perform one or more gestures, the request to determine the user's coordinate system;

receiving a horizontal swipe gesture from the user at the depth camera, in response to the request, the received horizontal swipe gesture having a path defined by a leftmost endpoint and a rightmost endpoint;

determining a horizontal vector based on the leftmost endpoint and the rightmost endpoint of the received horizontal swipe gesture, wherein the horizontal vector is the horizontal axis of the user's coordinate system;

determining a vertical vector, wherein the vertical vector is the vertical axis of the user's coordinate system; and

determining a rotation matrix relative to the coordinate system of the depth camera, based on the horizontal vector and the vertical vector, to convert positions of user gestures received by the depth camera to a frame of reference of the user, thereby aligning the user's coordinate system with the depth camera's coordinate system.

2. The method of claim 1 , further comprising:

receiving an additional user gesture at the depth camera;

rotating positions of the additional user gesture to positions of the frame of reference of the user; and

recognizing the additional user gesture using the frame of reference of the user.

3. The method of claim 2 , further comprising executing a command corresponding to the additional user gesture.

4. The method of claim 2 , wherein the horizontal vector is a first horizontal vector, and wherein the method further comprises:

determining a second horizontal vector for the user based on the additional user gesture;

comparing the second horizontal vector to the first horizontal vector; and

if the second horizontal vector differs from the first horizontal vector by more than a threshold, then determining a new rotation matrix using the second horizontal vector.

5. The method of claim 1 , wherein determining the vertical vector comprises determining a local direction of gravity using a sensor associated with the depth camera.

6. The method of claim 1 , wherein determining the vertical vector comprises:

recognizing an object in the field of view of the depth camera; and

determining the vertical vector based on the orientation of the recognized object, the object being different from the user.

7. The method of claim 1 , wherein determining the vertical vector comprises:

receiving, by the depth camera, a vertical swipe gesture from the user at the camera, in response to the request, the received vertical swipe gesture a path defined by a bottom endpoint and a top endpoint; and

determining the vertical vector based on the bottom endpoint and the top endpoint.

8. The method of claim 1 , wherein determining the horizontal vector comprises:

defining a vector based on the leftmost and rightmost end points; and

normalizing the vector, thereby providing the horizontal vector.

9. The method of claim 1 , wherein the horizontal swipe gesture is a hand gesture.

10. The method of claim 1 , wherein determining the rotation matrix comprises:

determining an orthonormal coordinate system defined by the horizontal vector, the vertical vector, and a third vector that is orthogonal to one or both the horizontal vector and the vertical vector;

normalizing the horizontal, vertical, and third vectors; and

generating a matrix by taking the normalized vectors as columns in a 3×3 matrix as the rotation matrix.

11. The method of claim 10 , further comprising using one of the leftmost endpoint or the rightmost endpoint as the origin of the orthonormal coordinate system.

12. A non-transitory computer-readable medium having instructions thereon that when executed by one or more processors cause a process to be carried out for aligning a user's coordinate system with a depth camera's coordinate system to facilitate gesture recognition, the process comprising:

receiving, at a depth camera, a gesture from a user across a horizontal axis, wherein the received gesture has a starting point on the horizontal axis and an ending point on the horizontal axis;

determining a horizontal vector for the user based on the received user gesture, wherein the horizontal vector represents the horizontal axis of the user's coordinate system;

determining a vertical vector, wherein the vertical vector represents the vertical axis of the user's coordinate system; and

determining a rotation matrix relative to the coordinate system of the depth camera, based on the horizontal vector and the vertical vector, to convert positions of user gestures received by the depth camera to a frame of reference of the user, thereby aligning the user's coordinate system with the depth camera's coordinate system.

13. The medium of claim 12 , the process further comprising:

determining an orthonormal coordinate system defined by the horizontal vector, the vertical vector and a third vector that is orthogonal to one or both the horizontal vector and the vertical vector; and

using the orthonormal coordinate system to determine the rotation matrix.

14. The medium of claim 13 , wherein determining the rotation matrix comprises:

normalizing the horizontal vector, the vertical vector and the third vector; and

generating a matrix by taking the normalized vectors as columns in a 3×3 matrix as the rotation matrix.

15. The medium of claim 14 , wherein determining an orthonormal coordinate system includes using the starting point as the origin of the orthonormal coordinate system.

16. An apparatus for gesture recognition, the apparatus comprising:

a depth camera to receive a gesture from a user across a horizontal axis, the depth camera having a first coordinate system, and the user having a second coordinate system;

a hand tracking module to determine a horizontal vector for the user based on the received user gesture and to determine a vertical vector, wherein the horizontal vector represents the horizontal axis of the user's coordinate system, and the vertical vector represents the vertical axis of the user's coordinate system; and

a coordinate system transformation module to determine a rotation matrix relative to the coordinate system of the depth camera, based on the horizontal vector and the vertical vector, to convert positions of user gestures received by the depth camera to a frame of reference of the user, thereby aligning the user's coordinate system with the depth camera's coordinate system.

17. The apparatus of claim 16 , further comprising: a gesture recognition module to recognize user gestures using the frame of reference of the user, wherein the hand tracking module determines the vertical vector by determining a local direction of gravity using a sensor associated with the camera.

18. The apparatus of claim 16 , wherein the hand tracking module determines a horizontal vector by determining end positions of a path defined by the gesture, defining a vector based on the end positions, and normalizing the vector.

19. The apparatus of claim 16 , wherein the received gesture has a starting point on a horizontal axis and an end point on the horizontal axis, and wherein the hand tracking module determines the horizontal vector using the starting point as the origin of the vector on the horizontal axis and the end point as a magnitude and a direction.

20. The method of claim 1 , wherein the depth camera's coordinate system is defined by a horizontal axis and a vertical axis of the depth camera, and by a direction in which the depth camera is pointing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2016
From: LERNER, ALON; MADMONY, MAOZ
To: INTEL CORPORATION
Reel/Frame 038062/0696 →
Continuity (1)
Related Publication 20170277942A1 · Sep 28, 2017