Adaptive accidental contact mitigation
Through the combination of multi-sensing elements and processing systems, the classifier parameters are adaptively adjusted, and the mist touch problem of touch sensor devices when distinguishing intentional and unintentional touch is solved, achieving higher touch sensing accuracy and user experience.
Patent Information
- Application Number
- CN202411241421.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-07-10
- Filing Date
- 2024-09-05
- Publication Date
- 2025-03-11
Smart Images

Figure CN119597194A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 63 / 581,530, filed on September 8, 2023, which is incorporated herein by reference in its entirety. Technical Field
[0002] The disclosed embodiments generally relate to touch sensors that can be integrated within electronic devices. Background Art
[0003] Input devices including touch sensor devices (e.g., touch pad sensors, touch screen displays, etc.) are used in a wide variety of electronic systems. A touch sensor device typically includes a sensing area generally demarcated by a surface, wherein the touch sensor device typically determines position information (e.g., presence, location, and / or motion) of one or more input objects for the purpose of allowing a user to provide user input to interact with the electronic system.
[0004] Touch sensor devices (such as touchpads) are typically operated using finger and thumb interactions. However, due to the placement of the touchpad (directly below the keyboard), it is common for users to inadvertently contact the touchpad with their palm while interacting with the keyboard. This problem is further exacerbated by more recent iterations of touchpad designs in which the size of the touch area is substantially larger. In addition, with the introduction of additional features (e.g., FORCEPAD and CLICK-ANYWHERE models), users are increasingly using their thumbs to quickly interact with the touchpad while typing on the keyboard or performing other activities. In some cases, finger and thumb contacts may be intentional, while palm contacts may be accidental. In this context, it is critical to correctly classify the thumb as a valid contact and not suppress it as a palm. Failure to do so may impair the user experience. This problem is referred to as the accidental contact mitigation (ACM) problem, which involves classification between finger / thumb and palm categories.
[0005] In view of the foregoing, there is a need to correctly distinguish intentional touch input from unintentional or accidental touches on a touch-sensitive device. Summary of the invention
[0006] A first aspect of the present disclosure provides a system for classifying touch data, the system comprising: a plurality of sensing elements; and a processing system configured to: receive touch data from a current user via the plurality of sensing elements; determine a first classifier parameter set corresponding to the current user based on usage data, wherein the usage data comprises touch data from the current user; and apply the first classifier parameter set to classify subsequent touch data.
[0007] A second aspect of the present disclosure provides a method for classifying touch data, the method comprising: receiving touch data from a current user by a processing system; determining, by the processing system, a first classifier parameter set corresponding to the current user based on usage data, wherein the usage data includes touch data from the current user; and applying, by the processing system, the first classifier parameter set to classify subsequent touch data.
[0008] A third aspect of the present disclosure provides a non-transitory computer-readable medium having computer executable instructions stored thereon for classifying input objects using an input device, wherein the computer executable instructions, when executed, facilitate the following: receiving touch data from a current user; determining a classifier parameter set corresponding to the current user based on usage data, wherein the usage data includes touch data from the current user; and applying a first classifier parameter set to classify subsequent touch data. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 is a block diagram of an example of an input device with a touch sensor according to some embodiments;
[0010] Figure 2 is a block diagram of an example of a touch sensor having sensor elements in the form of capacitive sensing electrodes and corresponding control circuitry according to certain embodiments;
[0011] Figure 3A is a flow chart of an exemplary process for processing data from a sensor device by implementing adaptive accidental contact mitigation (ACM) according to certain embodiments;
[0012] Figure 3B is a flow chart of an exemplary process for processing data from a sensor device by implementing an adaptive ACM according to certain embodiments;
[0013] Figure 4 is a drawing illustrating an exemplary application of classifier parameters to perform classification according to certain embodiments;
[0014] Figure 5 illustrates the correlation between finger size and thumb / palm size according to certain embodiments;
[0015] Fig. 6A A flowchart illustrating offline calculation of finger swipe mean parameters from a test database according to some embodiments;
[0016] Figure 6B illustrates a flow chart for calculating finger swipe mean parameters online from a test database according to some embodiments;
[0017] Figure 6C A method for dynamically adjusting an adjustable parameter according to some embodiments is illustrated.
[0018] Figure 7 illustrates a method for tuning an adaptive ACM model;
[0019] Figure 8 shows the error matrix of the groundtruth relative to the classification output; and
[0020] Fig. 9 is a plot indicating ACM performance versus the number of swipes for three cases.
[0021] It is contemplated that the elements disclosed in one embodiment may be utilized in other embodiments without specific description. Unless specifically noted, the drawings mentioned herein should not be understood to be drawn to scale. Moreover, the drawings may be simplified, with details or components omitted, in order to make the presentation and explanation clear. The drawings and discussion are used to provide examples to explain the principles discussed below, wherein the same reference numerals refer to the same elements, and the drawings should not be interpreted as limiting based on specific exemplary depictions. DETAILED DESCRIPTION
[0022] The following specific embodiments are merely exemplary in nature and are not intended to limit the present disclosure or the application and use of the present disclosure. In addition, there is no intention to be bound by any expressed or implied theory presented in the aforementioned technical field, background technology, summary of the invention, description of the drawings, the following specific embodiments or the attached abstract.
[0023] The terms "coupled to," along with their derivatives, and "connected to," along with their derivatives, may be used herein, including in the claims. "Coupled" or "connected" may mean one or more of the following: "coupled" or "connected" may mean that two or more elements are in direct physical or electrical contact; "coupled" or "connected" may also mean that two or more elements are indirectly connected to each other, such as not making physical contact but still cooperating or interacting with each other, and may mean that one or more other elements are coupled or connected between the elements said to be coupled or connected to each other.
[0024] Example embodiments of the present disclosure accurately, reliably, and efficiently classify different types of contacts proximate a touch sensor of an input device subject to different users, and thereby improve the overall user experience with respect to electronic devices utilizing the principles of the present disclosure.
[0025] The system and method incorporate adaptive accidental contact mitigation (ACM) to predict the optimal parameter set for each user by analyzing usage characteristics. The optimal parameter set is used to adapt the classification process in the system and method to the specific user. For example, the classifier used by the system and method for classifying input contacts is updated based on the optimal parameter set. This allows the performance of the system and method to be enhanced by customized optimization.
[0026] In some embodiments, the adaptive ACM determines a finger swipe mean based on usage data and / or uses the finger swipe mean to determine a set of classifier parameters for classification of input data (eg, user touches sensed by an input device).
[0027] In some embodiments, the adaptive ACM continuously updates the classifier parameter set based on usage characteristics to dynamically adapt to user interactions. This enables the adaptive ACM to correctly classify user touches based on the dynamically updated classifier parameters. For example, the adaptive ACM can correctly classify the thumb as a valid contact, ensuring that it is not suppressed as a palm. This improves the distinction between intentional contacts such as controlling a cursor or clicking and unintentional contacts that may occur when typing on a laptop keyboard or performing other activities.
[0028] In some embodiments, adaptive ACM is used in conjunction with deterministic ACM processes to classify touch contacts into fingers, thumbs, palms, and other categories. The deterministic ACM process starts with a predefined set of classifier parameters. The adaptive ACM process then dynamically adjusts these parameters based on touch characteristics.
[0029] The adaptive ACM algorithm functions autonomously, thus requiring no user feedback. The adaptive ACM process was able to reduce the ACM misclassification score by, for example, approximately 43% on a relatively large test data set including 25 users. In addition, a dynamic version of the adaptive ACM process that determines user characteristics on the fly during touchpad use has shown promising results.
[0030] Figure 11 is a block diagram of an exemplary input device 100. The input device 100 can be configured to provide input to an electronic system. As used in this document, the term "electronic system" (or "electronic device") broadly refers to any system that can electronically process information. Some non-limiting examples of electronic systems include personal computers of all sizes and shapes, such as desktop computers, laptop computers, netbook computers, tablet computers (including foldable tablet computers), web browsers, e-book readers, personal digital assistants (PDAs), and wearable computers (such as smart watches and activity tracker devices). Additional examples of electronic systems include composite input devices, such as physical keyboards including input device 100 and separate joysticks or key switches. Other examples of electronic systems include peripheral devices, such as data input devices (including remote controls and mice) and data output devices (including display screens and printers). Other examples include remote terminals, information kiosks, and video game consoles (e.g., video game consoles, portable game devices, etc.). Other examples include communication devices (including cellular phones, such as smartphones (including foldable and rollable smartphones)) and media devices (including recorders, editors, and players, such as televisions, set-top boxes, music players, digital photo frames, and digital cameras). In addition, the electronic system can be a host or slave for input devices.
[0031] The input device 100 can be implemented as a physical part of an electronic system, or can be physically separated from the electronic system. Where appropriate, the input device 100 can communicate with parts of the electronic system using any one or more of the following: a bus, a network, and other wired or wireless interconnections. Examples include I2C, SPI, PS / 2, Universal Serial Bus (USB), Bluetooth, RF, and IRDA.
[0032] exist Figure 1In the embodiment, the touch sensor 102 is included in the input device 100. The touch sensor 102 includes one or more sensing elements configured to sense input provided by one or more input objects 106 in the sensing area 104. Examples of input objects include fingers, styluses, and hands. The sensing area 104 includes any space above the touch sensor 102, around the touch sensor 102, in the touch sensor 102, and / or near the touch sensor 102, where the input device 100 can detect user input (e.g., user input provided by one or more input objects). The size, shape, and position of a specific sensing area may vary from embodiment to embodiment. In some embodiments, the sensing area 104 extends from the surface of the input device 100 in one or more directions into space until the signal-to-noise ratio prevents sufficiently accurate object detection. In some embodiments, the distance to which the sensing area 104 extends in a particular direction may be approximately less than a millimeter, several millimeters, centimeters, or greater, and may vary significantly with the type of sensing technology used and the desired accuracy. Thus, some embodiments sense inputs that include no contact with any surface of the input device 100, contact with an input surface (e.g., a touch surface) of the input device 100, contact with an input surface of the input device 100 in combination with an amount of applied force or pressure, and / or combinations thereof. In some embodiments, the input surface may be provided by a surface of a sensor substrate in or on which sensor elements are positioned or by a panel or other covering layer positioned over the sensor elements.
[0033] The input device 100 can utilize any suitable combination of sensor components and sensing technologies to detect user input in the sensing area 104. Some implementations utilize an array of multiple sensing elements or other regular or irregular patterns to detect input. Exemplary sensing technologies that can be used by the input device 100 include capacitive sensing technology, optical sensing technology, acoustic (e.g., ultrasonic) sensing technology, pressure-based (e.g., piezoelectric) sensing technology, resistive sensing technology, thermal sensing technology, inductive sensing technology, elastic sensing technology, magnetic sensing technology, and / or radar sensing technology.
[0034] In one example, for example, input device 100 includes touch sensor 102, which uses capacitive technology, where a voltage or current, referred to as a sensing signal, is applied to create an electric field. Nearby input objects cause changes in the electric field and produce detectable changes in capacitive coupling, which can be detected as changes in voltage, current, etc., referred to as result signals. For example, sensor 102 includes sensor electrodes 252, 254 ( Figure 2 ).
[0035] An exemplary capacitive technology utilizes a "mutual capacitance" (or "transcapacitive") sensing method based on changes in capacitive coupling between sensor electrodes. An input object near the sensor electrodes can change the electric field between the sensor electrodes, thereby changing the measured capacitive coupling. The transcapacitive sensing method can operate by detecting the capacitive coupling between one or more transmitter sensor electrodes (also "transmitter electrodes") and one or more receiver sensor electrodes (also "receiver electrodes"). The transmitter sensor electrodes can be modulated relative to a reference voltage to transmit one or more transmitter signals. The receiver sensor electrodes can be kept substantially constant relative to the reference voltage to facilitate the reception of one or more result signals. The reference voltage can be a substantially constant voltage or system ground. The transmitter electrodes are modulated relative to the receiver electrodes to transmit the transmitter signals and facilitate the reception of the result signals. The result signals can include (one or more) effects corresponding to the one or more transmitter signals and / or one or more environmental interference sources or other electromagnetic signals. When one or more input objects are present in the sensing area of the sensor, the result signal may also include (one or more) effects corresponding to the one or more input objects.
[0036] The input device 100 includes a processing system 110. The processing system 110 includes part or all of one or more integrated circuits (ICs) and / or other circuit system components, which may include integrated or separate non-transitory memory for storing data and / or computer executable instructions according to the various methods and processes described herein. The processing system 110 is coupled to (or configured to be coupled to) the touch sensor 102, and is configured to detect input in the sensing area 104 using the sensing hardware of the touch sensor 102. In some embodiments, the processing system 110 includes electronically readable instructions, such as firmware code, software code, and / or the like. The processing system 110 can be implemented as a physical part of the sensor 102, or can be physically separated from the sensor 102. The components of the processing system 110 can be located together, or can be located physically separated from each other. For example, the input device 100 can be a peripheral device coupled to a computing device, and the processing system 110 can include software configured to run on a central processing unit of the computing device and one or more ICs with associated firmware separate from the central processing unit (CPU). As another example, the input device 100 can be physically integrated into a mobile device, and the processing system 110 can include circuits and firmware that are part of a main processor of the mobile device. The processing system 110 can be dedicated to implementing the input device 100, or can perform other functions, such as operating a display screen, driving a haptic actuator, etc.
[0037] The processing system 110 can operate the (one or more) sensing elements of the input device 100 to generate an electrical signal indicating an input (or lack of input) in the sensing area 104. The processing system 110 can perform any appropriate amount of processing on the electrical signal when generating information provided to the electronic system. For example, the processing system 110 can digitize an analog electrical signal obtained from a sensing element (e.g., a sensor electrode). As another example, the processing system 110 can perform filtering or other signal conditioning. As yet another example, the processing system 110 can subtract or otherwise account for a baseline so that the information reflects the difference between the electrical signal and the baseline. As yet another example, the processing system 110 can determine position information, recognize input as a command, recognize handwriting, match a biometric sample, etc.
[0038] The touch sensor 102 is configured to detect position information of an input object 106 within a sensing area 104. The sensing area 104 may include an input surface having a larger area than the input object. The touch sensor 102 may include an array of sensing elements (such as capacitive sensing elements) having a resolution configured to detect the location of a touch on the input surface. In some embodiments, the pitch of the touch sensing elements or the spacing between adjacent pairs of touch sensing elements is between 2 and 6 mm, however, it will be appreciated that other geometric structures may be suitable.
[0039] In some embodiments, input device 100 is implemented with additional input components that are operated by processing system 110 or by some other processing system. These additional input components may provide redundant functionality for input in sensing region 104 or some other functionality. Figure 1 A button 120 is shown proximate the sensing region 104 and can be used to facilitate selection of items using the input device 100. Other types of additional input components include sliders, balls, wheels, switches, etc. Conversely, in some embodiments, the input device 100 may be implemented without additional input components.
[0040] refer to Figure 2, an example of an input device 100 that includes electrodes to facilitate capacitive touch sensing in certain embodiments. For example, the processing system 110 includes a transmitter circuit system 242 and a receiver circuit system 244. The transmitter circuit system 242 includes one or more transmitter circuits (e.g., drivers, etc.) configured to transmit one or more transmitter signals (sensing signals) using one or more transmitter sensor electrodes 252 of the sensor 202, wherein the sensor 202 can be the touch sensor 102 described previously. The receiver circuit system 244 includes one or more receiver circuits (e.g., analog front end, analog to digital converter, etc.) configured to receive one or more result signals using one or more receiver sensor electrodes of the touch sensor 102. The transmitter circuit system 242 can be coupled to the one or more transmitter electrodes 252 directly or through one or more intermediate electrical components (e.g., multiplexers, switches, amplifiers, etc.). Similarly, the receiver circuit system 244 can be coupled to the one or more receiver electrodes 254 directly or through one or more intermediate electrical components (such as multiplexers, switches, amplifiers, etc.).
[0041] In some embodiments, individual ones of the sensor electrodes 252, 254 may be ohmically shorted together to form a larger sensing element. For example, in a first operating mode, each of the sensor electrodes may be operated independently, and in a second operating mode, multiple ones of the sensor electrodes may be operated together by ohmically shorting them together.
[0042] The processing system 110 implements accidental contact mitigation (ACM) to distinguish intentional touch inputs from unintentional or accidental touches on the touch sensor 102. For example, the processing system 110 can use the ACM algorithm to classify a touch as a palm touch and identify the classified palm touch as an accidental touch, thereby ignoring the touch. The ACM algorithm can reduce the occurrence of unintentional or false touch inputs on the input device 100, thereby aiming to improve the accuracy and reliability of touch sensing by distinguishing intentional touches from accidental touches. Adaptive ACM is used to determine adjustments to the ACM algorithm based on user characteristics from usage data. The processing system 110 uses adaptive ACM to dynamically update parameters within the ACM algorithm, thereby optimizing the performance of the ACM for each user.
[0043] Figure 3A 3 is a flow chart of an exemplary process 300 for processing data from a sensor device by implementing an adaptive ACM process. For example, the process 300 may be performed by the processing system 110 to process sensory data collected by the sensor 102 in the input device 100.
[0044] At block 302, processing system 110 obtains sensing data from sensor 102. The sensing data may indicate electrical signals detected by an array of electrodes in sensor 102 over a predefined time period. In some embodiments, each instance of sensing data input is considered a frame of a touch image that covers a portion or the entire sensing area 104 of sensor 102. Processing system 110 may perform any appropriate amount of processing on the sensing data (e.g., touch image) to identify one or more touch areas. In some examples, processing system 110 segments the touch image into segmented areas referred to as clumps. Each segmented area includes an active touch area corresponding to a touch. Processing system 110 determines a characteristic (e.g., attribute or feature) associated with a clump.
[0045] Characteristics associated with each cluster can encode various properties of a particular cluster. For example, various attributes can be obtained, including identity, area, signal, dimension, etc. Identity attributes may include, but are not limited to, frame index, timestamp, reference truth label, and / or other related attributes. In some embodiments, the reference truth label may be used to train and / or tune the adaptive ACM during the training phase. Area attributes may include, but are not limited to, cluster area, hovering area, normalized area (e.g., normalized by signal strength), and / or other related attributes. Signal attributes may include, but are not limited to, average signal strength, peak signal strength, and / or other related attributes of the touch cluster. Dimensional attributes may include, but are not limited to, cluster width, cluster height, edge touch mark, and / or other related attributes.
[0046] In some embodiments, processing system 110 receives a sequence of touch images. Processing system 110 segments touch areas in the touch images into clusters (e.g., individual touch segments) and tracks the clusters across frames. Processing system 110 determines characteristics (e.g., attributes) of each cluster and stores the results (e.g., attributes and / or later ACM classification results) in a memory space designated for storing usage data.
[0047] At block 304, the processing system 110 utilizes a classifier to determine one or more categories associated with the sensed data. The processing system 110 utilizes a classifier parameter set to determine one or more categories for the clusters based on characteristics (e.g., attributes) of the clusters. For example, the processing system 110 may use the classifier parameter set to evaluate attributes associated with the input cluster(s) to distinguish between finger / thumb and thumb / palm touches in hover area, area, and / or normalized area space.
[0048] In some embodiments, processing system 110 implements an ACM classifier to generate an ACM output for each cluster based on the corresponding attributes of each cluster. For example, the ACM output for each cluster may be classified into one of the following categories: "Palm", "Finger", "LightPalm", "Thumb", "Hover", and "None".
[0049] The ACM classifier utilizes various attributes / features (e.g., attributes / features extracted from touch clusters) to classify touches (e.g., clusters) into various categories. For example, a set of parameters (e.g., slope and offset) can define a boundary that distinguishes close contacts (fingers, thumbs, and palms) from light palm (e.g., as "LightPalm") contacts and hovering (e.g., as "Hover") contacts.
[0050] In further embodiments, the processing system 110 (eg, or ACM classifier) may employ additional algorithms such as hysteresis, edge conditions, and LGM (low ground mass) correction to classify the input contact.
[0051] At block 306, the processing system 110 processes the usage data. The processing system 110 applies the adaptive ACM to process the usage data to determine adjustments to the current set of classifier parameters. In some embodiments, the processing system 110 dynamically updates the set of classifier parameters based on the usage data.
[0052] The usage data may contain various types of information. For example, the usage data may include characteristics and / or classification results corresponding to input clusters previously stored in the designated memory space. In some scenarios, the usage data may also be associated with additional information, such as user-specific identity details, a timestamp indicating when the information was collected, etc. In another example, the usage data may include statistics / distributions derived from historical usage data.
[0053] At block 308, the processing system 110 adapts the classifier parameters based on the usage data. For example, the processing system 110 updates an updated set of classifier parameters in the classifier based on the adjustments determined from performing block 306. Subsequently, the processing system 110 processes the next instance of sensory data using the updated set of classifier parameters.
[0054] In some embodiments, processing system 110 continuously executes process 300 to process the touch image sequence and dynamically update the classifier based on the usage data. In some embodiments, processing system 110 executes process 300 at periodic or predetermined time intervals (e.g., according to system settings or parameters). Execution of process 300 can also be triggered in response to detected events, such as identifying a new user based on a change in usage data.
[0055] Figure 3B 3 is a flow chart of an exemplary process 320 for processing data from a sensor device by implementing an adaptive ACM. For example, the process 320 may be performed by the processing system 110 to process sensor data collected by the sensor 102 in the input device 100.
[0056] In this example, the sensed data obtained from the sensor 102 (in box 302) is visualized as a heat map 322. The heat map 322 depicts a touch map in a color scale or gray scale. The heat map 322 represents the signal distribution across the sensing area 104 of the sensor 102. Each pixel in the heat map 322 represents the sensor 102 (or Figure 2 The sensing area of the sensor 202 (e.g., Figure 1 The corresponding electrode (eg, Figure 2 The signal strength of electrodes 252, 254) or a predefined electrode cluster.
[0057] At block 324, the image processor processes the sensed data (e.g., heat map 322). The image processor may be integrated into or operate in conjunction with processing system 110. The image processor receives heat map 322 as input and then segments heat map 322 to generate segmented touch regions (e.g., clusters) corresponding to one or more active touch regions. For example, each segmented touch region corresponds to one active touch region in the sensed region represented by heat map 322.
[0058] In an example, the image processor determines one or more blobs to represent one or more active touch areas. Blobs define groups of pixels that form a group or large object (e.g., in heat map 322) that can be distinguished from its background. Segmented touch areas (or clamps) in a touch image (e.g., heat map 322) can include at least one blob and some background pixels. Tracking clusters across touch image frames can be facilitated by tracking corresponding blobs.
[0059] At block 326, the image processor extracts features (eg, attributes) of each cluster. For example, the image processor may extract spatial features and temporal features that encode the nature of the touch area corresponding to the cluster.
[0060] Similar to process 300, processing system 110 utilizes a classifier (e.g., an ACM classifier) to determine one or more categories of clusters (at block 304). For example, processing system 110 determines whether the segmented touch (cluster) corresponds to a finger, palm, thumb, etc. based on the extracted features (e.g., attributes). The classifier is executed by an image processor or a separate processor within processing system 110. The ACM classifier applies a set of classifier parameters to determine the various categories of clusters. The classifier parameters can be fixed across users. In the present disclosure, processing system 110 utilizes adaptive ACM to analyze usage data (at block 306) and adapt the classifier parameters based on the current user (at block 308).
[0061] Figure 4 4 is a diagram illustrating an exemplary application of classifier parameters to perform classification. The classifier parameters may be such as Figure 3A and 3B The classifier depicted in is used (at block 304) to determine one or more categories for a cluster.
[0062] In this example, plot 400 shows multiple instances of touch data (eg, clusters, segmented regions, etc.) represented by circles, squares, and triangles. The instances of touch data are classified based on two classifier parameters corresponding to contact size and contact strength. Figure 4 As shown in , contact size is represented on the horizontal axis 430 and contact strength is represented on the vertical axis 440.
[0063] Each touch data instance is associated with a contact size and a contact strength. Figure 3B As indicated in the process 320 depicted in FIG. 1 , the image processor (or processing system 110) extracts contact size and contact intensity by performing feature extraction (in block 326) on the input heat map 322. Touch data instances are plotted on the map based on their contact intensity and contact size, thereby indicating their corresponding locations according to these parameters.
[0064] Two classifier parameters are visualized as lines 410 and 420, respectively, which are used to classify touch data instances into three categories 402, 404, and 406. For example, categories 402, 404, and 406 may indicate finger touches, thumb touches, and palm touches, respectively. Classifier parameters 410 and 420 may indicate thresholds for distinguishing between finger touches and thumb / palm touches and between finger / thumb touches and palm touches, respectively. The adaptive ACM determines adjustments to the classifier parameters, such as changing the slope and / or offset of line 410 and / or line 420, to modify the classification process for future touch instances.
[0065] will realize that Figure 4The application of the classifier parameters depicted in is only an example, and the principles discussed in this article can also be applied to other scenarios. For example, this can involve incorporating different types of classifier parameters, changing the number of classifier parameters, etc.
[0066] Adaptive ACM is used to predict the optimal parameter set for each user based on its usage characteristics. The example of the gesture adopted by the user when using the touch pad is a swipe (also known as pointing), a tap and a tap, however, other gestures are possible. Among these three gestures, the swipe gesture is most often performed using the index finger / middle finger. In addition, the swipe gesture is usually the most common gesture intentionally performed in the touch pad to move the cursor to different parts of the display. In view of the foregoing, the adaptive ACM can estimate each user (per-user) optimal parameter based on the individual finger swipe characteristics. However, those skilled in the art will appreciate that the adaptive ACM can utilize any suitable touch pad gesture. In some examples, the adaptive ACM can estimate each user's optimal parameter based on the characteristics from a plurality of different gestures.
[0067] For purposes of illustration and not limitation, the adaptive ACM may use an average finger swipe area (also referred to as a finger swipe mean) to predict an optimal set of parameters for a particular user. In an example, the processing system 110 collects and stores data related to finger swipe characteristics and then determines the finger swipe mean, which is then used by the adaptive ACM. In another example, the processing system 110 applies a suitable ACM method and / or adaptive ACM to process the finger swipe characteristics to determine the finger swipe mean.
[0068] Figure 5 Graphs showing the correlation between finger size and thumb / palm size. Plot 500 shows the relationship between the mean of finger swipes (in horizontal axis 502) and the mean of thumbs (in vertical axis 504) in relation to the hover area attribute. Plot 520 shows the relationship between the mean of finger swipes (in horizontal axis 522) and the mean of palms (in vertical axis 524) in relation to the hover area attribute. In plots 500 and 520, the points represent data obtained from 25 test subjects, and lines 510 and 530 are fitted lines that can be generated by linear regression analysis.
[0069] Drawings 500 and 520 illustrate an example where, as finger size (or finger area in a touchpad) increases, thumb size and palm size also increase. As an example, using the hover area attribute, the correlation coefficient (CC) between the finger swipe mean and the thumb mean can be 0.56, and the CC between the finger swipe mean and the palm mean can be 0.62. This indicates that as the finger swipe mean parameter increases, the classifier parameter that separates the finger / thumb from the thumb / palm in the zone space can also increase to improve the performance of the classifier. An example of a way to ensure monotonicity in the model is to use linear regression to predict the optimal parameter set for each user given the finger swipe mean for the hover area. However, it will be appreciated that various other suitable techniques can also be used to establish a monotonic relationship between finger size and thumb / palm size, depending on the specific requirements and characteristics of the data. The adaptive ACM can learn the scaling vector and the offset vector The parameters of the ACM classifier can be determined as: in Represents the parameter set to be used by the ACM classifier.
[0070] In some embodiments, while the user is operating the touchpad, processing system 110 dynamically estimates the finger swipe mean. For example, processing system 110 determines valid swipe contacts from which usage data and / or statistics can be collected. In some examples, processing system 110 employs image processing algorithms to track touch contacts across touch image frames. A single contact may be referred to as track T. The length (distance covered by the track), duration, and area mean of the jth track may be represented by as well as The processing system 110 may determine the trajectory as a valid sweep when the following conditions are met: Wherein "thres" represents the threshold value of (one or more) corresponding parameters.
[0071] In some embodiments, when the user is operating the touch pad, the processing system 110 estimates the finger swipe mean parameter in an online manner. For example, when the processing system 110 determines a new swipe (e.g., where the average hovering area (or hovering area mean) is used as the swipe mean), the processing system 110 updates the current finger swipe mean to obtain the updated finger swipe mean by the following equation, Where α is an adjustable parameter. The value of α plays an important role in determining the update speed of the finger swipe mean. To clarify, a smaller value of α will result in a faster update speed of the finger swipe mean. In this context, α essentially acts as a weighting factor, affecting how quickly or slowly new data points are integrated into the calculation of the finger swipe mean. A smaller α gives more weight to recent data, allowing the mean to adapt more quickly to changes in input behavior, while a larger α will result in a slower adaptation process. The choice of α is used to balance the need for responsiveness with the desire for stability and accuracy in parameter updates.
[0072] In some embodiments, the processing system 110 uses a predefined α to update the finger swipe mean. The predefined α can be a default value and / or determined by calibration. In addition, the α parameter can also change dynamically during user interaction with the input device. For example, the α value can be automatically adapted due to various events, such as: detecting the awakening of the input device 100 from an idle state, detecting changes to user preferences / settings through user input, detecting new users (e.g., based on changes in usage data), detecting changes in environmental conditions (e.g., lighting conditions), detection of low battery levels, and other suitable situations.
[0073] User characteristics (eg, finger swipe average) may be determined offline, online, and / or dynamically.
[0074] Fig. 6A Flowchart 600 is illustrated for calculating finger swipe mean parameters offline from a test database according to one or more examples. The processes in flowchart 600 may be performed by a processing system integrated in or coupled to input device 100. It will be appreciated that the processes in flowchart 600 need not be performed in the exact sequence shown. For example, the processes in flowchart 600 can be performed in reverse order. It will be further appreciated that certain processes may be optional.
[0075] At block 602, a test database stores data related to swipes / swipes / taps of fingers / thumbs / palms. The processing system may access the test database from local memory or through cloud-based storage.
[0076] At block 604, the processing system obtains a finger swipe mean from the finger swipe. In some examples, the processing system applies equations 2A-2C to determine an effective swipe corresponding to the finger swipe. The processing system determines a fixed finger swipe mean based on the finger swipes obtained from the test database.
[0077] At block 606, the processing system determines an adaptive classifier. For example, the processing system applies Equation 1 to determine an updated set of parameters for the adaptive classifier. In some examples, the processing system applies Equation 3 with additional input data (e.g., additional finger swipes) to determine an updated finger swipe mean.
[0078] The processing system outputs the adaptive classifier at block 608. The processing system then uses the adaptive classifier with the updated classifier parameters to classify subsequent sensory data from an input device (eg, input device 100).
[0079] Figure 6B Flowchart 620 is illustrated for calculating finger swipe mean parameters online from a test database according to one or more examples. The processes in flowchart 620 may be performed by a processing system integrated in or coupled to input device 100. It will be appreciated that the processes in flowchart 620 need not be performed in the exact sequence shown. For example, the processes in flowchart 620 can be performed in reverse order. It will be further appreciated that certain processes may be optional.
[0080] At block 622, a test database stores data related to swipes / taps / flicks of fingers / thumbs / palms. The processing system can access the test database from local memory or through cloud-based storage. In some examples, the processing system implements the process in flowchart 600 to determine an initial finger swipe mean for an initial adaptive classifier based on the finger swipes obtained from the test database.
[0081] At block 624, the swipe database stores data for all test users. The processing system may access the swipe database from local memory or through cloud-based storage.
[0082] At block 626, the processing system determines one or more swipe characteristics based on the data from the swipe database. In some embodiments, the processing system determines the distance, frame, hover area, and / or other suitable characteristics for each swipe.
[0083] At block 628, the processing system estimates a sweep mean after each sweep. For example, the processing system applies Equation 3 to determine an updated sweep mean based on the current sweep mean and the new sweep.
[0084] At block 630, the processing system determines an adaptive classifier. For example, the processing system uses the estimated sweep mean from 628 and a predefined / calculated scaling vector and the offset vector Equation 1 is applied to determine an updated set of parameters for the adaptive classifier.
[0085] At block 632, the processing system outputs the adaptive classifier. The processing system then uses the adaptive classifier with the updated classifier parameters to classify subsequent sensory data from an input device (eg, input device 100).
[0086] Figure 6C A method 640 for dynamically adjusting an adjustable parameter α according to one or more examples is illustrated. The method 640 may be performed by a processing system integrated into or coupled to the input device 100. It will be appreciated that, except where otherwise apparent, the method need not be performed in the exact sequence shown. It will be further appreciated that certain steps may be optional.
[0087] At block 642, the processing system detects an event that triggers an adjustment of the update speed of the user characteristic (e.g., finger swipe average). For example, depending on the event type, the processing system determines a corresponding value for parameter α, which is then applied to Equation 3.
[0088] At block 644, the processing system updates the user characteristics based on the adjusted speed.For example, the processing system applies Equation 3 to update the finger swipe mean based on the adjusted parameter α.
[0089] At block 646, the processing system determines a set of ACM parameters (eg, ACM classifier parameters) based on the updated user characteristics. For example, the processing system applies Equation 1 to determine the set of ACM parameters.
[0090] At block 648, the processing system classifies the user input based on the ACM parameter set. For example, the processing system uses the ACM classifier with the updated parameters to classify the clusters and identify the touches.
[0091] Figure 7 A method 700 for tuning an adaptive ACM model is illustrated. The method 700 may be performed by a processing system integrated into or coupled to the input device 100. It will be appreciated that, except where otherwise apparent, the method need not be performed in the exact sequence shown. It will be further appreciated that certain steps may be optional.
[0092] At block 702, the processing system trains a model based on a database of finger / thumb / palm touch contacts.
[0093] At block 704, the processing system calculates a usage characteristic of the finger swipe mean based on the data set in block 702. It will be appreciated that other types of usage characteristics (eg, corresponding to other gestures) may be calculated and utilized by the adaptive ACM model.
[0094] At block 706 , the processing system calculates optimal ACM classifier parameters for each user based on the database in block 702 .
[0095] At block 708, the processing system trains the adaptive ACM model to optimally predict ACM classifier parameters based on the finger swipe means.It will be appreciated that other types of usage characteristics (eg, corresponding to other gestures) may be calculated and utilized by the adaptive ACM model.
[0096] At block 710 , the processing system obtains data from a test database of real-world usage data.
[0097] At block 712, the processing system evaluates model (eg, adaptive model) performance based on the test database in block 710 and predictions made by the model obtained from block 708. The processing system may adjust tunable parameters in the adaptive ACM process based on the evaluation results.
[0098] In the example, the various classifier output types can be Palm, Finger, LightPalm, Thumb, Unknown, Hover, SmallObj, NegFinger, and None. If the ground truth is type_gt and the classifier output is type_out, the error score for the pair (type_gt, type_out) can be calculated using Figure 8 8 is defined by the error matrix 800 shown in .
[0099] Figure 8 An error matrix 800 of the ground truth relative to the classification output is shown. As shown in the matrix 800, based on the error matrix, all errors are not penalized.
[0100] The error score for a dataset (or data capture) is defined as the average error score for each frame in the dataset. The error for a subject is the average of the error scores for all data captures across the subject. The final error score is the average of the subject-level scores as follows: where S is the number of subjects, M k is the number of data captures for subject k, and N jk is the number of frames for subject k, and the data capture index j and i correspond to the index of the frame within the dataset.
[0101] In addition to an error score summarizing this performance across all users, the processing system also computes a confusion matrix metric indicating confusion across various classifier categories. For example, confusion_matrix(thumb, palm) indicates the percentage of times a thumb touch was classified as a palm touch.
[0102] The processing system estimates the optimal parameter set that minimizes the error score. In some embodiments, the processing system analyzes one or more of the classifier parameters to tune the classifier for the minimized error score (and the ACM attribute is an integer). For example, the processing system performs a grid search on the parameters, calculates the error score for each parameter setting, and identifies the best parameter set that minimizes the error score. It will be appreciated that other suitable approaches may also be applied to obtain the optimal parameters. Thus, the processing system determines the optimal individual user parameter estimates and the global optimal parameter estimate.
[0103] The parameter setting that minimizes the error score for each user is the optimal parameter setting for each user. For subject k, the optimal parameter set is defined as:
[0104] The parameter setting that minimizes the error score averaged across all users is the globally optimal parameter setting. This can be calculated as: result
[0105] In the example, 25 people are used for testing and four subjects are used for training parameter estimation. The training parameter estimation is used for a subset of experiments. Various examples performed on this dataset are described below. A. Error Score Analysis
[0106] Table 1 shows the performance of the error score relative to various parameter tuning approaches. The exemplary improvements are relative to the parameter baseline. The effects of hysteresis, edge / corner cases, and LGM (low ground quality) cases are excluded from these results. Table 1. Error scores for various ACM classifier parameter tuning approaches. S.No Parameter settings Error score %improve 1 Baseline 8.32 0% 2 Optimal parameters for each person 4.36 47.6% 3 Global optimal parameters 5.14 38.2% 4 Global optimal parameters (training / effective) 5.39 35.2% 5 User adaptive tuning 4.68 43.4%
[0107] In Table 1, the entries in different rows correspond to the following: 1. The baseline uses fixed ACM classifier parameters. In this example, these parameters are calibrated based on general case scenarios rather than customized to a specific user. 2. Individual Optimal Parameters refers to an example of optimal parameters for each user that reflects approximately 48% improvement over the baseline estimate. In the example, this serves as an upper bound on the performance that can be achieved by tuning the parameters of the ACM. 3. Global Optimal Parameters refers to an example of the best possible result obtained by a globally fixed set of parameters across all users. This parameter set was derived from the same 25 users used for testing. 4. Global Optimal Training / Validation refers to an example of using a training set of four users to obtain the global optimal parameters and applying this parameter set to the test user as valid. 5. User adaptive tuning is a tuning approach that uses the average hover area of the finger swipe mean. Here, it is assumed that the finger swipe mean is known. In the example, user adaptive tuning provides about 43% improvement, which is close to the theoretical best possible 48% estimated by individual parameters. B. Cross-category confusion
[0108] Table 2 below indicates examples of confusion across various categories. Each column in the table corresponds to a (ground truth, classifier output) combination.
[0109] The accidental contact problem usually occurs when a palm is registered as a thumb or finger, or a finger / thumb is registered as a palm. According to Table 2 below, this type of error can be reduced to 1.1% for example by the proposed user adaptive tuning algorithm. Table 2. Confusion matrix across various ground truth-classifier output pairs C. Adaptive ACM Performance
[0110] The examples above assume that the finger swipe mean for each user is known. In practice, the adaptive ACM can be used to dynamically estimate the finger swipe mean and update the ACM classifier parameters according to equations 1 and 2 during user operation. The example can be implemented using a normal interaction database from the five users described above. The adaptive ACM can be used to continuously estimate the finger swipe mean after each swipe and use the estimated finger swipe mean to adapt the classifier parameters and test on a test database. As shown in reference Fig. 6A As shown, for the user adaptive tuning results, the adaptive ACM determines a fixed finger swipe mean for each user. Figure 6B As shown, the adaptive ACM dynamically estimates the finger swipe mean after each valid swipe and uses the finger swipe mean to modify the ACM parameters.
[0111] In the example, normal interaction data is collected for five users. Fig. 9 is a plot 900 indicating ACM performance versus number of swipes for three situations.
[0112] refer to Fig. 9, three exemplary cases are: (i) Baseline 910 indicating baseline parameters similar to Table 2; (ii) Adaptive ACM Normal Interaction 920 indicating ACM classifier parameters tuned from a dynamic estimate of the finger sweep mean; and (iii) Adaptive ACM Finger Sweep Mean 930 indicating ACM classifier parameters tuned by finger sweep mean estimation from a test data set, which is a single value. Adaptive ACM Normal Interaction 920 is estimated from the normal interaction data. Adaptive ACM Finger Sweep Mean 930 is estimated offline from the test data.
[0113] All references, including publications, patent applications, and patents, cited herein are hereby incorporated by reference to the same extent as if each reference were individually and specifically indicated to be incorporated by reference and were set forth in its entirety herein.
[0114] Unless otherwise indicated herein or clearly contradictory to the context, the use of the terms "one" and "an" and "the" and "at least one" and similar referents in the context of describing the present invention (especially in the context of the following claims) is to be interpreted as covering both the singular and the plural. Unless otherwise indicated herein or clearly contradictory to the context, the use of the term "at least one" followed by a list of one or more items (e.g., "at least one of A and B") is to be interpreted as meaning one item (A or B) selected from the listed items or any combination of two or more of the listed items (A and B). Unless otherwise indicated, the terms "comprising", "having", "including" and "containing" are to be interpreted as open terms (e.g., meaning "including but not limited to"). Unless otherwise indicated herein, the recitation of a range of values herein is intended merely to serve as a shorthand method of individually referring to each individual value falling within the range, and each individual value is incorporated into this specification as it is individually recited herein.
[0115] Unless otherwise indicated herein or otherwise clearly contradictory to the context, all methods described herein can be implemented in any suitable order. Unless otherwise required, any and all examples or exemplary language (e.g., "such as") provided herein are used only to better illustrate the present invention and will not limit the scope of the present invention. The language in this specification should not be interpreted as indicating any unclaimed element as necessary for practicing the present invention.
[0116] Preferred embodiments of the present invention are described herein, including the best mode known to the inventor for implementing the present invention. When reading the foregoing description, variations of those preferred embodiments may become apparent to those of ordinary skill in the art. The inventor expects the technician to adopt such variations when appropriate, and the inventor intends to practice the present invention in a manner other than the manner specifically described herein. Therefore, the present invention includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. In addition, unless otherwise indicated herein or otherwise clearly contradictory to the context, the present invention includes any combination of the elements described above in all possible variations thereof.
Claims
1. A system for classifying touch data, the system comprising: A plurality of sensing elements; as well as A processing system configured to: receiving touch data from a current user via the plurality of sensing elements; determining a first set of classifier parameters corresponding to a current user based on usage data, wherein the usage data includes the touch data from the current user; as well as The first set of classifier parameters is applied to classify subsequent touch data. 2 . The system of claim 1 , wherein the touch data comprises a touch image corresponding to a sensing area associated with the plurality of sensing elements.
3. The system of claim 2, wherein the processing system is further configured to: generating one or more segmented touch images from the touch image, each segmented touch image corresponding to an active touch area in the touch image; and classifying the one or more segmented touch images based on a second set of classifier parameters, Wherein the first set of classifier parameters is determined based on the second set of classifier parameters and the usage data.
4. The system of claim 3, wherein classifying the one or more segmented touch images based on the second set of classifier parameters further comprises: for each segmented touch image of the one or more segmented touch images, extracting one or more features associated with the corresponding segmented touch image; as well as The respective segmented touch image of the one or more segmented touch images is classified by applying the second set of classifier parameters to the one or more features associated with the respective segmented touch image.
5. A system according to claim 1, wherein the usage data also includes touch data previously stored in a database, and wherein determining the first classifier parameter set corresponding to the current user is based on the touch data from the current user and the touch data previously stored in the database.
6. The system of claim 5, wherein the processing system is further configured to: determining a first average value associated with the touch data from the current user; determining a second average value associated with the touch data previously stored in the database; and The first set of classifier parameters is updated based on the first mean and the second mean.
7. The system of claim 6, wherein the first average and the second average are determined based on finger swiping characteristics.
8. The system of claim 6, wherein the first set of classifier parameters is dynamically updated at a predefined rate, wherein the predefined rate is associated with a tunable weight corresponding to the first average value.
9. The system of claim 8, wherein the processing system is further configured to: In response to detecting a change in the tunable weights, the first set of classifier parameters is dynamically updated at an updated rate.
10. A method for classifying touch data, the method comprising: receiving, by the processing system, touch data from a current user; determining, by the processing system, a first set of classifier parameters corresponding to the current user based on usage data, wherein the usage data includes the touch data from the current user; as well as The first set of classifier parameters is applied by the processing system to classify subsequent touch data. The method of claim 10 , wherein the touch data comprises a touch image corresponding to a sensing area associated with a plurality of sensing elements.
12. The method according to claim 11, further comprising: generating one or more segmented touch images from the touch image, each segmented touch image corresponding to an active touch area in the touch image; as well as classifying the one or more segmented touch images based on a second set of classifier parameters, Wherein determining the first set of classifier parameters is based on the second set of classifier parameters and the usage data.
13. The method of claim 12, wherein classifying the one or more segmented touch images based on the second set of classifier parameters further comprises: for each segmented touch image of the one or more segmented touch images, extracting one or more features associated with the corresponding segmented touch image; as well as The respective segmented touch image of the one or more segmented touch images is classified by applying the second set of classifier parameters to the one or more features associated with the respective segmented touch image.
14. The method of claim 10, wherein the usage data further comprises touch data previously stored in a database, wherein determining the first classifier parameter set corresponding to the current user is based on the touch data from the current user and the touch data previously stored in the database.
15. The method according to claim 14, further comprising: determining a first average value associated with the touch data from the current user; determining a second average value associated with the touch data previously stored in the database; as well as The first set of classifier parameters is updated based on the first mean and the second mean. The method of claim 15 , wherein the first average and the second average are determined based on finger swiping characteristics.
17. The method of claim 15, wherein the first set of classifier parameters is dynamically updated at a predefined rate, wherein the predefined rate is associated with a tunable weight corresponding to the first average value.
18. The method according to claim 17, further comprising: In response to detecting a change in the tunable weights, the first set of classifier parameters is dynamically updated at an updated rate.
19. A non-transitory computer-readable medium having stored thereon computer-executable instructions for classifying an input object using an input device, wherein the computer-executable instructions, when executed, facilitate the performance of: Receive touch data from the current user; determining a set of classifier parameters corresponding to the current user based on usage data, wherein the usage data includes the touch data from the current user; as well as The first set of classifier parameters is applied to classify subsequent touch data.
20. A non-transitory computer-readable medium according to claim 19, wherein the usage data also includes touch data previously stored in a database, wherein determining the first classifier parameter set corresponding to the current user is based on the touch data from the current user and the touch data previously stored in the database.