Ball spin candidate determination
By identifying the most likely golf club and comparing observed trajectories with simulated ones, the method accurately determines golf ball spin, addressing inaccuracies in existing technologies and reducing system complexity and cost.
Patent Information
- Application Number
- JP2024098448
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-20
- Filing Date
- 2024-06-19
- Publication Date
- 2025-01-08
AI Technical Summary
Existing methods for determining the spin of a golf ball in flight, such as using Doppler radar and camera tracking, often produce inaccurate spin values due to multiplication errors, aliasing effects, and noisy signals, leading to multiple spin candidates and increased accuracy requirements.
A method that combines observed golf ball trajectories with data from multiple sensors to identify the most likely golf club used, calculates spin probabilities based on club-specific parameters, and compares these with simulated trajectories to select the most likely spin candidate.
This approach accurately selects the correct spin candidate from multiple possibilities, reducing the need for high-accuracy radar and camera systems, thereby lowering costs and improving spin measurement accuracy for practice and entertainment.
Smart Images

Figure 2025001657000005 
Figure 2025001657000006 
Figure 2025001657000001
Abstract
Description
[Technical field]
[0001] The present invention relates to determining the spin on a ball as it travels through the air, and more particularly to improving the accuracy of spin measurements made by radar and / or cameras. [Background technology]
[0002] For various reasons, it is often desirable to know the spin of a ball, e.g. a golf ball, as it moves through the air. Often, Doppler radar is used to track the golf ball, and tracking algorithms are applied to the measured data to derive the spin of the golf ball. Processing of the Doppler radar signal focuses on extracting the Doppler frequency shift of the reflected radar signal from the moving golf ball. The frequency shift is proportional to the ball speed. That signal is superimposed with a periodic signal related to the spin of the ball. The periodic signal is modeled as a harmonic signal with a fundamental frequency equal to the spin frequency. In some circumstances, radar tracking of the ball can be complemented by camera-based tracking.
[0003] In some embodiments, the algorithms used to determine the ball spin are optimization algorithms, which use the measurement data as input. However, these algorithms may generate inaccurate spin values: multiplication errors in the fundamental frequency, e.g., twice the actual spin, half the actual spin, etc. Furthermore, there may be aliasing effects due to slow sampling rates, resulting in frequency folding effects. There may also be limitations due to the hardware used to capture the ball velocity and spin data, e.g., signals from Doppler radars are noisy and may even have a negative signal-to-noise ratio (SNR). Camera-based setups have limitations in terms of the resolution of their sensors, i.e., less accurate measurements of ball velocity and / or direction at long distances. As a result, the algorithms may generate multiple spin candidates. Summary of the Invention
[0004] In some aspects, the technology disclosed herein relates to a method for identifying a spin of a golf ball in flight. At least a portion of an observed trajectory of the golf ball and one or more parameters associated with the observed trajectory are obtained. The observed trajectory includes a three-dimensional position of the golf ball over time determined from individual observations of the golf ball by one or more sensors. Two or more spin candidates are obtained for the golf ball. Each spin candidate has an associated probability. A most usable golf club for launching the golf ball to the observed trajectory is identified based on probability data for the one or more parameters for two or more different golf clubs. Ball spin probability data is obtained for the most usable golf club. A spin of the golf ball is identified as a most likely spin candidate based on the ball spin probability data and the obtained portion of the observed trajectory. The identification is based on a combination of measurement probabilities, club spin probabilities, and physical probabilities. The identified spin of the golf ball is displayed on a display device.
[0005] In some embodiments, the one or more parameters may include one or more of launch angle, ball speed, club speed, ball carry, or a combination thereof.
[0006] In some embodiments, the obtained probabilities for the spin candidates can be adjusted based on predetermined parameters of the most likely available golf club and / or based on a similarity between a portion of the observed trajectory and a corresponding portion of the simulated trajectory for two or more of the obtained spin candidates, and the spin of the golf ball can be identified as the spin candidate having the highest adjusted probability.
[0007] In some embodiments, identifying the most usable golf club for each golf club in the plurality of different golf clubs may include comparing the obtained one or more parameters to probability data for the one or more parameters for two or more different golf clubs.
[0008] In some embodiments, the probability data may be either a Gaussian probability distribution or a measured histogram probability distribution for two or more different golf clubs.
[0009] In some embodiments, identifying the most likely golf club includes providing the one or more retrieved parameters as inputs to a network of nodes previously constructed with learned weights that were learned for two or more different golf clubs using the one or more retrieved parameters from previous golf ball flights.
[0010] In some embodiments, ball spin probability data may be defined as the average spin value and standard deviation of the spin values for the most available golf clubs.
[0011] In some embodiments, the similarity between a portion of the observed trajectory and a corresponding portion of the simulated trajectory for the spin candidate may be determined by simulating the trajectory of a golf ball with the spin of the spin candidate (the simulation using a physics model and / or one or more of the obtained parameters), selecting multiple instances in time, determining for each selected instance a respective difference between the observed trajectory and the simulated trajectory, and combining the differences to obtain a similarity value that is used in adjusting the probability for the spin candidate.
[0012] In some embodiments, the difference is a difference in one or more of the acceleration, velocity and / or position of the golf ball, and combining the differences includes one or more of averaging the differences, summing the differences and / or comparing the differences to find a minimum difference.
[0013] In some embodiments, the differences may be corrected by adding a weighting factor to each difference and / or raising one or more of the differences to a predetermined power before combining the differences.
[0014] In some embodiments, the method is performed at a golf driving range or golf course.
[0015] In some embodiments, the one or more sensors include a radar, a camera, or both. Other technical features may be apparent to one skilled in the art from the following drawings, detailed description, and claims.
[0016] In some aspects, the technology described herein relates to a system and computer software program product, respectively, for determining the spin of a golf ball in flight.
[0017] The details of one or more embodiments of the invention are set forth in the accompanying drawings and the detailed description below. Other features and advantages of the invention will be apparent from the detailed description and drawings, and from the claims.
[0018] In the following, the present invention will be described in detail with reference to exemplary embodiments thereof and the accompanying drawings. [Brief description of the drawings]
[0019] [Figure 1] FIG. 1 is a block diagram illustrating a data processing apparatus that can be used to implement the methods of the present invention according to some embodiments. [Diagram 2] FIG. 2 is a flow chart of a method for determining the spin of a ball in flight according to some embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0020] Like numbers in the various drawings indicate like elements.
[0021] Various embodiments of the present invention relate to techniques for determining the spin of a golf ball in flight. In particular, various embodiments provide techniques for identifying which of a plurality of possible spin candidates is most likely by first determining how well the observed trajectory of the ball matches a simulated trajectory for different golf clubs using data for different golf clubs, and then identifying the most usable golf club that was used to launch the golf ball. Once the most usable golf club is identified, previously collected spin data for the most usable golf club is used to determine which of the different spin candidates generated by the ball tracking algorithm is most likely. The spin candidate with the highest overall likelihood is selected as the spin for the golf ball. The most usable golf club is the golf club that was most likely used by the player to launch the observed golf ball.
[0022] Various embodiments of the subject matter described herein can be implemented to achieve one or more of the following advantageous effects: A correct spin candidate can be selected from among two or more spin candidates, which can ensure that the correct information is communicated to a player, for example for practice purposes, or to a spectator watching a golf tournament on TV. This can be a significant advantage when several or multiple spin candidates are initially generated. Correspondingly, having a complementary mechanism for identifying the spin can also reduce the accuracy requirements of the radar and / or camera used to obtain the ball trajectory, thereby reducing costs and making such systems more widely available. Various embodiments will now be described in more detail, by way of example and with reference to the drawings.
[0023] Various types of computers can be used in the system. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. As used herein, a "computer" can include a server computer, a client computer, a personal computer, embedded programmable circuitry, or special purpose logic circuitry. Figure 1 is a schematic diagram of a data processing system including a data processing device 102, which represents an embodiment of a computer 102. The data processing device 102 can be connected to one or more computers 118 through a network 116.
[0024] The data processing device 102 may include various software modules, which may be distributed between the application layer and the operating system. These may include executable and / or interpretable software programs or libraries, including a spin characterization program 104, for example, to characterize the spin of a golf ball. The number of software modules used may vary depending on the embodiment. Also, in some cases, the spin characterization program 104 may be implemented in embedded firmware, while in other cases, the spin characterization program 104 may be implemented as software modules distributed on one or more data processing devices connected by one or more computer networks or other suitable communication networks.
[0025] The data processing apparatus 102 may include hardware or firmware devices including one or more processors 106, one or more additional devices 108, a non-transitory computer readable medium 110, a communication interface 112, and one or more user interface devices 114. The processor 106 may process instructions for execution within the data processing apparatus 102, such as instructions (e.g., of the spin specific program 104) stored on the non-transitory computer readable medium 110, which may include a storage device, such as one of the additional devices 108.
[0026] In some embodiments, the processor 106 is a single or multi-core processor or two or more central processing units (CPUs). The data processing device 102 communicates with one or more computers 118 using its communication interface 112, for example via a network 116. Thus, in various embodiments, the processes described can be performed in parallel, simultaneously or serially, such as on a single or multi-core computer and / or a computer cluster / cloud.
[0027] Examples of user interface devices 114 include displays, touch panel displays, speakers, microphones, haptic feedback devices, keyboards, mice, and headsets or heads-up displays of virtual reality or augmented reality environment systems. Furthermore, the user interface devices need not be local user interface devices 114, but may be remote from the data processing device 102, for example, user interface devices accessible via one or more networks 116. For example, the user interface devices 114 may be a user's smartphone or tablet computer, for example, for an augmented reality embodiment. The data processing device 102 may store instructions for performing operations as described herein, for example, in a non-transitory computer-readable medium 110, which may include one or more additional devices 108, for example, one or more of a floppy disk device, a hard disk device, an optical disk device, a tape device, and a solid-state memory device, for example, a random access memory (RAM) drive.
[0028] Additionally, instructions for performing the operations described herein may be downloaded to the non-transitory computer readable medium 110 over the network 116 from one or more computers 118 (e.g., from the cloud). In some embodiments, the data processing device 102 is a smartphone or tablet computer. In some embodiments, the RAM drive is a volatile memory device into which instructions are downloaded each time the computer is turned on.
[0029] FIG. 2 is a flow chart of a method 200 for determining the spin of a golf ball in flight, according to some embodiments. The method is a computer implemented method, such as executed by the data processing device 102 of FIG. 1. As can be seen in FIG. 2, a portion of an observed trajectory for the golf ball and parameters associated with the observed trajectory are obtained (202), such as received from a ball tracking algorithm. The observed trajectory typically includes an enumeration of values for various parameters observed (or derived from observations) by a radar and / or camera device for a series of points in time. Typically, the time window during which the points are collected encompasses the entire flight of the golf ball, although there may be implementations in which data is collected during a time window that encompasses only a portion of the time the ball is in flight. The number of points may vary, but in the most common implementations, anywhere from 10 to 120 points are recorded per second. However, this number may be more or less depending on the specific capabilities of the equipment used. Some example parameters include the position, velocity and acceleration of the golf ball for different points. Parameters such as speed and acceleration may be measured directly or calculated as first or second derivatives of golf ball position and / or velocity measurements, respectively. From these parameters, further parameters can be derived, such as ball speed (i.e., the speed of the center of gravity of the golf ball immediately after it leaves the club face), launch angle (i.e., the vertical angle measured immediately after the golf ball leaves the club face relative to the horizontal), carry (i.e., the straight line distance between where the golf ball is launched and where it passes a point of equal height, sometimes referred to as "flat carry"), etc. It should be noted that some of these parameters (e.g., ball speed) are difficult to obtain in practice at the beginning of a shot (e.g., due to low or no camera visibility of the starting point), and in these cases initial values of some of the parameters at the beginning of the trajectory may instead be derived from measured or calculated parameters later in the observed trajectory.
[0030] Next, two or more spin candidates are obtained for the golf ball (204). The spin candidates are obtained as output from some signal processing software and / or hardware, typically in the radar device used to track the ball. This can be done in a number of ways. In some embodiments, a set of "windows" are considered, with each window encompassing a subset for each window of the observed trajectory, and the Doppler effect is used to obtain possible spin values. As mentioned above, due to constraints in signal processing, noise and / or aliasing, multiple spin candidates are often provided. In some embodiments, each spin candidate also has an associated probability, referred to herein as a measurement probability. The measurement probability may be calculated, for example, as the relative frequency of different spin values.
[0031] The method then identifies 206 a golf club that is most likely to be used to launch the golf ball on the observed trajectory. This identification may involve comparing one or more observed parameter values for the golf ball's trajectory to previously observed and verified data for each golf club in the set of golf clubs. Some examples of parameters that may be used in this comparison include launch angle, ball speed, club head speed, and / or ball carry, although this list should not be considered exhaustive and there may be other parameters suitable for identifying which golf club was used to launch the golf ball, such as vertical landing angle and speed, trajectory apex and / or trajectory profile.
[0032] The previously collected data for each golf club may include, for example, histograms for each of these parameters for shots made with each golf club. The observed values for the golf ball may then be compared, parameter by parameter, to the corresponding parameter values for different golf clubs. In some embodiments, the comparison is made directly on the collected histograms. In some embodiments, the histograms may have undergone some pre-processing, such as calculating the mean and standard deviation for each parameter and creating a Gaussian probability distribution approximation of the histogram data, and the observed parameter values may be compared to these probability distributions.
[0033] In some embodiments, the individual probabilities for each of the various parameters included in identifying the most usable golf club are combined into a single probability, for example, by calculating the product of the individual probabilities for each parameter. It should be noted that the accuracy of such calculations is generally improved when the parameters are mutually independent. For example, combining only the launch angle parameter and the ball speed parameter may obtain better results than would be obtained if additional parameters such as club head speed and carry were also added, since these additional parameters are related to launch angle and ball speed. This methodology may be considered as a version of the Naive Bayes approach. The result of these comparisons is that the most usable golf club is identified.
[0034] It should be noted that the difference in parameter values may be very small between certain golf clubs. For example, 3-iron and 4-iron clubs may each show similar histograms (and therefore similar average spin values and standard deviations). For these reasons, in some embodiments, it may be preferable to reduce the set of available golf clubs to which the observed parameters are compared, such as, for example, such that the set of available golf clubs includes only 3-irons and 5-irons but not 4-irons, or such that the set of available golf clubs includes only 50-degree wedges but not 52- or 54-degree wedges. The point is that the general idea is to avoid having a set of golf clubs with parameter values that are too close to each other, thereby limiting the clubs available in the set, for example, to every second or third club, allowing for larger differences and more robust and reliable club identification. In some embodiments, the set of available clubs may vary based on the hole being played. For example, it may not be reasonable to consider a pitching wedge as one of the candidates for the first shot of a par-5 hole, or a driver as one of the candidates at the start of a par-3 hole. Thus, there are a number of ways in which the selection of available clubs can be reduced.
[0035] Still further, for a given club, the parameter values may vary depending on the player. Thus, some embodiments include multiple sets of parameter values for a golf club, such as one set of parameter values for a professional player and another set of parameter values for an amateur player. In some embodiments, the various sets of parameter values may be based on location, for example, a particular golf club may produce different spin at high altitude than at sea level. Thus, multiple versions for identifying the most usable golf clubs are possible.
[0036] Next, once the most available golf clubs have been identified, ball spin probability data is obtained for the most available golf clubs (208). That is, similar to what has been described above for the various parameters, there is also information available for each golf club as to the range of most likely spin values for that golf club. Typically this will include the average and standard deviation for the most available golf club. Thus, each spin candidate at this point can be compared to its average spin value and standard deviation and assigned a "club spin probability" that indicates how likely it is that the most available golf club produced that spin candidate.
[0037] A simulated trajectory is then determined for each spin candidate using a physics model (210). There are numerous physics models that can be used to calculate spin. In general, the physics models are based on the idea that for a rotationally symmetric ball in flight, three main forces are known to act on the ball: gravity, air resistance (also known as "drag"), and the "lift" of the ball due to the Magnus effect. These forces can be represented by vectors, and together they can form the total acceleration of the ball. Below is an example of one physics model that can be used for the purpose of generating a simulated trajectory:
number
number
number
number
[0038] In the above equations, all the terms with "hat" are unit vectors and all the terms with arrows are vectors (i.e., magnitude and unit vector). Furthermore, a_M with arrow is the acceleration due to lift (the so-called Magnus effect), v_rel is the relative velocity vector (i.e., the difference between the ball velocity vector and the wind velocity vector), and Ω is the spin vector. The absolute value is the magnitude of the corresponding vector. The cross product of two vectors is the plane of a parallelogram between the two vectors and has a direction perpendicular to that plane. The spin vector is, in general, neither perpendicular nor parallel to the relative velocity vector, so sin(Φ) must be taken into account. Therefore, to obtain a_M with arrow, which is the unit acceleration vector due to lift, the cross product of Ω with hat and v_rel with hat must be normalized.
[0039] Using this physical model, a portion of the observed trajectory captured in operation 202 is compared to a corresponding portion of the simulated trajectory to determine the similarity between the two trajectories, i.e., how well the real-world observations match the theoretical predictions. The error between the measured and simulated trajectories is determined for each spin candidate, and the error is converted to a "physical probability" for each spin candidate. Typically, a smaller error indicates a closer match between the simulated and observed trajectories, resulting in a higher physical probability for the spin candidate in question. Depending on the particular situation at hand, the error measure may use the deviation of the position, speed, and / or acceleration of corresponding points in time between the simulated and observed trajectories for each spin candidate. Some embodiments generate an overall error measure using a least squares fit aggregated over a number of points along a selected portion of the trajectory. The inverse of this error measure is then used as a probability value for the spin candidate. However, these are merely examples, and there are many other types of error calculation methods that may be useful in this context. Different weighting factors and different exponents may also be used, and additional factors (e.g., wind) may be taken into account to achieve a robust error measure that describes how well portions of the observed and simulated trajectories match. In some embodiments, the associated weighting factors and parameters used in determining the error measure may be selected through an optimization process.
[0040] The spin of the golf ball is then identified (212) as the most likely spin candidate based on a combination of the measurement probability, the club spin probability, and the physical probability. This may be done, for example, by multiplying the individual probabilities for each spin candidate together and then selecting the spin of the golf ball that is the spin candidate with the highest combined probability. Finally, the spin of the golf ball is displayed (214) on a display device. The display of the identified spin may be for entertainment purposes (e.g., for spectators watching a golf tournament) or for practice purposes (e.g., to encourage improvement of an individual's golf game).
[0041] In some embodiments, an optimization process may be used in determining which portion of the trajectory to use in determining the error measure between the observed trajectory and the simulated trajectory. For example, portions of the trajectory near the terminus may have weaker reflected signals from the radar tracking device or greater optical distortion as the distance from the camera increases. This results in increased noise being present in the measurements from these respective sensors. In particular, acceleration measurements are susceptible to noise. Thus, if acceleration is used as one of the parameters in the error measure calculation, some embodiments may use portions of the trajectory closer to the origin. However, if velocity or position is a parameter used in calculating the error, some embodiments may use portions of the trajectory toward the middle or distal terminus. Thus, various types of optimization processes may be used to identify the most ideal portions of the trajectory for purposes of error measure calculation.
[0042] The embodiments of the invention described herein also relate to computer software functions for determining the spin of a ball, such as a golf ball, in accordance with the above, and such computer software functions, when executed, are configured to perform the above-mentioned obtaining, determining and displaying operations, as also recited in the claims. The computer software functions are configured to be executed in the physical or virtual hardware of a computer and / or data processing device 102 as described above.
[0043] The subject matter and functional operations described herein may be implemented in digital electronic circuitry or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or one or more combinations thereof. The subject matter described herein may be implemented using one or more modules of computer program instructions encoded on a non-transitory computer readable medium for execution by or to control the operation of a data processing apparatus. The computer readable medium may be an article of manufacture, such as a hard drive or optical disk in a computer system sold through a retail outlet, or an embedded system. The computer readable medium may be independently obtained and subsequently encoded with one or more modules of computer program instructions, such as by delivery of one or more modules of computer program instructions over a wired or wireless network. The computer readable medium may be a machine readable storage device, a machine readable storage substrate, a memory device, or one or more combinations thereof.
[0044] The term "data processing apparatus" encompasses all apparatus, devices and machines for processing data, including, by way of example, a programmable processor, a computer or multiple processors or computers. In addition to hardware, an apparatus may include code that creates an execution environment for a subject computer program, such as code constituting a processor firmware, a protocol stack, a database management system, an operating system, a runtime environment, or one or more combinations of these. Additionally, an apparatus may employ various computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
[0045] A computer program (also known as a program, software application, script, or code) may be written in any suitable form of programming language, including compiled or interpreted, declarative or procedural languages, and may be deployed in any suitable form, such as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file specific to the program in question, or in multiple associated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.
[0046] The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and an apparatus may be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
[0047] Processors suitable for executing a computer program include, by way of example, both general purpose and special purpose microprocessors, as well as one or more processors of any suitable digital computer. Typically, a processor will receive instructions and data from a read-only memory (ROM) or a random access memory (RAM), or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer also includes one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to receive data from or transfer data to the mass storage devices, or both. However, a computer need not have such devices. Additionally, a computer may be incorporated in other devices, such as a mobile phone, a personal digital assistant (PDA), a portable audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name a few. Suitable devices for storing program instructions and data include, by way of example, all forms of non-volatile memory, media and memory devices, including semiconductor memory devices, such as EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory) and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, CD-ROM and DVD-ROM disks, network attached storage, and various forms of cloud storage. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0048] To provide for user interaction, embodiments of the subject matter described herein can be implemented in a computer having a display device, e.g., an LCD (liquid crystal display), OLED (organic light emitting diode) or other monitor, for displaying information to the user, as well as a keyboard and pointing device, e.g., a mouse or trackball, by which the user can provide input to the computer. Other types of devices can be used to provide for user interaction as well, e.g., feedback provided to the user can be sensory feedback, e.g., visual feedback, auditory feedback or tactile feedback, and input from the user can be received in a variety of forms, including acoustic, speech or tactile input.
[0049] A computing system may include clients and servers. Clients and servers are generally remote from each other and interact through a communications network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. An embodiment of the subject matter described herein may be implemented in a computing system that includes a back-end component, e.g., as a data server, a middleware component, e.g., an application server, a front-end component, e.g., a client computer having a graphical user interface or a web browser that allows a user to interact with an embodiment of the subject matter described herein, or any suitable combination of one or more of the above back-end, middleware, or front-end components. The components of the system may be interconnected by any suitable form or medium of digital data communication, e.g., a communications network. Examples of communications networks include local area networks ("LANs") and wide area networks ("WANs"), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad-hoc peer-to-peer networks).
[0050] Although the present specification contains numerous implementation details, these should not be construed as limitations on the scope of the invention, i.e., what may be claimed, but as descriptions of features specific to embodiments of the invention. Certain features described herein in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either independently or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination and initially claimed as such, one or more features from a claimed combination may, in some cases, be deleted from that combination, and the claimed combination may be directed to a subcombination or variation of the subcombination. Thus, unless expressly stated otherwise or the knowledge of one of ordinary skill in the art clearly indicates otherwise, any feature of the embodiments described above may be combined with any other feature of the embodiments described above.
[0051] Similarly, although operations are illustrated in a particular order, this should not be understood as requiring that such operations be performed in the order or sequentially illustrated, or that all of the described operations be performed, to achieve desired results. In certain situations, multitasking and / or parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments. The described program components and systems may be integrated into a single software product or packaged into multiple software products.
[0052] Thus, embodiments of the present invention have been described. Other embodiments are within the scope of the following claims. For example, in some embodiments, various types of machine learning (ML) techniques can be applied to identify the most usable golf clubs and the most likely spin candidates. Typically, such an approach involves feeding one or more acquired input parameters to a network of nodes previously constructed with learned weights that have been trained for a set of golf clubs using acquired parameters from previous golf ball flights.
[0053] When selecting input parameters for the ML model, it is important to select parameters that are independent of the estimated spin. For example, if "flat carry" is selected as an input parameter and the entire trajectory is not visible, then flat carry needs to be estimated and such an estimate requires estimated spin. Thus, "flat carry" is an example of a less than good input parameter when using the ML model. If flat carry were to be selected as an input parameter for the ML model, it would be desirable to have an additional input parameter that indicates which part of the trajectory was observed, so that the ML model can also consider whether the flat carry input parameter is actually reliable (i.e., the entire trajectory was visible) or is a less reliable estimate due to only a portion of the trajectory being visible.
[0054] Two examples of ML techniques that may be suitable in the present context are neural networks and random forests, respectively. However, it should be recognized that these are merely illustrative and that there may be additional ML techniques that work well in the present context. Neural networks may use a feed-forward / multi-layer perceptron architecture where the input layer has one node per input parameter. The number of hidden layers and the number of nodes in each layer may be selected by what produces the best results. The output layer may be of the softmax variety with one node per class (i.e., golf clubs). The activation function may be of the ReLU (Rectified Linear Unit) type, possibly with regularization similar to dropout. This method produces output probabilities (e.g., "there is a 25% likelihood that the club is a 5-iron"), which is advantageous in the above method, rather than simply describing "5-iron". A random forest model, on the other hand, is an ensemble of decision trees, whereby the final / leaf node is the majority class for the classification problem. A random forest model may include parameters such as the depth of each decision tree, how the data should be distributed, a cost function, etc.
[0055] Typically, ML models are trained using training data that is collected and validated, in some embodiments, for different segments of players (LPGA (Ladies Golf Association), PGA (Professional Golfers Association), amateurs, etc.), and in some embodiments, simply for individual players. In many situations, the training data may be slightly biased, i.e., there will be a lot of data for a certain type of player / golf club. This may introduce bias into the algorithm used. For example, if the most common shot is an "amateur 5 iron shot", the algorithm will tend to classify the shot as being made with a 5 iron club. This can be addressed in several ways. For example, by replicating the shots when training the model, assigning different weights to the classifications (golf clubs), i.e., randomly sampling the data when training the model, allowing errors for less common golf clubs in the dataset to have a larger impact on the cost function compared to more common golf clubs, etc.
[0056] Finally, although the above description has been made in the context of golf balls and golf clubs, it should be recognized that the same general principles are applicable to other situations in which it is advantageous to know the spin of a ball or other flying projectile, and it should be noted that there are numerous clubs or other launch mechanisms that have characteristics that affect the spin of a ball or projectile in particular ways. Thus, numerous variations of the above examples are well within the scope of the appended claims and the capabilities of one of ordinary skill in the art.
Claims
1. 1. A computer-implemented method (200) for determining the spin of a golf ball in flight, comprising: acquiring (202) at least a portion of an observed trajectory of the golf ball and one or more parameters associated with the observed trajectory, the observed trajectory comprising a three dimensional position of the golf ball over time determined from individual observations of the golf ball by one or more sensors; obtaining (204) two or more spin candidates for the golf ball, each spin candidate having an associated measured probability indicative of the relative frequency of different spin values; identifying (206) a golf club that is most likely to be used to launch the golf ball along the observed trajectory based on probability data for one or more parameters for two or more different golf clubs; obtaining ball spin probability data for said most available golf club (208); identifying (212) the spin of the golf ball as a most likely spin candidate based on the ball spin probability data and the captured portion of the observed trajectory, said identifying being based on a combination of measurement probabilities, club spin probabilities, and physical probabilities, the club spin probabilities indicating how likely it is that the most available golf club generated the spin candidate, and the physical probabilities indicating probabilities converted from errors between the observed trajectory and a simulated trajectory; displaying (214) the determined spin of the golf ball on a display device; A method for providing the above.
2. The method of claim 1 , wherein the one or more parameters include one or more of launch angle, ball speed, club speed, ball carry, or a combination thereof.
3. adjusting the obtained probabilities for the spin candidates based on predetermined parameters of the most available golf club and / or based on a similarity between the portions of the observed trajectory and corresponding portions of the simulated trajectories for the two or more obtained spin candidates; identifying a spin of the golf ball as the spin candidate having the highest adjusted probability; The method of claim 1 further comprising:
4. The step of identifying the most usable golf club comprises:
4. The method of claim 3, comprising comparing the obtained one or more parameters for each golf club in a plurality of different golf clubs to the probability data for the one or more parameters for the two or more different golf clubs.
5. The method of claim 4 , wherein the probability data is either a Gaussian probability distribution or a measured histogram probability distribution for the two or more different golf clubs.
6. 4. The method of claim 3, wherein the step of identifying the most likely usable golf club comprises providing the one or more acquired parameters as inputs to a network of nodes previously constructed with learned weights, the learned weights having been learned for two or more different golf clubs using one or more acquired parameters from previous golf ball flights.
7. The method of claim 3 , wherein the ball spin probability data is defined as an average spin value or a standard deviation of spin values for the most available golf clubs.
8. The similarity between the portion of the observed trajectory and a corresponding portion of a simulated trajectory for a spin candidate is determined by: simulating a trajectory of the golf ball having the spin of the spin candidate, the simulation using one or more of a physics model and the obtained parameters; selecting a number of instances in time; determining, for each selected instance, a difference between the observed trajectory and the simulated trajectory and combining the differences to obtain a similarity value used in adjusting the probabilities for the spin candidates; The method of claim 3 , characterized by:
9. the difference being a difference in one or more of the acceleration, velocity and / or position of the golf ball; The method of claim 8 , wherein combining the differences comprises one or more of averaging the differences, summing the differences, and / or comparing the differences to find a minimum difference.
10. 9. The method of claim 8, further comprising the step of correcting the differences by adding a weighting factor to each difference and / or raising one or more of the differences to a predetermined power prior to the step of combining the differences.
11. 10. The method of claim 1 performed at a golf driving range or golf course.
12. The method of claim 1 , wherein the one or more sensors include a radar, a camera, or both.
13. A computer software program product configured, when executed, to perform the operations of the method of any one of claims 1 to 12.
14. 1. A system for determining the spin of a golf ball in flight, comprising: A processor (106); A memory (110) containing instructions; Equipped with The instructions, when executed by the processor (106), cause the processor (106) to: obtaining at least a portion of an observed trajectory of the golf ball and one or more parameters associated with the observed trajectory, the observed trajectory comprising a three dimensional position of the golf ball over time determined from individual observations of the golf ball by one or more sensors; obtaining two or more spin candidates for the golf ball, each spin candidate having an associated measured probability indicative of a relative frequency of different spin values; identifying a golf club most likely to be used to launch the golf ball along the observed trajectory based on probability data for one or more parameters for two or more different golf clubs; obtaining ball spin probability data for said most usable golf club; identifying a spin of the golf ball as a most likely spin candidate based on the ball spin probability data and the acquired portion of the observed trajectory, wherein the identifying is based on a combination of measurement probability, club spin probability, and physical probability, the club spin probability indicating how likely it is that the most available golf club generated the spin candidate, and the physical probability indicating a probability converted from an error between the observed trajectory and a simulated trajectory; displaying the determined spin of the golf ball on a display device; A system that executes the above.
Citation Information
Cited By
system
JP2026155638A
system
JP7938093B2