Ball Spin Detection Theory
Measuring Ball Spin from an overhead ceiling mounted camera
Measuring spin from an overhead camera using spin dot balls as reference and measuring a partial rotation between frames.
Two measurements are required:
1. Vertical rotation back spin
2. Horizontal rotation side spin
From these two measurements a Total spin can be calculated
Total spin ?
Total spin is the vector sum of back and side spin rates which can be calculated as follows:
Total spin = square root of (back spin squared + side spin squared)
Rotation and side spin is calculated by comparing x and y co-ordinate spin dot deviation positions between frames on the ball.
Perspective mapping
In order to determine the amount of rotation, co-ordinate points on the ball as seen by the camera have to be transformed to real co-ordinate points.
Each point co-ordinate as seen from the overhead camera is mapped to the real circumference of the ball in both the x and y directions.
Whereby x co-ordinates are used to determine ball back spin and y co-ordinates are used to determine side spin (+ or -)
Essentially this is just a distance correction factor based on the point's distance from the center of the ball.
An additional arc length correction factor based on the dot's distance from the center line also has to be applied.
The real arc length of the two points can then be calculated.
Knowing the arc length and the radius of the ball, the arc central angle can be calculated.
This arc central angle is the back rotation in degrees (or radians) for a given time between the two frames (1 ms) and from this the back spin rate can be calculated.
Deriving arc length from 2 dot points
Pc = C/ d
(PC = Perspective Correction, C = ball circumference / 2, d = ball diameter)
pd1x = dot1x*Pc
pd2x = dot1x*Pc
(pd1x, pd2x = perspective corrected dot x co-ordinates)
Calculate off-center correction
chordlen1 = 2 × √(r2 − d2)
chordlen2 = 2 × √(r2 − d2)
(r = ball radius, d = y distance dot from ball center line)
offCenterFactor1 = chordlen1 / ball diameter
offCenterFactor2 = chordlen1 / ball diameter
Cdx1 = pd1x * offcenterFactor1
Cdx2 = pd2x * offcenterFactor2
ArcLen = Cdx1 - Cdx2
Deriving rotation from arc length
Calculate degrees of rotation given Arc length and ball radius
Use the formula: CA (Central Angle) = ArcLen * 360 / 2 π r
Calculate spin rate
Given time t (the time between 2 frames) and the amount of rotation within this time, calculate spin rate in rpm
Use the formula: Spin rate rpm = (r/t) / 6
where r = degrees of rotation
and t is the time in which the rotation occurs.
Divide by 6 to get RPM
Spin rate in RPM = w / 6
Note that only well defined and spaced spin dot balls can be used ( as shown above).
And that camera exposure time (i.e. shutter speed) has to be set at or below 150 micro seconds and frame set to 1500 fps
Note that the "Ball line/Spot GS" (Gray Scale) may ( depending on your lighting )
have to be adjusted up or down in order to detect the ball spin dot or ball logo.
The above image (from a customer shot video) shows the issue with longer exposure times
and out of focus lenses when attempting to detect ball spin dot markings.
Exposure times need to be under 150 us to reduce motion blur caused by the ball traveling at high speeds.
Nether-the-less, if increasing the Ball Spot GS (gray scale) to 200,
then even out of focus and blurry ball dots can be detected.
Today's CP version also features improved ball spin frame detection by attempting to find 2 adjacent
ball images that have at least 3 dots on them instead of just 2.
Coming later..
1. Real shot examples showing verifiable side and back spin rates
2. Spin rate comparisons with the other launch launch monitors
Ball Spin detection using the ball logo
for overhead SCX and Eagle systems
You can now select the option "Spin line / Logo on ball" to measure ball spin for overhead camera systems (i.e. SCX and Eagle).
As the logo will not always be visible in the frames, the system now automatically scans for 2 adjacent fames showing the ball logo
in all the 16 ball speed frames.
Measuring spin rate from an overhead camera using just the ball logo as reference and waiting for a complete 360 revolution.
This method requires capturing multiple frames of the spinning and moving ball.
To measure spin rate using just one reference marking (i.e. the ball logo), the captured frames would have to include a complete 360 rotation of the ball.
If the ball was just spinning and not moving forward, we could calculate spin rate by just counting the number of frames (and thus time) required for a complete 360 degree rotation,
Unfortunately for us here - in the game of golf - the ball is moving very fast, and thus hi-resolution frames have to be captured over a (competitively) long distance.
Example 1: assuming a ball speed of 150 mph and a frame rate of 800 fps = 1/800 = 1 frame per 0.00125 seconds
1. 1000 rpm = 7.5 degrees of ball rotation per frame = 360/7.5 = 48 frames required for a complete revolution. Distance ball has moved at 150mph in 48 x 0.00125 = 0.275ft x 48 = 13.25 ft
2. 2000 rpm = 15 degrees of ball rotation per frame = 360/15 = 24 frames required for a complete revolution. Distance ball has moved at 150mph in 24 x 0.00125 = 0.275ft x 24 = 6.6 ft
3. 4000 rpm = 30 degrees of ball rotation per frame = 360/30 = 12 frames required for a complete revolution. Distance ball has moved at 150mph in 12 x 0.00125 = 0.275ft x 12 = 3.3 ft
4. 8000 rpm = 60 degrees of ball rotation per frame = 360/60 = 6 frames required for a complete revolution. Distance ball has moved at 150mph in 6 x 0.00125 = 0.275ft x 6 = 1.65 ft
As can be seen from the above calculations, measuring ball spin using just the ball logo and a FOV of a camera mounted at 9ft with a 12mm lens won't work.
i.e. the ball will be out of the FOV of the camera in most spin rate cases.
In order to resolve the issue, the FOV of the camera and lighting would have to be substantially increased using a 6mm lens - which isn't going to be practical
Spin axis and side spin
As we all know, there's no such thing as side spin but the camera does see horizontal rotation (side spin) as well as vertical rotation (back spin).
As the camera sees the two 2D images of the ball, it would look like the ball is rotating in 2 directions at the same time but that is only due to the spin axis being tilted.
Camera tests revealed that as long as the ball is struck square to the club path (no matter if path is straight, in-to-out or out-to-in), then no side spin or spin axis tilt is imparted on the ball.
If club face differs from club path, then side spin and axis tilt can be detected.
Spin axis
As ball spin axis is 3 dimensional, it cannot be shown as a simple number of degrees.
in order to actually show spin axis, you'd have to calculate a 3D vector which the average golfer wouldn't easily comprehend.
Virtual spin dots for SCX testers
The virtual spin dot mode is basically just a tool used by GSAgolf to simulate ball markings on the ball
and to view the resulting measured back and side spin rate
Virtual spin dots are used to test the spin detection method.
In the camera panel, Select a frame with a ball shown in it.
Select spin dot or logo on ball spin method.
Press the V key on your keyboard to go to Virtual Dot Mode
Use arrow left/right/up/ down keyboard keys to move dots around on the ball
The dots can be moved around anywhere on the ball image
and the resulting back and side spin rates - based on their co-ordinates - will be automatically shown.
New Ball Spin detection using the ball logo
for overhead SCX and Eagle systems
You can now select the option "Spin line / Logo on ball" to measure ball spin for overhead camera systems (i.e. SCX and Eagle).
As the logo will not always be visible in the frames, the system now automatically scans for 2 adjacent fames showing the ball logo
in all the 16 ball speed frames.
VisTrak EVi Ball Spin Detection
Ball Spin Detection from the Side camera
Using the ball logo or line
When the EVi or LX Vcam is placed close to the ball (i.e within 12 to 16 inches),
the camera detects ball spin rate using either the ball logo or ball spin dots.
Using balls with spin dots on them
The Vcam with EVi and LX systems view the ball from the side.
Rotation - when using spin dot balls - is calculated around the center of the ball between frames
Note that the "Ball line/Spot GS" (Gray Scale) may have to be adjusted up or down in order to detect the spin dot or ball logo/line.
EV Ball Spin Detection from the overhead camera
Ball spin can also be measured from the EV overhead camera
Rotation and spin axis is calculated by comparing x and y spin dot deviation positions between frames
Ball spin for Putts
Measured ball spin when putting is done without the requirement to use ball markings.
Ball Spin rate accuracy verification method
In order to verify the ball spin rate accuracy of the VisTrak SCX system,
we'll need a solid reference. i.e. frames of a spinning ball with a known spin rate.
To do this, we used a variable speed DC motor with a marked golf ball on it.
First we'd have to accurately measure the spin rate of the motor.
This was done by using a laser tachometer and a black rubber disc with a white strip on it attached to the motor's spindle.
In this case, the reading was 2488 rpm
Note that you can't use a tachometer with a golf ball because laser tachometers only read single white markings on a dark background.
We then replaced the black rubber disc with a marked golf ball on the motor's spindle
and setup the VisTrak camera to capture 32 frames of the spinning ball.
We then compared the spin rate readings from the VisTrak SCX cameras with the tachometer reading.
The small discrepancy was rectified by increasing the spin rate adjust factor from 100 to 109 percent
Ball Spin Test Videos
For those that are interested, I've made a collection of ball spin videos using line/logo marked balls, QED marked balls and Rapsodo marked balls.
Click the above image to download the videos (32 MB compressed)
All 32 frame videos were captured at 1500 fps with the ball spinning at 2488 rpm.
Each ball type consists of 4 different viewing angles: Top, Side, Tilted Top and Tilted side.
To try the videos, copy the video number from the downloaded sub folder into the C:\ GSAgolf folder on your PC.
Go to the Videos panels and select the video number and go to camera 1.
Select any frame and press the 1 key on your keyboard, then go to the next frame and press the 2 key.
Then either press the C key or click on the spin video box to re-calculate the spin rate from the 2 frames you have previously selected
GSA Golf use these ball spin videos to simulate various ball marking position scenarios to confirm the correct measured ball spin