The disclosed implementations relate generally to eye tracking, and more specifically to classifying user activity based on eye tracking data.
When a user interacts with a user interface or reads a printed page, the user is engaged in a range of activities, including reading, selecting, inspecting parts of an image, and so on. Some eye tracking technology can capture what a user pays attention to, or classify if a user is reading text. However, the classification processes are limited to text, and rely solely on eye movement. To get a more fine grained understanding of users' activities, a more detailed analysis is required.
One problem with eye tracking data is that it includes a lot of random variation (i.e., noise). For this reason, current eye tracking techniques do not result in accurate data. For example, current techniques are not sufficiently reliable at detecting what a person is looking at or what a person is doing.
The present application describes systems and methods for classifying and grouping fixations according to the activity the user is engaged in, such as reading text, looking at an image, typing on a keyboard, or interacting with a user interface component. In some implementations, the disclosed techniques provide detailed information about the user's activities while interacting with a computer interface. In some implementations, the disclosed techniques analyze eye tracking data for user research or for user interface design feedback, or to provide an intelligent user interface system with information about a user's attention. Some implementations use the disclosed techniques to evaluate the effectiveness of printed materials, such as marketing materials.
It is useful to understand the activities a user is involved with when interacting with user interfaces. This application describes systems and methods to categorize user activity utilizing eye tracking data and information collected from user input devices (e.g., a mouse and a keyboard). The classification techniques can be used directly, incorporated into software that analyzes eye tracking data for user research, or incorporated into an intelligent user interface system.
Print material and user interfaces often contain different kinds of information: text, figures, user interface controls, and so on. When examining these different kinds of information, a user's gaze exhibits different gaze patterns. These patterns can be identified and categorized. When combined with the regions created by the different information content, more precise estimation of a user's attention and activities can be achieved.
When evaluating information rich visual content (such as user interfaces, web pages, and electronic documents), regions of interest are often created, which are large enough to robustly measure a user's attention within the expected eye tracking errors. Smaller regions are often avoided because eye tracking errors can make it too difficult to correctly correlate a user's gaze to a region. In some existing systems, the regions of interest (“ROIs”) are created by hand, but they can also be automatically derived from the content displayed (e.g., using the columns and rows of white space between regions). These regions may contain different kinds of information that are expected to elicit different gaze patterns. When ROIs are automatically generated they can be hierarchically nested with larger more general regions containing smaller more specific regions.
Used alone, keystrokes and mouse events are not good indicators of what a user pays attention to. In some cases, keystrokes and mouse events are not synchronized with a user's attention. For example, the user may position the mouse, continue to read a piece of text, then click on the mouse when ready, without looking at the button he or she selected. In another example, a user may “park” the mouse while reading text or inspecting a page, so information about the mouse provides no information about the user's activity. Because gaze data directly identifies where a person is looking, gaze data is generally better than keystrokes and mouse events at classifying user activities. In some implementations, 60 or more gaze points are collected per second. Disclosed implementations that supplement gaze data with keystrokes and mouse events can provide even better data.
The disclosed techniques can be used in software analyzing eye tracking data for user research, such as evaluating the effectiveness of print material or websites. This provides precise information about user activity as well as attention. For example, disclosed implementations can determine if a person is reading a piece of important information or just staring at the location of the information without reading it. The disclosed techniques provide valuable feedback for designers and usability experts regarding user activity and attention.
In some implementations, activity classification provides an intelligent user interface (“IUI”) with detailed information about user activity. The classification can create recommendations about appropriate actions or information, or customize the user interaction to increase task efficiency. For example, if the system detects that a user is not reading an important instruction, it can alert the user to read it. Or, if the system detects a user reading text and inspecting images related to sales projections of product X, the system can suggest similar documents and text segments related to this topic. Some implementations use the disclosed techniques in a tutor system that detects inefficient behavior patterns and tries to guide users to more efficient methods of solving their particular tasks.
Eye movements can be classified into fixations, when the eye is relative still and the brain processes information, and saccades, when the eye moves from one fixation point to the next. Saccades are short in duration (e.g., less than 80 milliseconds) and fixations are longer, typically 250 milliseconds, but can be as short as 80-100 milliseconds. A fixation identification algorithm groups gaze data points (e.g., collected at a rate of 60 per second) into fixations and saccades. Each fixation has a duration and a location (e.g., the centroid of the gaze points in the fixation).
Fixations can be grouped and matched with regions according to the locations of the fixations, the user activity correlated to the fixations, and the content type of the regions. This creates a more precise analysis than using eye tracking data alone.
Implementations of the present invention can use any standard fixation identification algorithm. Two common categories of fixation detection algorithms are dispersion-based algorithms (which measure the spread of gaze points in a fixation) and velocity-based algorithms (which measure the velocity between gaze points). In both types of algorithms, there are threshold values that determine whether a fixation is detected (e.g., less than a threshold dispersion or less than a threshold velocity). For each fixation, the detection algorithm provides the location and duration for each fixation. Gaze data samples not belonging to fixations are generally discarded by fixation detection algorithms.
Some implementations of the present invention extend standard fixation detection algorithms to take into account gaze point segments that would not qualify as fixations under a standard algorithm. A quasi-fixation can be defined as a group of successive gaze data points not matching the criteria of the fixation detection algorithm and where the duration is too long to be a saccade. Many quasi-fixations contain more noise than would be acceptable for a regular fixation algorithm. However, a quasi-fixation may describe a smooth pursuit (e.g., when the eye follows motion, such as a moving dot on a display) or other informative event (such as added noise when a user is moving the mouse or typing).
Some implementations that keep quasi-fixations assign a “validity” to each gaze point segment. For example, each fixation has a validity of 1, whereas a quasi-fixation has a validity of 0. In some implementations, the validity is assigned on a continuum ranging from 0 (definitely invalid) to 1 (definitely valid). In some implementations, fixations with very low estimated validity are discarded anyway (e.g., validity less than 0.1 or validity less than 0.25). In these implementations, the extended algorithm keeps many more fixations than the standard algorithm, but still discards at some level.
To simplify the subsequent discussion, for implementations that use only true fixations, the term “fixation” refers to those fixations. For implementations that also include quasi-fixations, the term “fixation” will be broader, encompassing gaze point segments that are either true fixations or quasi-fixations. In some instances, the phrase “invalid fixation” is used to identify a quasi-fixation.
Implementations classify each fixation based on the activity being performed at the time of the fixation. This classification can be done heuristically or by using machine learning techniques. In either case, the system utilizes a model of fixation activity classes. For each fixation, a corresponding set of fixation features is determined, and the features are compared to the model. The set of features can include characteristics of the fixation itself (e.g., duration or validity estimate), fixation context (e.g., distance from prior and subsequent fixations), and information provided by user interface devices (e.g., keyboard and mouse events during or near the fixation). The best matching activity label is assigned to the fixation. Some implementations utilize the activity labels “inspecting” (looking at content with intent of understanding it), “reading,” “navigation (searching for next piece of information to digest, or moving the attention to a different part of the UI, including mouse movements),” “navigating along path” (follow a graphical element pointing to a new location), “selecting,” and “typing.”
The activity classification typically includes activities that can be inferred from gaze. For example, if a user clicks a button while inspecting a piece of information elsewhere on the page, the activity label would be “inspecting.” Some implementations include the activity label “scrolling,” which corresponds to a user scrolling within a window (e.g., by dragging a scroll box or rolling a scroll wheel). Some implementations include “judging,” which indicates a user is deciding on whether to perform an action or not. In some implementations, the activity classification uses a standard machine learning method, such as a support vector machine (“SVM”) or a neural network.
After the activity classification, groups of consecutive fixations engaged in the same activity are created. These groups are created by inspecting the classified activity of two consecutive fixations. If they are the same they will be in the same group. Proceeding sequentially, as long as the activity label of the following fixations is the same, they will be included in the same group. If not, a new group will be created, and the process continues. The groups identify time periods when the user was engaged in a particular activity.
The activity groups created may not match the regions in the user interface or printed page well and there might be some misclassifications of activities. Some implementations include a parallel step that clusters the fixations based only on their locations and temporal order. In a later step, the clusters and groups are compared and reconciled.
Some implementations compute fixation clusters. A cluster includes consecutive fixations that are closely located. Typically, implementations require that the temporal order of the fixations is preserved. Some implementations allow for a “drift” in the fixation pattern. For example, when people read, the fixations will move with short distances from left to right without a clearly defined center point.
Some implementations construct the fixation clusters by sequentially processing the fixations in temporal order. In the first step, a cluster is formed that initially contains the first fixation. At each subsequent step, a new fixation is considered, and it is compared to the last fixation that was considered, and to the cluster that contains the last fixation. The new fixation will either be placed in the cluster that contains the last fixation, or the new fixation will start a new cluster. For example, if a person is reading a portion of text on a page, moves on to another region on the page, then jumps back to the first portion of text, the later fixations are not in the same cluster as the first fixations, even if they are at the same location on the page.
If the new fixation is within a first distance threshold of the last fixation, it gets added to the cluster. If not, the distance from the new fixation to each fixation in the cluster is calculated and if the smallest distance from the new fixation to a fixation in the cluster is less than a second threshold, the new fixation is added to the cluster. Otherwise, the new fixation begins a new cluster. In some implementations the first and second thresholds are the same.
Some implementations include a merge & match step, in which the activity groups and the fixation clusters are compared and reconciled. The activity groups and fixation clusters are considered as segment types. The boundaries of the two segment types are compared, and a cost is associated with keeping, substituting or eliminating each of the boundaries. The cost can be constructed based on a heuristic model or based on a model derived from machine learning algorithms. Costs can be based on many factors, including: segment sizes, number of segments, fixation durations within segments, activity types of surrounding segments, relative location of segments to regions on the page, the sizes of the relevant regions, and so on.
The configuration that minimizes the cost is retained. This may result in adjustments to the clusters or the activity groups. In some implementations, the entire configuration of groups and clusters is evaluated together. The configuration with the overall best results (e.g., lowest cost) is selected.
In other implementations, the reconciliation is performed sequentially, one boundary at a time. Each boundary is either retained or discarded according to a cost function or other heuristic, and the algorithm moves on to the next boundary.
Some implementations process more than one boundary at a time, but less than all boundaries. For example, some implementations identify all of the boundaries where there is agreement between the clusters and activity groups. Then, the reconciliation process is applied to all mismatched boundaries between closest pairs of matching boundaries.
Some sequences of activities can be a signs of high level activities that are not recognizable when looking at a single fixation. In some implementations, the sequences of activities are analyzed to find patterns indicative of higher level activities, and may be combined into even higher-level activities. For example, the activity of skimming a text consists of short periods of reading (e.g., 3-4 fixations) followed by a navigational fixation to a new part of the text and another short period of reading.
Some implementations use string mining techniques to identify possible higher level activities. Models of activities are stored and matched against the user activity label assignments computed earlier. By parsing the activity segments, matches can be generated. This analysis can be performed efficiently using stored examples of skimming or other higher-level activities. Some implementations determine matches not only using the sequence of activities, but also using the characteristics of the activities (or features of the fixations), such as duration. In addition to pre-computed activity sequences, some implementations automatically identify frequently occurring sequences.
In accordance with some implementations, a method classifies the user activities of a person interacting with a computer user interface with one or more user interface devices (e.g., a keyboard and a mouse). The method is performed at a computer system having one or more processors and memory. The computer system receives eye tracking data for the person. The eye tracking data includes a sequence of fixations ordered temporally, where each respective fixation corresponds to a plurality of respective consecutive measured gaze points. The fixations are identified from the raw gaze point data using a fixation detection algorithm. Each respective fixation has a respective duration and location based on the corresponding respective measured gaze points. For each fixation in the sequence, the computer system determines a plurality of features for the fixation. The features include one or more characteristics of the fixation, one or more context features based on preceding or subsequent fixations, and one or more user interaction features based on information from the user interface devices during the fixation or in close temporal proximity thereto. The computer system assigns a user activity label to the fixation in accordance with the plurality of features, where the user activity label is selected from a predefined set of user activity labels (e.g., inspecting, reading, navigating, selecting, and typing). Some implementations utilize machine learning to perform the assignments (e.g., a support vector machine (SVM) or a neural network). The computer system then analyzes the fixations and their assigned user activity labels to make one or more recommendations.
In accordance with some implementations, a method classifies user activities for a person viewing a page that contains a plurality of distinct contiguous regions (e.g., a printed page with multiple regions, or a web page or user interface window with multiple regions). The method is performed at a computer system having one or more processors and memory. The computer system receives eye tracking data (e.g., in the form of gaze points) for the person. From the eye tracking data a sequence of temporally ordered fixations can be detected. The fixations are identified from the raw gaze point data using a fixation detection algorithm. Each respective fixation has a respective duration and location based on the corresponding respective measured gaze points. The computer system partitions the fixations into a plurality of clusters, where each cluster comprises a consecutive sub-sequence of the fixations in the temporal order. In addition, the computer system assigns a provisional user activity label to each fixation based on a set of features or characteristics of the fixation (e.g., characteristics of the fixations themselves, features describing the context of each fixation, and features indicating the status of one or more user interface devices during the fixation). The user activity labels are selected from a predefined set of user activity labels (e.g., inspecting, reading, selecting, typing, navigating, and path navigating). The computer system groups together consecutive fixations that have the same assigned provisional user activity label to partition the fixations into a plurality of groups. For each respective group that matches a respective cluster, the computer system retains the provisional user activity label assignment as a final user activity label assigned to each of the fixations in the respective group. The computer system also reconciles the non-matching groups with the non-matching clusters, using the regions, to form a set of non-overlapping modified groups consisting of fixations from the non-matching groups. Each fixation in a modified group is assigned the same final user activity label, which is selected from the predefined set of user activity labels. The computer system then analyzes the fixations and their assigned final user activity labels to make one or more recommendations.
Like reference numerals refer to corresponding parts throughout the drawings.
There are many different technologies used in eye tracking, and the techniques disclosed herein do not rely on any specific eye tracking technique. One of the techniques for eye tracking uses corneal reflection of infrared light, as illustrated in
A person's gaze may be divided into fixations, which are time periods where the eye remains relatively still, and saccades, which are the time periods between fixations, where the eye is moving more rapidly. Based on empirical data, fixations are typically longer than saccades. A fixation is typically about 250 milliseconds, with a minimum duration of 80-100 milliseconds, whereas a saccade is typically less than 80 milliseconds.
A fixation detection algorithm takes the gaze points 212, and determines the fixations 214, as illustrated in
Memory 418 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory 418 may optionally include one or more storage devices remotely located from the CPU(s) 402. Memory 418, or alternately the non-volatile memory device(s) within memory 418, comprises a computer readable storage medium. In some implementations, memory 418 stores the following programs, modules and data structures, or a subset thereof:
Each of the above identified elements may be stored in one or more of the previously mentioned memory devices, and corresponds to a set of instructions for performing a function described above. The set of instructions can be executed by one or more processors (e.g., the CPU's 402). The above identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations. In some implementations, memory 418 may store a subset of the modules and data structures identified above. Furthermore, memory 418 may store additional modules and data structures not described above.
Although
Each of the methods described herein may be governed by instructions that are stored in a computer readable storage medium and that are executed by one or more processors of computing device 400. Each of the operations shown in the figures (e.g.,
The fixation classification module 430 identifies (506) a set of fixation characteristics, which are features 448 corresponding to the fixation 214 itself. Some of these characteristics are basic fixation properties, such as the duration of the fixation 214, or the validity of the fixation 214. Other fixation characteristics include the average distance between gaze points 212 corresponding to the fixation 214. Typically the distances between the gaze points are only measured between sequentially consecutive gaze points. Some implementations also include the variance in the distance between the gaze points. Another fixation characteristic is the variance in pupil size measured during the fixation. Some implementations utilize a subset of these characteristics, or supplement with additional fixation characteristics, such as the width or spread of the fixation.
The fixation classification module 430 determines (508) a plurality of fixation context features, which may include any of the following, or variations thereof:
These features 448 illustrate various measurable factors about preceding or subsequent fixations that may assist in classifying the fixation 214.
The fixation classification module 430 also determines (510) a set of user interaction features 448 based on the status of user interface devices during the fixation 214, or in close temporal proximity to the fixation 214. The user interface devices typically include the input devices 410 of the computing device 400, such as a keyboard and mouse. There are many user interaction features 448 that can be used, including various subsets of:
One of skill in the art recognizes that the above list of user interaction features 448 is not exhaustive. The list illustrates various features that measure user interactions that are potentially relevant to classifying the fixation 214. One of skill in the art recognizes a wide array of mouse events, such as CLICK, MOUSEDOWN, and MOUSEUP. Furthermore, some computer mice include left and right buttons, so the features may distinguish between the two types of button presses. In addition, many computer mice include a scroll wheel, so features may be utilized that measure whether the scroll wheel was used during a fixation, the length of the scroll, and so on. In addition, some computing devices utilize a joy stick or other input device, which has a different set of events that may be relevant to classifying a fixation. For example, tracking joystick events together with eye tracking may be useful to evaluate a video game, which is more complex than evaluating a user interface with static (or nearly static) regions. User interaction features may also be derived from gestures detected from a video stream.
Implementations may utilize all or any subset of the features identified above in the three categories of features 448. Furthermore, some implementations select all or a subset of the listed features 448, and supplement with additional features 448 that have not been explicitly listed above.
Once the designated set of fixation features 448 has been identified/determined, the fixation classification module 430 assigns (512) a user activity label 444 to the fixation 214. The assigned user activity label 450 is selected from the predefined set of user activity labels 444.
In some implementations, the assignment of a user activity label 444 to the fixation uses a machine learning algorithm. Using a training set of prior data where the input features are known and the classification of fixations is known, a machine can be trained to classify fixations with relative high accuracy. In some implementations, the machine learning uses a support vector machine (SVM). In some implementations, the machine learning uses a neural network.
In some implementations, the assignment of a user activity label to the fixation uses a deterministic algorithm rather than machine learning. Some implementations that do not use machine learning utilize a smaller number of fixation features 448.
The process flow shown in
Once the user activity labels 444 have been assigned to each fixation 214, the fixation classification module 430 groups (610) the fixations 214 into a sequence of non-overlapping groups based on the assigned user activity labels 450. In some implementations, the grouping is based simply on whether consecutive fixations have the same assigned user activity label 450: if they are the same, then the fixations 214 are in the same group; if they are different, then they are in different groups. This process creates a partition of the fixations, in which each fixation is in exactly one group, and the fixations within each group are temporally contiguous. In some implementations, the grouping also takes into account whether the fixations are located in the same region 442 of the page 440 being viewed. In these implementations, two consecutive fixations are placed in the same group only if the assigned user activity labels are the same and the two fixations are in the same region 442. Otherwise, the fixations are in different groups. This process results in a partition of the fixations, but there may be a greater number of groups than implementations that do not consider the regions when grouping fixations together.
As a separate independent step, the fixation clustering module 432 partitions (606) the set of fixations 214 into clusters 454. In some implementations, the clusters 454 are formed by sequentially processing the fixations 214 in temporal order. As an initial step, the first fixation 214 is considered a first cluster 454. For each subsequent fixation 214, it is either added to the preceding cluster 454 that includes the preceding fixation 214, or starts a new cluster 454. In some implementations, the next fixation 214 is added to the preceding cluster 454 if the distance from the subsequent fixation 214 to the immediately preceding fixation is less than a threshold value. This accounts for the fact that reading typically proceeds from left to right, and all fixations while reading one segment of text should be clustered together. In other implementations, the subsequent fixation 214 is added to the preceding cluster 454 when the subsequent fixation 214 is within a threshold distance of any fixation within the preceding cluster 454.
Some implementations combine these two ideas to determine whether to add the subsequent fixation 214 to the preceding cluster 454. First, if the subsequent fixation 214 is within a first threshold distance of the immediately preceding fixation, then the subsequent fixation 214 is added to the preceding cluster 454. If not added to the preceding cluster based on the first calculation, the fixation clustering module 432 computes the shortest distance between the subsequent fixation 214 and any fixation in the preceding cluster 454. If that shortest distance is less than a second threshold distance, then the subsequent fixation 214 is added to the preceding cluster 454. If the subsequent fixation 214 is not added to the preceding cluster 454 based on either of these two steps, then a new cluster is started, which initially consists of just the subsequent fixation.
This process continues through the entire set of fixations in sequence. Note that for each fixation, there is only one cluster to consider. Clusters consist of temporally consecutive fixations, so each fixation is either added to the immediately preceding cluster, or starts a new cluster. Of course this process results in each fixation being in exactly one cluster, so the clusters form a partition of the fixations.
After the fixation groups 452 and fixation clusters 454 are determined, the merge & match module 434 compares (612) the clusters 454 with the groups 452 in the context of the regions 442 to form a final set of groups. When a cluster 454 exactly matches a group 452, the group is not modified, and each fixation in the group keeps its assigned user activity label 450.
For the unmatched groups and unmatched clusters, the merge & match module reconciles the differences.
In
In some implementations, the merge & match module 434 processes the non-matching borders of the fixation groups 452 and fixation clusters 454. This is illustrated in
In
During the reconciliation process, some of the assigned user activity labels 450 may change. When a fixation group 452 is unchanged by the merge & match module 434, the assigned user activity label 450 for each fixation 214 within the group 452 is retained. For example, in
Returning to
In some implementations, after the merge & match module reconciles the groups 452 with the clusters 454, the activity sequencing module 436 classifies (616) the user activity into higher level activities. Whereas the fixation classification module 430 assigns a user activity label 444 to each fixation individually, the activity sequencing module 436 identifies patterns of lower level activity that can be classified at a higher level. For example, some implementations can differentiate between when a user is reading for content versus skimming based on different patterns of eye movement. In some implementations, the activity classification module 436 uses one or more of the fixation features 446 in the analysis. In some implementations, the activity sequencing module 436 utilizes the regions 442 in the analysis. In some implementations, the database 438 stores a set of user activity patterns, which the activity sequencing module compares to the user activity. In some implementations, previous activity patterns are used as input to a machine learning algorithm, and the activity sequencing module 436 uses the trained machine to classify the high level activities.
Each respective fixation corresponds to (812) a plurality of respective consecutive measured gaze points, as illustrated above with respect to
The computing device 400 also receives (816) user interaction data from the one or more user interface devices. The user interaction for an interface device event typically includes both the time of the event and what the event is (e.g., mouse movement). For events that have a duration (e.g., mouse movement or mouse scroll), the duration is typically included in the interaction data as well.
For each fixation in the sequence (818), the fixation classification module 430 determines (820) a plurality of features for the fixation. In this context, a “feature” is a well defined property corresponding to the fixation, and can be measured quantitatively. As described above with respect to
The plurality of features for the fixation include (822) one or more characteristics of the fixation. In some implementations, the one or more characteristics of the fixation include (824) at least one characteristic selected from: the duration of the fixation; the variation in distance between the consecutive measured gaze points corresponding to the fixation; and variation in pupil size of the person, measured during the fixation.
The plurality of features for the fixation also include (826) one or more user interaction features based on the received user interaction data. In some implementations, the one or more user interaction features include (828) at least one user interaction feature selected from: the average speed of the mouse cursor during the fixation; the average distance from the fixation location to a mouse cursor location during the fixation; the state of the mouse buttons during the fixation; and the distance between the location of the fixation and the location of the mouse cursor when a mouse button is pressed during the fixation. This is described above in more detail with respect to
In some implementations, the plurality of features include (832) one or more context features selected from: the distance between the location of the fixation and the location of the immediately preceding fixation; the distance between the location of the fixation and the location of the immediately following fixation; the duration of the immediately preceding fixation; and the duration of the immediately following fixation. A more extensive illustrative list of context features is provided above with respect to
Using the plurality of features, the fixation classification module 430 associates (834) a user activity label with the fixation. The user activity label is selected (836) from a predefined set of user activity labels. The list is typically small (e.g., less than 10 labels) because the labels define in a general way how a user is interacting with a computer screen (or in other implementations, a printed page). For example, in some implementations, the predefined set of user activity labels includes: inspecting, reading, navigating, selecting, and typing.
In some implementations, associating a user activity label with the fixation uses (840) machine learning, such as a support vector machine or a neural network. These implementations select a set of features (e.g., forty features of the three types identified above), with each of these features corresponding to a component in a feature vector (e.g., with forty components). Based on a training set, where both the features and the user activity is known, the machine learns how to correlate the features with specific user activities.
In some implementations, consecutive fixations that have the same assigned user activity label are grouped together (842), thus partitioning the fixations into a plurality of groups.
In some implementations, the fixations are also partitioned (844) into a plurality of clusters using a second independent technique. This is described in detail above with respect to
In some implementations, for each fixation after the first fixation (848), the fixation is either added to the previous cluster or begins a new cluster based on a set of three rules. When the distance from the fixation to the immediately preceding fixation is less than a first predefined distance, add (850) the fixation to the cluster that includes the immediately preceding fixation. When the distance from the fixation to any fixation in the cluster that includes the immediately preceding fixation is less than a second predefined distance, add (852) the fixation to the cluster. When neither of the previous two conditions applies, create (854) a new cluster that includes the fixation. In some implementations, the first and second predefined distances are the same, in which case the first two rules collapse into a single rule. However, because the fixation is more likely to be close to the immediately preceding fixation, the clustering algorithm typically evaluates the distance to the immediately preceding fixation first for performance reasons (when any of the distances are under the threshold, there is no need to compute any of the other distances).
The grouping of fixations based on user activity labels and the clustering based on the proximity of fixations form two distinct partitions of the fixations. In many instances, groups and clusters match each other, which increase the likelihood that the classifications are correct. However, for mismatched groups and clusters, a reconciliation process is performed by the Merge & Match module 434. This is described in detail above with respect to FIGS. 6 and 7A-7D.
In some implementations, for each respective group that matches a respective cluster, the user activity label assignment for the respective group is retained (856) as a final user activity label assigned to each of the fixations in the respective group. Some implementations reconcile (858) non-matching groups with non-matching clusters, using the regions, to form a set of non-overlapping modified groups consisting of fixations from the non-matching groups. In some implementations, each fixation in a modified group is assigned (860) the same final user activity label (i.e., all of the fixations within a modified group have the same label as each other). The user activity label is selected (860) from the predefined set of user activity labels (i.e., there is one predefined set of labels, and that predefined set is used by both the fixation classification module 430 and the merge & match module 434).
In some implementations, reconciling (858) non-matching groups with non-matching clusters comprises (862) identifying (864) a set of non-matching boundaries. Each boundary in the set of non-matching boundaries is (866) either a boundary of a respective group but not a boundary of any respective cluster or a boundary of a respective cluster but not a boundary of any respective group. For each boundary in the set of non-matching boundaries, the merge & match module 434 computes (870) a respective retention cost for keeping the boundary and computes (870) a respective removal cost for removing the boundary. In some implementations, boundary retention costs and boundary removal costs are (872) based on a plurality of factors selected from: the sizes of resulting modified groups; fixation durations within resulting modified groups; the user activity labels assigned to fixations on both sides of a boundary; regions corresponding to fixations on both sides of a boundary; and the sizes of the regions. The merge & match module 434 then keeps (874) or removes (874) the boundary based on the lowest cost alternative. This process is described in detail above with respect to FIGS. 6 and 7A-7D.
Once all of the non-matching boundaries are processing, the merge & match module 434 identifies (876) the set of modified groups based on the boundaries kept from the set of non-matching boundaries. In some implementations, a final user activity label is assigned (878) to the fixations in each modified group based on the most prevalent user activity label previously assigned to the fixations in the respective modified group (i.e., a majority rule algorithm).
In some implementations, the fixations and their associated user activity labels are analyzed (880) to make one or more recommendations for modifying the computer user interface.
Although the disclosed clustering and grouping techniques may be applied independently and subsequently reconciled as described above with respect to
In some implementations, an alternative method of classifying user activities comprises: at a computer system having one or more processors and memory: receiving eye tracking data for a person viewing a page having a plurality of distinct contiguous regions, the eye tracking data comprising a sequence of fixations ordered temporally, wherein each respective fixation corresponds to a plurality of respective measured gaze points, and wherein each respective fixation has a respective duration and location based on the corresponding respective measured gaze points; partitioning the fixations into a plurality of clusters, wherein each cluster comprises a consecutive sub-sequence of the fixations in the temporal order; assigning a provisional user activity label to each fixation based on a set of characteristics of the fixation, wherein the user activity labels are selected from a predefined set of user activity labels; grouping together consecutive fixations that have the same assigned provisional user activity label to partition the fixations into a plurality of groups; for each respective group that matches a respective cluster, retaining the provisional user activity label assignment as a final user activity label assigned to each of the fixations in the respective group; and reconciling non-matching groups with non-matching clusters, using the regions, to form a set of non-overlapping modified groups consisting of fixations from the non-matching groups, wherein each fixation in a modified group is assigned a same final user activity label selected from the predefined set of user activity labels.
In some implementations, partitioning the fixations into a plurality of clusters comprises processing the fixations in temporal order to build the clusters, beginning with a first cluster including the first fixation in the temporal order, wherein for each fixation after the first fixation: when the distance from the fixation to an immediately preceding fixation is less than a first predefined distance, adding the fixation to the cluster that includes the immediately preceding fixation; when the distance from the fixation to any fixation in the cluster that includes the immediately preceding fixation is less than a second predefined distance, adding the fixation to the cluster; and when neither of the preceding two conditions applies, creating a new cluster that includes the fixation.
In some implementations, assigning a provisional user activity label to each fixation uses machine learning.
In some implementations, reconciling non-matching groups with non-matching clusters comprises: identifying a set of non-matching boundaries, wherein each boundary in the set of non-matching boundaries is either a boundary of a respective group but not a boundary of any respective cluster or a boundary of a respective cluster but not a boundary of any respective group; for each boundary in the set of non-matching boundaries: computing a respective retention cost for keeping the boundary; computing a respective removal cost for removing the boundary; and keeping or removing the boundary based on selecting the lowest cost alternative; identifying the set of modified groups based on the boundaries kept from the set of non-matching boundaries; and assigning a final user activity label to the fixations in each modified group based on the most prevalent provisional user activity label assigned to the fixations in the respective modified group.
In some implementations, boundary retention costs and boundary removal costs are based on a plurality of factors selected from the group consisting of: sizes of resulting modified groups; fixation durations within resulting modified groups; user activity labels assigned to fixations on both sides of a boundary; regions corresponding to fixations on both sides of a boundary; and sizes of the regions.
In some implementations, the page is a printed page.
In some implementations, the page is a window in a computer user interface.
In some implementations, the method of classifying user activities further comprises analyzing the fixations and their associated user activity labels to make one or more recommendations for modifying contents of the page.
The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various implementations with various modifications as are suited to the particular use contemplated.
Number | Name | Date | Kind |
---|---|---|---|
6556224 | Banno | Apr 2003 | B1 |
7533411 | Goodman | May 2009 | B2 |
20050229251 | Chellapilla | Oct 2005 | A1 |
20080066014 | Misra | Mar 2008 | A1 |
20110206283 | Quarfordt | Aug 2011 | A1 |
20110310006 | Edwards | Dec 2011 | A1 |
20130177296 | Geisner | Jul 2013 | A1 |
20140168243 | Huang | Jun 2014 | A1 |
Number | Date | Country |
---|---|---|
WO 2012052061 | Oct 2010 | DE |
Entry |
---|
Lopresti, Daniel. “Leveraging the CAPTCHA Problem.” H.S. Baird and D.P. Lopresti (Eds.): HIP 2005, LNCS 3517, pp. 97-110, 2005. |
Salvucci and Goldberg “Identifying fixations and saccades in eye-tracking protocols.” In Proceedings of the Eye. Tracking Research and Applications Symposium (pp. 71-78, 2004). |
Biedert, A Robust Realtime Reading-Skimming Classifier, German Research Center for Artificial Intelligence, Mar. 28-30, 2012, 8 pgs. |
Bulling, EyeContext: Recognition of High-Level Contextual Cues from Human Visual Behaviour, Apr. 27-May 2, 2013, 4 pgs. |
Bulling, Eye Movement Analysis for Activity Recognition Using Electrooculography, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 33, No. 4, Apr. 2011, 13 pgs. |
Buscher, Eye Movements as Implicit Relevance Feedback, CHI 2008 Proceedings—Works in Progress, Apr. 5-10, 2008, 6 pgs. |
Campbell, A Robust Algorithm for Reading Detection, IBM Almaden Research Center, 2001, 7 pgs. |
Salvucci, Identifying Fixations and Saccades in Eye-Tracking Protocols, Nissan Cambridge Basic Research Four Cambridge Center, 2000, 8 pgs. |
Santella, Robust Clustering of Eye Movement Recordings for Quantification of Visual Interest, Department of Computer Science Center for Cognitive Science Rutgers University, In Eye Tracking Research and Applications (ETRA) Symposium 2004, 8 pgs. |
Iqbal, Using Eye Gaze Patterns to Identify User Tasks, Department of Computer Science, 2004, 6 pgs. |
Steichen, User-Adaptive Information Visualization-Using Eye Gaze Data to Infer Visualization Tasks and User Cognitive Abilities, Department of Computer Science University of British Columbia, Mar. 19-22, 2013, 12 pgs. |
Kardan, Comparing and Combining Eye Gaze and Interface Actions for Determining User Learning with an Interactive Simulation, Department of Computer Science, University of British Columbia, 2013, 13 pgs. |
Krause, Classifying the Difference in Gaze Patterns of Alphabetic and Logographic L1 Readers—A Neural Network Approach, Cognitive Interaction Technology, Center of Excellence Bielefield University, 2011, 6 pgs. |
Number | Date | Country | |
---|---|---|---|
20150131850 A1 | May 2015 | US |