Touch-based hover-gesture suppression

Computing devices use touch screen heat maps to detect and suppress unintentional gestures, improving user experience by differentiating between intentional and unintentional touch-based gestures without additional sensors, thus maintaining usability and cost-effectiveness.

WO2026142703A1PCT designated stage Publication Date: 2026-07-02GOOGLE LLC

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
GOOGLE LLC
Filing Date
2024-12-26
Publication Date
2026-07-02

Smart Images

  • Figure US2024061959_02072026_PF_FP_ABST
    Figure US2024061959_02072026_PF_FP_ABST
Patent Text Reader

Abstract

Techniques and apparatuses are described that perform touch-based hover-gesture suppression. In example aspects, a computing device (102) with a touch screen (104) can detect an invalid, unintentional touch-based gesture that occurs after a valid, intentional touch-based gesture. By analyzing heat map matrices provided by the touch screen (104), the computing device (102) distinguishes between these different types of touch-based gestures (110) based on detected changes in coordinates associated with a contact and detected changes in an intensity associated with the contact. With an ability to detect the unintentional touch-based gesture, the computing device (102) can further suppress reporting of the unintentional touch-based gesture to improve the user experience with the touch screen (104). As the computing device (102) can detect the unintentional touch-based gesture without auxiliary sensors, the techniques for touch-based hover-gesture suppression can be implemented without significantly increasing a cost and / or a size of the computing device (102).
Need to check novelty before this filing date? Find Prior Art

Description

TOUCH-BASED HOVER-GESTURE SUPPRESSIONBACKGROUND

[0001] Touch screens provide a convenient means for a user to interact with a computing device. By moving an object (e.g., a finger or a stylus) in a manner that makes physical contact with the touch screen, a user can perform a variety of touch-based gestures that are recognized by the computing device. While it can be intuitive for a user to provide input via a touch screen, sometimes the user may accidentally interact with the touch screen and cause the computing device to recognize an unintentional touch-based gesture. This can be a common occurrence when the user is making several touch-based gestures in rapid succession. To improve the user experience, it is desirable to design a computing device that can detect and suppress unintentional touch-based gestures, or at least make allowance for them.SUMMARY

[0002] Techniques and apparatuses are described that can be used to implement touch-based hover-gesture suppression. As used herein, “gesture suppression” (and more specifically “touchbased hover-gesture suppression”) does not refer to suppressing the user’s gestures, as such, but rather to suppressing a device’s acceptance of and / or acting in response to such gestures. In example aspects, a computing device with a touch screen can detect an invalid, unintentional touch-based gesture (e.g., a hover gesture) that occurs after a valid, intentional touch-based gesture. By analyzing heat map matrices provided by the touch screen, the computing device distinguishes between these different types of touch-based gestures based on a detected change in coordinates associated with a contact and a detected change in an intensity associated with the contact. With an ability to detect the unintentional touch-based gesture, the computing device can further suppress reporting of the unintentional touch-based gesture to improve the user experience with the touch screen. As the computing device can detect the unintentional touch-based gesture without auxiliary sensors, the techniques for touch-based hover-gesture suppression can be implemented without significantly increasing a cost and / or a size of the computing device.

[0003] Aspects described below include a method performed by a computing device to implement aspects of invalid-touch-based-gesture suppression (such as touch-based hover-gesture suppression). The method includes identifying that a first contact on a touch screen is associated with a valid touch-based gesture at a first time interval. The method also includes passing first data as an input to an application, the first data associated with the first contact and associated with the first time interval. The method further includes determining, at a second time interval that occurs after the first time interval, that the first contact on the touch screen changed frombeing associated with the valid touch-based gesture to being associated with an invalid touchbased gesture. The method also includes suppressing the passing of second data to the application, the second data associated with the first contact and associated with the second time interval.

[0004] Aspects described below also include a device with a touch screen and a touch-based gesture detector. The touch-based gesture detector is configured to perform, using contact on the touch screen, any of the described methods.

[0005] Aspects described below include a computer program product comprising computerexecutable instructions that, when executed by a computing device with a touch screen, cause the computing device to perform any one of the described methods.

[0006] Aspects described below also include a system with means for performing touch-based hover-gesture suppression.BRIEF DESCRIPTION OF DRAWINGS

[0007] Apparatuses and techniques for implementing touch-based hover-gesture suppression are described with reference to the following drawings. The same numbers are used throughout the drawings to reference like features and components:FIG. 1 illustrates an example environment in which touch-based hover-gesture suppression can be implemented;FIG. 2-1 illustrates a first example contact sequence in which touch-based hover-gesture suppression can be implemented;FIG. 2-2 illustrates a second example contact sequence in which touch-based hovergesture suppression can be implemented;FIG. 3 illustrates an example implementation of a computing device that can implement aspects of touch-based hover-gesture suppression;FIG. 4 illustrates an example relationship between a touch screen and a computer processor that can implement aspects of touch-based hover-gesture suppression;FIG. 5 illustrates example characteristics of different touch-based gestures;FIG. 6 illustrates example heat map matrices associated with different touch-based gestures;FIG. 7 illustrates an example operation of a touch-based gesture detector for implementing aspects of touch-based hover-gesture suppression;FIG. 8 illustrates an example scheme implemented by a hover suppressor for performing touch-based hover-gesture suppression;FIG. 9 illustrates an example method for performing an aspect of touch-based hovergesture suppression; andFIG. 10 illustrates an example computing system embodying, or in which techniques may be implemented that enable use of, touch-based hover-gesture suppression.DETAILED DESCRIPTION

[0008] While it can be intuitive for a user to provide input via a touch screen, sometimes the user may accidentally interact with the touch screen and cause a computing device to recognize an unintentional touch-based gesture. This can be a common occurrence when the user is making several touch-based gestures in rapid succession. To improve the user experience, it is desirable to design a computing device that can detect and suppress unintentional touch-based gestures.

[0009] Some computing devices distinguish between an intentional and an unintentional touchbased gesture by referencing information provided by auxiliary sensors, including a camera, an accelerometer, a magnetometer, a gyroscope, a motion sensor, a pressure sensor, and / or a microphone. These auxiliary’ sensors, however, can be expensive and / or can have a considerable footprint, which may not be feasible for space-constrained devices. It can therefore be challenging to design a computing device that can detect and suppress unintentional touch-based gestures without increasing a cost and / or a size of the computing device.

