The present invention relates to the technical field of cue sports equipment and more particularly to billiard ball movement prediction.
Cue sports refer to a vast array of sporting games of skill played with a cue and billiard balls in which the cue strikes individual ones of the billiard balls to cause the balls to move along a cloth-covered table bounded by elastic bumpers. Cue sports can be classified according to the nature of the cloth table. In Carom billiards, the cloth table lacks “pockets” and otherwise merely defines a rectangular playing surface. In contrast, in the game of Pool, the table incorporates six pockets. Likewise, the games of Snooker, English billiards, and Russian pyramid the table includes six pockets. But in all instances, play begins with the striking of the cue ball by the cue.
The cue refers specifically to a cue stick. The cue stick, used to strike the billiard ball and in most instances, a “cue ball”, generally is long pole, tapered in form. The basis of all cue sports is the operation of the cue leading up to and following the striking of the billiard ball with the distal tip of the cue while the billiard ball rests on the surface of the table. The operation of the cue is referred to as the “stroke”, which is the movement made by the cueing arm of the player as the player moves the cue towards the billiard ball and following the contacting of the billiard ball with the tip.
Ordinarily, it is desirable to strike the cue ball with the cue with as straight a stroke as possible striking the cue ball at a central point of a surface of the cue ball facing the player. As such, the direction of movement of the ball will be in line with the direction of movement of the cue and the velocity and number of revolutions of the cue ball as the cue ball moves towards its target can be largely controlled by the force imparted onto the central point of the surface of the cue ball by a stroking of the cue by the player. However, beyond the most simplistic form of play, it is desirable to achieve different movement of the cue ball.
To wit, in some instances, it may be desired to impart back spin on the cue ball to cause the cue ball to slow, stop or reverse its movement before a certain point on the table, or immediately subsequent to striking a target ball. In other instances, it is desirable to import side spin on the cue ball to cause the cue ball to curve its trajectory during its course of travel along the table. In each circumstance, the movement of the ball depends upon the stroke of the cue by the player and the manner in which the player performs the stroke and also the contact point of the tip of the cue upon the cue ball.
Of note, the physical metrics of the movement of the ball resulting from the stroke of the cue by the player and the manner in which the player performs the stroke and the contact point of the tip of the cue upon the cue ball can only be assessed subjectively and relatively. That is to say, the observer observes the action of the player and the resulting movement of the cue ball on the table, but the observer cannot precisely determine the metrics of the movement through mere observation, the metrics including, by way of example, the specific angular direction of movement of the ball, the velocity of the ball, the angular momentum of the ball and the number of revolutions experienced by the ball during the movement. As such, the player in an effort to assess the performance of the player cannot correlate specific actions by the player with the repeated demonstration of desirable metrics of movement of the cue ball.
Embodiments of the present invention address technical deficiencies of the art in respect to cue sports performance monitoring. To that end, embodiments of the present invention provide for a novel and non-obvious method for billiard ball movement prediction. Embodiments of the present invention also provide for a novel and non-obvious computing device adapted to perform the foregoing method. Finally, embodiments of the present invention provide for a novel and non-obvious data processing system incorporating the foregoing device in order to perform the foregoing method.
In one embodiment of the invention, a billiard ball movement prediction method includes capturing imagery of a billiard ball while in motion and submitting the imagery to an inference engine trained to predict a metric of movement of the billiard ball based upon the captured imagery. Thereafter, the predicted metric of movement is transmitted to a remote computing device for viewing by the end user. In one aspect of the embodiment, the inference engine is trained with annotated video imagery including known speed, revolutions, angular direction and angular momentum. As such, the predicted metric can then include a predicted velocity of the billiard ball, the predicted velocity of the tip of the cue at the moment the tip of the cue strikes the billiard ball, an acceleration value of the tip of the cue from the beginning of the stroke of the cue until the moment the tip of the cue strikes the billiard ball, a number of revolutions of the billiard ball during travel along the pool table, an angular direction of movement of the billiard ball relative to a direction of movement of a cue striking the billiard ball, and an angular momentum demonstrated by the movement of the billiard ball, e.g. the spin of the billiard ball.
To that end, in one aspect of the embodiment, the remote computing device itself captures the captured imagery of the billiard ball so that the inference engine subsequently communicates the predicted metrics of movement to the remote computing device from over a computer communications network. In this aspect of the embodiment, the remote computing device positions a camera frame proximate to the table and aligns the table within the camera frame according to one or more guide markers specifying a minimum boundary of the table that must appear within the camera frame. Thereafter, the remote computing device initiates capture of multiple different images of the billiard ball from the moment a cue strikes the billiard ball until the moment the billiard ball comes to rest on the table subsequent to having been stricken. The multiple different images can be a sequence of individually captured images in separate image files, or a single sequence of frames in a video clip.
The remote computing device then transmits the images to a cloud based processor which submits the images to the predictor. Upon receiving one or more predicted metrics from the predictor, the predictor returns the predicted measurements to the remote computing device for display on the remote computing device. In this way, the player operating the cue in temporal proximity to the striking of the billiard ball with the cue, can receive an accurate measurement of the metrics of movement of the billiard ball so that the player can more readily correlate the physical movement of the cue with the predicted movement of the billiard ball in order to improve the performance of the player.
In another embodiment of the invention, a data processing system is adapted for billiard ball movement prediction. The system includes a host computing platform of one or more computers, each with memory and one or processing units including one or more processing cores. The system also includes network communications circuitry disposed within the one or more computers and processing communications with different remote computing devices over a computer communications network. Finally, the system includes a billiard ball movement prediction module. The module includes computer program instructions enabled while executing in the memory of at least one of the processing units of the host computing platform to perform billiard ball movement prediction.
Specifically, the instructions receive captured imagery of different billiard balls while in motion. Then the instructions submit each of the captured imagery to an inference engine trained to predict a metric of movement of the pool ball based upon the captured imagery. Finally, the instructions transmitting predicted metrics of movement of respective ones of the billiard balls for each of the captured imagery to corresponding ones of the remote computing devices.
In this way, the technical deficiencies of observing the movement of a cue ball and characterizing that movement in a mere subjective way are overcome owing to the real-time or near real-time accurate prediction of the metrics of movement of the billiard ball resulting from the processing of imagery of the movement of the ball within a predictor trained to associate imagery of ball movements with known metrics of movement. The subject cue sports player in turn viewing the metrics can better adjust the manner in which the subject cue sports player engages a stroke in subject cue sports play while the stroke under analysis remains fresh in the mind of the subject cue sports player.
Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
Embodiments of the invention provide for billiard ball movement prediction for player development. In accordance with an embodiment of the invention, imagery of a cue sports player operating a cue in striking a billiard ball is captured by the mobile device of the player and uploaded to the cloud for billiard ball movement prediction. In this regard, the imagery can be processed on a frame by frame basis in order to estimate ball velocity for the duration of travel of the ball, from the moment the ball is stricken by the tip of the cue to the moment the ball collides with an object ball. Likewise, the spin of the ball can be computed from a sequence of frames of the imagery so as to count a number of revolutions per unit time (RPM) during the duration of travel and also an angle of revolution relative to a baseline recognized from the direction of the shaft of the cue to the object ball. The result can be characterized as the spin of the ball. Even further, an offset angle of a trajectory of the ball relative to the baseline can be readily determined from the frame by frame analysis of the imagery. The resulting imagery can then be returned to the mobile device for display in the mobile device in close temporal proximity of the operation of the cue and the capture of the imagery.
In illustration of one aspect of the embodiment,
The computing device 140 uploads the slow motion sequence of image frames in the video clip imagery 185 over a computer communications network 190 such as the global Internet, to a ball movement predictor 160. The ball movement which in turn presents the imagery to a ball metrics classifier 150 adapted to classify the video clip imagery 185 based upon data in a calibration data structure 180 including the dimensions of the table 110 and historical ball metrics associated with the player 100. For example, as to ball velocity, the ball metrics classifier 150 can locate within the imagery, an object determined to be the cue ball and the ball metrics classifier 150 can process each frame of the video clip imagery 185 to locate a different location in a two-dimensional grid defined by each frame of the video clip imagery 185.
The classifier 150 computes a total pixel-wise distance of travel of the ball from a first frame in the sequence of frames of the video clip imagery 185, to a last frame in the sequence. The classifier 150 then converts the pixel-wise distance to a distance in imperial system or metric system units based upon the known dimensions of the table 110 stored in the calibration data structure 180. Finally, the classifier 150 computes the velocity of the ball 120 based upon the converted distance and a known lapse of time from the first frame to the last frame in the sequence of frames of the video clip imagery 185. Optionally, the classifier 150 additionally computes the velocity of the tip of the cue 115 at the moment the tip of the cue 115 strikes the ball 120 based upon a converted pixel-wise distance of travel of the tip of the cue 115 from the first of the sequence of frames to the last of the sequence of frames of the video clip imagery 185 whence the tip is determined to be in contact with the ball 120 accounting for a lapse of time between the first and last of the frames of the video clip imagery 185.
Alternatively, the classifier 150 can process the entire sequence of frames in the video clip imagery 185 in a convolutional neural network trained to predict distance of travel and a velocity of travel of a segmented object such as a ball. In either case, the confidence of the predicted velocity can be specified in terms of a deviation beyond a threshold of the predicted velocity relative to a previous running average of predicted velocities for the player 100 during operation of the cue 115 as stored in the calibration data structure 180. To the extent that the deviation is computed beyond the threshold, an alert can be rendered in the display 140A of the mobile computing device 140.
The classifier 150 can compute others of the metrics 170 such as RPM by locating distinguishable pixels of a polar portion of an exterior surface of the ball 120 in the first frame and tracking a pixel position of the distinguishable pixels at each subsequent frame with a disappearance of the distinguishable pixels at bottom horizon of the ball 120 in a subsequent frame followed by a re-appearance the distinguishable pixels at a top horizon of the ball 120 counting as a single revolution of the ball 120 and an offset from the location of the re-appearance at the top horizon of the ball 120 relative to the polar portion of the ball 120 corresponding to a spin angle quantifiable based upon a recognized direction of movement of the distinguishable pixels (top spin or back spin) and a number of pixels distant from the polar portion and a position on the top horizon of the ball 120 (side spin).
The result is a set of predicted metrics 170, such as ball velocity, ball RPM, ball spin, offset angle of travel, and the like. The ball movement predictor 160 then packages the computed values into a data structure and returns the data structure as the predicted metrics 170 to the computing device 140. The computing device 140 in turn presents the predicted metrics 170 in a metrics display area 140C of the display 140A of the computing device 140. In this way, the player 100 operating the mobile device 140 to capture the video clip imagery 185 receives in return in the same mobile device 140, in near real-time, the predicted metrics 170 of the ball 120 resulting from the player 100 having struck the ball 120 with the cue 115 to cause the ball 120 to motivate along the trajectory 130A.
Aspects of the process described in connection with
In this regard, the host computing platform 200 is communicatively coupled over the data communications network 240 to a remote system 270 supporting the operation of the cue sports social media network 280 in which different cue sports players register, interact with one another through messaging, and record in association therewith in a profile metrics table 235, different cue ball performance metrics such as ball velocity, revolutions, spin and angular trajectory of the ball. The profile metrics table 235 also stores different cue sports play metrics such as wins, losses and the identities of other players against whom the associated one of the registered players has played.
Notably, a computing device 250 including a non-transitory computer readable storage medium can be included with the data processing system 200 and accessed by the processing units 230 of one or more of the computers 210. The computing device stores 250 thereon or retains therein a program module 300 that includes computer program instructions which when executed by one or more of the processing units 230, performs a programmatically executable process for ball movement prediction. Specifically, the program instructions during execution receive from over the data communications network 240, video clip imagery captured by a transmitting one of a multiplicity of remote clients 290. The program instructions process the video clip imagery in a ball movement metrics classifier 225 in order to compute therefrom, ball movement metrics evident from the video clip imagery.
To that end, the ball movement metrics classifier 225 can include several different analytics modules 225A, 225B, 225C, 225D including frame-by-frame analysis 225A for ball velocity computation, frame-by-frame analysis 225B for ball RPM computation, frame-by-frame analysis 225C for ball spin determination, and frame-by-frame analysis 225D for ball angle of movement measurement. As to the ball velocity computation, the frame-by-frame analysis 225A tracks a change in the pixel coordinates of the cue ball located in each frame from frame to frame beginning from when the tip of the cue strikes the cue ball until the cue ball collides with an object ball. The pixel wise distance is then converted to imperial or metric system units of measurement and the frame-by-frame analysis computes a velocity as the converted distance over the period of time lapsed from the first frame to the last frame.
As to the frame-by-frame analysis 225B for ball RPM computation, a distinguishable cluster of pixels in the first frame at a polar apex portion of the cue ball is tracked from one horizon of the ball to an opposite horizon over time in order to recognize a singular revolution and to count multiple revolutions of the cue ball. The frame-by-frame analysis 225C can compute spin by tracking a direction of movement of the distinguishable cluster of pixels, and an offset and a direction of offset of the distinguishable cluster of pixels to determine top spin, back spin and left and right spin. Finally, the frame-by-frame analysis 225D can compute an angle of movement of the ball by extrapolating a direction of the cue recognizable in the frame showing the contacting of the tip of the cue with the cue ball, by measuring a vector of movement—the trajectory—of the ball across all frames, and computing an angle therebetween.
Once the video clip imagery has been classified by the ball metrics classifier 225 into one or more ball movement metrics, the computed ball movement metrics can be compared to the historically computed ball movement metrics in a player configuration 215 data structure in the memory 220 in order to quantify a deviation from the historically computed ball movement metrics. A threshold deviation can determine a degree of confidence in the computed ball metrics and an unacceptable degree of confidence can produce a discarding of the computed ball movement metrics or an annotation of the computed ball metrics with a confidence determination.
But, in any event, the program instructions return the ball movement metrics to the transmitting one of the remote clients 290 for display in a display of the transmitting one of the remote clients 290. As well, the program instructions write an entry in the profile metrics table 235 from over the data communications network 240 to include the ball movement in connection with a registered player associated with the transmitting one of the remote clients 290. To that end, the cue sports social network 280 may determine a leaderboard of other ranking data structure ranking each of the registered players according to dynamically received ball movement metrics. As well, the video clip imagery of each of the registered players may be stored in player content data store 205 and retrieved on demand by individual ones of the registered players in the cue sports social network in connection with the ball movement metrics of any one of the corresponding registered players.
In further illustration of an exemplary operation of the module,
In block 370, an object in the frames at a particular position is determined to be reflective of a stationary cue ball through object recognition. In decision block 380, it is determined whether or not the ball has moved from the particular position. If so, in block 390, contemporaneous one of the frames is marked as the start of a video clip and in decision block 400, it is determined whether or not the cue ball now in motion has collided with an object ball present in a subsequent contemporaneous one of the frames. If so, in block 410 the subsequent contemporaneous one of the frames is marked as the end of the video clip and the video clip is then uploaded to a ball movement predictor in block 420.
In block 430, the ball movement predictor returns to the mobile computing device, one or more ball movement metrics such as velocity, RPM, spin and angle of trajectory. Finally, in block 440, the metrics are displayed on a display of the mobile computing device.
Of import, the foregoing flowchart and block diagram referred to herein illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computing devices according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which includes one or more executable instructions for implementing the specified logical function or functions. In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
More specifically, the present invention may be embodied as a programmatically executable process. As well, the present invention may be embodied within a computing device upon which programmatic instructions are stored and from which the programmatic instructions are enabled to be loaded into memory of a data processing system and executed therefrom in order to perform the foregoing programmatically executable process. Even further, the present invention may be embodied within a data processing system adapted to load the programmatic instructions from a computing device and to then execute the programmatic instructions in order to perform the foregoing programmatically executable process.
To that end, the computing device is a non-transitory computer readable storage medium or media retaining therein or storing thereon computer readable program instructions. These instructions, when executed from memory by one or more processing units of a data processing system, cause the processing units to perform different programmatic processes exemplary of different aspects of the programmatically executable process. In this regard, the processing units each include an instruction execution device such as a central processing unit or “CPU” of a computer. One or more computers may be included within the data processing system. Of note, while the CPU can be a single core CPU, it will be understood that multiple CPU cores can operate within the CPU and in either instance, the instructions are directly loaded from memory into one or more of the cores of one or more of the CPUs for execution.
Aside from the direct loading of the instructions from memory for execution by one or more cores of a CPU or multiple CPUs, the computer readable program instructions described herein alternatively can be retrieved from over a computer communications network into the memory of a computer of the data processing system for execution therein. As well, only a portion of the program instructions may be retrieved into the memory from over the computer communications network, while other portions may be loaded from persistent storage of the computer. Even further, only a portion of the program instructions may execute by one or more processing cores of one or more CPUs of one of the computers of the data processing system, while other portions may cooperatively execute within a different computer of the data processing system that is either co-located with the computer or positioned remotely from the computer over the computer communications network with results of the computing by both computers shared therebetween.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
Having thus described the invention of the present application in detail and by reference to embodiments thereof, it will be apparent that modifications and variations are possible without departing from the scope of the invention defined in the appended claims as follows: