The present disclosure generally relates to systems and methods for generating predictive overlays visualizing metrics and ongoing tracking data of a tennis match.
In sports like tennis, player tracking data and ball tracking data (also referred to herein as “player and ball tracking data,” or “tracking data”) have been prevalent data points in deriving insights into players, matches, etc. Combining the player and ball tracking data can result in an ability to identify insights within each point (via tracking data), and within a match or tournament (via point-by-point data). The player and ball tracking data can also be combined with a canvas for summarizing information about a player (e.g., information contained in a player card or player profile). The player card can provide detailed information about the player, but also could highlight key points where the tracking data and video could be surfaced to give a predictive analysis of what players will do in a given situation.
The present embodiments relate to generating various predictive overlays over a video of a tennis match. Tracking data of a tennis match can be processed to derive insights into the tennis match. For example, the tracking data can indicate a current state of the match and a likelihood of a ball being returned to various regions of the court. Such insights can be used to create a first overlay that can be added over a video of the tennis match. Further, player rankings based on various categories (e.g., technical, tactical, mental, and/or physical categories) can be generated to provide insights into skills of each player relative to other ranked players. Additional insights, such as a forecast predicting a likelihood of winning an upcoming match or tournament can also be generated. A player card can be generated using such information to provide various aspects of a player skill onto a single output.
A first example embodiment is a method of generating predictive overlays for a tennis match. The method can include obtaining a set of data relating to a tennis player, the set of data including at least tracking data and historical player data. The tracking data can include player positioning data and/or ball positioning data tracked during a tennis match. The method can also include determining a current state of an ongoing tennis match based on at least the tracking data. The current state of the ongoing tennis match can include a position of the ball on either side of the court, a rally count for a current match point, a current set count for the match, whether a player is serving, etc. The method can also include determining a probability of a player returning a ball to different regions of a court during the ongoing tennis match based on at least the tracking data and the historical player data. The method can also include translating each of a set of player statistics included in the historical player data into a player rating, wherein each player statistics is associated with one of a set of statistical categories. Each of the set of statistical categories can include any of a technical category, tactical category, mental category, and a physical category. The method can also include aggregating player ratings associated with each statistical category into an aggregated category rating for each statistical category. For example, a player can have four separate ratings (e.g., 0-100 ratings) for each statistical category. The method can also include obtaining a video providing a depiction of the ongoing tennis match. The method can also include generating a first overlay illustrating the probabilities of the player returning the ball to the different regions of the court. The method can also include generating a second overlay illustrating the aggregated category ratings for each category for the player. The method can also include overlaying any of the first overlay and the second overlay over the video.
In another example embodiment, a system is provided. The system can include a processor and a memory having programming instructions stored thereon, which, when executed by the processor, performs one or more operations. The operations can include obtaining a set of data relating to a tennis player, the set of data including at least tracking data and historical player data. The operations can also include translating each of a set of player statistics included in the historical player data into a player rating, wherein each player statistic is associated with one of a set of statistical categories. The operations can also include aggregating player ratings associated with each statistical category into an aggregated category rating for each statistical category, wherein each aggregated category rating is distributed relative to other ratings generated for other players. The operations can also include obtaining a video providing a depiction of the tennis match. The operations can also include generating a first overlay illustrating the aggregated category ratings for each category for the player. The operations can also include overlaying the first overlay over the video.
In another example embodiment, a non-transitory computer readable medium is provided. The non-transitory computer readable medium can include one or more sequences of instructions that, when executed by the one or more processors, causes the processor to obtain a set of data relating to a tennis player, the set of data including at least tracking data and historical player data. The processor can further be caused to determine a current state of an ongoing tennis match based on at least the tracking data. The processor can further be caused to determine a probability of a player returning a ball to different regions of a court during the ongoing tennis match based on at least the tracking data and the historical player data. The processor can further be caused to translate each of a set of player statistics included in the historical player data into a player rating, wherein each player statistics is associated with one of a set of statistical categories. The processor can further be caused to aggregate player ratings associated with each statistical category into an aggregated category rating for each statistical category. The processor can further be caused to process the historical player data to generate both a player skill rating specifying a derived strength of the player relative to other players and a potential skill rating specifying a chance of outperforming the player skill rating. The processor can further be caused to obtain a video providing a depiction of the ongoing tennis match. The processor can further be caused to generate a first overlay illustrating the probabilities of the player returning the ball to the different regions of the court. The processor can further be caused to generate a second overlay illustrating the aggregated category ratings for each category for the player, the player skill rating, and/or the potential skill rating. The processor can further be caused to overlay any of the first overlay and the second overlay over the video.
So that the manner in which the above recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrated only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure may admit to other equally effective embodiments.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one embodiment may be beneficially utilized on other embodiments without specific recitation.
According to certain aspects of the disclosure, systems and methods are disclosed for generating predictive overlays visualizing metrics and ongoing tracking data of or associated with a tennis match.
Reference to any particular activity is provided in this disclosure only for convenience and not intended to limit the disclosure. A person of ordinary skill in the art would recognize that the concepts underlying the disclosed devices and methods may be utilized in any suitable activity. The disclosure may be understood with reference to the following description and the appended drawings, wherein like elements are referred to with the same reference numerals.
The terminology used below may be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the present disclosure. Indeed, certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section. Both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the features, as claimed.
In this disclosure, the term “based on” means “based at least in part on.” The singular forms “a,” “an,” and “the” include plural referents unless the context dictates otherwise. The term “exemplary” is used in the sense of “example” rather than “ideal.” The terms “comprises,” “comprising,” “includes,” “including,” or other variations thereof, are intended to cover a non-exclusive inclusion such that a process, method, or product that comprises a list of elements does not necessarily include only those elements, but may include other elements not expressly listed or inherent to such a process, method, article, or apparatus. The term “or” is used disjunctively, such that “at least one of A or B” includes, (A), (B), (A and A), (A and B), etc. Relative terms, such as, “substantially” and “generally,” are used to indicate a possible variation of +10% of a stated or understood value.
It will also be understood that, although the terms first, second, third, etc. are, in some instances, used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the various described embodiments. The first contact and the second contact are both contacts, but they are not the same contact.
As used herein, the term “if” is, optionally, construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context. Similarly, the phrase “if it is determined” or “if [a stated condition or event] is detected” is, optionally, construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event],” depending on the context.
As used herein, a “machine learning model” generally encompasses instructions, data, and/or a model configured to receive input, and apply one or more of a weight, bias, classification, or analysis on the input to generate an output. The output may include, for example, a classification of the input, an analysis based on the input, a design, process, prediction, or recommendation associated with the input, or any other suitable type of output. A machine learning model is generally trained using training data, e.g., experiential data and/or samples of input data, which are fed into the model in order to establish, tune, or modify one or more aspects of the model, e.g., the weights, biases, criteria for forming classifications or clusters, or the like. Aspects of a machine learning model may operate on an input linearly, in parallel, via a network (e.g., a neural network), or via any suitable configuration.
The execution of the machine learning model may include deployment of one or more machine learning techniques, such as linear regression, logistical regression, random forest, gradient boosted machine (GBM), deep learning, and/or a deep neural network. Supervised and/or unsupervised training may be employed. For example, supervised learning may include providing training data and labels corresponding to the training data, e.g., as ground truth. Unsupervised approaches may include clustering, classification or the like. Any suitable type of training may be used, e.g., stochastic, gradient boosted, random seeded, recursive, epoch or batch-based, etc.
In sports like tennis, player and ball tracking data have been prevalent data points in deriving insights into players, matches, etc. Combining the player and ball tracking data can result in an ability to identify insights within each point (via tracking data), and within a match or tournament (via point-by-point data). The player and ball tracking data can also be combined with a canvas for summarizing information about a player (e.g., information contained in a player card or player profile). The player card can provide detailed information about the player, but also could highlight key points where the tracking data and video could be surfaced to give a predictive analysis of what players will do in a given situation.
The present embodiments generally relate to systems and methods that combine player tracking data, ball tracking data, and a canvas summarizing player information, into a single canvas. The combined canvas of data can provide a view of a player in terms of their technical, tactical, mental, and/or physical attributes, which can be estimated using level 1 (“L1”) data, level 2 (“L2”) data, and/or level 3 (“L3) data. Level 1 data may include, for example, point-by-point data collected during a tennis match (e.g., by an automated system, by an umpire, etc.); level 2 data may include, for example, data associated with a rally of a tennis match (e.g., collected by an automated system, an in-venue data collector, an in-venue scout, etc.); and level 3 data may include, for example, player and ball tracking data (e.g., collected using tracking data from in-venue and/or broadcast feeds). The combined canvas data can be added to a display as part of a prediction overlay using a shot-quality prediction model or other model described herein. While tennis is used as an illustrative example, the present embodiments are not limited to tennis. For instance, the present embodiments can be applied to other sports, such as soccer, basketball, baseball, football, rugby, cricket, team sports, individual sports, etc.
The present embodiments relate to generating various predictive overlays over a video of a tennis match. Tracking data of a tennis match can be processed to derive insights into the tennis match. For example, the tracking data can indicate a current state of the match and a likelihood of a ball being returned to various regions of the court. Such insights can be used to create a first overlay that can be added over a video of the tennis match. Further, player rankings based on various categories (e.g., technical, tactical, mental, and/or physical categories) can be generated to provide insights into skills of each player relative to other ranked players. Additional insights, such as a forecast predicting a likelihood of winning an upcoming match or tournament can also be generated. A player card can be generated using such information to provide various aspects of a player skill onto a single output.
Embodiments of the disclosed subject matter are directed to generating predictions of shot locations of shots by a player, ahead of the player hitting a tennis ball. Embodiments also include predicting, at the time of the bounce of the tennis ball, a likelihood of the corresponding shot being a point scoring shot.
Embodiments disclosed herein may use one or more of three different data sources (e.g., L1: point-by-point, L2: serve location, rally-count and end of rally shot, and L3: ball and player tracking). The prediction system disclosed herein may connect data from such data sources. Such connection provides a connected prediction ecosystem, where the match predictions are tied to the within-point predictions (e.g., a within-point rally predictor tied an overall match-win probability as well as a next shot predictor).
For a next-shot and within-rally prediction using the L3 data (e.g., tracking data), current match predictions may be used to initialize one or more models. Further evolving player skills are calculated during a given match to be applied by the one or more models to generate output predictions. Accordingly, in accordance with embodiments disclosed herein, differentiated prediction outputs based on various forms of data (e.g., momentum using L1/L2, next shot prediction using L3, etc.) may be generated. Such predictions may be used to generate one or more visual overlays, as further discussed herein. Such predictions and/or overlays may be used to drive fan engagement, generate markets for sportsbooks, and/or the like.
Network 105 may be of any suitable type, including individual connections via the Internet, such as cellular or Wi-Fi networks. In some embodiments, network 105 may connect terminals, services, and mobile devices using direct connections, such as radio frequency identification (RFID), near-field communication (NFC), Bluetooth™, low-energy Bluetooth™ (BLE), Wi-Fi™, ZigBee™, ambient backscatter communication (ABC) protocols, USB, WAN, or LAN. Because the information transmitted may be personal or confidential, security concerns may dictate one or more of these types of connection be encrypted or otherwise secured. In some embodiments, however, the information being transmitted may be less personal, and therefore, the network connections may be selected for convenience over security.
Network 105 may include any type of computer networking arrangement used to exchange data or information. For example, network 105 may be the Internet, a private data network, or a virtual private network using a public network and/or other suitable connection(s) that enables components in computing environment 100 to send and receive information between the components of environment 100.
Tracking system 102 may be positioned in a venue 106 or may be in communication with one or more components located at venue 106. For example, venue 106 may be configured to host a sporting event that includes one or more agents 152. Tracking system 102 may be configured to record the motions of all agents (e.g., players) on the playing surface, as well as one or more other objects of relevance (e.g., ball, referees, etc.). In some embodiments, tracking system 102 may be an optically-based system using, for example, a plurality of fixed cameras. For example, a system of six stationary, calibrated cameras, which project the three-dimensional locations of players and the ball onto a two-dimensional overhead view of the court may be used. In some embodiments, tracking system 102 may be a radio-based system using, for example, radio frequency identification (RFID) tags worn by players or embedded in objects to be tracked. Generally, tracking system 102 may be configured to sample and record, at a high frame rate (e.g., 25 Hz). Tracking system 102 may be configured to store at least player identity and positional information (e.g., (x,y) position or coordinates) for all agents and objects on the playing surface for each frame in a game file.
Tracking system 102 may be configured to communicate with organization computing system 104 via network 105. Organization computing system 104 may be configured to manage and analyze the data captured by tracking system 102. Organization computing system 104 may include at least a web client application server 154, a pre-processing agent 156, a data store 158, a player skill generation model 204, a player rating generation model 206, a match/tournament prediction model 208, a shot quality prediction model 210, a serve-hit model 214, a serve-bounce model 216, a return-hit model 218, a return-bounce model 220, a rally-hit model 222, a rally-bounce model 224, and an overlay model 212.
Each of the player skill generation model 204, player rating generation model 206, match/tournament prediction model 208, shot quality prediction model 210, serve-hit model 214, serve-bounce model 216, return-hit model 218, return-bounce model 220, rally-hit model 222, rally-bounce model 224, and overlay model 212 may be comprised of one or more software modules. The one or more software modules may be collections of code or instructions stored on a media (e.g., memory of organization computing system 104) that represent a series of machine instructions (e.g., program code) that implements one or more algorithmic steps. Such machine instructions may be the actual computer code the processor of organization computing system 104 interprets to implement the instructions or, alternatively, may be a higher level of coding of the instructions that is interpreted to obtain the actual computer code. The one or more software modules may also include one or more hardware components. One or more aspects of an example algorithm may be performed by the hardware components (e.g., circuitry) itself, rather than as a result of the instructions.
Pre-processing agent 156 may be configured to process data retrieved from data store 158 prior to input to any of the player skill generation model 204, player rating generation model 206, match/tournament prediction model 208, shot quality prediction model 210, serve-hit model 214, serve-bounce model 216, return-hit model 218, return-bounce model 220, rally-hit model 222, rally-bounce model 224, and overlay model 212. Pre-processing agent 156 may then extract the one or more portions of the tracking data from the one or more streams of data and normalize the one or more portions of data for processing.
Data store 158 may be configured to store various types of information retrieved from various sources. For example, the data store 158 can store historical game data, in-game data, and/or outputs derived from any of the models as described herein. The historical game data can include a repository of historical team and player data for one or more sporting events. The data store can store historical data tracking aspects of previous tennis matches or tournaments for each serve, return, point, etc.
The player skill generation model 204 may be configured to process player data to assess a skill of the player during a match, tournament, and/or a season. For instance, player historical match and point-specific data can be obtained and processed to identify a set of metrics for each player. The metrics for each player can be processed to transform the metrics into ratings (e.g., from 0-100) for each player. In some embodiments, the player skill generation model 204 can use a Power Transformation and a min-max scaler to smooth the distribution and ensure a fair application of the zero to 100 values, where zero is assigned to the lowest ranked player, and 100 is assigned to the highest ranked player according to the skill ratings.
The player rating generation model 206 can be configured to generate a rating for each player based on a series of data points separated by categories. For example, the categories can include technical, tactical, mental, and physical metrics for each player. Various statistics for each player separated into each category can be transformed into ratings (0-100 ratings). Further, ratings of each category can be averaged to transform the combined ratings into a final 0-100 rating. In some embodiments, the player rating generation model 206 can use a Power Transformation and a min-max scaler to smooth the distribution and ensure a fair application of the zero to 100 values, where zero is assigned to the lowest ranked player, and 100 is assigned to the highest ranked player according to the skill ratings.
The match/tournament prediction model 208 can be configured to predict outcomes of upcoming matches and tournaments over time. The match/tournament prediction model 208 can use player skill ratings (e.g., from player skill generation model 204) and specific matchups (or seedings of each player in the tournament) to determine a probability of the outcome of each match. In some embodiments, the match/tournament prediction model 208 can run a number of simulations of an upcoming event to simulate each match in the tournament to predict a probability of each player winning each match and advancing to each stage of the tournament. The predictions generated by the match/tournament prediction model 208 can be used to predict a number of points gained/lost by each player for the upcoming match and update world rankings of each player using the predictions.
The shot quality prediction model 210 can be configured to use tracking data and historical player data to predict aspects of each shot by a player. For example, on a player's serve, the shot quality prediction model 210 can use historical ball tracking data for a player to generate predictions of the ball landing in various regions of the court. For instance, as illustrated in
The serve-hit model 214 can be a machine learning model configured to predict, prior to a tennis ball being served (e.g., hit as a serve), likelihoods of the tennis ball landing in various locations on a tennis court immediately after the serve, based on L1, L2 and/or L3 data. The serve-hit model 214 may also be configured to predict, prior to the tennis ball being served, a likelihood that the tennis ball, at the time of being served, will result in a point for the server if the opposing tennis player subsequently errors, based on L1, L2 and/or L3 data. The serve-hit model 214 may further be configured to determine, prior to the tennis ball being served, a momentum of the server, based on L1, L2 and/or L3 data.
The serve-bounce model 216 can be a machine learning model configured to predict, when a tennis ball bounces immediately after being served, a likelihood that the bouncing tennis ball will result in a point for the server if the opposing tennis player subsequently errors, based on L1, L2 and/or L3 data. As used herein, the term “bounce” may be used to describe a model and/or movement of a ball (e.g., a tennis ball) immediately after the ball hits or contacts a surface (e.g., a tennis court). The serve-bounce model 216 may also be configured to predict, when a tennis ball bounces immediately after being served, a momentum of the server, based on L1, L2 and/or L3 data.
The return-hit model 218 can be machine learning model configured to predict, prior to a tennis ball being returned of serve (e.g., hit in response to a serve), likelihoods of the tennis ball landing in various locations of a tennis court, based on L1, L2 and/or L3 data. The return-hit model 218 may also be configured to predict, prior to a tennis ball being returned of serve, a likelihood that the tennis ball, at the time of being returned of serve, will result in a point for the tennis player who performed the return of serve if the opposing tennis player subsequently errors, based on L1, L2 and/or L3 data. The return-hit model 218 may further be configured to determine, prior to the tennis ball being returned of serve, a momentum of the tennis player who will perform the return of serve, based on L1, L2 and/or L3 data.
The return-bounce model 220 can be a machine learning model configured to predict, when a tennis ball bounces immediately after being returned of serve, a likelihood that the bouncing tennis ball will result in a point for the tennis player who performed the return of serve if the opposing tennis player subsequently errors, based on L1, L2 and/or L3 data. The return-bounce model 220 may also be configured to predict, when the tennis ball bounces immediately after being returned of serve, a momentum of the tennis player who performed the return of serve, based on L1, L2 and/or L3 data.
The rally-hit model 222 can be machine learning model configured to predict, prior to the beginning of a rally (e.g., prior to a tennis player hitting a tennis ball in response to a return of serve), likelihoods of the tennis ball landing in various locations of a tennis court, based on L1, L2 and/or L3 data. The rally-hit model 222 may also be configured to predict, prior to the beginning of a rally, a likelihood that the tennis ball will result in a point for the tennis player who begins the rally if the opposing tennis player subsequently errors, based on L1, L2 and/or L3 data. The rally-hit model 222 may further be configured to determine, prior to the beginning of a rally, a momentum of the tennis player who will begin the rally, based on L1, L2 and/or L3 data.
The rally-bounce model 224 can be a machine learning model configured to predict, when a tennis ball bounces immediately after a rally begins, a likelihood that the bouncing tennis ball will result in a point for the tennis player who began the rally if the opposing tennis player subsequently errors, based on L1, L2 and/or L3 data. The rally-bounce model 224 may also be configured to predict, when the tennis ball bounces immediately after the rally begins, a momentum of the tennis player who began the rally, based on L1, L2 and/or L3 data.
The overlay model 212 can process a video to overlay various outputs over the video. The video can include a broadcast of a tennis match and/or a sequence of images generated by the tracking system 102. The overlay model 212 can overlay the video with various outputs, such as skills, metrics, ratings, statistics, and predictions output by one or more of the player skill generation model 204, player rating generation model 206, match/tournament prediction model 208, shot quality prediction model 210, serve-hit model 214, serve-bounce model 216, return-hit model 218, return-bounce model 220, rally-hit model 222 and/or rally-bounce model 224. As additional examples, the overlay model 212 can overlay the video with a likelihood of winning each point, a likelihood of a ball hitting a region on the court, or trends of the match, etc. In some instances, the overlay model 212 can continually (or periodically) update after every hit or point to provide updated metrics as the match progresses.
Client device 108 may be in communication with organization computing system 104 via network 105. Client device 108 may be operated by a user. For example, client device 108 may be a mobile device, a tablet, a desktop computer, or any computing system having the capabilities described herein. Users may include, but are not limited to, individuals such as, for example, subscribers, clients, prospective clients, or customers of an entity associated with organization computing system 104, such as individuals who have obtained, will obtain, or may obtain a product, service, or consultation from an entity associated with organization computing system 104.
Client device 108 may include at least application 132. Application 132 may be representative of a web browser that allows access to a website or a stand-alone application. Client device 108 may access application 132 to access one or more functionalities of organization computing system 104. Client device 108 may communicate over network 105 to request a webpage, for example, from web client application server 154 of organization computing system 104. For example, client device 108 may be configured to execute application 132 to access content managed by web client application server 154. The content that is displayed to client device 108 may be transmitted from web client application server 154 to client device 108, and subsequently processed by application 132 for display through a graphical user interface (GUI) of client device 108.
The input data 202 can be fed into any of a player skill generation model 204 and a player rating generation model 206. The player skill generation model 204 can be configured to generate one or more skill ratings for a player. For instance, the ratings can include a player rating and a potential rating that can include various strength-based ratings for each player transformed into a 0-100 rating. A player rating can be on a match-level, and a potential rating can be a mean of a player skill distribution. These ratings can be updated after each match, taking into consideration the strength of each player and each opponent.
The player rating generation model 206 can generate a rating for each player based on a series of data points separated by categories. For example, the categories can include technical, tactical, mental, and physical metrics for each player. The result of the ratings can include multiple (4) 0-100 ratings for each category derived from the input data 202.
The match/tournament prediction model 208 can forecast upcoming matches/tournaments based on skill ratings generated by any of player skill generation model 204 and/or player rating generation model 206. For example, player ratings can be used in predicting a likelihood of each player winning a match or tournament. The match-tournament prediction model 208 can run a number of simulations using the player ratings to generate a series of predictions of each player winning each match, advancing to each stage in the tournament, winning the tournament, etc.
The shot quality prediction model 210 can process aspects of player data to predict a quality of each shot taken by a player. For example, as a player is about to take a shot, the shot quality prediction model 210 can estimate a likelihood of the player hitting the ball into various regions of the opponent's end of the court (or out of bounds). The shot quality prediction model 210 can take into account the current position of the player, historical results of a similar shot, etc. The results of the shot quality prediction model 210 can be overlaid over a video by overlay model 212.
The overlay model 212 can obtain a video broadcast of a sporting event and overlay various outputs over the video broadcast. For example, outputs can include point-based information (e.g., a likelihood of each player winning the point), shot quality predictions, player rankings, predictions for the match/tournament, rally momentum, etc. The video broadcast can include live video of the sporting event or a virtual representation of the sporting event.
In some instances, the overlay model 212 can support a counter-factual analysis of a previously performed or an ongoing match. For example, during performance of a match, the overlay model 212 can generate an overlay replacing a player in a current rally with another player. This overlay can depict how percentages during the rally change and/or how movements of the player and ball trajectories would have changed. This can include a virtual representation (or “ghost”) laid over the video depicting where other players would move and/or how percentages relating to the rally would change.
The overlay model 212 can generate an overlay including a visual representation of an alternative player and movement of the alternative player at the current state of the ongoing tennis match. This can include a depiction of the alternative player movements in a rally to illustrate a difference in movements between the actual player and the alternative player. Further, one or more statistics (e.g., movement speed, rally save percentage, percentages of striking a ball in different regions of the court) relating to the alternative player can be laid over the video.
At step 302, the organization computing system (e.g., 104) can obtain a set of data relating to a tennis player. The set of data can include at least tracking data and historical player data. The tracking data can track position and movement characteristics of each player and ball in the court.
At step 304, the shot quality prediction model 210 can determine a current state of an ongoing tennis match based on at least the tracking data. The current state of the match can include a current ball position, which player is set to return the ball, a current rally, and/or sets for each player.
At step 306, the shot quality prediction model 210 can determine a probability of a player returning a ball to different regions of a court during the ongoing tennis match based on at least the tracking data and the historical player data. Such probabilities can be shown as elements 702A-B in
At step 308, player rating generation model 206 can translate each of a set of player statistics included in the historical player data into a player rating. Each player statistic can be associated with one of a set of statistical categories. The categories can include a technical category including statistics relating to player ball striking speed and points won, a tactical category including statistics relating to the player winning points compared to unforced errors, a mental category including statistics relating to player break points converted and saved, and a physical category including statistics relating to a work rate or long rally winning percentage for the player.
In some instances, translating any of the set of player statistics into the player rating further includes transforming each statistic into the player rating using a power transformation process; and performing a smoothing of the player rating using a min-max scaler based on a distribution of player ratings of a same type across a plurality of players.
At step 310, the player rating generation model 206 can aggregate player ratings associated with each statistical category into an aggregated category rating for each statistical category. The aggregated player ratings for each category can include ratings 410A-D in
In some instances, the player skill generation model 204 can process the historical player data to generate both a player skill rating specifying a derived strength of the player relative to other players and a potential skill rating specifying a chance of outperforming the player skill rating. In some instances, the player skill generation model 204 can transform the historical player data for each player using a power transformation and smoothing a distribution of each player skill rating in relation to player skill ratings of other players using a min-max scaler.
In some instances, match/tournament prediction model 208 can identify an upcoming tennis match or an upcoming tennis tournament and perform a number of simulations of the upcoming tennis match or the upcoming tennis tournament based on a number of players scheduled to participate in the upcoming tennis match or tennis tournament using the aggregated category ratings for each category for the player.
In some instances, the match/tournament prediction model 208 can determine a predicted number of ranking points gained or lost by each player as a result of the simulations of the upcoming tennis match or the upcoming tennis tournament and predicting an updated player ranking for each player using the predicted number of points gained or lost by each player.
At step 312, the organization computing system 104 can obtain a video providing a depiction of the ongoing tennis match. The video can include a live broadcast of the tennis match or a digital representation of the sporting event.
At step 314, the overlay model 212 can generate a first overlay illustrating the probabilities of the player returning the ball to the different regions of the court. An example of the first overlay is shown as elements 702A-B in
At step 316, the overlay model 212 can generate a second overlay illustrating the aggregated category ratings for each category for the player. Examples of the second overlay can include elements shown in
In some instances, match/tournament prediction model 208 can determine a probability of each player winning an upcoming point in the ongoing tennis match. The overlay model 212 can generate a third overlay illustrating the determined probability of each player winning the upcoming point and overlay the third overlay over the video.
At step 318, the overlay model 212 can overlay at least one of the first overlay and the second overlay over the video.
A player card can have one or more player ratings, such as a player rating and a potential player rating. These ratings can be independent from the technical, tactical, mental, and physical ratings of the player.
A skill-based rating (e.g., an OpenSkill rating) can aim to assess and track a player's skill throughout a match, tournament and even throughout the season. Players can be given a separate rating for service and return points in a sport such as tennis. These ratings can be generated on a match level but can also be transformed into a 0-100 rating.
A potential skill rating can include a mean of a player's skill distribution. The potential skill rating can be updated after each match played, and the rating updates can consider the player strength as well as the strength of the opponents of that player over a time duration (e.g., over the past year).
After generating skill ratings for each player, the skill ratings can be generated to a score (e.g., 0-100 score). This can be performed using a power transformation process and a min-max scaler to smooth a distribution of scores and ensure a fair application of the 0-100 values, with a 0 being assigned to a lowest ranked player and a 100 being assigned to the highest ranked player.
The forecast 408 can include data relating to an upcoming match or tournament, a predicted likelihood of the player winning the match and/or the tournament, and an expected world ranking based on the likelihood of the player winning the match or tournament. The player ratings 410A-D can include distributed rankings (e.g., 0-100 values) based on various categories (e.g., technical, tactical, mental, and/or physical categories) for the player.
The skill ratings generated for each player can be used to forecast various aspects of a match or a tournament. For example, the skill ratings can be used to generate win predictions and ranking predictions for each match of an upcoming tournament. For example, using the player skill ratings and each player position in the tournament (e.g., the draw for the tournament), a probability of each match outcome can be estimated.
The match/tournament prediction model (e.g., 208) generating probabilities of each match outcome can consider the strengths of each player, and can simulate the outcomes for each match and a remaining number of rounds of a tournament a number of times (e.g., thousands of times). Based on the outcomes generated for a match/tournament, the number of points gained/lost by a player can be calculated (e.g., based at least in part on a result in previous matches or tournaments). The points gained/lost and predicted outcomes for an upcoming match/tournament can be used to order players and calculate a world ranking for each player.
The player ratings can be derived based on various technical, tactical, mental, and/or physical data for each player. In some instances, historical data can be used as training data for the player rating generation model 206, such as prior rounds of a tournament. The variables can be used for each of a technical, tactical, mental, and/or physical category of data.
For instance, a technical category can include a forehand average ball speed, backhand average ball speed, forehand average revolutions per minute (RPM), backhand average RPM, first serve average speed, second serve average speed, percent of first serves in, percent of first serve points won, percent of second serve points won, first serve return average speed, second serve return average speed, first serve return make percentage, second serve return make percentage, percent of first serve return points won, and/or a percent of second serve return points won.
The tactical category can include data such as winners divided by unforced errors, a percent net approaches won, an average groundstroke hitting location, etc. The mental category can include data such as a percent of break points converted, and a percent of break points saved. The physical category can include data such as a work rate (KJ/shot), high intensity changes of direction (HICOD), hitting load, percent of 9+ shot rallies won, and/or a percent of 5-8 shot rallies won.
For each of the data in each of the categories, the data can be translated into a 0-100 rating. The translation can be performed using a power transformation and a min-max scaler to smooth the distribution of ratings, where zero is assigned to the player with the lowest/worst stat, and 100 is the player with the highest/best stat. After the ratings are generated for each individual statistic, the statistics are averaged by category. The averaged statistics for each category can be again transformed into a 0-100 rating using a transformation process similar to that described above. As a result, the player ratings can include a number (e.g., four) 0-100 ratings for each player.
The player ratings can be further defined to refine metrics for each category and add more relevant variables. For example, serve/return/pressure points or long rally skill ratings on a point level can be added as variables to the categories as described herein. Further, more shot/player placement data metrics can be added, and weights can be applied to each statistic. Additionally, more data from different tournaments (or surfaces) can be added as additional training data for increased results for players.
In many instances, one or more outputs can be overlaid on top of a video broadcast of a sporting event. For example, during a broadcast of a tennis match, an output showing each player name and scores can be overlaid over the broadcast.
Various types of data from different sources can be overlaid on the sports broadcast, such as live prediction outputs using a live prediction model using tracking data, prediction overlays (using calibration), and/or other interactive elements (e.g., moving a player or ball, and seeing how these percentages change using within point counter-factual analysis). As another example, an output can include player ratings for each player in a tournament or match, where the output includes the player ratings as generated herein. In some instances, such data can be added in a virtual view on the broadcast.
Further, another overlay 804A-D is added, illustrating a likelihood of the returning player landing the ball in any of the regions. For example, a first region 804A can have a 10% likelihood of the ball landing, a second region 804B can have a 39% likelihood of the ball landing, a third region 804C can have a 14% likelihood of the ball landing, and a fourth region 804D can have a 13% likelihood of the ball landing. In this example, a remaining percentage can include regions that are outliers, out of bounds, or hitting the net.
In some instances, other overlays can provide additional information relating to the match. For example, a rally momentum overlay 906 can illustrate a momentum of each player over a number of points.
As shown in
In some embodiments, the input data 1202A may include L1 data, which may be data collected by an umpire during a game. For example, L1 data may be data representing a score of a game. In addition or in the alternative, L1 data may be data representing a type of each of one or more points included in the score of a game. The type may represent, for example, a point scored early in a game (e.g., where the score is 0-0, 0-15, or 15-15), during a setup of a game (e.g., where a tennis player needs two points to win a service game and the score may be 30-15, 30-0, 15-30, 30-30, or 40-40), as a final point in a game (e.g., where one tennis player needs only one point to win a service game and the score may be 40-30, 40-15, 40-0, 0-40, 15-40, 30-40, or where one player has an Advantage over Deuce such as Ad-40 or 40-Ad), or as a tiebreak point in a game (e.g., where a set score is 6-6, and every point is referred to as a tiebreak point).
In some embodiments, the input data 1202A may further include L2 data. L2 data may represent, for example, a likelihood of a tennis player winning the next point in a game, where this likelihood may be obtained from a live win prediction pipeline. In addition or in the alternative, L2 data may represent a likelihood of a server in a tennis game winning a point on serve, where this likelihood is obtained based on a player ratings and/or player skills data calculated (or collected) over a time period (e.g., all points played by the server in the last 54-weeks). In addition or in the alternative, L2 data may be style data (or features) (also referred to herein as “L2 style data”), which may be updated prior to a game. L2 style data may be based on (or include) event data or player data, which is based on one or more previous games (e.g., tournaments). L2 style data may include (or represent) features such as a number of aces, a number of double faults, a number of forehand winners, and/or a number of backhand winners. In addition or in the alternative, L2 style data may include features representing types of final shots (e.g., forehand shots, backhand shots, smashes, dropshots, passing shot winners, forehand volleys, backhand volleys, and/or unforced errors). In some aspects, L2 style data may represent where a tennis player prefers to stand, play to, and/or win a point in a tennis game.
Further, in some embodiments, the input data 1202A may include L3 data, which may represent tracking data obtained from the tracking system 102. As explained above, tracking data may be (or include) data representing a position of a tennis player (e.g., as (x, y) coordinates), and/or movement of a tennis player (e.g., speed, velocity, or distance run). The tracking data may also include data representing the position of a tennis ball (e.g., as (x, y) coordinates or (x, y, z) coordinates) and/or movement (e.g., speed or velocity) of a tennis ball. In some aspects, the tracking data may include near real time data obtained from the tracking system 102, and/or historical tracking data obtained from the tracking system 102 and/or other source(s). In addition or in the alternative, the input data 1202A may include L3 style data (or features), which may be updated prior to a game (e.g., a tournament). The L3 style data may include features such as a percentage of various types of strokes (e.g., forehand crosscourt strokes, forehand ground strokes, forehand topspin strokes, fast forehand strokes, backhand crosscourt strokes, backhand ground strokes, backhand topspin strokes, fast backhand strokes, and/or fast ground strokes) performed by a tennis player over one or more periods of time. In addition or in the alternative, the L3 style data may include features such as a number of volleys hit by a tennis player, a number of smashes hit by a tennis player, and/or a number of serves to various regions of a tennis court (e.g., regions marked as T_deuce, B_deuce, W_deuce, OUT_wide_R, OUT_wide_L, and OUT_Long in diagram 1302 of
In some embodiments, where insufficient L3 data are available for a particular tennis player, the input data 1202A may include at least L2 data to serve as a baseline for the tennis player. Further, where only a small amount of data is available for a tennis player, the input data 1202A may include a combination of L2 data (e.g., statistics) and L3 data (e.g., statistics) for the tennis player.
In some aspects, the serve-hit model 214 may be a machine learning model trained using a dataset specific to a gender (e.g., male, female, etc.) and/or game (e.g., tournament). The dataset may include data associated with a number of matches, and/or pre-processed data associated with a number of tennis shots, serves, returns, and rally shots. In some embodiments, the dataset may include tracking data. Before the serve-hit model 214 is employed for a game, the serve-hit model 214 may be initialized using data associated with the game (e.g., predictions associated with the game).
As shown in
In some aspects, the serve-hit model 214 may also be configured to generate, prior to a tennis ball being served, the shot-quality probability 1206A based on the input data 1202A. The shot-quality probability 1206A may represent the likelihood that the tennis ball, at the time of being served, will result in a point for the server (e.g., tennis player A) if the opposing tennis player (e.g., tennis player B) errs when attempting to return, or returning, the tennis ball of serve (e.g., by swinging and missing the tennis ball, or hitting the tennis ball out of bounds). In some aspects, the shot-quality probability 1206A may represent a rally-level and/or point-level momentum (e.g., an indication of which tennis player is most likely to win the point.)
In some embodiments, the serve-hit model 214 may further be configured to generate, prior to a tennis ball being served, a momentum 1208A (e.g., a match-level momentum) based on the input data 1202A (or only L1 and L2 data of the input data 1202A). The momentum 1208A may represent an exponentially-weighted moving average of the leverage gained by a tennis player (e.g., tennis player A) thus far in the game. The leverage of a tennis player (e.g., tennis player A) may refer to the amount the tennis player's probability of winning a game changes given the outcome of the next point in the game.
In some aspects, the serve-bounce model 216 may be configured to receive input data 1202B, which may be specific to a particular tennis player (e.g., tennis player A). The input data 1202B may include the input data 1202A along with updated data (e.g. L1, L2, and/or L3 data generated since the most recent serve in a tennis game). Further, the serve-bounce model 214 may be configured to determine, when a tennis ball bounces in a region of a tennis court immediately after being served, a shot-quality probability 1204B based on the input data 1202B. The shot-quality probability 1204B may represent a likelihood that the bouncing tennis ball will result in a point for the server (e.g., tennis player A) if the opposing tennis player (e.g., tennis player B) errs when attempting to return, or returning, the tennis ball of serve (e.g., swinging and missing the tennis ball or hitting the tennis ball out of bounds). In some aspects, the shot-quality probability 1204B may represent a rally-level and/or point-level momentum (e.g., an indication of which tennis player is most likely to win the point).
In some embodiments, the bounce-hit model 216 may further be configured to generate, when a tennis ball bounces in a region of a tennis court immediately after being served, a momentum 1208B (e.g., a match-level momentum) based on the input data 1202B (or L1 and L2 data of the input data 1202B). The momentum 1208B may be an embodiment of the momentum 1208A.
In some aspects, the return-hit model 222 may be configured to receive input data 1202C. The input data 1202C may be an embodiment of the input data 1202A and/or 1202B, but relate (or be personalized) to tennis player B (not tennis player A). The input data 1202C may include L1 data, L2 data, and/or L3 data.
As shown in
In some aspects, the return-hit model 222 may also be configured to generate, prior to a tennis ball being returned of serve, a shot-quality probability 1206C based on the input data 1202C. The shot-quality probability 1206C may represent the likelihood that the tennis ball, at the time of being returned of serve, will result in a point for the tennis player who performed the return of serve (e.g., tennis player B) if the opposing tennis player (e.g., tennis player A) errs when attempting to start a rally or starting a rally (e.g., swinging and missing the tennis ball, or hitting the tennis ball). In some aspects, the shot-quality probability 1206C may represent a rally-level and/or point-level momentum (e.g., an indication of which tennis player is most likely to win the point).
In some embodiments, the return-hit model 222 may further be configured to generate, prior to a tennis ball being returned of serve, a momentum 1208C (e.g., a match-level momentum) based on the input data 1202C (or L1 and L2 data of the input data 1202C). The momentum 1208C may represent an exponentially-weighted moving average of the leverage gained by a tennis player (e.g., the tennis player B) thus far in a game. The leverage of a tennis player (e.g., tennis player B) may refer to the amount the tennis player's probability of winning a game changes given the outcome of the next point in the game.
In some aspects, the return-bounce model 224 may be configured to receive input data 1202D, which may be specific to a particular tennis player (e.g., tennis player B). The input data 1202D may include the input data 1202C along with updated data (e.g. L1, L2, and/or L3 data generated since the most recent return of serve in a tennis game). Further, the return-bounce model 224 may be configured to determine, when a tennis ball bounces in a region of a tennis court immediately after being returned of serve, a shot-quality probability 1206D based on the input data 1202D. The shot-quality probability 1206D may represent a likelihood that the bouncing tennis ball will result in a point for the tennis player who performed the return of serve (e.g., tennis player B) if the opposing tennis player (e.g., tennis player A) errs when attempting to start, or starting, a rally (e.g., swinging and missing the tennis ball, or hitting the tennis ball out of bounds). In some aspects, the shot-quality probability 1206D may represent a rally-level and/or point-level momentum (e.g., an indication of which tennis player is most likely to win the point).
Further, in some embodiments, the return-bounce model 224 may be configured to generate, when a tennis ball bounces in a region of a tennis court immediately after being returned of serve, a momentum 1208D (e.g., a match-level momentum) based on the input data 1202D (or L1 and L2 data of the input data 1202D). The momentum 1208D may be an embodiment of the momentum 1208C.
In some aspects, the rally-hit model 214 may be configured to receive input data 1202E. The input data 1202E may be an embodiment of the input data 1202A and/or 1202B, and relate (or be personalized) to a tennis player (e.g., the tennis player A). In some embodiments, the input data 1202E may include the input data 1202A and/or 1202B, in addition to updated data (e.g. L1, L2, and/or L3 data generated since a tennis ball most recently bounced immediately following a return of serve in a game).
As shown in
In some aspects, the rally-hit model 214 may also be configured to generate, prior to a tennis ball being returned to start a rally, a shot-quality probability 1206E based on the input data 1202E. The shot-quality probability 1206E may represent the likelihood that the tennis ball, at the time of being returned to start the rally, will result in a point for the tennis player who started the rally (e.g., tennis player A) if the opposing tennis player (e.g., tennis player B) errs immediately thereafter (e.g., by swinging and missing the tennis ball, or hitting the tennis ball out of bounds). In some aspects, the shot-quality probability 1206E may represent a rally-level and/or point-level momentum (e.g., an indication of which tennis player is most likely to win the point).
In some embodiments, the rally-hit model 214 may further be configured to generate, prior to a tennis ball being returned to start a rally, a momentum 1208E (e.g., a match-level momentum) based on the input data 1202E (or L1 and L2 data of the input data 1202E). The momentum 1208E may be an embodiment of the momentum 1208A.
In some aspects, the rally-bounce model 216 may be configured to receive input data 1202F, which may be specific to the tennis player A. The input data 1202F may include the input data 1202E along with updated data (e.g. L1, L2, and/or L3 data generated since a rally started in a tennis game). Further, the rally-bounce model 216 may be configured to determine, when a tennis ball bounces in a region of a tennis court immediately after a rally begins, a shot-quality probability 1206F based on the input data 1202F. The shot-quality probability 1206F may represent a likelihood that the bouncing tennis ball will result in a point for the tennis player who started the rally (e.g., tennis player A) if the opposing tennis player (e.g., tennis player B) errs immediately after the rally begins, by, for example, swinging and missing the tennis ball or by hitting the tennis ball out of bounds. In some aspects, the shot-quality probability 1206F may represent a rally-level and/or point-level momentum (e.g., an indication of which tennis player is most likely to win the point).
In some embodiments, the rally-bounce model 216 may further be configured to generate, when a tennis ball bounces in a region of a tennis court immediately after the rally begins, a momentum 1208F (e.g., a match-level momentum) based on the input data 1202F (or L1 and L2 data of the input data 1202F). The momentum 1208F may be an embodiment of the momentum 1208E.
During a tennis game, the serve-hit model 214 may be deployed first to output shot-location probabilities 1204A, shot-quality probability 1206A and/or momentum 1208A, which the overlay model 212 may include in overlay(s) before placing the overlay(s) over video frame(s) of the tennis game. The serve-bounce model 216 may be deployed second to output shot-quality probability 1204B and/or momentum 1208B, which the overlay model 212 may include in overlay(s) before placing the overlay(s) over video frame(s) of the tennis game. The return-hit model 222 may be used third to output shot-location probabilities 1204C, shot-quality probability 1206C and/or momentum 1208C, which the overlay model 212 may include in overlay(s) before placing the overlay(s) over video frame(s) of the tennis game. The return-bounce model 224 may be used fourth to output shot-quality probability 1206D and/or momentum 1208D, which the overlay model 212 may include in overlay(s) before placing the overlay(s) over video frame(s) of the tennis game. The rally-hit model 214 may be used fifth to output shot-location probabilities 1204E, shot-quality probability 1206E and/or momentum 1208E, which the overlay model 212 may include in overlay(s) before placing the overlay(s) over video frame(s) of the tennis game. The rally-bounce model 216 may be used sixth to output shot-quality probability 1206F and/or momentum 1208F, which the overlay model 212 may include in overlay(s) before placing the overlay(s) over video frame(s) of the tennis game. Additional rally-hit models (similar to rally-hit model 214) and rally-bounce models (similar to rally-bounce model 216) may be used to generate shot-location and shot-quality probabilities and momentums for players A and B as a rally progresses. In some embodiments, one or more of the serve-hit model 214, serve-bounce model 216, return-hit model 222, return bounce model 224, rally-hit model 214 and rally-bounce model 216 may continually receive input data (e.g., updated or current input data) and generate outputs throughout a game.
It will be understood that one or more models depicted in
The inputs to machine learning module 1260 may include point type data 1251 (e.g., early, setup, game point, tiebreak point). Point type data 1251 may be automatically determined by a tracking system (e.g., tracking system 102 of
The inputs to machine learning module 1260 may also include serve win point likelihood 1253. Serve win point likelihood 1253 may be provided by a server or other system component. Serve win point likelihood 1253 may be generated based on one or more attributes such a player skill level (e.g., a serve specific skill level), momentum, player performance, etc. Serve win point likelihood 1253 may correspond to the likelihood of a current server winning a point on a serve.
The inputs to machine learning module 1260 may also include tracking data 1254 (e.g., for an object such as ball or player) and/or movement distances (e.g., running distances 1255). Such inputs may be based on tracking data received based on an in-venue camera feed or a broadcast feed. Such inputs may be generated by identifying an object or player within a video feed and tracking the coordinates of the object or player over time. For example, such inputs may be generated based on x,y, coordinates of two or more players and respective velocities vx, vy (e.g., at time of hitting a ball, at the time of a serve, during a rally, etc.). As another example, such inputs may further include an object's x,y coordinates, velocities vx, vy, and/or current speed. As an example, in accordance with one or more bounce models discussed herein, such inputs may be associated with a previous hit of an object. As another example, movement distances may be calculated based on tracking data based on a change in a player or object's positional information.
The inputs to machine learning module 1260 may also include L2 Styles 1256 and L3 styles 1267, as discussed herein. One or more such inputs, as depicted in
As shown in
In some embodiments, the method 1500A may include determining, using a first machine learning model (e.g., the serve-hit model 214) and prior to the first tennis player performing a serve using a tennis ball, a first plurality of probabilities (e.g., shot-location probabilities 1204A) based on the first set of data, where each probability of the first plurality of probabilities represents a likelihood of the tennis ball landing in a respective region of the tennis court based on the serve, at step 1506A. The method 1500A may further include generating a first overlay depicting the first plurality of probabilities at step 1508A, and overlaying the video with the first overlay at step 1510A. In some embodiments, the method 1500A may include extracting frames of the video, and overlaying the video with the first overlay may include overlaying the extracted frames with the first overlay. Further, in some embodiments, the method 1500A may include determining, using the first machine learning model and prior to the first tennis player performing the serve using the tennis ball, a first momentum (e.g., the momentum 1208A) associated with the first tennis player.
In some embodiments, the method 1500A may include determining, using a second machine learning model (e.g., the serve-bounce model 216) and when the tennis ball bounces in a first region of the tennis court based on the serve, a probability that the bouncing tennis ball will result in a point for the first tennis player (e.g., the shot-quality probability 1204B) based at least in part on the first set of data, at step 1512A. In some aspects, determining the probability that the bouncing tennis ball will result in a point for the first tennis player is further based on a second set of data including the first set of data and a second tracking data (e.g., the input data 1202B). Further, the probability that the bouncing tennis ball will result in a point for the first tennis player may represent a probability that the bouncing tennis ball will result in a point for the first tennis player if a second tennis player (e.g., tennis player B) fails to return, or improperly returns, the bouncing tennis ball to the first tennis player.
The method 1500A may include generating a second overlay depicting the probability that the bouncing tennis ball will result in a point for the first tennis player at step 1514A, and overlaying the video with the second overlay at step 1516A. In some embodiments, the first machine learning model and the second machine learning model may be part of a single machine learning module. Further, in some embodiments, the method 1500A may include determining, using the second machine learning model and when the tennis ball bounces in the first region of the tennis court based on the serve, a first momentum associated with the first tennis player. In some embodiments, at least one of the first machine learning model or the second machine learning model may be trained using one or more of: data associated with a plurality of tennis matches; data associated with a plurality of tennis shots; data associated with a plurality of tennis serves; data associated with a plurality of returns; or data associated with a plurality of rally shots. Further, in some embodiments, one or more of the first machine learning model or the second machine learning model may include a neural network. The method 1500A may include generating at least one graph (e.g., the momentum plot of the overlay 1404) representing at least one probability associated with the first tennis player and at least one probability associated with the second tennis player (e.g., tennis player B).
As shown in
In some embodiments, the method 1500B may include determining, using a fourth machine learning model (e.g., the return-bounce model 224) and when the tennis ball bounces in a second region of the tennis court based on the return (e.g., the return of serve), a probability that the bouncing tennis ball returned by the second tennis player will result in a point for the second tennis player (e.g., the shot-quality probability 1206D) based on the second set of data, at step 1510B. The method 1500B may further include generating a fourth overlay depicting the probability that the bouncing tennis ball returned by the second tennis player will result in a point for the second tennis player at step 1512B, and overlaying the video with the fourth overlay at step 1514B.
As shown in
In some embodiments, the method 1500C may further include determining, using a sixth machine learning model (e.g., the rally-bounce model 216) and when the tennis ball bounces in a third region of the tennis court based on the return (e.g., to start a rally) by the first tennis player, a probability that the bouncing tennis ball returned by the first tennis player will result in a point for the first tennis player (e.g., the shot-quality probability 1206F) based on the third set of data, at step 1510C. The method 1500C may include generating a sixth overlay depicting the probability that the bouncing tennis ball returned by the first tennis player will result in a point for the first tennis player at step 1512C, and overlaying the video with the sixth overlay at step 1514C.
To enable user interaction with the computing device 1600, an input device 1645 may represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. An output display 1635 may also be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems may enable a user to provide multiple types of input to communicate with computing device 1600. Communications interface 1640 may generally govern and manage the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.
Storage device 1630 may be a non-volatile memory and may be a hard disk or other types of computer readable media which may store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, random access memories (RAMs) 1625, read only memory (ROM) 1620, and hybrids thereof.
Storage device 1630 may include services 1632, 1634, and 1636 for controlling the processor 1610. Other hardware or software modules are contemplated. Storage device 1630 may be connected to system bus 1605. In one aspect, a hardware module that performs a particular function may include the software component stored in a computer-readable medium in connection with the necessary hardware components, such as processor 1610, bus 1605, display 1635, and so forth, to carry out the function.
Chipset 1660 may also interface with one or more communication interfaces 1690 that may have different physical interfaces. Such communication interfaces may include interfaces for wired and wireless local area networks, for broadband wireless networks, as well as personal area networks. Some applications of the methods for generating, displaying, and using the GUI disclosed herein may include receiving ordered datasets over the physical interface or be generated by the machine itself by processor 1655 analyzing data stored in storage 1670 or 1675. Further, the machine may receive inputs from a user through user interface components 1685 and execute appropriate functions, such as browsing functions by interpreting these inputs using processor 1655.
It may be appreciated that example systems 1600 and 1650 may have more than one processor 1610 or be part of a group or cluster of computing devices networked together to provide greater processing capability.
While the foregoing is directed to embodiments described herein, other and further embodiments may be devised without departing from the basic scope thereof. For example, aspects of the present disclosure may be implemented in hardware or software or a combination of hardware and software. One embodiment described herein may be implemented as a program product for use with a computer system. The program(s) of the program product define functions of the embodiments (including the methods described herein) and can be contained on a variety of computer-readable storage media. Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (e.g., read-only memory (ROM) devices within a computer, such as CD-ROM disks readably by a CD-ROM drive, flash memory, ROM chips, or any type of solid-state non-volatile memory) on which information is permanently stored; and (ii) writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive or any type of solid state random-access memory) on which alterable information is stored. Such computer-readable storage media, when carrying computer-readable instructions that direct the functions of the disclosed embodiments, are embodiments of the present disclosure.
It will be appreciated to those skilled in the art that the preceding examples are exemplary and not limiting. It is intended that all permutations, enhancements, equivalents, and improvements thereto are apparent to those skilled in the art upon a reading of the specification and a study of the drawings are included within the true spirit and scope of the present disclosure. It is therefore intended that the following appended claims include all such modifications, permutations, and equivalents as fall within the true spirit and scope of these teachings.
This application claims the benefit of priority to U.S. Provisional Patent Application No. 63/496,816, filed Apr. 18, 2023, the entirety of which is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
63496816 | Apr 2023 | US |