Systems and methods for evaluating defensive performance using graph convolutional networks
By modeling defensive behavior using graph convolutional neural networks (GNNs), the problem of the inability to quantify the impact of defense in existing technologies is solved, enabling accurate prediction and quantification of defensive behavior and improving the predictability of defensive strategies.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- STAT LLC
- Filing Date
- 2022-02-04
- Publication Date
- 2026-07-21
Smart Images

Figure CN116887894B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims priority to U.S. Application Serial No. 63 / 146,039, filed February 5, 2021, and U.S. Application Serial No. 63 / 164,932, filed March 23, 2021, which are incorporated herein by reference in their entirety. Technical Field
[0003] This disclosure generally relates to systems and methods for modeling defensive behavior and determining the impact of that defensive behavior on offensive behavior. Background Technology
[0004] In sports, the technique of good defense is to prevent things from happening before they even occur. While many players in sports are highly respected for their defensive abilities, current statistics fail to acknowledge or quantify this aspect of individual defensive prowess. For example, in football, while statistics show that a defender's contribution is measured by the number of tackles or interceptions, there is currently no way to measure actions prevented before they are made or even occur. Generally speaking, the purpose of defense and defenders is to make the attack predictable. If the technique of good defense is to make the game predictable, then it should also be measurable. Summary of the Invention
[0005] In some embodiments, a method is disclosed. A computing system retrieves tracking data from a data storage device. The tracking data includes multiple data frames of multiple events across multiple seasons. The computing system converts the tracking data into multiple graph-based representations. A prediction engine learns via a first graph neural network to predict the probability of a pass being completed at any time during possession, via a second graph neural network to predict the probability of a shot occurring during possession, and via a third graph neural network to predict the probability of each player becoming the pass receiver during possession. The prediction engine learns to model defensive behavior based on the multiple graph-based representations. The computing system generates a trained prediction engine based on the learning. The computing system receives target tracking data for a target event. The target tracking data includes multiple target frames. The computing system converts the target tracking data into multiple target graph-based representations. Each graph-based representation corresponds to a target frame among the multiple target frames. The computing system models the defensive behavior of a team in the target event based on the multiple graph-based representations via the trained graph neural network.
[0006] In some embodiments, a system is disclosed herein. The system includes a processor and a memory. The memory includes programming instructions stored thereon, which, when executed by the processor, cause the system to perform one or more operations. One or more operations include retrieving tracking data from a data memory. The tracking data includes multiple data frames of multiple events across multiple seasons. One or more operations also include converting the tracking data into multiple graph-based representations. One or more operations further include learning via a first graph neural network to predict the probability of a pass being completed at any time during possession, learning via a second graph neural network to predict the probability of a shot occurring during possession, and learning via a third graph neural network to predict the probability of each player becoming the pass receiver during possession, to learn and model defensive behavior based on the multiple graph-based representations by a prediction engine. One or more operations also include generating a trained prediction engine by a computational system based on the learning. One or more operations further include receiving target tracking data for a target event. The target tracking data includes multiple target frames. One or more operations also include converting the target tracking data into multiple target graph-based representations. Each graph-based representation corresponds to a target frame among the multiple target frames. One or more operations also include modeling the team’s defensive behavior in a target event based on multiple graph-based representations via a trained graph neural network.
[0007] In some embodiments, this document discloses a non-transitory computer-readable medium. The non-transitory computer-readable medium includes one or more sequences of instructions that, when executed by one or more processors, cause a computing system to perform operations. The operations include retrieving tracking data from a data memory by the computing system. The tracking data includes multiple data frames of multiple events spanning multiple seasons. The operations also include converting the tracking data into multiple graph-based representations by the computing system. The operations further include learning via a first graph neural network to predict the probability of a pass being completed at any time during possession, learning via a second graph neural network to predict the probability of a shot occurring during possession, and learning via a third graph neural network to predict the probability of each player becoming the pass receiver during possession, to learn to model defensive behavior based on the multiple graph-based representations by a prediction engine. The operations also include generating a trained prediction engine by the computing system based on the learning. The operations also include receiving target tracking data for a target event by the computing system. The target tracking data includes multiple target frames. The operations further include converting the target tracking data into multiple target graph-based representations by the computing system. Each graph-based representation corresponds to a target frame among the multiple target frames. The operation also includes modeling the team’s defensive behavior in a target event by a computational system based on multiple graph-based representations via a trained graph neural network. Attached Figure Description
[0008] To gain a more detailed understanding of the features described above, reference can be made to the embodiments (as briefly summarized above), some of which are illustrated in the accompanying drawings. However, it should be noted that the drawings only show typical embodiments of the present disclosure and should not be considered as limiting the scope of the disclosure, as other equally effective embodiments are permissible.
[0009] Figure 1 This is a block diagram illustrating a computing environment according to an example embodiment.
[0010] Figure 2 A graph-based representation of an event frame according to an example embodiment is shown.
[0011] Figure 3 This is a flowchart illustrating a method for generating a trained predictive model according to an example embodiment.
[0012] Figure 4 This is a flowchart illustrating a method for modeling defensive behavior and determining the impact of defensive behavior on offensive behavior according to an example embodiment.
[0013] Figures 5A-5E An exemplary graphical representation of the output generated by the prediction engine according to an example embodiment is shown.
[0014] Figures 6A-6C One or more graphical representations that can be generated based on the output of the prediction engine, according to an example embodiment, are shown.
[0015] Figure 7A This is a block diagram illustrating a computing device according to an example embodiment.
[0016] Figure 7B This is a block diagram illustrating a computing device according to an example embodiment.
[0017] Figure 8 One or more graphical representations that can be generated based on the output of the prediction engine, according to an example embodiment, are shown.
[0018] Figure 9 One or more graphical representations that can be generated based on the output of the prediction engine, according to an example embodiment, are shown.
[0019] Figures 10A-10C One or more graphical representations that can be generated based on the output of the prediction engine, according to an example embodiment, are shown.
[0020] Figure 11 One or more graphical representations that can be generated based on the output of the prediction engine, according to an example embodiment, are shown.
[0021] Figure 12 One or more graphical representations that can be generated based on the output of the prediction engine, according to an example embodiment, are shown.
[0022] Figure 13 One or more graphical representations that can be generated based on the output of the prediction engine, according to an example embodiment, are shown.
[0023] Figures 14A-14C One or more graphical representations that can be generated based on the output of the prediction engine, according to an example embodiment, are shown.
[0024] For ease of understanding, the same reference numerals are used where possible to denote common elements in the figures. It is conceivable that elements disclosed in one embodiment may be advantageously used in other embodiments without specific description. Detailed Implementation
[0025] The techniques described herein typically relate to systems and methods for modeling defensive behavior and determining its impact on offensive behavior, i.e., preventing actions before they occur. For example, given tracking data that can be highly unstructured and variable, the techniques described herein can utilize multiple graph neural networks (GNNs) to predict or forecast player behavior.
[0026] Tracking data is often highly unstructured and can be difficult to model because most machine learning techniques typically require tabular datasets where features are inserted in a specific order. Traditional approaches to solving this sorting problem have various drawbacks. For example, in a football match, teams often use different formations. Therefore, the players with role 10 for a team using a 4-3-3 formation will be very different from those using a 3-5-2 formation. Consequently, it is difficult to compare predictions between these players. Furthermore, traditional approaches to solving this sorting problem rely on teams having the same number of players on the pitch or playing field. Therefore, when a player is sent off, a different model must be learned. Moreover, these traditional methods are affected when deployed in real-time (or near real-time) due to the speed at which players need to be sorted before calculating features for real-time inference.
[0027] Furthermore, several methods exist to avoid the sorting / arrangement problem when using Convolutional Neural Networks (CNNs) to predict probability-based field control surfaces. To achieve this, these methods must convert the tracking data into an image representation before feeding it into the CNN. However, this direct conversion of tracking data into images is suboptimal because it sacrifices a very low-dimensional dataset and transforms it into a high-dimensional sparse representation of the data. Tracking data often exhibits an irregular structure due to the lack of players and a clear scheme for sorting players within a frame sequence. Moreover, this technique is time-consuming and may pose problems for future generations of real-time applications.
[0028] Therefore, to improve upon traditional processes, one or more techniques utilize Generative Neural Networks (GNNs) to predict or forecast player behavior. By using GNNs, this technique eliminates the need for feature ranking, can handle varying numbers of players on the field or playing area, and can learn local and higher-scale features directly from tracking data (without having to convert them to image representations).
[0029] Figure 1 This is a block diagram illustrating a computing environment 100 according to an example embodiment. The computing environment 100 may include a tracking system 102, an organizational computing system 104, and one or more client devices 108 communicating via a network 105.
[0030] Network 105 can be of any suitable type, including a separate connection to the Internet such as a cellular or Wi-Fi network. In some embodiments, network 105 may use technologies such as radio frequency identification (RFID), near-field communication (NFC), or Bluetooth. TM Bluetooth Low Energy TM (low-energy Bluetooth, BLE), Wi-Fi TM Purple Bee TMDirect connections such as ZigBee, ambient backscatter communication (ABC), Universal Serial Bus (USB), Wide Area Network (WAN), or Local Area Network (LAN) are used to connect terminals, services, and mobile devices. Because the transmitted information may be personal or confidential, one or more of these types of connections may be specified to be encrypted or otherwise protected for security reasons. However, in some embodiments, the information being transmitted may be less personal, and therefore, the network connection may be chosen for convenience rather than security.
[0031] Network 105 may include any type of computer networking arrangement for exchanging data or information. For example, network 105 may be the Internet, a private data network, a virtual private network using a public network, and / or other suitable connections that enable components in computing environment 100 to send and receive information between components of environment 100.
[0032] Tracking system 102 may be located in court 106. For example, court 106 may be configured to host sporting events involving one or more agents 112. Tracking system 102 may be configured to capture the movement of all agents (i.e., players) and one or more other associated objects (e.g., ball, referee, etc.) on the playing field. In some embodiments, tracking system 102 may be an optical-based system using, for example, multiple fixed cameras. For example, a system consisting of six fixed calibrated cameras may be used, which project the three-dimensional positions of the players and the ball onto a two-dimensional top view of the court. In another example, a combination of fixed and non-fixed cameras may be used to capture the movement of all agents and one or more objects or associated objects on the playing field. As those skilled in the art will recognize, the result of utilizing such a tracking system (e.g., tracking system 102) may be many different camera views of the court (e.g., high sideline view, penalty line view, crowd view, confrontation view, end zone view, etc.). In some embodiments, tracking system 102 may be used for broadcast feeds of a given game. In such embodiments, each frame of the broadcast feed may be stored in game file 110.
[0033] In some embodiments, the match file 110 may further add other event information corresponding to the event data, such as, but not limited to, match event information (pass, shot, mistake, etc.) and contextual information (current score, remaining time, etc.).
[0034] The tracking system 102 can be configured to communicate with the organizational computing system 104 via a network 105. The organizational computing system 104 can be configured to manage and analyze the data captured by the tracking system 102. The organizational computing system 104 may include at least a network client application server 114, a preprocessing agent 116, a data storage 118, and a prediction engine 120. Each of the preprocessing agent 116 and the prediction engine 120 may consist of one or more software modules. One or more software modules may be a collection of code or instructions stored on a medium (e.g., the memory of the organizational computing system 104) that represents a series of machine instructions (e.g., program code) to implement one or more algorithm steps. Such machine instructions may be actual computer code that is interpreted by the processor of the organizational computing system 104 to implement the instructions, or alternatively, may be higher-level code that is interpreted to obtain actual computer code. One or more software modules may also include one or more hardware components. One or more aspects of the example algorithm may be executed by the hardware components (e.g., circuitry) themselves, rather than as a result of instructions.
[0035] Data storage 118 can be configured to store one or more match files 122. Each match file 122 may include data for a given match. For example, the data may correspond to multiple location information for each agent captured by tracking system 102. In some embodiments, the data may correspond to broadcast data for a given match, in which case the data may correspond to multiple location information for each agent from a broadcast feed of the given match. Typically, such information may be referred to herein as “tracking data.” For example, tracking data may be extracted from video frames of a broadcast feed. Typically, tracking data may refer to the position of a player / ball on the playing field.
[0036] Preprocessing agent 116 can be configured to process data retrieved from data storage 118. For example, preprocessing agent 116 can be configured to generate one or more sets of information that can be used with prediction engine 120. Preprocessing agent 116 can be further configured to generate graph-based representations of tracking data for a given event. For example, for each match, preprocessing agent 116 can be configured to generate multiple graphs, where each graph corresponds to a frame of the respective match.
[0037] Typically, tracking data can include the x = (x, y) position of each entity (or player) at each time step on the playing field. In some embodiments, to represent the tracking data in an explicitly defined structure to avoid problems in conventional methods, the preprocessing agent 116 can construct a graphical representation of the tracking data. For example, the preprocessing agent 116 can construct a graph G(V, E, U) that can be defined by nodes V, edges E, and global features U. In some embodiments, each node in the graph can represent player and ball tracking data. In some embodiments, each edge can include information about various relationships between nodes. In some embodiments, edge e ij It can be a directional edge, and will send to node v. i Connect to receiving node v j .
[0038] The prediction engine 120 can be configured to accurately model defensive actions and their impact on offensive actions. For example, the prediction engine 120 can be configured to model the probability of preventing an action before it occurs.
[0039] As shown in the figure, the prediction engine 120 may include multiple models, each trained to model a specific outcome. In some embodiments, the prediction engine 120 may include a passing model 126, a threat model 128, and a receiver model 130. Each of the passing model 126, threat model 128, and receiver model 130 may represent a separate graph convolutional neural network (GNN) capable of processing highly unstructured and variable tracking data to make predictions in real-time (or near real-time). The passing model 126 may be trained to predict the probability of completing a pass to each off-the-ball attacker at any time while the player is in possession of the ball. The threat model 128 may be trained to predict the probability of a shot occurring within the next x seconds (e.g., the next 10 seconds) if a pass is made to any attacker. The receiver model 130 may be trained to predict the probability of each player becoming a pass receiver at any time while the player is in possession of the ball.
[0040] To train and validate each of the passing model 126, threat model 128, and receiver model 130, historical tracking data from multiple matches across multiple seasons of the sport was used. While the current discussion focuses on football, those skilled in the art will understand that the techniques discussed herein can be applied to other team sports, such as, but not limited to, basketball, rugby, hockey, etc. In some embodiments, the historical tracking data may be sampled at approximately 10 Hz / second. In some embodiments, the historical tracking data may include the position (x, y) of each player and ball in each frame, team and player identifiers for each frame (e.g., team ID and player ID), the time of each frame, the current half of each frame, event identifiers for each frame (e.g., event ID), etc.
[0041] In some embodiments, frames associated with the moment of passing can be considered for training the threat model 128. In contrast, for the passing model 126 and the receiver model 130, tracking data from a single pass can be used, as well as tracking data from before the pass. For example, tracking data from half a second (e.g., five frames) can be used relative to the passing model 126. For example, tracking data from one second (e.g., ten frames) can be used relative to the receiver model 130. Including tracking data before each passing event allows the prediction engine 120 to perform semantic regularization during training, which prevents the passing model 126 and the receiver model 130 from overfitting to the moment of passing, at which point the player's movement may have already indicated where the ball will be hit.
[0042] To learn the relationship between the input and output graphs, each GNN can include individual operations or blocks on the edges and nodes of the graph. Edge blocks can be defined by a neural network that takes input from edge features, sending node features, and receiving node features, and can produce new edge embeddings. Similarly, node blocks can be defined by a neural network that takes input from node features, aggregated sending edge features, aggregated receiving edge features, and can output new node embeddings. In some embodiments, a permutation-invariant function can be used to aggregate sending and receiving edge features, for example, the average or sum of these features.
[0043] In some embodiments, the GNN architecture of each of the passing model 126, the threat model 128, and the receiver model 130 may include edge blocks and node blocks. In some embodiments, each block may include a multilayer perceptron with three layers. In some embodiments, the number of units in each layer may vary between tasks. In some embodiments, the passing model 126 and the receiver model 130 may have the same or similar network architecture structures. For example, the network architecture of the passing model 126 and the receiver model 130 may include a multilayer perceptron with five layers at the edge blocks (e.g., 30, 20, 15, 10, 5) and five layers at the node blocks (e.g., 20, 15, 10, 5, 1). In some embodiments, the threat model 128 network architecture may include a multilayer perceptron with three layers at the edge blocks (e.g., 15, 10, 5) and three layers at the node blocks (e.g., 10, 5, 1).
[0044] In some embodiments, by using edge blocks in the GNN, the prediction engine 120 can allow the GNN to learn the relationships between different nodes for each task. This flexibility is not present in traditional methods, which typically define connections between inputs rather than allowing the model to learn relationships between them.
[0045] Once trained, each of the passing model 126, threat model 128, and receiver model 130 can be used in real time to predict or forecast player behavior.
[0046] In some embodiments, prediction engine 120 may utilize various GNNs (e.g., passing model 126, threat model 128, and / or receiver model 130) to detect “active running” by attacking players. “Active running” may refer to running (i.e., detected as running or moving based on speed). Detecting active running may also increase the likelihood that the runner will receive the ball (e.g., from the output of receiver model 130).
[0047] In some embodiments, based on the output of one or more of the passing model 126, the threat model 128, and / or the receiver model 130, the prediction engine 120 can detect the time it takes for a player to make each active run.
[0048] In some embodiments, the organizational computing system 104 may further include a defensive toolkit 134. The defensive toolkit 134 may allow the introduction of new defensive concepts based on the outputs generated by one or more of the passing model 126, the threat model 128, and the receiver model 130. In some embodiments, the defensive toolkit 134 may be configured to generate player availability metrics. For example, based on the outputs generated by the passing model 126 and the receiver model 130, the defensive toolkit 134 may be configured to infer the availability of each attacker off the ball in each frame. In some embodiments, the defensive toolkit 134 may be configured to generate defensive impact metrics. For example, based on the outputs generated by one or more of the passing model 126, the threat model 128, and the receiver model 130, the defensive toolkit 134 may be configured to detect high-level defensive concepts, such as, but not limited to, ball- and player-oriented defense, defensive positioning, and / or off-the-ball movement. Furthermore, in some embodiments, the defensive toolkit 134 may be configured to generate one or more disruption maps. In some embodiments, the disruption map may illustrate a global representation of the defensive team's ability to disrupt an opponent's offensive strategy.
[0049] In some embodiments, the defensive toolkit 134 can utilize predictions from the passing model 126, the threat model 128, and / or the receiver model 130 to assign praise and / or blame to each defensive player. For example, the defensive toolkit 134 can determine whether a player is "pressing the ball" or "pressing the option." To do this, the defensive toolkit 134 can look for changes in the output of the threat model 128 over a period of time and then assign these values to each defensive player. Such metrics allow the defensive toolkit 134 to assign defensive values to each player. In some embodiments, this analysis can be extended to the team level.
[0050] In some embodiments, the defensive toolkit 134 can maintain a run count of each player's effective runs during a match. For example, the defensive toolkit 134 can show the effective runs of each player or role at the match level, across seasons, across a player's career, etc. In some embodiments, such analysis can be performed at the team level using role assignments.
[0051] In some embodiments, the defense toolkit 134 may be further configured to perform conditional analysis based on, for example, the distance of each active run.
[0052] In some embodiments, the defensive toolkit 134 may be further configured to decompose active runs based on various contexts. In some embodiments, an active run may be decomposed into total distance, maximum distance, average distance per active run, duration of the active run, maximum duration, and average duration. In some embodiments, the defensive toolkit 134 may further decompose the active run based on the distance of each run (e.g., <5m, 5-10m, 10-20m, >20m, etc.). In some embodiments, the defensive toolkit 134 may further decompose the active run by showing the location and length of each active run (e.g., the thickness of the line can indicate the intensity of the run).
[0053] Client device 108 can communicate with organizational computing system 104 via network 105. Client device 108 can be operated by a user. For example, client device 108 can be a mobile device, tablet, desktop computer, or any computing system with the capabilities described herein. Users can include, but are not limited to, individuals such as subscribers, customers, potential customers, or clients of entities associated with organizational computing system 104, such as individuals who have received, will receive, or may receive products, services, or advice from entities associated with organizational computing system 104.
[0054] Client device 108 may include at least application 132. Application 132 may represent a web browser that allows access to websites or standalone applications. Client device 108 may access application 132 to access one or more functions of organizational computing system 104. Client device 108 may communicate via network 105 to request web pages, for example, from network client application server 114 of organizational computing system 104. For example, client device 108 may be configured to execute application 132 to access content managed by network client application server 114. Content displayed to client device 108 may be sent from network client application server 114 to client device 108 and subsequently processed by application 132 for display via a graphical user interface (GUI) in client device 108.
[0055] Figure 2 A graph-based representation of a frame of an event according to an example embodiment is shown. As described above, for each frame of an event, preprocessing agent 116 can generate a graph-based representation of the agents involved in that frame. For example, for each frame of a given event, preprocessing agent 116 can generate a graph-based representation of the agents and objects on the playing field. Figure 2 The exemplary graph-based representation shown can represent a graph structure used to represent tracking data.
[0056] Figure 200 may include several nodes 2021-2023 (collectively node 202) representing players of Team A, several nodes 2041-2043 (collectively node 204) representing players of Team B, and node 206 representing the ball. As shown, Figure 200 may include multiple directed edges 208 connecting the various nodes 202, 204, and 206. In some embodiments, the edges 208 may be weighted to allow each model to know which nodes are on which team.
[0057] Figure 3 This is a flowchart illustrating a method 300 for generating a trained prediction model according to an example embodiment. Method 300 may begin at step 302.
[0058] In step 302, the organization computing system 104 may retrieve one or more datasets for training. For example, the preprocessing agent 116 may retrieve multiple historical match files from the data storage 118. In some embodiments, each match file may include historical tracking information associated with the corresponding match. In some embodiments, the historical tracking data may be sampled at approximately 10 Hz / second. In some embodiments, the historical tracking data may include the (x, y) position of each player and ball in each frame, team and player identifiers (e.g., team ID and player ID) for each frame, the time of each frame, the current half of each frame, the event identifier (e.g., event ID) for each frame, etc.
[0059] In step 304, the organization computing system 104 can convert multiple datasets into multiple graphs. For example, the preprocessing agent 116 can generate multiple graph-based representations of the tracking data for each of multiple historical match files. For each match, the preprocessing agent 116 can be configured to generate multiple graphs, where each graph corresponds to a frame of the corresponding match.
[0060] Typically, tracking data can include the x = (x, y) position of each entity (or player) on the playing field at each time step. The preprocessing agent 116 can construct a graph G(V, E, U) that can be defined by nodes V, edges E, and global features U. In some embodiments, each node in the graph can represent player and ball tracking data in the current frame. In some embodiments, each edge can include information about various relationships between nodes. In some embodiments, edge e ij It can be a directional edge, and will send to node v. i Connect to receiving node v j .
[0061] In some embodiments, each node may include information stored therein. For example, node features may include, but are not limited to, player (x, y) position, velocity, acceleration, angle of motion, distance and angle to the attacking goal or basket, distance to the ball handler, difference in angle of motion to the ball handler, and a flag indicating whether the player is the ball handler. In some embodiments, each edge may include one or more features associated with it. For example, edge features may include, but are not limited to, flags defining the relationship between two nodes (e.g., teammate 2, opponent 1), the distance between two players connected by the edge, the difference in angle of motion, etc.
[0062] In step 306, the prediction engine 120 of the organization computing system 104 can learn based on one or more graphs to accurately model defensive behavior and its impact on offensive behavior. In some embodiments, the passing model 126 can learn to predict the probability of completing a pass to each off-the-ball attacker at any time while a player has possession of the ball. The threat model 128 can learn to predict the probability of a shot occurring within the next x seconds (e.g., the next 10 seconds) if a pass is made to any attacker. The receiver model 130 can learn to predict the probability of each player becoming a pass receiver at any time while a player has possession of the ball.
[0063] In some embodiments, each unique GNN at the lower layers of the respective passing model 126, threat model 128, and receiver model 130 can be trained independently. For example, to train the threat model 128, frames related to the moment of the passing event can be considered. To train the passing model 126 and receiver model 130, tracking data from each passing event can be used, as well as tracking data from before the passing event. For example, for the passing model 126, tracking data from half a second (e.g., five frames) can be used. For example, for the receiver model 130, tracking data from one second (e.g., ten frames) can be used. Including tracking data before each passing event allows the prediction engine 120 to perform semantic regularization during training, which prevents the passing model 126 and receiver model 130 from overfitting to the moment of the passing event, at which time the player's movement may have already indicated where the ball will be hit.
[0064] In some embodiments, across different tasks, the nodes of the GNN can be weighted in the loss calculation to stabilize training. For example, in some embodiments, nodes representing defensive players can be masked for each of the passing model 126, threat model 128, and receiver model 130. In some embodiments, during the training of the passing model 126 and threat model 128, the only players that can be considered may be those who receive the pass or the expected receiver of the pass. In some embodiments, during the training of the receiver model 130, the expected receiver of the pass may have a weight of 1.0, and all other teammates of the ball carrier may have a weight of 0.1 to balance the signal to the background.
[0065] In step 308, the organization computing system 104 can output a set of fully trained prediction models. For example, at the end of the training and testing process, the prediction engine 120 may include a fully trained passing model 126, a threat model 128, and a receiver model 130.
[0066] Figure 4 This is a flowchart illustrating a method 400 for modeling defensive behavior and determining the impact of that defensive behavior on offensive behavior according to an example embodiment. Method 400 may begin at step 402.
[0067] In step 402, the organization computing system 104 may receive tracking data for the event. In some embodiments, the tracking data may represent real-time or near-real-time tracking data for an event currently in progress. In some embodiments, the tracking data may represent historical tracking data for a completed event. In some embodiments, the tracking data may be extracted from video frames of a broadcast feed of the event. Typically, the tracking data may refer to the position of a player / ball on the playing field. For example, the tracking data may include the (x, y) position of each player and ball at each frame, team and player identifiers (e.g., team ID and player ID) at each frame, the time of each frame, the current half of each frame, the event identifier (e.g., event ID) of each frame, etc.
[0068] In step 404, the organization computing system 104 can convert the tracking data into a graph-based representation of the tracking data. For example, the preprocessing agent 116 can construct a graph G(V, E, U) that can be defined by nodes V, edges E, and global features U. In some embodiments, each node in the graph can represent player and ball tracking data in the current frame. In some embodiments, each edge can include information about various relationships between nodes. In some embodiments, edge e ij It can be a directional edge, and will send to node v. i Connect to receiving node v j .
[0069] In some embodiments, the preprocessing agent 116 may store information about each node. For example, the preprocessing agent 116 may store node features, which may include, but are not limited to, player (x, y) position, velocity, acceleration, motion angle, distance and angle to the attacking goal or basket, distance to the ball handler, difference in motion angle to the ball handler, and a flag indicating whether a player is the ball handler. In some embodiments, the preprocessing agent 116 may store information about each edge. For example, the preprocessing agent 116 may store edge features, which may include, but are not limited to, flags defining the relationship between two nodes, the distance between two players connected by the edge, the difference in motion angle, etc.
[0070] In step 406, the organization computing system 104 can input a graph-based representation of the data into the prediction engine 120. In some embodiments, the prediction engine 120 can use the passing model 126 to predict or forecast the probability of completing a pass to each off-the-ball attacker at any time while a player is in possession of the ball. To generate such a prediction, the passing model 126 can receive x frames (e.g., x = 5) of tracking data as input. In other words, the passing model 126 can receive x graph-based representations of the tracking data as input, where each graph-based representation corresponds to a corresponding frame of the tracking data.
[0071] In some embodiments, the prediction engine 120 may use the threat model 128 to forecast or predict the probability that a shot will occur within the next y seconds (e.g., y = 10) if the ball is passed to any attacker.
[0072] In some embodiments, the prediction engine 120 may use the receiver model 130 to predict or forecast the probability that each player will become a pass receiver at any moment while in possession of the ball. To generate such a prediction, the receiver model 130 may receive z frames (e.g., x = 10) of tracking data as input. In other words, the receiver model 130 may receive z graph-based representations of the tracking data as input, where each graph-based representation corresponds to a specific frame of the tracking data.
[0073] In step 408, the organization computing system 104 can generate predictions based on the graph-based representation of the input. For example, via the passing model 126, the prediction engine 120 can predict the probability of completing a pass to each off-the-ball attacker at any time while the player is in possession of the ball. For example, via the threat model 128, the prediction engine 120 can output the probability of a shot occurring in the next x seconds (e.g., the next 10 seconds) if a pass is made to any attacker. For example, via the receiver model 130, the prediction engine 120 can output the probability that each player will be a pass receiver at any time while the player is in possession of the ball.
[0074] In step 410, the organization computing system 104 can generate a graphical representation of the output produced by the prediction engine 120. For example, the prediction engine 120 can be configured to generate a graphical representation that visually depicts the probability of completing a pass to each off-the-ball attacker at any time while a player is in possession of the ball, the probability of a shot occurring in the next x seconds (e.g., the next 10 seconds) if a pass is made to any attacker, and / or the probability that each player is the pass receiver at any time while a player is in possession of the ball.
[0075] Figures 5A-5E Exemplary graphical representations 502, 504, 506, 508, and 510 (502-510) of the output generated by the prediction engine 120 according to an example embodiment are shown. In some embodiments, graphical representations 502-510 may represent one or more frames from the game. In graphical representations 502-508, the defending team is able to force the attacking team to make highly predictable and safe passes. However, at graphical representation 510, the attacking team is able to execute a very dangerous (but risky) pass, which ultimately leads to a goal.
[0076] As shown in each graphic representation 502-510, each player involved in each frame is represented as node 512, with players from each team corresponding to the same color. In some embodiments, each node may include an arrow derived therefrom. The arrow may indicate the probability that each player will become a pass receiver at any time during a player possession state, as generated by the receiver model 130. In some embodiments, the node representing a player currently in possession may include arrow 514. Arrow 514 may indicate the probability of a shot occurring within the next x seconds (e.g., the next 10 seconds) if a pass is made to any attacker, and the probability of completing a pass to each off-the-ball attacker at any time during a player possession state. For example, the opacity of the arrow may indicate the probability of a shot occurring within the next x seconds (e.g., the next 10 seconds) if a pass is made to any attacker, while the color of the arrow may indicate the probability of completing a pass to each off-the-ball attacker at any time during a player possession state.
[0077] Figures 6A-6C One or more graphical representations that can be generated based on the output of prediction engine 120 according to an example embodiment are shown.
[0078] As described above, the defensive toolkit 134 can be configured to generate one or more interference maps based on the outputs of one or more of the passing model 126, the threat model 128, and the receiver model 130. The interference map can be a weighted two-dimensional (2D) distribution showing where a team, whether actively or passively, interferes with an opponent's off-the-ball choices. In some embodiments, to generate the interference map, the defensive toolkit 134 can generate a team feature 602 for each team based on the outputs from the passing model 126, the threat model 128, and the receiver model 130. Team feature 602 can serve as a global representation of the team. The defensive toolkit 134 can further generate the same surface at the game level (e.g., game feature 604). To generate the interference map 606, the defensive toolkit 134 can subtract both surfaces (e.g., team feature 602 and game feature 604). The interference map 606 can reveal where the opponent interferes with (or, in some cases, does not interfere with) the opponent's normal strategies and / or processes. In other words, Disturbance Map 606 can create a compact representation of a team's impact on an opponent's threat, passing, and receiver value compared to their global averages. End users can use these maps to determine which teams have the greatest impact on an opponent's offensive style and efficiency.
[0079] In some embodiments, to create a team feature map, a weighted 2D probability distribution can be created using the team's season data X, Y, and probability values (e.g., the outputs of passing model 126, threat model 128, and receiver model 130). To compute the 2D weighted probability distribution, a 2D grid can be fitted over the dimensions of the stadium (e.g., a 100x100 grid fitted over a 105x68m stadium). The Euclidean distance between each XY and the grid node can be calculated. The nodes can then be iterated, with each sample sorted in ascending order (from minimum to maximum distance between nodes). At each grid node, the resulting probability value can be calculated using exponential smoothing based on the probability values of the sorted samples (closer values have a greater impact on the result). To generate a smooth surface, the grid size and smoothing factor α used for exponential smoothing can be adjusted.
[0080] In some embodiments, the same process used to calculate the match feature map can be applied to calculate the team feature map. The key difference is that only samples from matches can be used for the match feature map. The final interference map can be calculated by subtracting the match feature map from the season feature map.
[0081] Figure 8 This illustrates one or more graphical representations 800 that can be generated based on the output of prediction engine 120 according to an example embodiment. As shown in the figure... Figure 8 Examples of compression ball 802 and compression option 804 are shown.
[0082] Figure 9 This illustrates one or more graphical representations 900 that can be generated based on the output of prediction engine 120 according to an example embodiment. For example... Figure 9 As shown, various defensive attributes can be assigned to players. These attributes may include, but are not limited to, Safe Midfield Progressor, Safe Distributor, Offensive Creative Threat, Offensive Inside Threat, Offensive Dribbler, Link Forward, Safe Midfield Progressor, Safe Distributor, Safe Midfield Progressor, Offensive Playmaker, and Safe Midfield Progressor.
[0083] Figures 10A-10C This illustrates one or more graphical representations that can be generated based on the output of prediction engine 120 according to an example embodiment. As shown in the figure, Figure 10A Various defensive metrics 1002 are provided for a specific player (safe midfielder). The number of pressings and pressing can be calculated. One or more graphical representations can further include heatmaps 1004 of the outputs from both the receiving player model 130 and the passing model 126. Figure 10B ) and heatmap 1006 ( Figure 10C ).
[0084] Figure 11 A graphical representation 1100, which can be generated based on the output of prediction engine 120 according to an example embodiment, is shown. As shown in the figure, Figure 11 Examples of active running are provided on a per-role basis. For example, as shown in the figure, Figure 11 It provides active running for attacking wingers 1102, strikers 1104, and safe midfielders 1106.
[0085] Figure 12 This illustration shows one or more graphical representations 1200 that can be generated based on the output of prediction engine 120 according to an example embodiment. As shown in the figure, Figure 12 It provides a running record of each character's active running during the competition.
[0086] Figure 13 A graphical representation 1300 that can be generated based on the output of prediction engine 120, according to an example embodiment, is shown. As illustrated, Figure 13 It provides running records for active runs covered by distances divided by role during the competition.
[0087] Figures 14A-14C This illustrates one or more graphical representations that can be generated based on the output of prediction engine 120 according to an example embodiment. For example... Figure 14AAs shown, one or more graphical representations may include a player's decomposition based on the total distance covered, maximum distance, average distance per active run, duration of the active run, maximum duration, and average duration 1402. For example... Figure 14B As shown, one or more graphical representations can further include decompositions 1404 based on the distance of each run. (See also...) Figure 14C As shown, one or more graphical representations may further include Figure 1406, which illustrates the location where each active run occurs and the length of the run.
[0088] Figure 7A An exemplary system bus architecture of a computing system 700 according to an example embodiment is shown. System 700 may represent at least a portion of an organizational computing system 104. One or more components of system 700 may communicate electrically with each other using bus 705. System 700 may include a processing unit (Central Processing Unit, CPU, or processor) 710 and a system bus 705, which couples various system components, including system memories 715 such as read-only memory (ROM) 720 and random access memory (RAM) 725, to processor 710. System 700 may include a cache of high-speed memory that is directly connected to, adjacent to, or integrated into processor 710. System 700 may copy data from memory 715 and / or storage device 730 to cache 712 for fast access by processor 710. In this way, cache 712 can provide a performance improvement by avoiding delays for processor 710 while waiting for data. These and other modules can control or be configured to control the processor 710 to perform various actions. Other system memory 715 can also be used. Memory 715 can include various different types of memory with different performance characteristics. The processor 710 can include any general-purpose processor and hardware or software modules, such as service 1 732, service 2 734, and service 3 736 stored in storage device 730, configured to control the processor 710, and dedicated processors whose software instructions are incorporated into the actual processor design. The processor 710 can essentially be a completely independent computing system, containing multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors can be symmetric or asymmetric.
[0089] To enable user interaction with computing system 700, input device 745 can represent any number of input mechanisms, such as a microphone for voice, a touch-sensitive screen for gesture or graphical input, a keyboard, a mouse, motion input, voice, etc. Output device 735 (e.g., a display) can also be one or more of many output mechanisms known to those skilled in the art. In some cases, a multi-mode system allows the user to provide multiple types of input to communicate with computing system 700. Communication interface 740 typically controls and manages user input and system output. There are no limitations on operation on any particular hardware arrangement, therefore the basic features described herein can be readily replaced by developed improved hardware or firmware arrangements.
[0090] Storage device 730 may be a non-volatile memory, a hard disk, or other type of computer-readable medium that can store computer-accessible data, such as a magnetic tape cassette, a flash memory card, a solid-state storage device, a digital multifunction disk, a magnetic tape cassette, random access memory (RAM) 725, read-only memory (ROM) 720, and mixtures thereof.
[0091] Storage device 730 may include services 732, 734, and 736 for controlling processor 710. Other hardware or software modules are also considered. Storage device 730 may be connected to system bus 705. In one aspect, a hardware module performing a specific function may include software components stored in a computer-readable medium that, in conjunction with necessary hardware components such as processor 710, bus 705, and output device 735, perform the function.
[0092] Figure 7BA computer system 750 with a chipset architecture is shown, which may represent at least a portion of an organizational computing system 104. The computer system 750 may be an example of computer hardware, software, and firmware that can be used to implement the disclosed techniques. System 750 may include a processor 755, which represents any number of physically and / or logically distinct resources capable of executing software, firmware, and hardware configured to perform the identified computations. The processor 755 may communicate with a chipset 760, which may control inputs to and outputs to the processor 755. In this example, the chipset 760 outputs information to an output 765 such as a display, and may read and write information to a storage device 770, which may include, for example, magnetic media and solid-state media. The chipset 760 may also read data from and write data to RAM 775. A bridge 780 may be provided for interfacing with various user interface components 785. Such a user interface component 785 may include a keyboard, microphone, touch detection and processing circuitry, pointing devices such as a mouse, etc. Typically, input to system 750 can come from any of a variety of machine-generated and / or artificially generated sources.
[0093] The chipset 760 can also interface with one or more communication interfaces 790, which may have different physical interfaces. Such communication interfaces may include interfaces for wired and wireless local area networks, for broadband wireless networks, and for personal area networks. Some applications of the methods for generating, displaying, and using the GUI disclosed herein may include receiving ordered datasets via physical interfaces, or generating them by the machine itself through processor 755 analyzing data stored in storage device 770 or RAM 775. Furthermore, the machine may receive input from the user via user interface component 785 and perform appropriate functions, such as browsing functions, by interpreting this input using processor 755.
[0094] It is understood that the example systems 700 and 750 may have more than one processor 710, or be part of a group or cluster of networked computing devices to provide greater processing power.
[0095] While the foregoing describes embodiments herein, other and further embodiments may be designed without departing from the essential scope of this document. For example, aspects of this 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 product defines the functionality of the embodiments (including the methods described herein) and may 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 on which information is permanently stored (e.g., read-only memory (ROM) devices within a computer, such as CD-ROM discs readable by a compact disc read-only memory (CD-ROM) drive, flash memory, ROM chips, or any type of solid-state non-volatile memory); and (ii) writable storage media on which variable information is stored (e.g., floppy disks or any type of solid-state random access memory within a floppy disk drive or hard disk drive). Such computer-readable storage media are embodiments of this disclosure when carrying computer-readable instructions directing the functionality of the disclosed embodiments.
[0096] Those skilled in the art will understand that the foregoing examples are exemplary and not restrictive. All permutations, enhancements, equivalents, and modifications thereof will be included within the true spirit and scope of this disclosure after reading the specification and studying the accompanying drawings. Therefore, the appended claims include all such modifications, permutations, and equivalents that fall within the true spirit and scope of these teachings.
Claims
1. A method for evaluating defensive performance, comprising: The computing system retrieves tracking data from a data storage device, the tracking data comprising multiple data frames of multiple events spanning multiple seasons; The computing system converts the tracking data into multiple graph-based representations, wherein the graph-based representations are defined by nodes, edges, and global features; The prediction engine learns to model defensive behavior based on the multiple graph-based representations through the following: The first neural network learns to predict the probability of completing a pass at any moment while in possession of the ball. The second neural network learns to predict the probability of a shot occurring during the ball possession situation, and The third neural network learns to predict the probability that each player will be the receiver of a pass during the possession state. Each of the first graph neural network, the second graph neural network, and the third graph neural network includes at least one node block and at least one edge block, and wherein, during the learning period, the first graph neural network, the second graph neural network, and the third graph neural network respectively utilize their respective at least one node block and at least one edge block to generate node embeddings and edge embeddings based on the nodes and edges in the graph-based representation; The computing system generates a trained prediction engine based on the learning process; The computing system receives target tracking data for a target event, the target tracking data including multiple target frames; The computing system converts the target tracking data into multiple target map-based representations, wherein each target map-based representation corresponds to a target frame among the multiple target frames; and The computational system models the team's target defensive behavior in the target event based on the multiple target-based representations via the trained prediction engine.
2. The method according to claim 1, further comprising: The computing system detects the offensive player's active movement based on the team's defensive behavior in target events modeled based on the multiple target-based representations.
3. The method according to claim 2, further comprising: The calculation system decomposes the offensive player's active movement based on various metrics associated with the offensive player's active movement.
4. The method according to claim 1, further comprising: The calculation system assigns a value to each player of the team in the target event based on the modeled defensive behavior.
5. The method according to claim 1, wherein, The computing system converts the tracking data into the plurality of target-map-based representations, including: For each target frame, generate a node representation for each player in that target frame.
6. The method of claim 5, further comprising: For each node, multiple node features are stored, wherein the multiple node features include at least one of the following: player (x, y) position, player speed, player acceleration, player's first motion angle, first distance from player to the attacking goal or basket, second angle between player and the attacking goal or basket, second distance from player to ball handler, difference between player and ball handler's first motion angle, and a flag indicating whether player is ball handler.
7. The method of claim 6, further comprising: Connect each node in the target frame with one or more edges.
8. The method of claim 7, further comprising: For each edge, multiple edge features are stored, wherein the multiple edge features include at least one of the following: a flag defining the relationship between the start node and the end node, the distance between two players connected by the edge, and the difference in motion angles between the two players connected by the edge.
9. The method according to claim 1, wherein, The at least one node block and the at least one edge block each include a multilayer perceptron, wherein the first graph neural network includes a first multilayer perceptron with a first number of layers, wherein the second graph neural network includes a second multilayer perceptron with a second number of layers, wherein the third graph neural network includes a third multilayer perceptron with a third number of layers, wherein the first number of layers is equal to the third number of layers, and wherein the second number of layers is less than the first number of layers and the third number of layers.
10. A system for evaluating defensive performance, comprising: processor; as well as A memory storing programming instructions that, when executed by the processor, cause the system to perform one or more operations, including: The computing system retrieves tracking data from a data storage device, the tracking data comprising multiple data frames of multiple events spanning multiple seasons; The tracking data is converted into multiple graph-based representations, wherein the graph-based representations are defined by nodes, edges, and global features; The prediction engine learns to model defensive behavior based on the multiple graph-based representations through the following: The first neural network learns to predict the first probability of making a pass at any moment while in possession of the ball. The second neural network learns to predict the second probability of a shot occurring during the ball possession state, and The system learns from a third-graph neural network to predict the third probability that each player will become the third receiver of a pass in the stated possession state. Each of the first graph neural network, the second graph neural network, and the third graph neural network includes at least one node block and at least one edge block, and wherein, during the learning period, the first graph neural network, the second graph neural network, and the third graph neural network respectively utilize their respective at least one node block and at least one edge block to generate node embeddings and edge embeddings based on the nodes and edges in the graph-based representation; Based on the learning, a trained prediction engine is generated; Receive target tracking data for a target event, the target tracking data including multiple target frames; The target tracking data is converted into multiple target map-based representations, wherein each target map-based representation corresponds to a target frame among the multiple target frames; and The trained prediction engine models the team's target defensive behavior in the target event based on the multiple target graph-based representations.
11. The system according to claim 10, wherein, The first graph neural network learns to predict the first probability of completing a pass at any moment while in possession of the ball, including: Identify a subset of graph-based representations corresponding to a subset of the frames preceding the pass.
12. The system according to claim 10, wherein, The third graph neural network learns to predict the third probability of each player becoming the third receiver of a pass during possession, including: Identify a subset of graph-based representations corresponding to a subset of the frames preceding the pass.
13. The system according to claim 10, wherein, Converting the tracking data into the plurality of target-map-based representations includes: For each frame, generate a node representation for each player in that frame.
14. The system of claim 13, further comprising: For each node, multiple node features are stored, wherein the multiple node features include at least one of the following: player (x, y) position, player speed, player acceleration, player's first motion angle, first distance from player to the attacking goal or basket, second angle between player and the attacking goal or basket, second distance from player to ball handler, difference between player and ball handler's first motion angle, and a flag indicating whether player is ball handler.
15. The system of claim 14, further comprising: Connect each node in the target frame with one or more edges.
16. The system of claim 15, further comprising: For each edge, multiple edge features are stored, wherein the multiple edge features include at least one of the following: a flag defining the relationship between the start node and the end node, the distance between two players connected by the edge, and the difference in motion angles between the two players connected by the edge.
17. The system according to claim 10, wherein, The at least one node block and the at least one edge block each include a multilayer perceptron, wherein the first graph neural network includes a first multilayer perceptron with a first number of layers, wherein the second graph neural network includes a second multilayer perceptron with a second number of layers, wherein the third graph neural network includes a third multilayer perceptron with a third number of layers, wherein the first number of layers is equal to the third number of layers, and wherein the second number of layers is less than the first number of layers and the third number of layers.
18. A non-transitory computer-readable medium comprising one or more sequences of instructions, said sequences of instructions, when executed by one or more processors, causing a computing system to perform operations, said operations including: The computing system retrieves tracking data from a data storage device, the tracking data comprising multiple data frames of multiple events spanning multiple seasons; The computing system converts the tracking data into multiple graph-based representations, wherein the graph-based representations are defined by nodes, edges, and global features; The prediction engine learns to model defensive behavior based on the multiple graph-based representations through the following: The first neural network learns to predict the first probability of making a pass at any moment while in possession of the ball. The second neural network learns to predict the second probability of a shot occurring during the ball possession state, and The third neural network learns to predict the third probability that each player will become the third receiver of a pass in the stated possession state. Each of the first graph neural network, the second graph neural network, and the third graph neural network includes at least one node block and at least one edge block, and wherein, during the learning period, the first graph neural network, the second graph neural network, and the third graph neural network respectively utilize their respective at least one node block and at least one edge block to generate node embeddings and edge embeddings based on the nodes and edges in the graph-based representation; The computing system generates a trained prediction engine based on the learning process; The computing system receives target tracking data for a target event, the target tracking data including multiple target frames; The computing system converts the target tracking data into multiple target map-based representations, wherein each target map-based representation corresponds to a target frame among the multiple target frames; and The computational system models the team's target defensive behavior in the target event based on the multiple target-based representations via the trained prediction engine.
19. The non-transitory computer-readable medium according to claim 18, wherein, The first graph neural network learns to predict the first probability of completing a pass at any moment while in possession of the ball, including: Identify a first subset of graph-based representations corresponding to a second subset of frames prior to the pass.
20. The non-transitory computer-readable medium according to claim 18, wherein, The third graph neural network learns to predict the second probability that each player will become the receiving player in the possession state, including: Identify a first subset of graph-based representations corresponding to a second subset of frames prior to the pass.
21. The non-transitory computer-readable medium according to claim 18, wherein, The computing system converts the tracking data into the plurality of target-map-based representations, including: For each target frame, generate a node representation for each player in that frame; and For each node, multiple node features are stored, wherein the multiple node features include at least one of the following: player (x, y) position, player speed, player acceleration, player's first motion angle, first distance from player to the attacking goal or basket, second angle between player and the attacking goal or basket, second distance from player to ball handler, difference between player and ball handler's first motion angle, and a flag indicating whether player is ball handler.
22. The non-transitory computer-readable medium of claim 21, further comprising: Connect each node in the frame using one or more edges; as well as For each edge, multiple edge features are stored, wherein the multiple edge features include at least one of the following: a flag defining the relationship between the start node and the end node, the distance between two players connected by the edge, and the difference in motion angles between the two players connected by the edge.
23. The non-transitory computer-readable medium according to claim 18, wherein, The at least one node block and the at least one edge block each include a multilayer perceptron, wherein the first graph neural network includes a first multilayer perceptron with a first number of layers, wherein the second graph neural network includes a second multilayer perceptron with a second number of layers, wherein the third graph neural network includes a third multilayer perceptron with a third number of layers, wherein the first number of layers is equal to the third number of layers, and wherein the second number of layers is less than the first number of layers and the third number of layers.