Contact grouping and gesture recognition for surface computing
AssigneeMicrosoft Corporation
InventorsKuo Zhang, Xueqing Sun, Guanggen Zhang, KeCheng Huang
Life of this patent
Estimating the term…
Abstract
Tools and techniques for contact grouping and gesture recognition for surface computing are provided. These tools receive, from a finger grouping subsystem, data representing velocity parameters associated with contact points, with the contact points representing physical actions taken by users in interacting with software applications presented on a surface computing system. These tools also identify gestures corresponding to the physical actions by analyzing the velocity parameters, and provide indications of the identified gestures to the software applications.
Claims20
A computer-readable storage medium that is not a signal having stored thereon computer-executable instructions that, when loaded into at least one hardware processor and executed, cause the at least one hardware processor to:
- receive at least one indication of a physical action directed by at least one user toward a surface computing system, wherein the physical action comprises a plurality of fingers of the at least one user being in physical contact with the surface computing system to interact with a software application program being presented on the surface computing system and, as a result, each of the plurality of fingers being interpreted by the surface computing system as a contact point of a plurality of contact points;
- associate respective velocity parameters with the plurality of contact points;
- calculate differentials between velocity parameters associated with pairs of the plurality contact points;
- select a first contact point of the plurality of contact points and a second contact point of the plurality of contact points to identify a pair of contact points having a greatest differential in velocity and thereby separately identifying the first contact point as being associated with a first actual hand of the at least one user and the second contact point as being associated with a second actual hand of the at least one user, the first contact point having a first contact point velocity parameter and the second contact point having a second contact point velocity parameter;
- associate the first contact point with a first virtual hand data structure that is representative of the first actual hand;
- associate the second contact point with a second virtual hand data structure that is representative of the second actual hand;
- assign the first contact point velocity parameter to the first virtual hand data structure;
- assign the second contact point velocity parameter to the second virtual hand data structure;
- associate a first remainder of the plurality of contact points with the first virtual hand data structure;
- and
- associate a second remainder of the plurality of contact points with the second virtual hand data structure.
A surface computing system comprising:
- at least one instance of processing hardware;
- at least one bus system in communication with the processing hardware;
- at least one computer-readable storage medium that is not a sign in communication with the processing hardware via the bus system, comprising storage having computer-executable instructions stored thereon that, when loaded into the processing hardware, transform the processing hardware to
- receive at least one indication of a physical action directed by at least one user toward the surface computing system, wherein the physical action is represented by a plurality of contact points that correspond to a plurality of fingers associated with the user;
- associate respective velocity and position parameters with the plurality of contact points;
- select two of the plurality of contact points having a maximum velocity differential therebetween;
- associate a first one of the selected contact points with a first virtual hand data structure;
- associate a second one of the selected contact points with a second virtual hand data structure;
- assign the velocity and position parameters of the first selected contact point to the first virtual hand structure;
- assign the velocity and position parameters of the second selected contact point to the second virtual hand structure;
- and
- calculate a gesture represented by the physical action, based on relative movement between the first and second virtual hand structures as indicated by analysis of the first and second contact points.
A computer-implemented method comprising performing computer-implemented operations for:
- receiving at least one indication of a physical action directed by at least one user toward a surface computing system, wherein the physical action comprises a plurality of fingers of the at least one user being in physical contact with the surface computing system to interact with a software application program being presented on the surface computing system and, as a result, each of the plurality of fingers being interpreted by the surface computing system as a contact point of a plurality of contact points;
- associating respective velocity parameters with the plurality of contact points;
- calculating differentials between velocity parameters associated with pairs of the plurality contact points;
- selecting a first contact point of the plurality of contact points and a second contact point of the plurality of contact points to identify a pair of contact points having a greatest differential in velocity and thereby separately identifying the first contact point as being associated with a first actual hand of the at least one user and the second contact point as being associated with a second actual hand of the at least one user, the first contact point having a first contact point velocity parameter and the second contact point having a second contact point velocity parameter;
- associating the first contact point with a first virtual hand data structure that is representative of the first actual hand;
- associating the second contact point with a second virtual hand data structure that is representative of the second actual hand;
- assigning the first contact point velocity parameter to the first virtual hand data structure;
- assigning the second contact point velocity parameter to the second virtual hand data structure;
- associating a first remainder of the plurality of contact points with the first virtual hand data structure;
- and
- associating a second remainder of the plurality of contact points with the second virtual hand data structure.
Dependencies are inferred from the claim text.