DETERMINATION OF SPIN RATE AND SPIN AXIS OF A BALL IN FLIGHT
20250161750 ยท 2025-05-22
Inventors
- Dejiang XU (Singapore, SG)
- Botan Yildirim (Singapore, SG)
- Evgeny Lipunov (Singapore, SG)
- Aditya Vishwanath (Singapore, SG)
- Batuhan Okur (Singapore, SG)
Cpc classification
G06T7/246
PHYSICS
A63B2220/05
HUMAN NECESSITIES
International classification
A63B24/00
HUMAN NECESSITIES
Abstract
Embodiments are disclosed for determining the spin rate and the spin axis of a ball in flight. In some embodiments, a method comprises: capturing, with an image sensor, a time series of images of a ball in flight and corresponding image capture times; inputting, with at least one processor, the image frames and the image capture times into a machine learning model; and predicting, with the at least one processor, a spin axis and a spin rate of the ball based on the machine learning model.
Claims
1. A method comprising: capturing, with an image sensor, a time series of images of a ball in flight and corresponding image capture times; inputting, with at least one processor, the image frames and the image capture times into a machine learning model; and predicting, with the at least one processor, a spin axis and a spin rate of the ball based on the machine learning model.
2. The method of claim 1, wherein the machine learning model includes a first neural network trained to predict seam norms of the ball in 3D space based on a training set of ball images, a second neural network trained to predict the spin rate of the ball based on the predicted seam norms and time differences obtained from the training set of ball images, and a third neural network trained to predict the spin axis of the ball based on the predicted seam norms and ratios of the time differences.
3. The method of claim 2, wherein the training set of ball images include synthetic ball images of different types of balls, and wherein the ball images have non-uniform lighting, complex backgrounds, occlusions, or artifacts.
4. The method of claim 2, wherein the training set of ball images include augmented ball images of different types of balls, and wherein the ball images have at least one of random color, random contrast, random brightness, random sharpness, random shift or random noise level.
5. The method of claim 2, wherein randomly generated synthetic seam norms are used to train the first neural network.
6. The method of claim 2, wherein the first, second and third neural networks are trained using batch processing, stochastic gradient descent, Nesterov momentum without dampening, a weight decay or a cosine-shaped learning rate.
7. The method of claim 2, wherein the first, second and third neural networks are regression neural networks.
8. The method of claim 6, wherein the first neural network comprises M blocks, where each block includes a transition unit to downsample a feature size, followed by N residual units, where N and M are integer values greater than zero.
9. The method of claim 6, wherein the second and third neural networks each include M blocks, each block having a fully connected layer to increase a number of inputs, followed by N residual units, where each residual unit includes a first fully connected layer, followed by a first activation function, followed by a second fully connected layer, followed by a second activation function, where N and M are integer values greater than zero.
10. The method of claim 1, wherein the ball is a cricket ball.
11. A system comprising: at least one camera; at least one processor; memory storing instructions that when executed by the at least one processor, cause the at least one processor to perform operations comprising: capturing, with the at least one camera, a time series of images of a ball in-flight and corresponding image capture times; inputting the image frames and image capture times into a machine learning model; and predicting, with the machine learning model, a spin axis and a spin rate of the ball.
12. The system of claim 11, wherein the machine learning model includes a first neural network trained to predict seam norms of the ball in 3D space based on a training set of ball images, a second neural network trained to predict the spin rate of the ball based on the predicted seam norms and time differences obtained from the training set of ball images, and a third neural network trained to predict the spin axis of the ball based on the predicted seam norms and ratios of the time differences.
13. The system of claim 12, wherein the training set of ball images include synthetic ball images of different types of balls, and wherein the ball images have non-uniform lighting, complex backgrounds, occlusions, or artifacts.
14. The system of claim 12, wherein the training set of ball images include augmented ball images of different types of balls, and wherein the ball images have at least one of random color, random contrast, random brightness, random sharpness, random shift or random noise level.
15. The system of claim 12, wherein randomly generated synthetic seam norms are used to train the first neural network.
16. The system of claim 12, wherein the first, second and third neural networks are trained using batch processing, stochastic gradient descent, Nesterov momentum without dampening, a weight decay or a cosine-shaped learning rate.
17. The system of claim 12, wherein the first, second and third neural networks are regression neural networks.
18. The system of claim 17, wherein the first neural network comprises M blocks, where each block includes a transition unit to down sample a feature size, followed by N residual units, where M and N are integer values greater than zero.
19. The system of claim 17, wherein the second and third neural networks each include M blocks, each block having one fully connected layer to increase a number of inputs, followed by N residual units, where each residual unit includes a first fully connected layer, followed by a first activation function, followed by a second fully connected layer, followed by a second activation function, where M and N are integer values greater than zero.
20. The system of claim 11, wherein the ball is a cricket ball.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
DETAILED DESCRIPTION
[0027] Bowling in cricket is the action of propelling the ball toward the wicket defended by a batter. Understanding proper bowling mechanics is crucial for bowlers to master various bowling tactics, such as delivering fast or spin bowling. Distinguishing between different bowling techniques relies on factors like the ball's trajectory and speed, determined by the angular velocity and initial velocity of the ball at the point of release.
[0028] Additionally, factors like drift and dip also play a significant role in the ball's direction during its flight. When a ball drifts, it veers sideways during its flight, creating a horizontal deviation. On the other hand, dip causes the ball to descend closer to the ground than expected, resulting in a non-linear alteration in its vertical movement. The spinning motion of the ball during its flight counteracts the airflow, leading the airflow to move upward, generating a downward force that causes the ball to dip. This phenomenon, known as the Magnus effect, is closely associated with the spin. While a radar gun is capable of measuring the speed of a cricket ball, it falls short in providing insights into the ball's spin properties. Therefore, the ability to measure the spin properties of a ball becomes insightful. Such measurements can equip coaches with a quantitative assessment of key spin bowling performance variables, enabling them to offer objective feedback to players on their performance.
[0029] In baseball, understanding the spin axis and the spin rate can provide information to the pitcher in letting the pitcher know whether their pitch is a fastball, knuckleball, curveball, etc. This information helps the pitcher in improving and developing the perfect pitch.
[0030] The present disclosure provides the use of seam norm from ball images with a trained deep learning neural network to estimate the spin properties including spin axis and the spin rate. This information can be used to measure the spin properties of the ball, for example a cricket ball. The seam norm vector model described herein is advantageously more efficient and effective as it does not segment out seam lines and thus feature matching is not required. It is acknowledged that segmenting the whole seam line is challenging due to non-uniform illumination artifact, logo, occlusion, and different types of balls. Further, the segmentation approach is time consuming to do feature matching. The methods disclosed herein advantageously measure seam norm directly from ball image with a neural network. Further, spin rate and axis regression modes are advantageously robust to outliers. For balls that do not have a seam that circumvents the entire ball and thus defines a seam plane (e.g., baseballs, golf balls, soccer balls, footballs, basketballs), a sticker can be wrapped around the ball that will act as a proxy for a stitched seam, and the disclosed embodiments can be applied to any ball regardless of whether it has a stitched seam.
Physics of Spin Rate and Spin Axis
[0031]
[0032]
where d is the distance of the fitted plane from the origin.
[0033] The direction of spin axis 103 can be determined with the right hand rule from point n.sub.1 to point n.sub.2 in the circle as depicted in
where .sub.i is the angle 201 of point n.sub.i to point n.sub.i+1 relative to spin axis 103, and T.sub.i=t.sub.i+1t.sub.i is the time difference of t.sub.i+1 to t.sub.i.
Example System
[0034]
[0035] The example network 300 shown in
[0036] Note that although deep learning networks are shown in
[0037] In some embodiments, a specific method for baseball can be used without the use of stickers or other seam proxies. A cricket ball is 2 symmetrical and a baseball is 4 symmetrical. Thus, two seam planes can be used to make sure every baseball image captured by the camera is unique. In some embodiments, the same seam norm regression, spin axis and rate regression neural networks for the cricket ball can be used for the baseball, with the difference as follows. For the seam norm regression neural network, the input is a baseball image, and the output is two seam norm vectors. One seam norm vector is (x, y, z) and its vertical is (x, y, z). For the spin axis and rate regression neural network, the input is a combination of all the seam norm vectors and the time difference. The output is the spin axis and spin rate, respectively.
[0038]
[0039] In some embodiments, the blocks of neural network 400 may be arranged in series, where the blocks are daisy chained, and where the last block is connected to a fully connected layer. In some embodiments, the blocks of neural network 400 may be arranged in parallel manner, where the blocks are daisy chained, and where the last block is connected to a fully connected layer. In some embodiments, real images of the ball are used with ground truth data to train neural network 400. In other embodiments, synthetic data is used together with, or in lieu of, the real image data for training neural network 400. For example, synthetic ball images can be generated with non-uniform lighting, complex backgrounds occlusions, artifacts and different types of balls, resulting in additional synthetic ball images with their seam norms uniformly allocated on the unit sphere.
[0040] In some embodiments, during training, the real and/or synthetic ball images can be augmented by modifying the color, contrast, brightness, sharpness, shift, and noise level of the ball images. The augmentation levels of color, contrast, brightness, and sharpness can be random ranging from about 0.8 to about 1.2, for example. In this example embodiment, the maximum shift is 4 pixels, which is the maximum error caused by ball finding. For noise, Gaussian blur or other suitable image processing technique can be applied, with a sigma value that varies from about 0.1 to about 9.0, for example.
[0041] In some embodiments, an augmentation level of 1.0 corresponds to the original image, i.e., not applying any data augmentation. Data augmentation is used to minimize the gap between training and testing data. For example, if the training images have a brightness level of 10, and the testing images have a brightness level of 8, there is 2=108 difference in brightness levels. This data shift causes lower testing accuracy of the pretrained model. By applying data augmentation with, for e.g., a random ratio from 0.8 to 1.2, the pretrained model can have good accuracy with brightness from 8(0.8*10) to 12(1.2*10). In some embodiments, the range can be fine-tuned to have a better accuracy on the set of test images. Thus, the brightness range can be wider but it cannot be lower than 0, which corresponds to a completely black image. Note that the brightness range cannot be too high either, since the maximal intensity is 255. Thus, in this example, the top ratio for brightness is given by 255/(current training brightness).
[0042]
[0043] Both neural networks 500 and 600 each have 5 blocks, where each block includes one fully connected layer to increase the number of inputs and 4 residual units. Each residual unit includes a first fully connected layer coupled to a first activation function (e.g., a rectified linear unit (ReLU) activation function), followed by a second fully connected layer, followed by a second activation function (e.g., a ReLU activation function). Similar to seam norm neural network 400, in this example embodiment, neural networks 500, 600 are trained for 1000 epochs with batch processing using a batch size of 2560, stochastic gradient descent with Nesterov momentum of 0.9 without dampening, and a weight decay of 10.sup.4. The learning rate is cosine-shaped reducing from 0.1 to 0.
[0044]
[0045] The spin rate of a cricket ball is typically in a range of about 400 to about 3000 revolutions per minute (abbreviated as rpm), and the spin axis can be any unit vector in 3D space. The spin axis can be uniformly allocated along the whole unit sphere, where each spin axis has a random spin rate in a range of about 300 to about 3600 rpm. As shown in
[0046] To make both the spin rate and spin axis regressions more robust, in some embodiments, 3 out of 8 seam norms are allowed as outliers with a 2 degree difference from groundtruth for each seam norm. During training, 3 seam norms are randomly selected and initialized with random values, and each seam norm is rotated with a random degree from 0 to 2 degrees in a random direction, for example.
Example Process
[0047]
[0048] Process 800 includes: capturing, with an image sensor, a time series of images of a ball in-flight and corresponding image capture times (801), inputting the image frames and the image capture times into a machine learning model (802), and predicting a spin axis and a spin rate of the ball based on the machine learning model (803). Each of these steps were previously described above in reference to
Example Ball Launch Monitoring System
[0049]
[0050]
[0051] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub combination or variation of a sub combination.
[0052] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.