[0010] To address this challenge, techniques are described that implement touch-based hovergesture suppression. As used herein, “'gesture suppression” (and more specifically "touch-based hover-gesture suppression”) does not refer to suppressing the user’s gestures, as such, but rather to suppressing a device’s acceptance of and / or acting in response to such gestures. In example aspects, a computing device with a touch screen can detect an invalid, unintentional touch-based gesture (e.g.. a hover gesture) that occurs after a valid, intentional touch-based gesture. By analyzing heat map matrices provided by the touch screen, the computing device distinguishes between these different types of touch-based gestures based on a detected change in coordinates associated with a contact and a detected change in an intensity7associated with the contact. With an ability7to detect the unintentional touch-based gesture, the computing device can further suppress reporting of the unintentional touch-based gesture, to improve the user experience with the touch screen. As the computing device can detect the unintentional touch-based gesture without auxiliary7sensors, the techniques for touch-based hover-gesture suppression can be implemented without significantly increasing a cost and / or a size of the computing device.Operating Environment

[0011] FIG. 1 is an illustration of an example environment 100 in which touch-based hovergesture suppression can be implemented. In the depicted environment 100, a computing device 102 includes a touch screen 104. The touch screen 104 can also be referred to as a touchpanel, a touch monitor, or a touchscreen. Although the computing device 102 is shown to be a smartphone, the computing device 102 can generally be implemented as any type of device or object with a touch screen, as further described with respect to FIG. 3.

[0012] The touch screen 104 can be implemented using a variety of different types of touch-screen technology. In a first example, the touch screen 104 is a capacitive touch screen (e.g., a surface capacitive touch screen or a projected capacitive touch screen). Other suitable types of touch screens 104 include a resistive touch screen, an optical -imaging touch screen, or a surfaceacoustic-wave touch screen.

[0013] In the environment 100. a user 106, or more generally a person, uses an object 108 to interact with the touch screen 104 and perform different types of touch-based gestures 110. In this example, the object 108 represents an appendage or body part (e.g., one or more fingers). Other example objects 108 can include a stylus, a hand-held object, or any type of entity that can interact with the touch screen 104.

[0014] With the object 108, the user 106 may intentionally perform some touch-based gestures 110 including a tap gesture 112 (tap 112) or a swipe gesture 114 (swipe 114). Toperform a tap gesture 112, the user 106 briefly touches the object 108 to a point on the touch screen 104. In general, the tap gesture 112 occurs at one position on the touch screen 104 and does not move to a different position on the touch screen 104. To perform a swipe gesture 114, the user 106 touches the object 108 to a point on the touch screen 104 and moves the object 108 across the touch screen 104 in one or more directions. While the tap gesture 112 is relatively stationary on the touch screen 104, the swipe gesture 114 has a direction of motion, which can occur over a longer duration in comparison to a duration of the tap gesture 112. Other intentional touch-based gestures 110 are also possible, including a hold gesture, a multi -tap gesture, a two-finger pinch gesture, a two-finger spread gesture, a three-finger slide gesture, and so forth.

[0015] The user 106 may also unintentionally or accidentally perform other touch-based gestures 110 after performing an intentional touch-based gesture 110. An unintentional touchbased gesture 110 can occur when the object 108 continues to interact with the touch screen 104 (e.g., maintains contact with the touch screen 104) after the user 106 made an intentional touchbased gesture 110 using the object 108. An example unintentional touch-based gesture 110 is a hover gesture 116 (hover 116). The hover gesture 116 has a direction of motion, similar to the swipe gesture 114. The hover gesture 116 is also considered to have a lighter touch compared to an intentional touch-based gesture 110. This causes an intensity of the hover gesture 116 to be significantly low er compared to an intensity of an intentional touch-based gesture 110, as further described with respect to FIG. 5 and FIG. 6. Generally speaking, the hover gesture 116 can occurafter the user 106 performs an intentional touch-based gesture 110 or can occur between two intentional touch-based gestures 110, amongst other scenarios. To improve the user experience, the computing device 102 performs aspects of hover suppression 118 (also referred to as hovergesture suppression), which enables the computing device 102 to detect and suppress the hover gesture 116, as further described in FIG. 2-1 and FIG. 2-2.

[0016] FIG. 2-1 illustrates a first example contact sequence 200-1 in which the computing device 102 can perform hover suppression 118. At 202, the user 106 performs a first tap gesture 112-1 (first tap 112-1) by tapping an object 108 (e.g., a finger) at a first position on the touch screen 104. As the user 106 goes to remove the object 108 off of the touch screen 104 at 204, the user 106 does not lift the object 108 far enough away from the touch screen 104. Consequently, the object 108 continues to interact with the touch screen 104 as it moves towards an edge of the touch screen 104.

[0017] Without hover suppression 118, other computing devices may recognize this unintentional interaction of the object 108 with the touch screen 104 at 204 as an intentional swipe gesture 114. The computing device 102 of FIG. 1, however, detects this unintentional interaction as a hover gesture 116. The computing device 102 suppresses the hover gesture 116 by not interpreting the hover gesture 116 as a valid touch-based input. By suppressing the hover gesture 116, the computing device 102 does not pass information about the hover gesture 116 to an application that is running on the computing device 102. As such, the application (or more generally the computing device 102) does not perform an action based on the detection of the hover gesture 116.

[0018] In the example shown in FIG. 2-1, the hover gesture 116 occurs after an intentional touchbased gesture (e.g., the first tap gesture 112-1). Other situations are also possible in which the hover gesture 116 occurs between two intentional touch-based gestures 110, as further described with respect to FIG. 2-2.

[0019] FIG. 2-2 illustrates a second example contact sequence 200-2 in which the computing device 102 can perform hover suppression 118. In this example, the user 106 can be interacting with a keyboard application to type a message. At 206, the user 106 performs a second tap gesture 112-2 (second tap 112-2) by tapping the object 108 (e g., a finger) at a second position on the touch screen 104. Here the term “second” is used as a label to distinguish it from “first” used in the description of Fig. 2-1, and, likewise, “third”, below, is used as a label. As the user 106 goes to move the object 108 towards a third position on the touch screen 104 at 208, the user 106 does not lift object 108 far enough away from the touch screen 104. Consequently, the object 108 continues to interact with the touch screen 104 as it moves from the second position to the thirdposition. At 210, the user 106 performs a third tap gesture 112-3 (third tap 112-3) by tapping the object 108 at the third position on the touch screen 104.

[0020] Without hover suppression 118, other computing devices may recognize the unintentional interaction of the object 108 with the touch screen 104 at 208 as an intentional swipe gesture 114. The computing device 102 of FIG. 1, however, detects this unintentional interaction as a hover gesture 1 1 . The computing device 102 suppresses the hover gesture 11 by not interpreting the hover gesture 116 as a valid touch-based input. By suppressing the hover gesture 116, the computing device 102 does not pass information about the hover gesture 116 to an application that is running on the computing device 102. As such, the computing device 102 does not perform an action based on the hover gesture 116. The suppression of the hover gesture 116 can improve the user experience and make it easier for the user 106 to perform multiple intentional touch-based gestures 110 in rapid succession. An exemplary' computing device 102 is further described with respect to FIG. 3.

[0021] FIG. 3 illustrates an example computing device 102. The computing device 102 is illustrated with various non-limiting example devices, including a desktop computer 102-1, a tablet 102-2, a laptop 102-3, a television 102-4, a computing watch 102-5, computing glasses 102-6, a gaming system 102-7, a microwave 102-8, and a vehicle 102-9. Other devices may also be used, including a home service device, a smart speaker, a smart thermostat, a baby monitor, a Wi-Fi™ router, a drone, a trackpad, a drawing pad, a netbook, an e-reader, a home automation and control system, a wall display, or another home appliance. Note that the computing device 102 can be wearable, non-wearable but mobile, or relatively immobile (e.g., desktops and appliances).

[0022] The computing device 102 includes the touch screen 104. The touch screen 104 includes a touch panel 302 and a display 304. The touch panel 302 includes sensors capable of detecting an interaction of an object with the touch screen 104, as shown in FIG. 4. Generally speaking, the touch panel 302 provides an interface for the user 106 to send inputs to the computing device 102 through touch-based gestures 110. The display 304 can present visual content to the user 106. The touch panel 302 can be layered on the top of the display 304 in some implementations of the touch screen 104.

[0023] The computing device 102 also includes one or more computer processors 306 and at least one computer-readable medium 308 (e.g.. non-transitory computer-readable medium). The computer-readable medium 308 can include memory media and / or non-transitory storage media. Applications and / or an operating system (not shown) embodied as computer-readable instructions on the computer-readable medium 308 can be executed by the computer processor 306 to providesome of the functionalities described herein. The computer-readable medium 308 can include a touch-based gesture detector 310, which is capable of detecting and recognizing different types of touch-based gestures 110. An example implementation of the touch-based gesture detector 310 is further described with respect to FIG. 7.

[0024] The touch-based gesture detector 310 can pass information regarding a recognized touchbased gesture 110 to one or more applications 312 that are running on the computing device 102. These applications 312 can include a keyboard application, a drawing application, or a gaming application, for instance. An application 312 can perform an action based on the information associated with the recognized touch-based gesture 110. For example, the application 312 can cause the computing device 102 to present different visual content on the display 304 based on the recognized touch-based gesture 110.

[0025] The touch-based gesture detector 310 includes a hover suppressor 314, which performs aspects of hover suppression 118. With the hover suppressor 314, the touch-based gesture detector 310 can suppress unintentional touch-based gestures 110 including the hover gesture 116. An example operation of the hover suppressor 314 is further described with respect to FIG. 8.

[0026] The computing device 102 can also include a network interface 316 for communicating data over wired, wireless, or optical networks. For example, the network interface 316 may communicate data over a local-area-network (LAN), a wireless local-area-network (WLAN), a personal -area-network (PAN), a wide-area-network (WAN), an intranet, the Internet, a peer-to-peer network, point-to-point network, a mesh network, Bluetooth®, and the like. Example operations of the touch screen 104 and the computer processor 306 are further described with respect to FIG. 4.Touch-Based Hover-Gesture Suppression

[0027] FIG. 4 illustrates an example relationship betw een the touch screen 104 and the computer processor 306. In the depicted configuration, the touch screen 104 is communicatively coupled to the computer processor 306. The touch panel 302 of the touch screen 104 includes multiple sensors 402-1 to 402-S, where S represents a positive integer. The computer processor 306 implements the touch-based gesture detector 310 and the application 312. The touch-based gesture detector 310 is communicatively coupled to the sensors 402-1 to 402-S of the touch panel 302. The touch-based gesture detector 310 is also communicatively coupled to the application 312.

[0028] During an operation of the computing device 102, the touch panel 302 uses the sensors 402-1 to 420-S to detect one or more touch events. A touch event represents a situationin which the user 106 interacts with the touch screen 104 by performing one or more touch-based gestures 110. The touch panel 302 generates touch-screen data 404 on a continual or periodic basis. As such, each instance of touch-screen data 404 is associated with a particular time interval. Each time interval can be referred to as a frame 406, which is represented by the variable The touch screen data 404 includes raw data that is measured by the sensors 402-1 to 402-S.

[0029] In example implementations, the touch-screen data 404 includes a heat map matrix 408 with multiple cells 410. This is not a heat map matrix 408 in terms, necessarily, of representing intensity of heat, as such, but rather just varying degrees of intensity of interaction. Each cell 410 is associated with a portion of the touch screen 104 and has an intensity value 412. The intensity’ value 412 represents a degree to which the touch panel 302 senses an object 108 (e.g., senses the touch from an object 108). A high intensity' value 412 can indicate a strong interaction of the object 108 with the touch screen 104. In contrast, a low’ intensity' value 412 can indicate a weak interaction of the object 108 with the touch screen 104 or an absence of an interaction (e.g., no interaction of the object 108 with the touch screen 104). In FIG. 4, cells 410 with higher intensity' values 412 are indicated with darker shading and / or denser fill patterns while cells 410 with lower intensity' values 412 are indicated with lighter shading and / or less-dense fill patterns.

[0030] For many types of touch screens 104. the intensity value 412 can correspond to a closeness of the object 108 to the touch screen 104 and / or an amount of pressure the object 108 exerts on the touch screen 104. For instance, higher intensity values 412 can occur the closer the object 108 is to the touch screen 104 or the harder the object 108 touches the touch screen 104. Lower intensity values 412 can occur the farther away the object 108 is to the touch screen 104 or the lighter the object 108 touches the touch screen 104. Over time, the touch panel 302 generates multiple heat map matrices 408 associated with different frames 406, as shown in FIG. 6.

[0031] The heat map matrix 408 of FIG. 4 is shown to include intensity values 412 for two interactions. These interactions are referred to as contacts 414-1 and 414-2. The contacts 414-1 and 414-2 can be associated with tw o different touch-based gestures 110 or a same touch-based gesture 110 (e.g.. a multi-finger touch-based gesture). The contacts 414 occupy different regions of the heat map matrix 408. These regions can have similar or different shapes, and can have similar or different intensities. For illustration purposes, the contacts 414-1 and 414-2 are shown to have regions that have an approximately symmetric intensity' profile across at least one dimension of the heat map matrix 408. Other intensity profiles are also possible, including examples in which the regions have asymmetrical intensity profiles.

[0032] The intensity' values 412 presented by the heat map matrix 408 can vary depending on various conditions, including a grounding condition of the computing device 102, a presence (orabsence) of a case or a screen protector, or a manner in which the computing device 102 is held (e.g., an orientation of the computing device 102). The techniques for performing hover suppression 118 can account for these variations by analyzing ratios of heat map volumes associated with a contact 414 instead of analyzing the intensity values 412 directly, as further described with respect to FIG. 7 and FIG. 8.

[0033] The touch-based gesture detector 310 accepts the touch-screen data 404 from the touch screen 104. Using the heat map matrix 408, the touch-based gesture detector 310 detects the contacts 414-1 and 414-2, and associates the contacts 414-1 and 414-2 with one or more touchbased gestures 110. The hover suppressor 314 evaluates each contact 414 to determine whether or not the contact 414 is associated with the hover gesture 116 for one or more frames 406. In some cases, a contact 414 can correspond to different touch-based gestures 110 over different time periods. In the case of the contact sequence 200-1 of FIG. 2-1 and the contact sequence 200-2 of FIG. 2-2, a contact 414 can correspond to at least one intentional touch-based gesture 110 and at least one unintentional touch-based gesture 110.

[0034] Upon detecting an intentional touch-based gesture 110, the touch-based gesture detector 310 generates gesture data 416. The gesture data 416 can indicate the type of touch-based gesture 110, a position and / or movement associated with the intentional touch-based gesture 110, and optionally other information about the intentional touch-based gesture 110 (e.g., a coordinate associated with the corresponding contact 414 or an intensity profile of the corresponding contact 414). The touch-based gesture detector 310 passes the gesture data 416 to the application 312. The application 312 can perform an action based on the gesture data 416 (for the intentional touch-based gesture). Example actions can include changing content that is presented on the display 304.

[0035] Upon detecting an unintentional touch-based gesture 110, the touch-based gesture detector 310 can suppress the generation of the gesture data 416 (for the unintentional touch-based gesture) and / or can suppress the passing of the gesture data 416 (for the unintentional touch-based gesture) to the application 312. to perform an aspect of hover suppression 118. With hover suppression 118, the touch-based gesture detector 310 prevents the application 312 from performing an action based on gesture data 416 associated with an unintentional touch-based gesture 110. Differences between an intentional touch-based gesture 110 and an unintentional touch-based gesture 110 are further described with respect to FIG. 5 and FIG. 6.

[0036] FIG. 5 illustrates example characteristics of different touch-based gestures 110. A graph 500 depicts a change in an intensity associated with a contact 414 as the contact sequence 200-2 of FIG. 2-2 occurs over time. At 206, the tap gesture 112-2 of the contactsequence 200-2 produces a first peak intensity. The first peak intensity can occur due to a hard touch of the object on the touch screen 104 as the user 106 performs the tap gesture 112-2. At 208, the intensity decreases as the user 106 accidentally performs the hover gesture 116. The intensity associated with the hover gesture 116 can be significantly less than the first peak intensity at 206 due to the light touch of the object 108 on the touch screen 104 as the user 106 moves the object 108 towards a next position on the touch screen 104. At 210, the intensity increases as the user 106 performs the third tap gesture 112-3. The intensity at 210 represents a second peak intensity.

[0037] In general, a difference in intensity between the two tap gestures 112-2 and 112-3 is significantly less than differences in intensity between the hover gesture 116 and each of the tap gestures 112-2 and 112-3. Also, the intensity associated with the intentional touch-based gestures 110 (e.g., the tap gestures 112-2 and 112-3) is significantly higher than the intensity associated with the unintentional touch-based gesture 110 (e.g., the hover gesture 116). The touch-based gesture detector 310 can use this difference in intensity to detect and / or recognize the hover gesture 116, as further described with respect to FIG. 8.

[0038] As can be seen in the graph 500, the object 108 that performs the two tap gestures 112-2 and 112-3 and the hover gesture 116 continuously maintains an interaction with the touch screen 104 over time. As such, the touch-based gesture detector 310 can recognize this interaction as occurring from a same contact 414. The intensity can be analyzed by the touch-based gesture detector 310 through heat map matrices 408 generated by the touch screen 104, as further described with respect to FIG. 6.

[0039] FIG. 6 illustrates example heat map matrices 408-1, 408-2, and 408-3 associated with the contact sequence 200-2. The heat map matrices 408-1, 408-2, and 408-3 are associated with different time intervals indicated at 206, 208, and 210. These time intervals are represented by frames 406-1, 406-2, and 406-3, respectively. Although not explicitly shown, the touch screen 104 can generate other heat map matrices 408 at different frames 406 that occur prior to 206, between 206 and 208, between 208 and 210, and / or after 210. In this example, the heat map matrices 408-1, 408-2, and 408-3 indicate occurrence of a single interaction with the touch screen 104, as represented by the contact 414. Other situations are also possible in which the heat map matrices 408-1, 408-2, and 408-3 indicate occurrences of more than one interaction with the touch screen 104 (e.g., multiple contacts 414).

[0040] The differences in intensities and positions of the tap gesture 112-2, the hover gesture 116, and the tap gesture 112-3 can be seen in the heat map matrices 408-1, 408-2, and 408-3. In the heat map matrix 408-1, the contact 414 has a first intensity at the second position as the user 106performs the tap gesture 112-2. The second position can generally represent coordinates on the touch screen 104 that correspond to a peak intensity of the contact 414 within the heat map matrix 408-1.

[0041] The intensity and position of the contact 414 changes when the user 106 accidentally performs the hover gesture 116 at 208. As can be seen in the heat map matrix 408-2, the intensity of the contact 414 within the heat map matrix 408-2 decreases relative to the intensity of the contact 414 within the heat map matrix 408-1. A position of the contact 414 within the heat map matrix 408-2 also changes relative to the position of the contact 414 within the heat map matrix 408-1. Within the heat map matrix 408-2, the contact 414 can be described as having a second intensity at a fourth position. The second intensity is less than the first intensity associated with the heat map matrix 408-1, which can be due to the lighter touch associated with the hover gesture 116. The fourth position is different from the second position associated with the heat map matrix 408-1 due to the movement associated with the hover gesture 116.

[0042] The intensity and position of the contact 414 changes again when the user 106 intentionally performs the tap gesture 112-3 at 210. In the heat map matrix 408-3, the contact 414 has a third intensity at the third position. The third intensity' is greater than the second intensity associated with the heat map matrix 408-2. Also, the third position is different than the fourth position associated with the heat map matrix 408-2. The touch-based gesture detector 310 can recognize the changes in intensity and position of the contact 414 over time to distinguish between an intentional touch-based gesture 110 and an unintentional touch-based gesture 110, as further described w ith respect to FIG. 7 and FIG. 8.

[0043] FIG. 7 illustrates an example operation of a touch-based gesture detector 310 for performing hover suppression 118. In the depicted configuration, the touch-based gesture detector 310 includes a segmenter 702 and the hover suppressor 314. The segmenter 702 recognizes individual contacts 414 within a heat map matrix 408 provided by the touch screen 104. The segmenter 702 can also recognize a same contact 414 as occurring across multiple heat map matrices 408 over multiple frames 406. In general, the segmenter 702 analyzes a heat map matrix 408 and generates information about each contact 414 that is present within the heat map matrix 408.

[0044] The hover suppressor 314 perfonns aspects of hover suppression 118. In an example implementation, the hover suppressor 314 includes safeguard logic 704, a heat map volume calculator 706, a hover candidate detector 708, a classifier 710, and storage 712. The safeguard logic 704, the heat map volume calculator 706, the hover candidate detector 708, and the classifier 710 can be implemented using any combination of softw are, firmw are, or hardware. Forexample, the safeguard logic 704, the hover candidate detector 708, and the classifier 710 can be implemented using comparators. The heat map volume calculator 706 can be implemented using a summation circuit. The storage 712 can be implemented using a buffer, cache memory', a queue, or another type of memory storage element. Another implementation is also possible in which the classifier 710 is implemented using a machine-learned model.

[0045] The safeguard logic 704 decreases a probability of the hover suppressor 314 incorrectly suppressing an intentional touch-based gesture 110. In an example implementation, the safeguard logic 704 prevents the hover suppressor 314 from suppressing a swipe gesture 114. In particular, the safeguard logic 704 can distinguish between a swipe gesture 114 and a hover gesture 116, using a swipe distance threshold 714, as further described below.

[0046] The heat map volume calculator 706 calculates a heat map volume associated with a contact 414, e.g. by summing intensity7values of cells within a set of cells within the heat map matrix 408 that is associated with the contact 412. In general, the heat map volume represents an intensity of the contact 414. The classifier 710 uses the heat map volume to recognize the hover gesture 116.

[0047] The hover candidate detector 708 provides a first level of discrimination for distinguishing the hover gesture 116 from other touch-based gestures 110. In an example implementation, the hover candidate detector 708 evaluates a distance that a contact 414 moves between a current frame and a prior frame. In particular, the hover candidate detector 708 compares this measured distance to a hover distance threshold 716, as further described below7. Explained another way, the hover candidate detector 708 evaluates a position of the contact 414 over time to determine if a change in the contact 414’s position reflects an amount of motion associated with the hover gesture 116. The hover distance threshold 716 can have a predetermined value that is less than the swipe distance threshold 714.

[0048] The classifier 710 can classify a contact 414 as being associated with the hover gesture 116 for a particular frame 406. To perfonn this classification, the classifier 710 evaluates an intensity of the contact 414 to determine if the intensity reflects the hover gesture 116. In particular, the classifier 710 references the heat map volume generated by the heat map volume calculator 706 to determine if the contact 414 is associated with the hover gesture 116. The classifier 710 can apply one or more ratio thresholds 718 to appropriately classify the contact 414. If the contact 414 is associated with the hover gesture 116. the classifier 710 causes the touch-based gesture detector 310 to skip generating the gesture data 416 and / or to skip passing the gesture data 416 to the application 312. In this manner, the computing device 102 can suppress the hover gesture 116.

[0049] The storage 712 stores information associated with past frames 720. This information can include information generated by the touch screen 104 (e.g., a heat map matrix 408), information generated by the segmenter 702, and / or heat map volumes generated by the heat map volume calculator 706. The hover candidate detector 708 and / or the classifier 710 can access the storage 712 to reference these past frames 720. As further described below, the past frames 720 include a list of frames that are determined to be associated with an intentional touch-based gesture 110. These frames can be identified or classified as “valid” frames.

[0050] During an operation of the computing device 102, the segmenter 702 accepts touch-screen data 404 from the touch screen 104. The segmenter 702 generates segmentation data 722 based on the touch-screen data 404. For each contact 414 that is detected by the segmenter 702, the segmentation data 722 can include a coordinate 724, a region 726, and an initial classification 728. The coordinate 724 for a current frame 406 (fi) is represented by p(fi), and is a position on the touch screen 104 that corresponds with a point of interaction made by an object 108 to produce the contact 414. The region 726 can indicate a set of cells 410 within the heat map matrix 408 that have intensity values 412 associated with the contact 414. The initial classification 728 of the contact 414 can be set to a valid classification (e.g., a touch classification) by default. This means that the hover suppressor 314 and any other logic that is upstream from the hover suppressor 314 considers the segmentation data 722 associated with the contact 414 to correspond to an intentional touch-based gesture 110 by default.

[0051] The hover suppressor 314 accepts the touch-screen data 404 from the touch screen 104 and accepts the segmentation data 722 from the segmenter 702. The hover suppressor 314 performs aspects of hover suppression 118 using the safeguard logic 704, the heat map volume calculator 706, the hover candidate detector 708, the classifier 710, and the storage 712, as further described with respect to FIG. 8.

[0052] FIG. 8 illustrates an example scheme 800 implemented by the hover suppressor 314 for performing hover suppression 118. At 802, the safeguard logic 704 evaluates movement of a contact 414 and determines if the movement corresponds to a swipe gesture 114. For example, the safeguard logic 704 compares a coordinate 724 of a contact 414 that is present within a current frame 406 (e.g., p(fi)) to a prior coordinate 724 of the contact 414 within a starting frame 406 (e.g., p(fs)). The starting frame 406 (fs) represents a first time interval that the contact 414 is detected within a heat map matrix 408. In this case, the contact 414 is not detected in (or is absent from) a heat map matrix 408 associated with a previous frame 406 (fs- 1).

[0053] If a distance between the current coordinate 724 of the contact 414 (e.g., p(fi)) and a starting coordinate 724 of the contact 414 (e.g., p(fs)) is greater than or equal to the swipe distancethreshold 714, the safeguard logic 704 causes hover suppression 118 to be bypassed, as indicated at 804. In other words, the safeguard logic 704 can prevent the hover suppressor 314 from further evaluating the data associated with the contact 414 for the current frame 406 and / or for subsequent frames 406 (e.g., fi+i). Otherwise, if the distance between the current coordinate 724 of the contact 414 (e.g., p(fi)) and the starting coordinate 724 (e.g., p(fs)) is less than the swipe distance threshold 714, then the hover suppressor 314 continues evaluating the contact 414 and the process proceeds to 806. In an example implementation, a value of the swipe distance threshold 714 can be set to a value that is equal to several millimeters. For example, the swipe distance threshold 714 can be approximately equal to 5. 8, 10, 12, or 15 millimeters.

[0054] At 806, the hover candidate detector 708 evaluates the contact 414 to determine if movement of the contact 414 corresponds to a hover gesture 116. For example, the hover candidate detector 708 compares the current coordinate 724 of the contact 414 (e.g., p(fi)) to a past coordinate 724 of the contact 414 that is associated with a peak intensity (e g., p(fm), where fmrepresents the past frame 720 with the peak intensity). The past frame 720 with the peak intensity can represent a frame 406 that has a highest heat map volume associated with the contact 414. More specifically, the hover candidate detector 708 determines a distance between the current coordinate 724 p(fi) and the past coordinate 724 p(fm), and compares this distance to the hover distance threshold 716. If the distance is less than the hover distance threshold 716, the process continues to 808. At 808, the initial classification 728 of the contact 414 is maintained and downstream hover-suppression logic is bypassed. Otherwise, if the distance is greater than or equal to the hover distance threshold 716, the process continues at 810. In an example implementation, the hover distance threshold 716 is set to a value that is equal to a few millimeters. For example, the hover distance threshold 716 can be approximately equal to 1, 2, 3, or 4 millimeters.

[0055] At 810, the classifier 710 determines if an intensity7of the contact 414 is associated with the hover gesture 116. In particular, the classifier 710 calculates a heat map ratio, which represents a ratio of a heat map volume of a current frame (e.g., V(fi), where the variable V represents a heat map volume) to a heat map volume of a previous frame associated with a peak intensity (e.g., V(fm)). The classifier 710 can compare the heat map ratio to multiple ratio thresholds 718 to appropriately classify the contact 414.

[0056] In a first comparison at 810, the classifier 710 compares the heat map ratio to a first ratio threshold 718 represented by Ro. If the heat map ratio is less than the first ratio threshold 718 (e.g., Ro), the classifier 710 classifies the contact 414 as being associated with the hover gesture 116 for the current frame 406, as indicated at 812. In other words, the classifier 710classifies the current frame 406 (f) as an ‘'invalid” frame of the contact 414. Invalid frames are frames associated with unintentional touch-based gestures 110. Otherwise, if the heat map ratio is greater than or equal to the first ratio threshold 718 (Ro), the process continues at 814. In an example implementation, the first ratio threshold 718 (Ro) is set to a value of 0.8.

[0057] At 814, the classifier 710 determines if the heat map ratio indicates a swipe gesture 114. In a second comparison, the classifier 710 compares the heat map ratio to a second ratio threshold 718 represented by Ri. If the heat map ratio is greater than or equal to the second ratio threshold 718 (Ri). then the classifier 710 classifies the contact 414 as being associated with the swipe gesture 114 for the current frame 406 (fi), as indicated at 816. In other words, the classifier 710 classifies the current frame as a '‘valid” frame of the contact 414. Valid frames are frames associated with intentional touch-based gestures 110, and can be stored within the storage 712 for later reference. Otherwise, if the heat map ratio is between the first ratio threshold 718 (Ro) and the second ratio threshold 718 (Ri), the classifier 710 maintains the initial classification 728 and the current frame is considered a “valid” frame, as indicated at 808. In an example implementation, the second ratio threshold 718 (Ri) is set to 0.9. The above process 800 can be repeated for other contacts 414 that are identified within a current frame 406 (fi).

[0058] In a situation in which the hover suppressor 314 evaluates a first frame 406 (fs) of a contact 414, the process 800 can skip to 808 to maintain the current classification. This is because for a first frame 406 (fs), there is not enough information to evaluate the movement and / or heat map ratio at 802, 806, and 810.Example Method

[0059] FIG. 9 depicts an example method 900 for implementing aspects of touch-based hovergesture suppression. Method 900 is shown as sets of operations (or acts) performed but not necessarily limited to the order or combinations in which the operations are shown herein. Further, any of one or more of the operations may be repeated, combined, reorganized, or linked to provide a wide array of additional and / or alternate methods. In portions of the following discussion, reference may be made to the environment 100 of FIG. 1, and entities detailed in FIG. 3, reference to which is made for example only. The techniques are not limited to performance by one entity or multiple entities operating on one device.

[0060] At 902 in FIG. 9. a first contact on a touch screen is identified as being associated with a valid touch-based gesture at a first time interval. For example, the touch-based gesture detector 310 identifies that a contact 414 on the touch screen 104 is associated with a valid touch-based gesture 110 at a first time interval (e.g., a first frame 406). Example valid touch-based gestures 110 can include a tap gesture 112 or a swipe gesture 114, as shown in FIG. 1.

[0061] At 904, data associated with the first contact and associated with the first time interval is passed as an input to an application. For example, the touch-based gesture detector 310 passes gesture data 416 to the application 312, as shown at FIG. 4. The gesture data 416 is associated with the contact 414 and the first time interval.

[0062] At 906, the first contact on the touch screen is determined, at a second time interval that occurs after the first time interval, to have changed from being associated with the valid touchbased gesture to being associated with an invalid touch-based gesture. For example, the touchbased gesture detector 310 determines that the contact 414 on the touch screen 104 changed from being associated with the valid touch-based gesture 110 to being associated with an invalid touchbased gesture 110 at a second time interval. The second time interval occurs after the first time interval. An example invalid touch-based gesture 110 can include the hover gesture 116. The determination can be made based on the movement and / or intensity of the contact 414, as described with respect to 806 and 810 in FIG. 8.

