US20260131197A1
DETERMINING BALL IMPACT LOCATION ON SURFACE OF STRIKING OBJECT
Publication
Application
Classifications
IPC Classifications
CPC Classifications
Applicants
RAPSODO PTE. LTD.
Inventors
Dejiang Xu, Kelvin Soon Keat Yeo, Batuhan Okur
Abstract
Embodiments are disclosed for determining a ball impact location on a surface of a striking object. In some embodiments, a method comprises: capturing a series of images including at least three images of a striking object prior to impact with a stationary ball; determining, based on center coordinates of surfaces of the striking object captured in the at least three images, a circumference of a circle; shifting the ball along the circumference of the circle to a virtual position such that the ball at the virtual position is in contact with a first surface of the striking object; determining a first impact location on the first surface of the striking object in contact with the shifted ball at the virtual position.
Figures
Description
TECHNICAL FIELD
[0001]The disclosed embodiments are related to determining an impact location on a surface of a striking object striking a ball.
BACKGROUND
[0002]Striking a golf ball in the center of a clubface of a golf club (commonly referred to as the “sweet spot”) will generally yield good results in terms of overall performance. For example, when the golf ball is struck at the “sweet spot,” the golf ball will typically travel maximum distance along an optimal trajectory with better control. The “sweet spot” provides the most efficient transfer of energy from the golf club to the golf ball, resulting in a more consistent and accurate shot.
[0003]One method to identify the impact location on a clubface is to apply a sticker to the clubface. When the clubface strikes the golf ball, the sticker changes color, thereby indicating the impact location on the clubface. This feedback allows the golfer to make necessary adjustments to their swing technique or club settings to improve their overall performance. This method, however, may leave adhesive residue on the clubface which can be burdensome to remove.
[0004]Another method computes a geometric center of the clubface, the ball's position before impact, the time of impact, the position of the clubface, the angle of attack on the ball, and the dynamic loft to identify the impact location. The time of impact is when the clubface comes into contact with the golf ball. Since the time of impact is calculated using interpolation between time points, a ball impact position determined based on time of impact will typically be inaccurate.
SUMMARY
[0005]Embodiments are disclosed for determining a ball impact location on a surface of a striking object.
[0006]In some embodiments, a method comprises: capturing a series of images including at least three images of a striking object prior to impact with a stationary ball; determining, based on center coordinates of surfaces of the striking object captured in the at least three images, a circumference of a circle; shifting the ball along the circumference of the circle to a virtual position such that the ball at the virtual position is in contact with a first surface of the striking object; and determining a first impact location on the first surface of the striking object in contact with the shifted ball at the virtual position.
[0007]In some embodiments, the method further comprises determining a second impact location on a second surface of the striking object in contact with the stationary ball based on the first impact location to determine a flight path of the ball, wherein the first impact location and the second impact location are the same location relative to the surface of the club head, but their locations in 3D space are different with respect to a fixed point.
[0008]In some implementations, determining the circumference of the circle comprises using a circle fitting algorithm to fit the center coordinates of the at least one surface of the at least three images of the striking object to the circumference of the circle.
[0009]In some embodiments, determining the second impact location comprises shifting the determined first impact location by an angle of θ.
[0010]In some embodiments, the method further comprises determining, by a trained neural network, a normal vector and the center coordinates of the at least one surface of the striking object based on the series of images.
[0011]In some embodiments, the trained neural network is an artificial neural network (ANN) comprising a set of nodes organized in layers, the layers including an input layer, at least one hidden layer and an output layer, each layer including at least one node; a set of weights representing connections between the layers; and an activation function that transforms the output of at least one node.
[0012]In some embodiments, training the neural network comprises: extracting features from the series of images; applying a set of weights to the features; applying an activation function to the weighted input features; and predicting a normal vector and center coordinates of the at least one surface of the striking object based on an output of the activation function.
[0013]In some embodiments, the training further comprises training the neural network with training images having different types of striking objects having different loft angles.
[0014]In some embodiments, one of the at least three images includes the ball in a stationary position.
[0015]In some embodiments, the training images further include balls having different circumference.
[0016]Other embodiments are directed to systems, apparatuses and non-transitory, computer-readable storage mediums.
BRIEF DESCRIPTION OF THE DRAWINGS
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
DETAILED DESCRIPTION
[0027]The disclosed embodiments determine an impact location on a surface of a striking object (e.g., golf clubface) where the striking object impacts the ball. A machine learning model (e.g., a neural network) has been trained to predict a normal vector and center coordinates of a club surface at various positions before the club hits the ball, and center coordinates of the ball at a stationary position such as where the user places the ball before the user strikes the ball. The normal vector and center coordinates of the club surface at various positions before the club hits the ball with the center coordinates of the ball are used to determine from a series of images the impact location on the surface of the striking object at a pre-impact position of the striking object. The pre-impact position of the striking object is then used to determine the impact location on the surface of the striking object.
[0028]In the example shown and the examples that follow, the ball is a golf ball, the striking object is a golf club, and the striking surface is the golf clubface. The disclosed embodiments, however, are also applicable to other types of balls/objects and striking objects and any other balls/objects and striking objects where a ball/object is impacted by a surface of the striking object.
[0029]
[0030]In some embodiments, the training images may include golf clubs having different loft angle, such as a 7-iron, 6-iron or a driver. In some embodiments, the training images are augmented by at least one of color, contrast, brightness, sharpness, shift or noise level, non-uniform lighting or complex backgrounds. In some embodiments, the training images are randomly augmented. In some embodiments, the training images may include balls having different size, but not limited to golf balls, tennis ball, soccer ball and ping pong ball.
[0031]In some embodiments, trained neural network is an artificial neural network (ANN) comprising a set of nodes organized in layers, the layers including an input layer, at least one hidden layer and an output layer, each layer including at least one node; a set of weights representing connections between the layers; and an activation function that transforms the output of at least one node.
[0032]These parameters such as the center coordinates, face normal vector together with other parameters as described in the following description are then used to determine an impact location on the clubface of golf club 106 as described in further detail below.
[0033]
[0034]Note that the image with golf club 208 at position P−1 is the only image that contains the stationary golf ball 214 and the other images are golf club 206 and 204 at positions P−2, P−3, respectively, where golf club 208 in image at position P−1 is closest to the stationary golf ball 214, golf club 204 in image at position P−3 is the farthest away from the stationary golf ball 214, and golf club 206 in image at position P−2 is in between both images at positions P−1 and P−3. The negative subscripts for positions P−1, P−2, P−3 indicate that the positions are prior to impact of the golf ball. The trained machine learning model 104 is used to determine the face normal vectors 210, 212, 214 and center coordinates 209, 211, 213 of the golf club at positions P−1, P−2, P−3, respectively.
[0035]In some embodiments, the series of images may include more than three images, where one image contains only the ball, and the other images only contain the golf club before the golf club comes into contact with the ball.
[0036]In some embodiments, more than one imager may be employed i.e. two, three, four or more imagers may be used to generate the series of images. In some embodiments, when two or more imagers are used, these imagers may be synchronized with each other and the two or more imagers are placed in parallel to one another towards the object of interest, in this instance, the ball. In some embodiments, the imager may be a stereo camera having two or more lenses.
[0037]
[0038]In some embodiments, linear methods such as Full Least Squares Method, Average of Intersections Method, Reduced Least Square Method, and Modified Least Squares Method may be used for the circle fitting method. In some embodiments, non-linear methods such as machine learning may be used for the circle fitting method.
[0039]
[0040]Having determined the contact point P′c 409, the golf club 208 is shifted towards stationary ball 214 about an angle θ relative to the rotation point 301 (Cx, Cy, Cz) and with respect to the swing normal vector 302 (Nx, Ny, Nz). This shifting positions a club surface of the golf club 208 to touch an outer circumference of the stationary ball 214 at position P0. In this instance, the golf club is referred to as virtual golf club 210. At the position P0, a surface of the virtual golf club 210 touches an outer circumference of the stationary ball 214 with respect to the normal vector Nc 412 of club face normal vector and this touch point is referred as contact point Pc 405 or impact location. The impact location 405 at position P0 and the normal vector Nc 412 at the virtual position is described by equations [1] to [3] following below.
[0041]In some embodiment, the stationary ball 214 may be moved clockwise along the circumference of the circle 304 relative to the center coordinates of the rotation point 301 (Cx, Cy, Cz), and with respect to the swing normal vector 302 (Nx, Ny, Nz) towards the golf club 208 or 204.
[0042]Assume the Cartesian coordinates of P′c is x, y, z. As P′c is on the golf club face, then
where Nx, Ny, Nz, are the normal vector of the clubface and Px, Py, Pz, are the center point of the club face in Cartesian coordinates, and both are obtained by a machine learning model (e.g., neural network).
[0043]Let the virtual ball 414 in Cartesian coordinates be x0, y0, z0, r0, where x0 is the x-coordinate of the virtual ball, y0 is the y-coordinate of the virtual ball, z0 is the z-coordinate of the virtual ball, and r0 is the radius of the virtual ball. Since position P′c is touching the virtual ball 414 then
[0044]The distance of the virtual ball 414 to the center point of the swing is determined by center coordinates 301 (Cx, Cy, Cz) and the swing normal vector 302 (Nsx, Nsy, Nsz) is l, where l is the distance of the stationary ball to the center point of the swing determined by the center coordinates 301 (Cx, Cy, Cz) and the swing normal vector 302 (Nsx, Nsy, Nsz), giving:
[0045]And x0, y0, z0, are on the plane formed by stationary ball x′0, y′0, z′o with swing normal vector (Nsx, Nsy, Nsz) give:
[0046]Combining equations [1], [2], and [3], x, y, z are the coordinates of position P′c, normal vector N′e is the club face normal vector, θ theta is the angle between position x0, y0, z0, and x′0, y′0, z′0, and the final impact location is determined by rotating x, y, z by angle θ theta with respect to the normal vector N′c. Other parameters such as the ball's trajectory or flight path after being struck by the club, may be determined based on the final impact location and the normal vector of the club at the final impact location. Note that the final impact location and previous impact location are the same location relative to the surface of the club head, but their locations in 3D space are different with respect to a fixed point.
[0047]
[0048]
[0049]Process 604 continues by identifying the striking object (e.g., a golf club) in a series of images using an image-based object recognition network, such as, e.g., YOLO or R-CNN (604).
[0050]After the machine learning model has identified the striking object in the series of images, process 600 continues with the machine learning model determining a normal vector and center coordinates of the face of the striking object (608). In some embodiments, following the training, training data is stored as a dataset in the system. Each of the foregoing steps was previously described in reference to
[0051]
[0052]Process 700 begins by receiving a series of images of a scene from an imager, e.g., a video camera (702). Process 700 selects N images (N=3) from the series of images that each contain the striking object (e.g., golf club) before the striking object comes into contact with a ball (e.g., a golf ball) (704). It is understood that process 700 may select more than three images that each contain the striking object before the striking object contacts the ball, for example four, five, six images. Process 700 feeds the three images the trained machine learning model to determine the normal vector and center position of the golf club in the N images (708). Process 700 continues by applying a circle fitting algorithm to the N positions to determine if the three positions fit into a circle (710). This assumes that when the golfer swings the golf club, the swing is substantially circular motion. The circle fitting algorithm determines if the positions P−1, P−2 and P−3 are in the same images of the same swing. If not, then process 700 will select another three images. If yes, process 700 has determined that the center position of the golf club from the three selected images are of the same swing in the series of images.
[0053]Process 700 continues by selecting the image of the club that is the closest to the ball (714), determining a position when the ball is stationary from the series of images (716), determining the impact location where the ball is stationary from the three selected pre-impact images, and selecting a pre-impact image that is closest to the ball (718). Each of these steps was previously described in reference to
[0054]
[0055]
[0056]
[0057]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.
[0058]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.
Claims
What is claimed is:
1. A method comprising:
capturing a series of images including at least three images of a striking object prior to impact with a ball;
determining, based on center coordinates of surfaces of the striking object captured in the at least three images, a circumference of a circle;
shifting the ball along the circumference of the circle to a virtual position such that the ball at the virtual position is in contact with a first surface of the striking object; and
determining a first impact location on the first surface of the striking object in contact with the shifted ball at the virtual position.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
extracting features from the series of images;
applying a set of weights to the features;
applying an activation function to the weighted input features; and
predicting the normal vector and the center coordinates of the at least one surface of the striking object based on an output of the activation function.
8. The method of
9. The method of
10. The method of
11. A system comprising:
an imager configured to capture a series of images including at least three images of a striking object prior to impact with a ball;
a memory;
at least one processor configured to:
determine, based on center coordinates of surfaces of the striking object captured in the at least three images of the striking object, a circumference of a circle;
shift the ball along a circumference of the circle to a virtual position such that the ball at the virtual position is in contact with at least one surface; and
determine a first impact location on the surface of the striking object in contact with the shifted ball at the virtual position.
12. The system of
13. The system of
14. The system of
15. The system of
16. The system of
17. The system of
extracting features from the series of images;
applying a set of weights to the features;
applying an activation function to the weighted input features;
predicting the normal vector and the center coordinates of the at least one surface of the striking object based on an output of the activation function.
18. The system of
19. The system of
20. The system of