Patent Publication Number: US-2017364753-A1

Title: Analyzing and Interpreting a Referee&#39;s Actions Using Gaze Data

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
     This application is related to co-pending application entitled “Determining Player Performance Statistics Using Gaze Data,” having attorney docket number YOR920160280US1, and to co-pending application entitled “Analyzing Team Game Play Interactions Using Gaze Data,” having attorney docket number YOR920160284US1. 
     BACKGROUND 
     A sports match (also referred to as a game, contest, or the like) is typically governed by a set of rules that determines the manner in which points/scores are allocated to participants in the match (or otherwise tabulated), the manner in which participants are permitted to interact, and so forth. The set of rules that governs a sports match is typically enforced by one or more referees (sometimes referred to as umpires). During a match, a referee may determine whether there has been an infraction of a rule, and if so, may assess a predetermined penalty against a participant in the match that the referee determines to be responsible for the infraction. Depending on the type of sports match, a participant may refer to an individual or a team of individuals. Further, as part of his/her officiating duties during a sports match, a referee may also determine whether a rule has been satisfied for allocating points to a particular individual or team or otherwise tabulating a score in a particular manner. 
     Oftentimes, a referee&#39;s determination of whether an infraction of a rule has occurred or whether a rule has been satisfied for allocating points/tabulating a score involves, at least in part, a subjective judgment. As such, subsequent evaluation of a referee&#39;s decision may reveal that the referee&#39;s decision was not objectively reasonable. For example, video footage of a series of player interactions or events that caused a referee to determine that an infraction occurred may actually reveal that the infraction did not occur. 
     While review of video footage during a sporting match (as opposed to after the match has concluded) to confirm the accuracy of a referee&#39;s decision (often referred to as “instant replay”) has become the norm for a number of different types of sports, it suffers from a number of drawbacks. For example, review of such footage fails to provide any quantitative assessment of behavioral characteristics of the referee that may have caused the referee to make a particular decision. In addition, conventional mechanisms for assessing the accuracy of a referee&#39;s decision fail to provide any measure of potential bias of a referee towards a particular individual or team. Discussed herein are technical solutions that address at least some of the aforementioned drawbacks as well as other drawbacks associated with conventional mechanisms for assessing the accuracy of a referee&#39;s decision. 
     SUMMARY 
     In one or more example embodiments of the disclosure, a computer-implemented method for assessing officiating behavior of a referee using gaze parameter data is disclosed. The method includes capturing, by an image sensor over a period of time, the gaze parameter data, where the gaze parameter data is associated with the referee during a sports match being officiated by the referee. The method further includes identifying, by a computer processor, a sports domain associated with the sports match, and identifying, by the computer processor, a key performance indicator (KPI) corresponding to the sports domain, the KPI being associated with an officiating decision made by the referee during the sports match. The method additionally includes identifying, by the computer processor, one or more sports domain rules associated with the KPI, and filtering, by the computer processor, the gaze parameter data to obtain a location/time series of the gaze parameter data that satisfies the one or more sports domain rules. The method further includes generating, by the computer processor, KPI data associated with the KPI based at least in part on the location/time series of the gaze parameter data, and determining, by the computer processor, whether the officiating decision was influenced by bias of the referee based at least in part on an analysis of the KPI data. 
     In one or more other example embodiments of the disclosure, a system for assessing officiating behavior of a referee using gaze parameter data is disclosed that includes at least one memory storing computer-executable instructions; and at least one processor configured to access the at least one memory and execute the computer-executable instructions to capture, by an image sensor over a period of time, the gaze parameter data, where the gaze parameter data is associated with the referee during a sports match being officiated by the referee. The at least one processor is further configured to identify a sports domain associated with the sports match, and identify a key performance indicator (KPI) corresponding to the sports domain, the KPI being associated with an officiating decision made by the referee during the sports match. The at least one processor is further configured to identify one or more sports domain rules associated with the KPI, and filter the gaze parameter data to obtain a location/time series of the gaze parameter data that satisfies the one or more sports domain rules. The at least one processor is further configured to generate KPI data associated with the KPI based at least in part on the location/time series of the gaze parameter data, and determine whether the officiating decision was influenced by bias of the referee based at least in part on an analysis of the KPI data. 
     In one or more other example embodiments of the disclosure, a computer program product for assessing officiating behavior of a referee using gaze parameter data is disclosed that comprises a non-transitory storage medium readable by a processing circuit, the storage medium storing instructions executable by the processing circuit to cause a method to be performed. The method includes capturing, by an image sensor over a period of time, the gaze parameter data, where the gaze parameter data is associated with the referee during a sports match being officiated by the referee. The method further includes identifying, by a computer processor, a sports domain associated with the sports match, and identifying, by the computer processor, a key performance indicator (KPI) corresponding to the sports domain, the KPI being associated with an officiating decision made by the referee during the sports match. The method additionally includes identifying, by the computer processor, one or more sports domain rules associated with the KPI, and filtering, by the computer processor, the gaze parameter data to obtain a location/time series of the gaze parameter data that satisfies the one or more sports domain rules. The method further includes generating, by the computer processor, KPI data associated with the KPI based at least in part on the location/time series of the gaze parameter data, and determining, by the computer processor, whether the officiating decision was influenced by bias of the referee based at least in part on an analysis of the KPI data. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The detailed description is set forth with reference to the accompanying drawings. The drawings are provided for purposes of illustration only and merely depict example embodiments of the disclosure. The drawings are provided to facilitate understanding of the disclosure and shall not be deemed to limit the breadth, scope, or applicability of the disclosure. In the drawings, the left-most digit(s) of a reference numeral identifies the drawing in which the reference numeral first appears. The use of the same reference numerals indicates similar, but not necessarily the same or identical components. However, different reference numerals may be used to identify similar components as well. Various embodiments may utilize elements or components other than those illustrated in the drawings, and some elements and/or components may not be present in various embodiments. The use of singular terminology to describe a component or element may, depending on the context, encompass a plural number of such components or elements and vice versa. 
         FIG. 1  depicts a cloud computing environment in accordance with one or more example embodiments of the disclosure. 
         FIG. 2  depicts abstraction model layers in accordance with one or more example embodiments of the disclosure. 
         FIG. 3  is a schematic block diagram depicting illustrative components of a three-dimensional (3D) gaze-based referee analysis system in accordance with one or more example embodiments of the disclosure. 
         FIG. 4  is a process flow diagram of an illustrative method for generating key performance indicator (KPI) data associated with a sports domain KPI based at least in part on gaze parameter data and analyzing the KPI data to determine a likelihood that an officiating decision made by a referee is accurate and/or to determine a likelihood that potential referee bias influenced an officiating decision in accordance with one or more example embodiments of the disclosure. 
         FIG. 5  is a process flow diagram of an illustrative method for categorizing aggregate KPI data for a referee into different decision categories, determining a bias/confidence pattern for the referee based at least in part on the categorization, and determining a profile for the referee based at least in part on the bias/confidence pattern in accordance with one or more example embodiments of the disclosure. 
         FIG. 6  is a schematic diagram of an illustrative computing device that is configured to implementation processes in accordance with one or more example embodiments of the disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Example embodiments of the disclosure include, among other things, systems, methods, computer-readable media, techniques, and methodologies for capturing gaze data for a referee over the course of a sports match, identifying a key performance indicator (KPI) corresponding to a sports domain with which the sports match is associated, and generating KPI data corresponding to the KPI. The KPI data may then be analyzed to assess a likelihood that an officiating decision made by the referee during the sports match is accurate as well as to assess the likelihood that referee bias contributed to the officiating decision. In certain example embodiments, KPI data for a referee may be aggregated across multiple sports domain KPIs and multiple sports matches and categorized into different decision categories. A bias/confidence pattern may then be determined for the referee based at least in part on the categorization, and a profile may be determined for the referee based at least in part on the bias/confidence pattern. The bias/confidence pattern may indicate whether the referee has exhibited a pattern of bias against an individual sports participant or a particular team. The referee profile may be used to determine whether a referee should be permitted to officiate a particular sports match depending on whether the referee has exhibited a pattern of bias against one or more participants of the sports match. 
     It is to be understood that although this disclosure includes a detailed description on cloud computing, implementation of the teachings recited herein are not limited to a cloud computing environment. Rather, embodiments of the present invention are capable of being implemented in conjunction with any other type of computing environment now known or later developed. 
     Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models. 
     Characteristics are as follows: 
     On-demand self-service: a cloud consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with the service&#39;s provider. 
     Broad network access: capabilities are available over a network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs). 
     Resource pooling: the provider&#39;s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to demand. There is a sense of location independence in that the consumer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). 
     Rapid elasticity: capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time. 
     Measured service: cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service. 
     Service Models are as follows: 
     Software as a Service (SaaS): the capability provided to the consumer is to use the provider&#39;s applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based e-mail). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings. 
     Platform as a Service (PaaS): the capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations. 
     Infrastructure as a Service (IaaS): the capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls). 
     Deployment Models are as follows: 
     Private cloud: the cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party and may exist on-premises or off-premises. 
     Community cloud: the cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by the organizations or a third party and may exist on-premises or off-premises. 
     Public cloud: the cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services. 
     Hybrid cloud: the cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load-balancing between clouds). 
     A cloud computing environment is service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes. 
     Referring now to  FIG. 1 , illustrative cloud computing environment  50  is depicted. As shown, cloud computing environment  50  includes one or more cloud computing nodes  10  with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone  54 A, desktop computer  54 B, laptop computer  54 C, and/or automobile computer system  54 N may communicate. Nodes  10  may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment  50  to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device. It is understood that the types of computing devices  54 A-N shown in  FIG. 1  are intended to be illustrative only and that computing nodes  10  and cloud computing environment  50  can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser). 
     Referring now to  FIG. 2 , a set of functional abstraction layers provided by cloud computing environment  50  ( FIG. 1 ) is shown. It should be understood in advance that the components, layers, and functions shown in  FIG. 2  are intended to be illustrative only and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided: 
     Hardware and software layer  60  includes hardware and software components. Examples of hardware components include: mainframes  61 ; RISC (Reduced Instruction Set Computer) architecture based servers  62 ; servers  63 ; blade servers  64 ; storage devices  65 ; and networks and networking components  66 . In some embodiments, software components include network application server software  67  and database software  68 . 
     Virtualization layer  70  provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers  71 ; virtual storage  72 ; virtual networks  73 , including virtual private networks; virtual applications and operating systems  74 ; and virtual clients  75 . 
     In one example, management layer  80  may provide the functions described below. Resource provisioning  81  provides dynamic procurement of computing resources and other resources that are utilized to perform tasks within the cloud computing environment. Metering and Pricing  82  provide cost tracking as resources are utilized within the cloud computing environment, and billing or invoicing for consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal  83  provides access to the cloud computing environment for consumers and system administrators. Service level management  84  provides cloud computing resource allocation and management such that required service levels are met. Service Level Agreement (SLA) planning and fulfillment  85  provide pre-arrangement for, and procurement of, cloud computing resources for which a future requirement is anticipated in accordance with an SLA. 
     Workloads layer  90  provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation  91 ; software development and lifecycle management  92 ; virtual classroom education delivery  93 ; data analytics processing  94 ; transaction processing  95 ; and photograph sharing  96 . 
       FIG. 3  is a schematic block diagram depicting illustrative components of a three-dimensional (3D) gaze-based referee analysis system in accordance with one or more example embodiments of the disclosure.  FIG. 4  is a process flow diagram of an illustrative method  200  for generating key performance indicator (KPI) data associated with a sports domain KPI based at least in part on gaze parameter data and analyzing the KPI data to determine a likelihood that an officiating decision made by a referee is accurate and/or determine a likelihood that potential referee bias influenced an officiating decision in accordance with one or more example embodiments of the disclosure.  FIG. 5  is a process flow diagram of an illustrative method  300  for categorizing aggregate KPI data for a referee into different decision categories, determining a bias/confidence pattern for the referee based at least in part on the categorization, and determining a profile for the referee based at least in part on the bias/confidence pattern in accordance with one or more example embodiments of the disclosure.  FIG. 3  will be described in conjunction with  FIG. 4  and  FIG. 5 , respectively, hereinafter. 
     One or more operations of the methods  200  and  300  may be performed by one or more engines, or more specifically, by one or more program modules or sub-modules forming part of such engine(s). A module, which may contain or be a collection of one or more sub-modules, may include computer-executable instructions that when executed by a processing circuit may cause one or more operations to be performed. A processing circuit may include one or more processing units or nodes. Computer-executable instructions may include computer-executable program code that when executed by a processing unit may cause input data contained in or referenced by the computer-executable program code to be accessed and processed to yield output data. Any module described herein may be implemented in any combination of software, hardware, and/or firmware. Depending on the implementation, any module described herein may form part of a larger collection of modules that together may constitute an engine, an application, or the like. 
     Referring first to  FIG. 3 , a 3D gaze-based referee analysis system in accordance with one or more example embodiments of the disclosure may include an eye gaze tracking engine  104 , a sports match tracking and analysis engine  106 , a referee analysis engine  108 , and a sports domain rules/sports KPI loading engine  110 . Each such engine may include computer-executable instructions configured to be executed by a processing circuit to perform one or more corresponding operations. 
     The eye gaze tracking engine  104  may include one or more 3D gaze tracking module(s)  112  which, in turn, may include one or more gaze direction determination module(s)  114 , one or more fixation duration determination module(s)  116 , and one or more distance determination module(s)  118 . The 3D gaze tracking module(s)  112  may be configured to monitor various gaze parameters associated with a referee  102  of a sports match. The sports match may be any suitable game, match, or contest including, without limitation, a team-based game or match in which two opposing teams compete, each team including a plurality of players (e.g., a soccer match, a baseball game, a cricket match, a basketball game, a football game, etc.); a game or match in which two individuals compete against one another (e.g., a tennis match, a table tennis match, etc.); a game in which an individual competes with one or more other individuals but does not directly interact with the other individual(s) (e.g., a golf tournament); and so forth. 
     Referring now to  FIGS. 3 and 4  in conjunction with one another, at block  202 , the 3D gaze tracking module(s)  112  may be executed to monitor various gaze parameters associated with the referee  102  during a sports match and generate gaze parameter data  120  continuously or at periodic intervals of a specified granularity. The gaze parameter data  120  may include, for example, gaze direction data, gaze fixation duration data, and gaze distance data. The gaze parameter data  120  may be stored in a gaze parameter data repository  122 . The gaze parameter data  120  may be captured in real-time during the sports match, or alternatively, may be captured (potentially post-match) based at least in part on an image analysis performed on a video of the sports match. 
     For instance, the gaze direction determination module(s)  114  may be executed to monitor a gaze direction of the referee  102  to generate the gaze direction data, which may indicate how the direction of the referee&#39;s  102  gaze changes over time. This may be achieved using a camera that captures images of the referee&#39;s  102  head over time at a particular frame rate. For each image frame, the gaze direction determination module(s)  114  may determine the angle of the referee&#39;s  102  head with respect to the camera, and may further determine the position of the referee&#39;s  102  eyes with respect to the referee&#39;s head  102 . The gaze direction determination module(s)  114  may then perform this determination repeatedly across all image frames to determine a scan path that indicates how the direction of the referee&#39;s  102  gaze changes over time. 
     The fixation duration determination module(s)  116  may be executed to determine a respective duration of time that the referee&#39;s  102  gaze remains in each particular gaze direction. The fixation duration determination module(s)  116  may output gaze fixation duration data that includes a series of time durations, where each time duration represents an amount of time that the referee&#39;s  102  gaze remains in a particular gaze direction. 
     The distance determination module(s)  118  may be executed to determine distances between points of gaze of the referee  102  and objects of interest. Depending on the particular sports domain KPI that is being evaluated, an object of interest may be a ball, bat, racket, shuttlecock, or other object that a participant interacts with during the sports match. The object of interest may also be a participant himself. The distance determination module(s)  118  may determine a three-dimensional distance between the referee  102  and an object of interest for each gaze direction of the referee  102  and may generate gaze distance data indicative thereof. 
     As previously noted, the 3D gaze-based referee analysis system may include a referee analysis engine  108  that may include computer-executable instructions that when executed by a processing circuit may cause operations to be performed to generate an analysis model for interpreting the gaze parameter data  120  within a sports domain by translating a location/time series  124  of the gaze parameter data  120  into KPI data  144  associated with KPIs  140  that are relevant to the sports domain. More specifically, the referee analysis engine  108  may include one or more gaze to sports domain KPI mapping modules  130  (hereinafter “mapping module(s)  130 )) that may include computer-executable instructions that when executed by a processing circuit may determine gaze-based KPIs from the location/time series gaze parameter data  124  and translate the gaze-based KPIs into KPI data  144  that is relevant to a particular sports domain. The gaze-based KPIs may include, for example, any of the gaze parameters previously described including, but not limited to, the referee&#39;s  102  gaze direction, the referee&#39;s  102  gaze duration for a gaze direction, a distance between the referee  102  and an object of interest for a particular gaze direction (e.g., a sports participant), etc. 
     Each sports domain may define a plurality of different sports domain KPIs  140  and associated sports domain rules  138 . The KPIs  140  and associated domain rules  138  may be loaded into a data repository  142  by the sports domain rules/sports KPI loading engine  110 , and retrieved therefrom by mapping module(s)  130 . Each sports domain may correspond to a particular type of sport, and the mapping module(s)  130  may be configured to translate gaze KPIs into sports domain KPIs for any number of sports domains. 
     Each sports domain KPI  140  for a given sports domain may be a particular type of performance indicator and may correspond to a particular event that may occur within that sports domain. Each sports domain KPI  140  may further be associated with a particular location or set of locations defined within a playing environment. In addition, each sports domain KPI  140  may be associated with a set of one or more sports domain rules  138  that define condition(s) based on which the gaze parameter data  120  may be filtered to obtain the location/time series gaze parameter data  124  that satisfies the sports domain rule(s)  138 . 
     In addition to accessing the repository  142  to obtain the sports domain KPIs  140  and associated sports domain rules  138 , the referee analysis engine  108  may also receive sports match data  126  as input from the sports match tracking and analysis engine  106 . More specifically, the sports match data  126  may be input to the sports match tracking and analysis engine  106  via a user interface  128 , and the engine  106  may provide the data  126  as input to the referee analysis engine  108 . The sports match data  126  may include data indicative of a time of a sports match, a location of the sports match, environmental conditions present at the location of the sports match (e.g., temperature, precipitation, wind speed, etc.), participants (individuals or teams) in the sports match, etc. The sports match data  126  may be used by the referee analysis engine  108  to determine, for example, how the sports KPIs  140  for the referee  102  are impacted by different sports match locations, different times of day at which the sports matches take place, different sports participants, and/or different environmental conditions in which the sports matches occur. 
     The process performed by the mapping module(s)  130  for translating the location/time series gaze parameter data  124  into KPI data  144  associated with KPIs  140  that are relevant to a sports domain will be described hereinafter in reference to a particular referee (e.g., the referee  102 ) and a particular sports domain KPI  140  associated with a particular sports domain. It should be appreciated, however, that the process may be performed for any number of number referees and any number of KPIs  140  associated with any number of sports domains. 
     Referring again to  FIGS. 3 and 4  in conjunction with one another, at block  204 , computer-executable instructions of the mapping module(s)  130  may be executed to identify a sports domain KPI  140  associated with a sports domain to which the sports match corresponds. The sports domain KPI  140  identified at block  204  may include, for example, a reaction time of a referee (e.g., the amount of time it takes for the referee  102  to detect an object of interest such as a ball or another player, potentially as part of an event that requires an officiating decision); a response time of a referee (e.g., the amount of time that elapses between when an event corresponding to the sports domain KPI  140  occurs and when the referee  102  provides an indication of an officiating decision such as the amount of time that elapses between when a pitched ball strikes a catcher&#39;s mitt and when an umpire makes a strike or ball call); a metric indicating a degree of attentiveness of a referee (e.g., a gaze direction of the referee  102  when an event corresponding to the sports domain KPI occurs); or the like. 
     As previously described, each sports domain KPI  140  may be defined with respect to a corresponding type of event that may occur during the sports match. Taking the sport of soccer as an example, the events may include, without limitation, a foul, a throw-in, a center, an indirect free kick, a direct free kick, a penalty kick, a header, a corner kick, and so forth. As another example, in tennis, the events may include, without limitation, a serve, a volley, a baseline shot, a forehand, a backhand, a cross-court shot, a down-the-line shot, a passing shot, an overhead smash, an approach, and so forth. 
     Further, each sports domain KPI  140  may be defined with respect to one or more locations. Referring again to soccer as an example, the locations may include, without limitation, an out-of-bounds line, a penalty box, a mid-field line, a goal-line, a particular portion of a soccer field (e.g., midfield), and so forth. As another example, in tennis, the locations may include, without limitation, the baselines, the sidelines, the line separating the deuce and advantage courts, the net, and so forth. 
     At block  206 , the mapping module(s)  130  may identify one or more sports domain rules  138  associated with the sports domain KPI  140  identified at block  204 . The sports domain rule(s)  138  associated with a given sports domain KPI  140  may include one or more conditions that the gaze parameter data  120  must satisfy in order to be eligible for translation into the KPI data  144  corresponding to the sports domain KPI  140  for that sports domain. For instance, for a sports domain KPI  140  corresponding to a foul in soccer, an associated sports domain rule  138  may specify that the mapping module(s)  130  must analyze gaze parameter data  120  for the referee  102  obtained during the time period that is x seconds prior to the time the foul occurs as well as the moment the foul occurs. 
     In certain example embodiments, a sports domain rule  138  may also specify criteria that must be met in order to determine a likelihood that an officiating decision made by the referee  102  is accurate. For example, a sports domain rule  138  may specify that the referee&#39;s  102  attention (as determined from the gaze parameter data  120 ) must be within a circle centered at the location of a foul and having a diameter of m feet or yards for at least Y % of the x seconds prior to the foul referenced earlier. If this sports domain rule  138  is satisfied, the foul may be confirmed, whereas if this sports domain rule  138  is not satisfied, the referee&#39;s decision to call the foul may be overturned or at least called into question. 
     At block  208 , the mapping module(s)  130  may determine the location/time series gaze parameter data  124  that satisfies the sports domain rule(s)  138  identified at block  206 . As an example, if the sports domain KPI  140  identified at block  204  is the focus/attentiveness of the referee  102  with respect to a player&#39;s service in a tennis match, and an associated sports domain rule  138  identified at block  206  specifies that a time period beginning 2 seconds before the service and ending when the ball hits the opposing player&#39;s side of the court should be monitored, the location/time series gaze parameter data  124  that satisfies the sports domain rule  138  may include the gaze direction data, gaze duration data, and gaze distance data for the referee  102  that is captured during that time period. 
     At block  210 , the mapping module(s)  130  may translate the location/time series gaze parameter data  124  determined to satisfy the sports domain rule(s)  138  into the KPI data  144  associated with the sports KPI  140  identified at block  206 . The KPI data  144  may be stored in the data repository  142 . Taking the sports domain of soccer as an example again, the mapping module(s)  130  may translate the location/time series gaze parameter data  124  into the KPI data  144  for a focus/attentiveness KPI  140  relating to a foul event in the following manner. The mapping module(s)  130  may obtain data relating to an event (e.g., a foul) associated with the focus/attentiveness KPI  140 . The data relating to the event may include time data comprising, for example, a timestamp of when the foul occurred or a time period over which the foul occurred. The data relating to the event may include location data indicating a location of the foul within a playing environment (e.g., grid coordinates indicative of a location of the foul within a Cartesian plane representing the playing environment) and expected zone data indicative of a region surrounding the location of the foul (e.g., a circle having as its center the location of the foul) in which the referee&#39;s  102  gaze direction is expected to fall for at least a threshold amount of time over a time period beginning x units of time (e.g., seconds) prior to the time of the foul and ending at the time of the foul or y units after the time of the foul, where such a time period may be specified by a sports domain rule  138  associated with the sports KPI  140 . As previously described, the mapping module(s)  130  may utilize the time data to filter the gaze parameter data  120  for the referee  102  at block  208  to identify location/time series gaze parameter data  124  that satisfies the sports domain rule(s)  138  associated with the sports KPI  140 . The mapping module(s)  130  may then compare the location/time series gaze parameter data  124  to the expected zone data to determine whether and to what extent the referee&#39;s  102  gaze direction deviates from the region indicated by the expected zone data during the time period specified by the sports domain rule(s)  138 . The extent of this deviation (or lack thereof) may be reflected in the KPI data  144 . 
     At block  212 , computer-executable instructions of the referee bias/confidence determination module(s)  134  may be executed by a processing circuit to analyze the KPI data  144  to determine a likelihood that referee bias influenced the officiating decision. Referring again to the soccer example discussed earlier, the referee bias/confidence determination module(s)  134  may analyze the KPI data  144  relating to a focus/attentiveness sports KPI  140  to determine a number of gaze directions (e.g., gaze vectors) of the referee  102  that coincided with the region around the location of the foul specified in the expected zone data during the time period specified by the sports domain rule associated with the sports KPI  140 . If this number of gaze directions fails to satisfy a threshold value, the referee bias/confidence determination module(s)  134  may infer that the referee  102  made the officiating decision that a foul occurred without actually observing the location where the foul allegedly occurred or a surrounding region, and thus, may determine that the referee&#39;s  102  officiating decision to call a foul was more likely than not motivated by the referee&#39;s bias. For example, the referee  102  is determined to have more likely than not been biased against the player who was cited (e.g., issued a yellow card) for the foul (or the team of which the cited player is a member). 
     As another example, the referee bias/confidence determination module(s)  134  may analyze the KPI data  144  relating to a focus/attentiveness sports KPI  140  to determine a percentage of time that the gaze directions (e.g., gaze vectors) of the referee  102  coincide with the region around the location of the foul in relation to the time period specified by the sports domain rule associated with the sports KPI  140 . If this percentage fails to satisfy a threshold value, the referee bias/confidence determination module(s)  134  may determine that the referee&#39;s officiating decision to call a foul was more likely than not motivated by the referee&#39;s bias. 
     It should be appreciated that a threshold value described above may be zero, in which case, a determination of likely referee bias only occurs if the referee&#39;s gaze direction never coincides with the region around the location of the foul. In other example embodiments, a threshold value may be some value greater than zero but small enough that any value that does not satisfy the threshold value indicates that the referee&#39;s gaze directions during the relevant time period did not sufficiently coincide with the location of the foul to deem the referee&#39;s officiating decision objectively reasonable. It should be appreciated that, depending on the implementation, a first value may satisfy a second value if the first value is greater than or equal to the second value or if the first value is less than or equal to the second value. 
     In certain example embodiments, if the referee bias/confidence determination module(s)  134  determine, based at least in part on an analysis of the KPI data  144 , that the referee&#39;s  102  officiating decision (e.g., decision to call a foul) is not more likely than not indicative of referee bias, the referee decision accuracy assessment module(s)  132  may be executed to assess an accuracy strength of the officiating decision. For example, if the referee bias/confidence determination module(s)  134  determine that a metric calculated from the KPI data  144  (e.g., a number of gaze directions of the referee  102  that fall within the region associated with the location of a foul during a soccer match; a duration/percentage of time that the referee&#39;s gaze directions fall within the region, etc.) satisfies a corresponding threshold value, the referee decision accuracy assessment module(s)  132  may compare the metric against set of criteria to determine an accuracy strength of the officiating decision. 
     Referring to the example of a foul during a soccer match again, assume that the referee decision accuracy assessment module(s)  132  determine that the referee&#39;s  102  gaze direction coincided with the location of the foul at the time of the foul (potentially taking into account an acceptable tolerance). Further assume that the referee decision accuracy module(s)  132  determine that less than a threshold number of gaze directions of the referee  102  coincided with the region surrounding the location of the foul or with the location of the ball during the monitoring period prior to the time of the foul (as specified by a sports domain rule  138 ), or that less than a threshold amount of time or percentage of the monitoring period prior to the time of the foul included gaze directions for the referee  102  that coincided with the region or location of the foul. In this example scenario, the referee decision accuracy assessment module(s)  132  may classify the officiating decision to call the foul as a weak decision because the referee&#39;s  102  gaze direction data and/or gaze duration data associated with the monitoring period prior to the time of the foul indicates that the referee  102  had failed to adequately observe events leading up to the time of the alleged foul and in the vicinity of the location of the foul, and thus, lacked a sufficient evidentiary basis for the officiating decision to call the foul. 
     As another example, assume that the referee decision accuracy assessment module(s)  132  determine that the referee&#39;s  102  gaze direction did not coincide with the location of the foul at the time of the foul, but that more than a threshold number of gaze directions of the referee  102  coincided with the region surrounding the location of the foul or with the location of the ball during the monitoring period prior to the time of the foul (as specified by a sports domain rule  138 ), or that more than a threshold amount of time or percentage of the monitoring period prior to the time of the foul included gaze directions for the referee  102  that coincided with the region or location of the foul. In this example scenario, the referee decision accuracy assessment module(s)  132  may also classify the officiating decision to call the foul as a weak decision because while the referee&#39;s  102  gaze direction data and/or gaze duration data associated with the monitoring period prior to the time of the foul indicates adequate observation of events leading up to the time of the alleged foul and in the vicinity of the location of the foul, the referee&#39;s  102  gaze direction did not coincide with the actual location of the foul at the time of the foul. 
     In yet another example scenario, if the referee decision accuracy assessment module(s)  132  determine that the referee&#39;s  102  gaze direction coincided with the location of the foul at the time of the foul (potentially taking into account an acceptable tolerance), and that more than a threshold number of gaze directions of the referee  102  coincided with the region surrounding the location of the foul or with the location of the ball during the monitoring period prior to the time of the foul (as specified by a sports domain rule  138 ), or that more than a threshold amount of time or percentage of the monitoring period prior to the time of the foul included gaze directions for the referee  102  that coincided with the region or location of the foul, then the referee decision accuracy assessment module(s)  132  may classify the officiating decision as a strong decision. In other words, the officiating decision may be classified as one that is very likely to be accurate. 
     It should be appreciated that the referee decision accuracy assessment module(s)  132  may be configure to assign a score or other metric to an officiating decision to indicate a degree of accuracy of an officiating decision. The score assigned to any given officiating decision may be determined as a function of the relationship between one or more metrics derived from the KPI data  144  and corresponding threshold value(s). For example, a weighted linear combination of the differences KPI data  144  metrics and corresponding threshold values may be computed to determine a score to assign to an officiating decision. A range of potential scores may be segmented into tiers. A first set of one or more tiers may include scores indicative of an officiating decision having low accuracy (e.g., a weak officiating decision), a second set of one or more tiers may include scores indicative of an officiating decision having intermediate accuracy, and a third set of one or more tiers may include scores indicative of an officiating decision having high accuracy (e.g., a strong officiating decision). 
     The assessment of the accuracy of officiating decisions by the referee  102  and the assessment of whether low-accuracy officiating decisions may be motivated by referee bias, as described in connection with the method  200  of  FIG. 4 , may be performed in real-time during the sports match. In certain scenarios, these real-time assessments may be used to determine whether an officiating decision should be allowed to stand or overruled during the sports match. These assessments may additionally or alternatively be made after completion of the sports match. Data indicative of these assessments may be stored as referee decision data in a data repository  146 . In certain example embodiments, referee decision data may be aggregated across multiple sports matches and analyzed to determine a bias/confidence pattern for the referee  102 . 
     Referring now to  FIGS. 3 and 4  in conjunction with one another, at block  302  of the method  300 , the referee bias/confidence determination module(s)  134  may be executed by a processing circuit to obtain aggregate KPI data for the referee  102 , the aggregate KPI data corresponding to a plurality of sports domain KPIs over a plurality of sports matches officiated by the referee  102 . 
     At block  304 , the referee bias/confidence determination module(s)  134  may categorize the aggregate KPI data in different decision categories. The various decision categories may represent different officiating decision scenarios with respect to different sport KPIs  140  and different gazing behavior of the referee  102 . The aggregate KPI data may be grouped into the different decision categories based at least in part on the referee&#39;s  102  gaze parameter data reflected in the aggregate KPI data. 
     The officiating decision categories may include, for example, a category that corresponds to scenarios in which a referee makes an officiating decision without having observed a relevant object of interest (e.g., the referee  102  calls goaltending during a basketball game without having observed the ball at the time of the alleged violation); a category that corresponds to scenarios in which a referee makes an officiating decision having observed the object of interest (e.g., the referee  102  calls a foul on a soccer player having observed the location of the foul (or the player alleged to have committed the foul) at the time of the foul); a category that corresponds to scenarios in which a referee makes an officiating decision having observed the object of interest at the time of an alleged violation but without having observed the object of interest or a region associated with the location of the alleged violation during a monitoring time period prior to the time of the violation (e.g., the referee  102  makes an out-of-bounds call having observed the ball bounce off a player and cross an out-of-bounds boundary but not having observed, during a prior monitoring period, the feet of an opposing player who caused the ball to bounce off the player in relation to the out-of-bounds boundary); a category that corresponds to scenarios in which a referee makes an officiating decision not having observed the object of interest at the time of an alleged violation but having observed the object of interest or a region associated with the location of the alleged violation during a monitoring time period prior to the time of the violation; a category that corresponds to scenarios in which a referee makes an officiating decision having observed the object of interest at the time of an alleged violation and having observed the object of interest or a region associated with the location of the alleged violation during a monitoring time period prior to the time of the violation; and so forth. It should be appreciated that the above examples of decision categories are merely illustrative and not exhaustive. 
     At block  306 , the referee bias/confidence determination module(s)  134  may be executed to determine, based at least in part on the categorization of the aggregate KPI data, a bias/confidence pattern for the referee  102  with respect to different players, teams, and/or sports matches. For example, if a significantly larger portion of the aggregate KPI data is categorized into decision categories that indicate that the referee  102  made corresponding officiating decisions having gazed attentively at an object of interest, a location of an alleged violation, etc. (regardless of the individual or team involved) as opposed to categories that indicate otherwise, it may be determined that the referee  102  exhibits no pattern of bias with respect to any particular individual or team. On the other hand, if a portion of the aggregate KPI data associated with officiating decisions relating to a first team is more heavily categorized into decision categories indicative of bias as compared to a portion of the aggregate KPI data associated with officiating decisions relating to a second team, it may be determined that the referee  102  exhibits a pattern of bias towards the first team. 
     At block  308 , computer-executable instructions of the referee labeler module(s)  136  may be executed by a processing circuit to generate a profile for the referee  102  based at least in part on the bias/confidence pattern. The profile may include a label assigned to the referee  102  indicative of the bias/confidence pattern corresponding to the referee  102 . For example, if the bias/confidence pattern indicates that the referee  102  exhibits bias towards or against a particular individual or team, a label indicative of this bias may be assigned to the referee  102  as part of his profile and may be used to determine which sports matches the referee  102  should and should not be assigned to. For example, the referee  102  may be excluded from officiating any sports matches that involve an individual or team towards which and against which the referee  102  is biased. Conversely, if the bias/confidence pattern indicates a high level of confidence in the referee&#39;s  102  officiating decisions, the label assigned to the referee  102  may be indicative of her neutrality. 
     Taking the domain of soccer again as an example, assume that the referee  102  has officiated four matches between Team  1  and Team  2  and has made the officiating decisions outlined in the table below. Further assume that the aggregate KPI data for the referee  102  has been analyzed to categorize those decisions as outlined in the table below. 
     
       
         
           
               
               
               
               
               
               
             
               
                   
                   
               
               
                   
                   
                   
                   
                 Decisions 
                 Decisions 
               
               
                   
                   
                   
                   
                 Made in 
                 Made in 
               
               
                   
                   
                   
                   
                 Favor of 
                 Favor of 
               
               
                   
                   
                   
                   
                 Team 1 
                 Team 2 
               
               
                   
                   
                   
                 Decisions 
                 (Not 
                 (Not 
               
               
                   
                 # Decisions 
                 # Decisions 
                 Made Gazing 
                 Gazing 
                 Gazing 
               
               
                   
                 Against Team 1 
                 Against Team 2 
                 Attentively 
                 Attentively) 
                 Attentively) 
               
               
                   
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
               
               
            
               
                 Match 1 
                 4 
                 2 
                 5 
                 1 
                 0 
               
               
                 Match 2 
                 5 
                 2 
                 5 
                 1 
                 1 
               
               
                 Match 3 
                 3 
                 3 
                 6 
                 0 
                 0 
               
               
                 Match 4 
                 2 
                 4 
                 3 
                 3 
                 0 
               
               
                   
               
            
           
         
       
     
     Based on the categorization of the aggregate KPI data outlined in the table on the previous page, the referee bias/confidence determination module(s)  134  may determine that the referee  102 , when not exhibiting attentive gazing behavior, makes a considerably larger number of officiating decisions that are favorable to Team  1  than officiating decisions that are favorable to Team  2 . Based on this determination, the referee bias/confidence determination module(s)  134  may determine that the referee  102  exhibits a bias towards Team  1  and no particular bias towards or against Team  2 . After aggregate KPI data corresponding to a threshold number of matches involving Team  1  has been categorized, if the bias pattern for the referee  102  continues to exhibit a bias towards Team  1 , a label indicative of this bias may be assigned to the referee  102  by the referee labeler module(s)  136 , and subsequent officiating assignments of the referee  102  may be made accordingly. 
     One or more illustrative embodiments of the disclosure are described herein. Such embodiments are merely illustrative of the scope of this disclosure and are not intended to be limiting in any way. Accordingly, variations, modifications, and equivalents of embodiments disclosed herein are also within the scope of this disclosure. 
       FIG. 6  is a schematic diagram of an illustrative computing device  400  that is configured to implement processes in accordance with one or more example embodiments of the disclosure in accordance with one or more example embodiments of the disclosure. While the computing device  400  may be described herein in the singular, it should be appreciated that multiple instances of the computing device  400  may be provided, and functionality described in connection with the computing device  400  may be distributed across such multiple instances. 
     In an illustrative configuration, the computing device  400  may include one or more processors (processor(s))  402 , one or more memory devices  404  (generically referred to herein as memory  404 ), one or more input/output (“I/O”) interface(s)  406 , one or more network interfaces  408 , one or more sensors or sensor interface(s)  410 , and data storage  412 . The computing device  400  may further include one or more buses  414  that functionally couple various components of the computing device  400 . 
     The bus(es)  414  may include at least one of a system bus, a memory bus, an address bus, or a message bus, and may permit exchange of information (e.g., data (including computer-executable code), signaling, etc.) between various components of the computing device  800 . The bus(es)  414  may include, without limitation, a memory bus or a memory controller, a peripheral bus, an accelerated graphics port, and so forth. The bus(es)  414  may be associated with any suitable bus architecture including, without limitation, an Industry Standard Architecture (ISA), a Micro Channel Architecture (MCA), an Enhanced ISA (EISA), a Video Electronics Standards Association (VESA) architecture, an Accelerated Graphics Port (AGP) architecture, a Peripheral Component Interconnects (PCI) architecture, a PCI-Express architecture, a Personal Computer Memory Card International Association (PCMCIA) architecture, a Universal Serial Bus (USB) architecture, and so forth. 
     The memory  404  of the computing device  400  may include volatile memory (memory that maintains its state when supplied with power) such as random access memory (RAM) and/or non-volatile memory (memory that maintains its state even when not supplied with power) such as read-only memory (ROM), flash memory, ferroelectric RAM (FRAM), and so forth. Persistent data storage, as that term is used herein, may include non-volatile memory. In certain example embodiments, volatile memory may enable faster read/write access than non-volatile memory. However, in certain other example embodiments, certain types of non-volatile memory (e.g., FRAM) may enable faster read/write access than certain types of volatile memory. 
     In various implementations, the memory  404  may include multiple different types of memory such as various types of static random access memory (SRAM), various types of dynamic random access memory (DRAM), various types of unalterable ROM, and/or writeable variants of ROM such as electrically erasable programmable read-only memory (EEPROM), flash memory, and so forth. The memory  404  may include main memory as well as various forms of cache memory such as instruction cache(s), data cache(s), translation lookaside buffer(s) (TLBs), and so forth. Further, cache memory such as a data cache may be a multi-level cache organized as a hierarchy of one or more cache levels (L1, L2, etc.). 
     The data storage  412  may include removable storage and/or non-removable storage including, but not limited to, magnetic storage, optical disk storage, and/or tape storage. The data storage  412  may provide non-volatile storage of computer-executable instructions and other data. The memory  404  and the data storage  412 , removable and/or non-removable, are examples of computer-readable storage media (CRSM) as that term is used herein. 
     The data storage  412  may store computer-executable code, instructions, or the like that may be loadable into the memory  404  and executable by the processor(s)  402  to cause the processor(s)  402  to perform or initiate various operations. The data storage  412  may additionally store data that may be copied to memory  404  for use by the processor(s)  402  during the execution of the computer-executable instructions. Moreover, output data generated as a result of execution of the computer-executable instructions by the processor(s)  402  may be stored initially in memory  404  and may ultimately be copied to data storage  412  for non-volatile storage. 
     More specifically, the data storage  412  may store one or more operating systems (O/S)  416 ; one or more database management systems (DBMS)  418  configured to access the memory  404  and/or one or more external data repositories  444 ; and one or more program modules, applications, engines, computer-executable code, scripts, or the like such as, for example, an eye gaze tracking engine  420 , a referee analysis engine  422 , a sports match tracking and analysis engine  424 , and a sports domain rules/sports KPI loading engine  426 . The eye gaze tracking engine  420  may include one or more 3D gaze tracking modules  428 , which in turn, may include one or more sub-modules such as, for example, one or more gaze direction determination modules  430 , one or more fixation determination duration modules  432 , and one or more distance determination modules. The referee analysis engine  422  may further include one or more gaze to sports domain KPI mapping modules  436 , one or more referee decision accuracy assessment modules  438 , one or more referee bias/confidence determination modules  440 , and one or more referee labeler modules  442 . Any of the components depicted as being stored in data storage  412  may include any combination of software, firmware, and/or hardware. The software and/or firmware may include computer-executable instructions (e.g., computer-executable program code) that may be loaded into the memory  404  for execution by one or more of the processor(s)  402  to perform any of the operations described earlier in connection with correspondingly named engines or modules. 
     Although not depicted in  FIG. 6 , the data storage  412  may further store various types of data utilized by components of the computing device  400  (e.g., the gaze parameter data  120 , data indicative of sports domain rules  138 , data indicative of sports KPIs  140 , KPI data  144 , sports match data  126 , referee decision data, referee profile/label data, etc.). Any data stored in the data storage  412  may be loaded into the memory  404  for use by the processor(s)  402  in executing computer-executable instructions. In addition, any data stored in the data storage  412  may potentially be stored in one or more of the data repositories  444  and may be accessed via the DBMS  418  and loaded in the memory  404  for use by the processor(s)  402  in executing computer-executable instructions. 
     The processor(s)  402  may be configured to access the memory  404  and execute computer-executable instructions loaded therein. For example, the processor(s)  402  may be configured to execute computer-executable instructions of the various program modules, applications, engines, or the like of the computing device  400  to cause or facilitate various operations to be performed in accordance with one or more embodiments of the disclosure. The processor(s)  402  may include any suitable processing unit capable of accepting data as input, processing the input data in accordance with stored computer-executable instructions, and generating output data. The processor(s)  402  may include any type of suitable processing unit including, but not limited to, a central processing unit, a microprocessor, a Reduced Instruction Set Computer (RISC) microprocessor, a Complex Instruction Set Computer (CISC) microprocessor, a microcontroller, an Application Specific Integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA), a System-on-a-Chip (SoC), a digital signal processor (DSP), and so forth. Further, the processor(s)  402  may have any suitable microarchitecture design that includes any number of constituent components such as, for example, registers, multiplexers, arithmetic logic units, cache controllers for controlling read/write operations to cache memory, branch predictors, or the like. The microarchitecture design of the processor(s)  402  may be capable of supporting any of a variety of instruction sets. 
     Referring now to other illustrative components depicted as being stored in the data storage  412 , the  0 /S  416  may be loaded from the data storage  412  into the memory  404  and may provide an interface between other application software executing on the computing device  400  and hardware resources of the computing device  400 . More specifically, the  0 /S  416  may include a set of computer-executable instructions for managing hardware resources of the computing device  400  and for providing common services to other application programs (e.g., managing memory allocation among various application programs). In certain example embodiments, the  0 /S  416  may control execution of one or more of the program modules depicted as being stored in the data storage  412 . The O/S  416  may include any operating system now known or which may be developed in the future including, but not limited to, any server operating system, any mainframe operating system, or any other proprietary or non-proprietary operating system. 
     The DBMS  418  may be loaded into the memory  404  and may support functionality for accessing, retrieving, storing, and/or manipulating data stored in the memory  404 , data stored in the data storage  412 , and/or data stored in the data repositories  444 . The DBMS  418  may use any of a variety of database models (e.g., relational model, object model, etc.) and may support any of a variety of query languages. The DBMS  418  may access data represented in one or more data schemas and stored in any suitable data repository. The data repositories  444  may be accessible by the computing device  400  via the DBMS  418  may include, but are not limited to, databases (e.g., relational, object-oriented, etc.), file systems, flat files, distributed datastores in which data is stored on more than one node of a computer network, peer-to-peer network datastores, or the like. The data repositories  444  may include the repository  122 , the repository  142 , and the repository  146 , and may store various types of data including, without limitation, the gaze parameter data  120 , data indicative of sports domain rules  138 , data indicative of sports KPIs  140 , KPI data  144 , sports match data  126 , referee decision data, referee profile/label data, etc. It should be appreciated that, in certain example embodiments, any of the data repositories  444  and/or any of the data residing thereon may additionally, or alternatively, be stored locally in the data storage  412 . 
     Referring now to other illustrative components of the computing device  400 , the input/output (I/O) interface(s)  406  may facilitate the receipt of input information by the computing device  400  from one or more I/O devices as well as the output of information from the computing device  400  to the one or more I/O devices. The I/O devices may include any of a variety of components such as a display or display screen having a touch surface or touchscreen; an audio output device for producing sound, such as a speaker; an audio capture device, such as a microphone; an image and/or video capture device, such as a camera; a haptic unit; and so forth. Any of these components may be integrated into the computing device  400  or may be separate. The I/O devices may further include, for example, any number of peripheral devices such as data storage devices, printing devices, and so forth. 
     The I/O interface(s)  406  may also include an interface for an external peripheral device connection such as universal serial bus (USB), FireWire, Thunderbolt, Ethernet port or other connection protocol that may connect to one or more networks. The I/O interface(s)  406  may also include a connection to one or more antennas to connect to one or more networks via a wireless local area network (WLAN) (such as Wi-Fi) radio, Bluetooth, and/or a wireless network radio, such as a radio capable of communication with a wireless communication network such as a Long Term Evolution (LTE) network, WiMAX network, 3G network, etc. 
     The computing device  400  may further include one or more network interfaces  408  via which the computing device  400  may communicate with any of a variety of other systems, platforms, networks, devices, and so forth. The network interface(s)  408  may enable communication, for example, with one or more other devices via one or more networks. Such network(s) may include, but are not limited to, any one or more different types of communications networks such as, for example, cable networks, public networks (e.g., the Internet), private networks (e.g., frame-relay networks), wireless networks, cellular networks, telephone networks (e.g., a public switched telephone network), or any other suitable private or public packet-switched or circuit-switched networks. Such network(s) may have any suitable communication range associated therewith and may include, for example, global networks (e.g., the Internet), metropolitan area networks (MANs), wide area networks (WANs), local area networks (LANs), or personal area networks (PANs). In addition, such network(s) may include communication links and associated networking devices (e.g., link-layer switches, routers, etc.) for transmitting network traffic over any suitable type of medium including, but not limited to, coaxial cable, twisted-pair wire (e.g., twisted-pair copper wire), optical fiber, a hybrid fiber-coaxial (HFC) medium, a microwave medium, a radio frequency communication medium, a satellite communication medium, or any combination thereof. 
     The sensor(s)/sensor interface(s)  410  may include or may be capable of interfacing with any suitable type of sensing device such as, for example, ambient light sensors, inertial sensors, force sensors, thermal sensors, image sensors, magnetometers, and so forth. Example types of inertial sensors may include accelerometers (e.g., MEMS-based accelerometers), gyroscopes, and so forth. 
     It should be appreciated that the engines and program modules depicted in  FIG. 6  as being stored in the data storage  412  are merely illustrative and not exhaustive and that processing described as being supported by any particular engine or module may alternatively be distributed across multiple engines, modules, or the like, or performed by a different engine, module, or the like. In addition, various program module(s), script(s), plug-in(s), Application Programming Interface(s) (API(s)), or any other suitable computer-executable code hosted locally on the computing device  400  and/or hosted on other computing device(s) accessible via one or more networks, may be provided to support functionality provided by the engines or modules depicted in  FIG. 6  and/or additional or alternate functionality. Further, functionality may be modularized differently such that processing described as being supported collectively by a collection of modules depicted in  FIG. 6  may be performed by a fewer or greater number of program modules, or functionality described as being supported by any particular module may be supported, at least in part, by another program module. In addition, engines or program modules that support the functionality described herein may form part of one or more applications executable across any number of computing devices  400  in accordance with any suitable computing model such as, for example, a client-server model, a peer-to-peer model, and so forth. In addition, any of the functionality described as being supported by any of the engines or program modules depicted in  FIG. 6  may be implemented, at least partially, in hardware and/or firmware across any number of devices. 
     It should further be appreciated that the computing device  400  may include alternate and/or additional hardware, software, or firmware components beyond those described or depicted without departing from the scope of the disclosure. More particularly, it should be appreciated that software, firmware, or hardware components depicted as forming part of the computing device  400  are merely illustrative and that some components may not be present or additional components may be provided in various embodiments. While various illustrative engines and program modules have been depicted and described as software modules stored in data storage  412 , it should be appreciated that functionality described as being supported by the engines or modules may be enabled by any combination of hardware, software, and/or firmware. It should further be appreciated that each of the above-mentioned engines or modules may, in various embodiments, represent a logical partitioning of supported functionality. This logical partitioning is depicted for ease of explanation of the functionality and may not be representative of the structure of software, hardware, and/or firmware for implementing the functionality. Accordingly, it should be appreciated that functionality described as being provided by a particular engine or module may, in various embodiments, be provided at least in part by one or more other engines or modules. Further, one or more depicted engines or modules may not be present in certain embodiments, while in other embodiments, additional engines or modules not depicted may be present and may support at least a portion of the described functionality and/or additional functionality. Moreover, while certain modules may be depicted or described as sub-modules of another module, in certain embodiments, such modules may be provided as independent modules or as sub-modules of other modules. 
     One or more operations of the methods  200  and  300  may be performed by a computing device  400  having the illustrative configuration depicted in  FIG. 6 , or more specifically, by one or more program modules, engines, applications, or the like executable on such a device. It should be appreciated, however, that such operations may be implemented in connection with numerous other device configurations. 
     The operations described and depicted in the illustrative methods of  FIGS. 4 and 5  may be carried out or performed in any suitable order as desired in various example embodiments of the disclosure. Additionally, in certain example embodiments, at least a portion of the operations may be carried out in parallel. Furthermore, in certain example embodiments, less, more, or different operations than those depicted in  FIGS. 4 and 5  may be performed. 
     Although specific embodiments of the disclosure have been described, one of ordinary skill in the art will recognize that numerous other modifications and alternative embodiments are within the scope of the disclosure. For example, any of the functionality and/or processing capabilities described with respect to a particular system, system component, device, or device component may be performed by any other system, device, or component. Further, while various illustrative implementations and architectures have been described in accordance with embodiments of the disclosure, one of ordinary skill in the art will appreciate that numerous other modifications to the illustrative implementations and architectures described herein are also within the scope of this disclosure. In addition, it should be appreciated that any operation, element, component, data, or the like described herein as being based on another operation, element, component, data, or the like may be additionally based on one or more other operations, elements, components, data, or the like. Accordingly, the phrase “based on,” or variants thereof, should be interpreted as “based at least in part on.” 
     The present disclosure may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure. 
     The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire. 
     Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device. 
     Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure. 
     Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions. 
     These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks. 
     The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks. 
     The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.