[0063] At 908, the passing of data associated with the first contact and associated with the second time interval to the application is suppressed. For example, the hover suppressor 314 suppresses the passing (and / or the generation of) gesture data 416 associated with the contact 414 and associated with the second time interval. With hover suppression 118, the computing device 102 can improve the user experience with the touch screen 104 and enable the user 106 to perform multiple intentional touch-based gestures 110 in rapid succession.

[0064] The described techniques for performing hover suppression 118 can be perfonned ithout relying on data from other auxiliary sensors. As such, the techniques for touch-based hovergesture suppression can be implemented without significantly increasing a cost and / or a size of the computing device. Although the above techniques for detecting and suppressing an unintentional touch-based gesture 110 are described with respect to a hover gesture 116, these techniques can be readily adapted to other types of unintentional touch-based gestures 110, including a stationary hover gesture or an unintentional tap gesture.Example Computing System

[0065] FIG. 10 illustrates various components of an example computing system 1000 that can be implemented as any type of client, server, and / or computing device as described with reference to the previous FIG. 3 to implement aspects of touch-based hover-gesture suppression.

[0066] The computing system 1000 includes communication devices 1002 that enable wired and / or wireless communication of device data 1004 (e.g., received data, data that is being received, data scheduled for broadcast, or data packets of the data). The device data 1004 or other device content can include configuration settings of the device, media content stored on the device, and / or information associated with a user of the device. Media content stored on the computing system 1000 can include any type of audio, video, and / or image data. The computing system 1000 includes one or more data inputs 1006 via which any type of data, media content, and / or inputs can be received. Example types of data include human utterances, user-selectable inputs (explicit or implicit), messages, music, television media content, recorded video content, and any other type of audio, video, and / or image data received from any content and / or data source. Other types of data inputs 1006 can include data associated with touch-based gestures 110, which are detected using a touch screen 104.

[0067] The computing system 1000 also includes communication interfaces 1008. which can be implemented as any one or more of a serial and / or parallel interface, a wireless interface, any type of network interface, a modem, and as any other type of communication interface. The communication interfaces 1008 provide a connection and / or communication links between the computing system 1000 and a communication network by which other electronic, computing, and communication devices communicate data with the computing system 1000.

[0068] The computing system 1000 includes one or more processors 1010 (e.g., any of microprocessors, controllers, and the like), which process various computer-executable instructions to control the operation of the computing system 1000. Alternatively or in addition, the computing system 1000 can be implemented with any one or combination of hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits which are generally identified at 1012. Although not shown, the computing system 1000 can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, including a memory bus or memory controller, a peripheral bus, a universal serial bus. and / or a processor or local bus that utilizes any of a variety of bus architectures.

