SYSTEMS AND METHODS FOR TRACKING HUMAN HANDS BY PERFORMING PARTS BASED TEMPLATE MATCHING USING IMAGES FROM MULTIPLE VIEWPOINTS
First Claim
1. A system for detecting hand posture using parts based template matching to detect individual human fingers, comprising:
- a processor;
a reference camera configured to capture sequences of frames of video data, where each frame of video data comprises intensity information for a plurality of pixels;
an alternate view camera configured to capture sequences of frames of video data, where each frame of video data comprises intensity information for a plurality of pixels;
memory containing;
a hand tracking application; and
a plurality of edge feature templates that are rotated and scaled versions of a finger template that comprises an edge features template; and
wherein the hand tracking application configures the processor to;
obtain a sequence of frames of video data including a reference frame of video data and a previous frame of video data from the reference camera;
obtain a sequence of frames of video data including an alternate view frame of video data from the alternate view camera;
identify at least one region in the reference frame of video data where pixels changed from the previous frame of video data to the reference frame of video data;
detect at least one candidate finger in the reference frame of video data, where each of the at least one candidate finger is a grouping of pixels identified by searching the identified at least one region in the reference frame of video data for a grouping of pixels that have image gradient orientations that match one of the plurality of edge feature templates; and
verify the correct detection of a candidate finger in the reference frame of video data by locating a grouping of pixels in the alternate view frame of video data that correspond to the candidate finger.
5 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for tracking human hands by performing parts based template matching using images captured from multiple viewpoints are described. One embodiment of the invention includes a processor, a reference camera, an alternate view camera, and memory containing: a hand tracking application; and a plurality of edge feature templates that are rotated and scaled versions of a finger template that includes an edge features template. In addition, the hand tracking application configures the processor to: detect at least one candidate finger in a reference frame, where each candidate finger is a grouping of pixels identified by searching the reference frame for a grouping of pixels that have image gradient orientations that match one of the plurality of edge feature templates; and verify the correct detection of a candidate finger in the reference frame by locating a grouping of pixels in an alternate view frame that correspond to the candidate finger.
24 Citations
41 Claims
-
1. A system for detecting hand posture using parts based template matching to detect individual human fingers, comprising:
-
a processor; a reference camera configured to capture sequences of frames of video data, where each frame of video data comprises intensity information for a plurality of pixels; an alternate view camera configured to capture sequences of frames of video data, where each frame of video data comprises intensity information for a plurality of pixels; memory containing; a hand tracking application; and a plurality of edge feature templates that are rotated and scaled versions of a finger template that comprises an edge features template; and wherein the hand tracking application configures the processor to; obtain a sequence of frames of video data including a reference frame of video data and a previous frame of video data from the reference camera; obtain a sequence of frames of video data including an alternate view frame of video data from the alternate view camera; identify at least one region in the reference frame of video data where pixels changed from the previous frame of video data to the reference frame of video data; detect at least one candidate finger in the reference frame of video data, where each of the at least one candidate finger is a grouping of pixels identified by searching the identified at least one region in the reference frame of video data for a grouping of pixels that have image gradient orientations that match one of the plurality of edge feature templates; and verify the correct detection of a candidate finger in the reference frame of video data by locating a grouping of pixels in the alternate view frame of video data that correspond to the candidate finger. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39)
-
-
37. The system of 35, wherein the hand tracking application is configured to adapt the skin color criterion based upon at least one characteristic of the given edge feature template selected from the group consisting of the scale, and rotation of the given edge feature template relative to the finger template.
-
40. A system for detecting hand posture using parts based template matching to detect individual human fingers, comprising:
-
a processor; a display interface configured to drive a display device; a reference camera configured to capture sequences of frames of video data, where each frame of video data comprises color information for a plurality of pixels; an alternate view camera configured to capture sequences of frames of video data, where each frame of video data comprises color information for a plurality of pixels; memory containing; a hand tracking application; and a plurality of edge feature templates that are rotated and scaled versions of a finger template that are stored in a data structure that includes metadata describing the rotation and scaling applied to the finger template to obtain a given edge feature template, where the finger template comprises; an edge features template; and a plurality of surface color pixel sample locations defined relative to the edge features template; wherein the hand tracking application configures the processor to; obtain a sequence of frames of video data including a reference frame of video data and a previous frame of video data from the reference camera; obtain a sequence of frames of video data including an alternate view frame of video data from the alternate view camera; identify at least one region in the reference frame of video data where pixels changed from the previous frame of video data to the reference frame of video data; detect at least one candidate finger in the reference frame of video data, where each of the at least one candidate finger is a grouping of pixels identified by searching the identified at least one region in the reference frame of video data for a grouping of pixels that have image gradient orientations that match one of the plurality of edge feature templates; and verify the correct detection of a candidate finger in the reference frame of video data by confirming that the colors of the surface color pixel sample locations for the edge feature template from the plurality of edge feature templates that matches the grouping of pixels identified as a candidate finger satisfy a skin color criterion; select a subset of edge feature templates from the plurality of edge feature templates based upon the metadata describing the rotation and scaling of the edge feature template matching the candidate finger in the reference frame of video data; verify the correct detection of a candidate finger in the reference frame of video data by searching along an epipolar line within the alternate view image and with respect to pixels within a predetermined margin relative to the epipolar line for a grouping of pixels that correspond to the candidate finger, where a grouping of pixels corresponds to the candidate finger when they have image gradient orientations that match one of the subset of edge feature templates and the epipolar line is defined by the relative location of the center of the reference camera and the center of the alternate view camera; verify the correct detection of a candidate finger in the reference frame of video data by confirming that the colors of the surface color pixel sample locations for the edge feature template from the plurality of edge feature templates that matches the grouping of pixels corresponding to the candidate finger in the alternate view frame of video data satisfy a skin color criterion; determine distance from the reference camera to a detected finger based upon the disparity between the detected finger in the reference frame of video data and grouping of pixels in the alternate view frame of video data that correspond to the detected finger determine the orientation of the detected finger based upon at least the edge feature template from the plurality of edge feature templates that matched the detected finger; map the determined distance and orientation of the detected finger to a location on the display device; generate a target on the display device at the mapped location using the display interface.
-
-
41. A method of detecting hand posture by performing parts based template matching to detect individual human fingers, comprising:
-
detect at least one candidate finger in the reference frame of video data, where each of the at least one candidate finger is a grouping of pixels identified by searching the identified at least one region in the reference frame of video data for a grouping of pixels that have image gradient orientations that match one of the plurality of edge feature templates; and capturing a sequence of frames of video data including a reference frame of video data and a previous frame of video data using a reference camera, where the reference frame of video data comprises intensity information for a plurality of pixels; capturing a sequence of frames of video data including an alternate view frame of video data using an alternate view camera, where the alternate view frame of video data comprises intensity information for a plurality of pixels; identify at least one region in the reference frame of video data where pixels changed from the previous frame of video data to the reference frame of video data using a processor configured by a hand tracking application; detecting at least one candidate finger in the reference frame of video data using the processor configured by the hand tracking application, where each of the at least one candidate finger is a grouping of pixels identified by searching the reference frame of video data for a grouping of pixels that have image gradient orientations that match one of a plurality of edge feature templates that are rotated and scaled versions of a finger template; and verifying the correct detection of a candidate finger in the reference frame of video data by locating a grouping of pixels in the alternate view frame of video data that correspond to the candidate finger using the processor configured by the hand tracking application.
-
Specification