[0069] The computing system 1000 also includes a computer-readable medium 1014, which can include one or more memory devices that enable persistent and / or non-transitory data storage (i.e., in contrast to mere signal transmission). For example, the computer-readable medium 1014 can include random access memory (RAM), non-volatile memory (e.g., any one or more of a readonly memory' (ROM), flash memory, EPROM, EEPROM, etc.), or a disk storage device. The disk storage device may be implemented as any ty pe of magnetic or optical storage device,including a hard disk drive, a recordable and / or rewriteable compact disc (CD), or any type of digital versatile disc (DVD). The computing system 1000 can also include a mass storage medium device (storage medium) 1016.

[0070] The computer-readable medium 1014 provides data storage mechanisms to store the device data 1004, as well as various device applications 1018 and any other types of information and / or data related to operational aspects of the computing system 1000. For example, an operating system 1020 can be maintained as a computer application with the computer-readable medium 1014 and executed on the processors 1010. The device applications 1018 may include a device manager, which can be implemented using any form of a control application, software application, signal -processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, and so on.

[0071] The device applications 1018 also include any system components, engines, or managers to implement a hover suppressor 314.Conclusion

[0072] Although techniques using, and apparatuses including, touch-based hover-gesture suppression have been described in language specific to features and / or methods, it is to be understood that the subj ect of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of touch-based hover-gesture suppression.

[0073] Some Examples are described below.

[0074] Example 1: A method comprising:identifying that a first contact on a touch screen is associated with a valid touch-based gesture at a first time interval;passing first data as an input to an application, the first data associated with the first contact and associated with the first time interval;determining, at a second time interval that occurs after the first time interval, that the first contact on the touch screen changed from being associated with the valid touch-based gesture to being associated with an invalid touch-based gesture; andsuppressing the passing of second data to the application, the second data associated with the first contact and associated with the second time interval.

[0075] Example 2: The method of example 1, w herein:the first contact represents an interaction of a first object with the touch screen, the interaction occurring while the first object maintains contact with the touch screen between the first time interval and the second time interval;the valid touch-based gesture represents a first tap gesture; andthe invalid touch-based gesture represents a hover gesture.

[0076] Example 3: The method of example 2, wherein the hover gesture occurs as the first object moves from a position associated with the first tap gesture to an edge of the touch screen.

[0077] Example 4: The method of any one of the preceding examples, further comprising:identifying that the first contact on the touch screen is associated with a second valid touchbased gesture at a third time interval, the third time interval occurring after the second time interval; andpassing third data as another input to the application, the third data associated with the first contact and associated with the third time interval.

[0078] Example 5: The method of example 4 when dependent on at least claim 2, wherein: the interaction further occurs while the first obj ect maintains contact with the touch screen between the second time interval and the third time interval;the second valid touch-based gesture comprises a second tap gesture; andthe hover gesture occurs as the first object moves from a first position, associated with the first tap gesture, to a second position associated with the second tap gesture.

[0079] Example 6: The method of any previous example, wherein the determining that the first contact on the touch screen changed from being associated with the valid touch-based gesture to being associated with an invalid touch-based gesture comprises:determining that the first contact moved by an amount that is associated with the invalid touch-based gesture; anddetermining that an intensity' of the first contact at the second time interval is associated with the invalid touch-based gesture.

[0080] Example 7 : The method of example 6, wherein, for determining that the intensity of the first contact at the second time interval is associated with the invalid touch-based gesture, the intensity of the first contact at the second time interval is less than an intensity of the first contact at the first time interval.

[0081] Example 8: The method of example 6 or 7, further comprising:receiving, from the touch screen, data representative of a heat map matrix at the second time interval;determining coordinates of the first contact based on the heat map matrix at the second time interval, wherein:the determining that the first contact moved by the amount that is associated with the invalid touch-based gesture comprises determining that a distance between the coordinates of the first contact with respect to the heat map matrix at the second time interval and coordinates of the first contact with respect to a previous heat map matrix is greater than a first threshold, the previous heat map matrix associated with a time interval that occurred prior to the second time interval; andthe detennining that the intensity of the first contact at the second time interval is associated with the invalid touch-based gesture comprises:determining, based on the heat map matrix, a heat map volume of the first contact at the second time interval; anddetermining that a ratio of the heat map volume to a peak heat map volume of the first contact is smaller than a second threshold, the peak heat map volume associated with another time interval that occurred prior to the second time interval.

[0082] Example 9: The method of example 8, further comprising:receiving, from the touch screen, data representative of a first heat map matrix at the first time interval;determining coordinates of the first contact based on the first heat map matrix at the first time interval;determining, based on the first heat map matrix, a heat map volume of the first contact at the first time interval; anddetermining that the heat map volume of the first contact at the first time interval is the peak heat map volume, wherein:the heat map matrix comprises a second heat map matrix,the previous heat map matrix comprises the first the map matrix; andthe other time interval comprises the first time interval.

[0083] Example 10: The method of example 8 or 9, wherein the determining of the heat map volume comprises:identifying a set of cells within the heat map matrix that is associated with the first contact; andgenerating the heat map volume by summing intensity values of cells within the set of cells.

[0084] Example 11 : The method of any previous example, further comprising:prior to determining that the first contact on the touch screen changed from being associated with the valid touch-based gesture to being associated with the invalid touch-based gesture, determining that the first contact is not associated with a swipe gesture at the second time interval.

[0085] Example 12: The method of example 11, wherein the determining that the first contact is not associated wi th a swipe gesture comprises determining that the first contact moved by an amount that is smaller than a distance threshold associated with the swipe gesture.

[0086] Example 13: The method of any previous example, wherein the application comprises a keyboard application;a drawing application; ora gaming application.

[0087] Example 14: A device comprising:a touch screen; anda touch-based gesture detector configured to perform, using contact on the touch screen, any one of the methods of examples 1-13.

[0088] Example 15: A computer program product comprising computer-executable instructions that, when executed by a computing device with a touch screen, cause the computing device to perform any one of the methods of examples 1-13.

Claims

CLAIMSWhat is claimed is:

1. A method comprising:identifying that a first contact on a touch screen is associated with a valid touch-based gesture at a first time interval;passing first data as an input to an application, the first data associated wi th the first contact and associated with the first time interval;determining, at a second time interval that occurs after the first time interval, that the first contact on the touch screen changed from being associated with the valid touch-based gesture to being associated with an invalid touch-based gesture; andsuppressing the passing of second data to the application, the second data associated with the first contact and associated with the second time interval.

2. The method of claim 1, wherein:the first contact represents an interaction of a first object with the touch screen, the interaction occurring while the first obj ect maintains contact with the touch screen between the first time interval and the second time interval;the valid touch-based gesture represents a first tap gesture; andthe invalid touch-based gesture represents a hover gesture.

3. The method of claim 2, wherein the hover gesture occurs as the first object moves from a position associated with the first tap gesture to an edge of the touch screen.

4. The method of any one of the preceding claims, further comprising:identifying that the first contact on the touch screen is associated with a second valid touchbased gesture at a third time interval, the third time interval occurring after the second time interval; andpassing third data as another input to the application, the third data associated with the first contact and associated with the third time interval.

5. The method of claim 4 when dependent on at least claim 2, wherein:the interaction further occurs while the first obj ect maintains contact with the touch screen between the second time interval and the third time interval;the second valid touch-based gesture comprises a second tap gesture; andthe hover gesture occurs as the first object moves from a first position, associated with the first tap gesture, to a second position, associated with the second tap gesture.

6. The method of any previous claim, wherein the determining that the first contact on the touch screen changed from being associated with the valid touch-based gesture to being associated with an invalid touch-based gesture comprises:determining that the first contact moved by an amount that is associated with the invalid touch-based gesture; anddetermining that an intensity of the first contact at the second time interval is associated with the invalid touch-based gesture.

7. The method of claim 6, wherein, for determining that the intensity of the first contact at the second time interval is associated with the invalid touch-based gesture, the intensity of the first contact at the second time interval is less than an intensity of the first contact at the first time interval.

8. The method of claim 6 or 7, further comprising:receiving, from the touch screen, data representative of a heat map matrix at the second time interval;determining coordinates of the first contact based on the heat map matrix at the second time interval, wherein:the determining that the first contact moved by the amount that is associated with the invalid touch-based gesture comprises determining that a distance between the coordinates of the first contact with respect to the heat map matrix at the second time interval and coordinates of the first contact with respect to a previous heat map matrix is greater than a first threshold, the previous heat map matrix associated with a time interval that occurred prior to the second time interval; andthe determining that the intensity' of the first contact at the second time interval is associated with the invalid touch-based gesture comprises:determining, based on the heat map matrix, a heat map volume of the first contact at the second time interval; anddetermining that a ratio of the heat map volume to a peak heat map volume of the first contact is smaller than a second threshold, the peak heat map volume associated with another time interval that occurred prior to the second time interval.

9. The method of claim 8, further comprising:receiving, from the touch screen, data representative of a first heat map matrix at the first time interval;determining coordinates of the first contact based on the first heat map matrix at the first time interval;determining, based on the first heat map matrix, a heat map volume of the first contact at the first time interval; anddetermining that the heat map volume of the first contact at the first time interval is the peak heat map volume;wherein:the heat map matrix comprises a second heat map matrix,the previous heat map matrix comprises the first the map matrix; andthe other time interval comprises the first time interval.

10. The method of claim 8 or 9, wherein the determining of the heat map volume comprises:identifying a set of cells within the heat map matrix that is associated with the first contact; andgenerating the heat map volume by summing intensity values of cells within the set of cells.

11. The method of any previous claim, further comprising:prior to detennining that the first contact on the touch screen changed from being associated with the valid touch-based gesture to being associated with the invalid touch-based gesture, determining that the first contact is not associated with a swipe gesture at the second time interval.

12. The method of claim 11, wherein the determining that the first contact is not associated with a swipe gesture comprises determining that the first contact moved by an amount that is smaller than a distance threshold associated with the swipe gesture.

13. The method of any previous claim, wherein the application comprisesa keyboard application;a drawing application; ora gaming application.

14. A device comprising:a touch screen; anda touch-based gesture detector configured to perform, using contact on the touch screen, any one of the methods of claims 1-13.

15. A computer program product comprising computer-executable instructions that, when executed by a computing device with a touch screen, cause the computing device to perform any one of the methods of claims 1-13.