Interaction control method of unattended billiard table, server, medium and product
Through real-time data analysis and static electricity management, the problem of static electricity on the billiard table was solved, the user experience and game fairness were improved, and the normal operation of the billiard table was ensured.
Patent Information
- Application Number
- CN202510718537.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-30
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2045-05-30
AI Technical Summary
In an unattended pool table, static electricity accumulation on the surface of the billiard balls affects their trajectory, causing the ball's trajectory to change and reducing the user's gaming experience.
By acquiring real-time images and environmental data of the billiard table, the movement trajectory of the billiard ball and the electrostatic load are identified, the movement trajectory under the influence of static electricity is predicted, and prompt information is sent to the user when necessary to eliminate electrostatic interference.
It reduces the interference of static electricity on the movement trajectory of billiard balls, improves the user's gaming experience, and ensures the fairness and continuity of the game through automated measures.
Smart Images

Figure CN120654138A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of data processing, and in particular to an interactive control method, server, medium and product for an unattended billiard table. Background Art
[0002] In an era of rapid technological advancement, unattended billiard tables, as an innovative entertainment facility, are gradually transforming the traditional billiards experience. Leveraging advanced technologies such as the Internet of Things, mobile payments, and intelligent control, these tables automate the entire process, from reservations and admission to billing. This provides users with convenient, efficient, and personalized service, while also reducing labor costs and improving management efficiency for billiard room operators.
[0003] Currently, unmanned billiard tables primarily utilize image recognition and sensor fusion technologies to detect the trajectory and position of billiard balls. These technologies capture the motion of the table surface with high-definition cameras and combine data from infrared sensors and laser rangefinders to ensure real-time tracking of the ball's movements. Furthermore, some systems incorporate artificial intelligence algorithms to predict and analyze billiard ball movements, automatically determining shot outcomes and recording match data.
[0004] However, during the operation of unattended pool tables, static electricity easily accumulates on the surface of the balls due to friction between the balls and the table surface, collisions between the balls, and changes in ambient humidity. This static electricity can affect the movement of the balls, causing them to deviate unexpectedly during rolling, altering the intended shot path and reducing the user's gaming experience. Summary of the Invention
[0005] The present application provides an interactive control method, server, medium and product for an unattended billiard table, which can reduce the impact of static electricity on the movement trajectory of billiard balls.
[0006] In a first aspect, the present application provides an interactive control method for an unmanned billiard table, the method comprising: acquiring real-time desktop image data and environmental data of the billiard table; based on the real-time desktop image data, identifying the movement trajectory information of each billiard ball on the table after the user hits the white ball, as well as the hitting data of the cue hitting the white ball when the user hits the white ball; based on the movement trajectory information, the hitting data, the environmental data and the historical movement records of all balls, determining the electrostatic load condition of the surface of each billiard ball; based on preset billiard rules and the real-time position of each billiard ball, determining the target billiard ball that the user will hit into the pocket with the white ball next time; based on the real-time position of each billiard ball and the preset pocket position, determining A set of hitting schemes for pocketing the target billiard ball and a simulated movement trajectory of each billiard ball corresponding to each hitting scheme are determined; based on the hitting scheme set, the real-time position of each billiard ball, and the electrostatic load of each billiard ball, a target predicted movement trajectory of each billiard ball under the influence of static electricity is predicted when the user hits the white ball according to the hitting scheme in the hitting scheme set; based on the target predicted movement trajectory of each hitting scheme and the simulated movement trajectory, a degree of influence of static electricity on the movement trajectory of each billiard ball is determined; if the degree of influence of an abnormally moving billiard ball exceeds a preset degree threshold, a prompt message is sent, where the prompt message is used to prompt the user to eliminate static electricity on the surface of the abnormally moving billiard ball.
[0007] The above technical solution accurately identifies the movement of each billiard ball on the table by acquiring real-time desktop image data and environmental data. It then combines the movement of each ball, shot data, and historical movement records to determine the current static load on the surface of the billiard ball. After determining the target ball's strike plan, it predicts the trajectory of each ball under the influence of static electricity and calculates the degree of static influence on the trajectory. If the static influence on the trajectory of the ball is significant, a prompt message is sent to the user, reminding them to eliminate static electricity on the surface of the ball, reducing the interference of static electricity on the ball's trajectory and improving the user's gaming experience.
[0008] In combination with some embodiments of the first aspect, in some embodiments, the method determines the target billiard ball that the user will hit into the pocket with the white ball next time based on the preset billiard rules and the real-time position of each billiard ball, specifically including: based on the preset billiard rules, taking the billiard balls that are specified to be pocketed as the billiard ball set that the user will hit with the white ball next time; determining the probability of each billiard ball in the billiard ball set to be pocketed according to the positions of all billiard balls and the preset hitting plan set for the white ball; and taking the billiard ball corresponding to the highest probability of being pocketed as the target billiard ball that the user will hit into the pocket with the white ball next time.
[0009] Using this technical solution, a set of playable balls is screened based on preset billiard rules, defining a reasonable range for subsequent target selection and ensuring that hitting actions comply with the rules of the game. The probability of each ball being pocketed is calculated based on the positions of all balls and a preset set of hitting scenarios for the white ball. The ball with the highest pocketing probability is then selected as the target ball. This selection method better aligns with the user's actual needs and logical thinking when selecting the next ball to pocket, providing a reliable foundation for subsequent steps.
[0010] In combination with some embodiments of the first aspect, in some embodiments, the probability of each billiard ball in the billiard ball set entering the pocket is determined based on the positions of all billiard balls and the preset hitting plan set for the white ball, specifically including: calculating the user's hitting proficiency based on the user's hitting pocket rate, the foul rate of the preset foul behavior, and the difference between the hitting time interval and the preset normal hitting time interval; determining the feasibility of the user hitting the white ball according to the preset hitting plan in the preset hitting plan set based on the preset hitting plan set for the white ball and the hitting proficiency; predicting the probability of each billiard ball in the billiard ball set entering the pocket when the white ball is hit according to the preset hitting plan set, the feasibility, and the real-time position of each billiard ball.
[0011] By adopting the above technical solution, the feasibility of the hitting plan is determined based on the preset hitting plan set for the white ball and the user's hitting proficiency, and then the probability of each billiard ball entering the pocket is predicted based on the preset hitting plan set, feasibility and the real-time position of each billiard ball. This fully considers the impact of individual differences of users on the actual hitting situation, and improves the accuracy of the prediction of the probability of entering the pocket.
[0012] In combination with some embodiments of the first aspect, in some embodiments, after the step of sending a prompt message if the impact value of the abnormal movement of the billiard ball exceeds a preset threshold, the method further includes: if the abnormal movement of the billiard ball is detected to leave the table before the user hits the white ball next time, obtaining first hitting data of the cue hitting the white ball when the user hits the white ball next time; based on the first hitting data and the position of each billiard ball when the user hits the white ball next time, predicting a first predicted movement trajectory of each billiard ball without the influence of static electricity; if the actual movement trajectory of each billiard ball does not match the first predicted movement trajectory, determining the abnormal movement position, abnormal movement time point and the first abnormal movement trajectory of each billiard ball based on the actual movement trajectory of each billiard ball and the first predicted movement trajectory; determining whether the user has committed a foul based on historical video data, the abnormal movement position, the abnormal movement time point, the first abnormal movement trajectory and real-time impact data of preset impact parameters affecting the deviation of the billiard ball trajectory; if so, sending a foul message, which is used to prompt the user that the foul has occurred.
[0013] Using this technical solution, after prompting the user to eliminate static electricity, the system further monitors whether the abnormally moving billiard ball has eliminated static electricity. If the abnormally moving billiard ball leaves the table, indicating that the static electricity has been eliminated, the system predicts the trajectory of the billiard ball without the influence of static electricity. If the actual trajectory of the billiard ball does not match the predicted trajectory, a comprehensive analysis is performed combining historical video data and real-time impact data based on preset impact parameters to determine whether the abnormal billiard ball movement is due to a user foul. If a user foul is detected, a foul message is promptly sent to maintain the fairness and justice of the game.
[0014] In combination with some embodiments of the first aspect, in some embodiments, the real-time influence data based on historical video data, the abnormal movement position, the abnormal movement time point, the first abnormal movement trajectory and the preset influence parameters affecting the billiard ball trajectory deviation is used to determine whether the user has committed a foul behavior, specifically including: based on the historical desktop image data at the abnormal movement time point and the position of each image acquisition device, identifying the image occlusion area and the corresponding occlusion category on the desktop at the abnormal movement time point, the occlusion category including human occlusion and normal occlusion; if the abnormal movement position is located in the image occlusion area with the occlusion category being the human occlusion, based on the first abnormal movement trajectory and the real-time influence data of the preset influence parameters affecting the billiard ball trajectory deviation, determining the movement possibility of the abnormal collision billiard ball moving according to the first abnormal movement trajectory under the influence of the real-time influence data; if the movement possibility is lower than the preset possibility threshold, determining that the user has committed a foul behavior.
[0015] The above technical solution combines historical desktop image data at the time of abnormal movement with the position of the image acquisition device to identify image occlusion areas and their categories. This allows for distinguishing between normal occlusion and human interference, providing a basis for determining foul behavior. When the abnormal movement location is within the human occlusion area, the likelihood of the billiard ball moving along the actual movement trajectory is further evaluated based on the real-time impact data of the first abnormal movement trajectory and preset impact parameters. If the movement probability is lower than the threshold, it indicates that the abnormal movement of the billiard ball cannot be attributed to environmental factors or normal hitting operations. Therefore, the user is judged to have committed a foul, reducing the probability of misjudgment and maintaining the fairness of unattended billiard table games.
[0016] In combination with some embodiments of the first aspect, in some embodiments, after the step of determining whether the user has committed a foul based on historical video data, the abnormal movement position, the abnormal movement time point, the first abnormal movement trajectory, and the real-time impact data of the preset impact parameters that affect the deviation of the billiard ball trajectory, the method further includes: if not, determining the abnormal impact parameters based on the preset normal impact parameter range and the real-time impact data of the preset impact parameters that affect the deviation of the billiard ball trajectory; if the abnormal impact parameters all belong to the preset automatic adjustment parameters, controlling the billiard table to adjust the values of the abnormal impact parameters to within the normal parameter range; if there is any abnormal impact parameter that does not belong to the preset automatic adjustment parameter, sending a billiard table replacement information, which is used to prompt the user to replace the billiard table; controlling the preset robotic arm for replacing the billiard table to place the positions of each billiard ball on the table according to the corresponding billiard ball positions on the billiard table.
[0017] By adopting the above technical solution, after eliminating user fouls, the abnormal influencing parameters that cause abnormal billiard ball trajectories can be located by comparing the preset normal influencing parameter range with the real-time influencing data. For abnormal influencing parameters that fall within the preset automatic adjustment parameters, the billiard table can automatically correct the parameters and automatically repair the fault, ensuring the normal progress of the game and reducing interference with the user experience due to equipment factors. For parameter anomalies that cannot be automatically adjusted, the user is promptly sent a message to replace the billiard table, which not only avoids game interruptions or poor experience due to equipment problems, but also effectively protects the rights of users. At the same time, the preset robotic arm automatically completes the rearrangement of the billiard balls to ensure the continuity of the game.
[0018] In combination with some embodiments of the first aspect, in some embodiments, after the step of sending a prompt message if the impact value of the abnormal movement of the billiard ball exceeds a preset degree threshold, the method also includes: if the abnormal movement of the billiard ball is not detected to leave the table before the user hits the white ball next time, based on the first hitting data of the cue hitting the white ball when the user hits the white ball next time, the position of each billiard ball when the user hits the white ball next time, and the electrostatic load of each billiard ball, predicting a second predicted movement trajectory of each billiard ball under the influence of static electricity; screening out abnormal billiard balls whose end position is outside the table and the corresponding second abnormal movement trajectory from the second predicted movement trajectory of all billiard balls; based on the second abnormal movement trajectory, identifying the abnormal position and abnormal height of the abnormal billiard ball flying out of the table; obtaining a target protection measure that matches the abnormal position and the abnormal height in a preset protection measure set; and controlling the billiard table to execute the target protection measure.
[0019] By adopting the above technical solution, when the static electricity on the surface of the billiard balls is not eliminated, the movement trajectory of each billiard ball under the influence of static electricity is predicted, and abnormal billiard balls with the final position outside the table and their trajectories are screened out, and the position and height at which the abnormal billiard balls fly off the billiard table are identified, so that the appropriate target protective measures can be accurately matched and executed from the preset protective measures set, avoiding the safety hazards or loss and damage of billiard balls caused by the accidental flying off the table due to the influence of static electricity.
[0020] In second aspect, an embodiment of the present application provides an interactive control server, comprising: one or more processors and a memory; the memory is coupled to the one or more processors, the memory is used to store computer program code, the computer program code includes computer instructions, and the one or more processors call the computer instructions to enable the interactive control server to execute the method described in the first aspect and any possible implementation method of the first aspect.
[0021] In a third aspect, an embodiment of the present application provides a computer-readable storage medium comprising instructions. When the instructions are executed on an interactive control server, the interactive control server executes the method described in the first aspect and any possible implementation of the first aspect.
[0022] In a fourth aspect, the present application provides a computer program product, which, when running on an interactive control server, enables the interactive control server to execute the method described in the first aspect and any possible implementation manner of the first aspect.
[0023] It is understandable that the interactive control server provided in the second aspect, the storage medium provided in the third aspect, and the computer program product provided in the fourth aspect are all used to execute the method provided in this application. Therefore, the beneficial effects that can be achieved can be referenced to the beneficial effects of the corresponding methods and will not be repeated here.
[0024] One or more technical solutions provided in the embodiments of this application have at least the following technical effects or advantages: 1. This application determines the current static charge on the surface of each billiard ball by combining its movement, shot data, and historical movement records. It then predicts the trajectory of each ball under the influence of static electricity and calculates the degree of static impact on the trajectory. If static electricity is found to be significantly affecting the trajectory of the ball, a prompt message is sent to the user, reminding them to eliminate static electricity on the surface of the ball, thereby reducing the interference of static electricity on the ball's trajectory and improving the user's gaming experience.
[0025] 2. This application combines historical desktop image data at the time of abnormal movement with the image acquisition device location to identify image occlusion areas and their categories, providing a basis for determining foul behavior. When the abnormal movement location is within a human-occluded area, the system further assesses the likelihood of the billiard ball moving along the actual movement trajectory based on the real-time impact data of the first abnormal movement trajectory and preset impact parameters to determine whether the user has committed a foul. This reduces the probability of misjudgment and ensures fairness in unattended billiard table competitions.
[0026] 3. This application automatically adjusts parameters that fall under the preset automatic adjustment parameters, allowing the pool table to automatically adjust the parameters and automatically repair the fault, ensuring the normal progress of the game and reducing interference with the user experience due to equipment factors. For parameter anomalies that cannot be automatically adjusted, the user is promptly notified of a pool table replacement request, thus avoiding game interruptions or poor experience caused by equipment problems and effectively protecting user rights. Furthermore, a preset robotic arm automatically repositions the billiard balls, ensuring the continuity of the game. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] Figure 1 1 is a schematic structural diagram of a system architecture applicable to the interactive control method of an unattended billiard table in an embodiment of the present application; Figure 2 This is a flow chart of an interactive control method for an unattended billiard table according to an embodiment of the present application; Figure 3 is another flow chart of the interactive control method of an unattended billiard table in an embodiment of the present application; Figure 4 This is a schematic diagram of an exemplary hardware structure of the interactive control server in an embodiment of the present application. DETAILED DESCRIPTION
[0028] The terms used in the following examples of the present application are only for the purpose of describing specific embodiments and are not intended to limit the present application. As used in the specification and appended claims of this application, the singular expressions "a," "an," "said," "above," "the," and "this" are intended to include plural expressions as well, unless the context clearly indicates otherwise. It should also be understood that the term "and / or" used in this application refers to any or all possible combinations comprising one or more of the listed items.
[0029] In the following, the terms "first" and "second" are used for descriptive purposes only and should not be understood to imply or suggest relative importance or implicitly indicate the number of the technical features indicated. Therefore, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features. In the description of the embodiments of this application, unless otherwise specified, "plurality" means two or more.
[0030] Figure 1 It is a structural diagram of a system architecture applicable to the interactive control method of an unattended billiard table in an embodiment of the present application.
[0031] See also Figure 1 ,The interactive control system of the unattended billiard table includes an image acquisition device, a sensor, a billiard table and an interactive ,control server.
[0032] The interactive control server, the core component of the system, analyzes and processes image data captured by the image acquisition devices and sends control commands to the pool table. Image acquisition devices, placed above and to the sides of the pool table, capture image data of the surface and transmit it to the interactive control server. Sensors collect environmental data around the pool table and transmit it to the interactive control server. The pool table receives control commands from the interactive control server and operates accordingly.
[0033] Through the above system architecture, the interactive control system of the unmanned billiard table can automatically identify the user's goals, fouls, etc. during the game by analyzing the image data collected by the image acquisition device, thereby realizing the automated operation of the unmanned billiard table and achieving true unmanned management.
[0034] Unmanned billiard tables primarily utilize image recognition and sensor fusion technologies to detect the movement and position of billiard balls. These technologies capture the motion of the table surface with high-definition cameras and combine data from infrared sensors and laser rangefinders to ensure real-time tracking of the ball's movements. Furthermore, some systems incorporate artificial intelligence algorithms to predict and analyze billiard ball movements, automatically determining shot outcomes and recording match data. However, during the operation of unmanned billiard tables, static electricity can easily accumulate on the surface of the balls due to friction between the balls and the table surface, collisions between balls, and changes in ambient humidity. This static electricity can affect the ball's trajectory, causing it to deviate unexpectedly during rolling, altering the intended shot path, and degrading the user's gaming experience.
[0035] The interactive control method for an unattended billiard table, as described in the embodiments of this application, combines the movement of each billiard ball, shot data, and historical movement records to determine the current static load on the billiard ball surface. It then predicts the trajectory of each ball under the influence of static electricity and calculates the degree of static impact on the trajectory. If a significant degree of static impact on the trajectory of a ball is detected, a prompt message is sent to the user, reminding them to eliminate static electricity on the surface of the ball, thereby reducing the interference of static electricity on the trajectory of the ball and improving the user's gaming experience.
[0036] The following combination Figure 2 To illustrate the method of the embodiment of the present application.
[0037] See also Figure 2 , which is a flow chart of the interactive control method of an unattended billiard table in an embodiment of the present application.
[0038] S201: Acquire real-time desktop image data and environmental data of a billiard table.
[0039] Specifically, by establishing a communication connection with image acquisition devices pre-installed above and on the sides of the billiard table, real-time desktop image data of the billiard table acquired by the image acquisition devices is acquired.
[0040] At the same time, by establishing communication connections with various sensors deployed around the billiard table, the environmental data around the billiard table collected by the sensors is obtained, including temperature and humidity, electrostatic fields, air particles and other environmental parameter data that affect the generation and accumulation of static electricity.
[0041] Among them, the sensors include temperature and humidity sensors (used to monitor ambient temperature and humidity in real time), electrostatic field sensors (used to detect the intensity and changes of the surrounding electrostatic field), and air particulate matter sensors (used to detect the content of dust and other particles in the air).
[0042] S202: Based on the real-time desktop image data, identify the movement trajectory information of each billiard ball on the desktop after the user hits the white ball and the hitting data of the cue hitting the white ball when the user hits the white ball.
[0043] Among them, the hitting data includes hitting force and hitting angle.
[0044] Specifically, object detection algorithms, such as YOLO and Faster R-CNN, are first used to identify objects such as white balls, colored balls, and billiard cues in an image and assign a unique identifier to each object. Taking YOLO as an example, its deep learning-based convolutional neural network architecture is trained on a large number of image data containing billiard balls and billiard cues to learn the characteristic patterns of different objects. During the detection process, YOLO divides the input image into multiple grids, each of which is responsible for predicting the presence of a possible object. By calculating the bounding box, class probability, and confidence score for each object within each grid, it quickly and accurately identifies all objects in the image. Once an object is detected, a unique identifier is assigned to each object. This identifier can be a numeric number or a specific code, which is used to distinguish different objects in subsequent processing. At the same time, information such as the position coordinates and bounding box dimensions of each object in the image is recorded, providing basic data for subsequent trajectory tracking and position relationship analysis.
[0045] Then, based on real-time desktop image data, the trajectory of each billiard ball is tracked through continuous frame image analysis. Using optical flow, the pixel displacement of each ball in adjacent frames is calculated. This is converted into actual physical displacement based on the time interval and image size, thereby obtaining the trajectory of the billiard ball on the table. Optical flow is a calculation method based on image pixel motion information, assuming that pixel motion between adjacent frames is continuous and consistent. By calculating the displacement vector of each pixel on the surface of the billiard ball in adjacent frames, the direction and distance of the ball's movement on the image plane are determined. Pixel displacement is converted into actual physical displacement based on the time interval and image size of image acquisition. If the pixel displacement of the billiard ball cannot be detected in adjacent frames, that is, if the billiard ball is occluded by a cue stick or other object, a trajectory prediction algorithm (such as a Kalman filter) is used to estimate the ball's position during the occlusion. The ball's trajectory during the occlusion is predicted based on the velocity and acceleration of the previous frame, and the predicted position is used to replace the missing data during the occlusion.
[0046] When the actual physical displacement of the white ball changes from zero at a certain point in time (i.e., from static to dynamic), it indicates that the user has started to hit the white ball, and this time point is recorded as the start time point. When the actual physical displacement of all balls returns to zero at a certain point after the start time point (i.e., from dynamic to static), it indicates that all billiard balls have stopped moving, and this time point is recorded as the end time point. By recording the position information of each billiard ball in multiple consecutive image frames between the start time point and the end time point, and connecting these position points in chronological order, the movement trajectory of each billiard ball on the table and the time when the billiard ball reached each track point in the movement trajectory are obtained.
[0047] Next, based on the desktop image data at the starting time, a deep learning model is used to extract the contour features and spatial position information of the cue and ball at the moment of impact, thereby determining the impact angle of the cue. This model can be built using a convolutional neural network (CNN). During the model training process, a large dataset containing images of the cue hitting the ball is used to train the model, enabling it to learn the characteristic patterns of the cue and ball in different postures. The images in the dataset are annotated with information such as the cue and ball's contours, key node locations, and relative positional relationships. The desktop image data at the starting time is input into the trained CNN model. Through multiple layers of convolution and pooling operations, the model extracts the contour features of the cue and ball in the image and identifies the impact angle of the cue hitting the ball.
[0048] The force of the strike is calculated based on the trajectory of the cue ball after the start time. The optical flow method is used to determine the displacement of the cue ball within a preset time after the strike. The time interval is calculated based on the image acquisition frame rate, and the initial velocity v of the cue ball is derived using the kinematic formula v = Δx / Δt. Furthermore, the predetermined mass m of the billiard ball and the estimated impact time Δt (established through empirical analysis of a large number of strike video data) are combined with the momentum theorem to derive the force F = mv / Δt, thus calculating the force at the moment of impact.
[0049] S203: Determine the electrostatic load on the surface of each billiard ball based on the movement trajectory information, the hitting data, the environmental data, and the historical movement records of all balls.
[0050] Specifically, based on the movement trajectory information of all billiard balls, the collision time point, collision speed, and collision object (including the cue, billiard ball, and table frame, etc.) of each billiard ball's collision with other billiard balls or the table frame are determined. The position, movement direction, and movement speed of each billiard ball at each time point (i.e., each trajectory point) between the start time point and the end time point are obtained. Each time point between the start time point and the end time point is traversed. For each billiard ball, the position information of the billiard ball at that time point is first compared with the preset position information of the table frame. If the billiard ball's position is within the preset collision determination area of the table frame, and the billiard ball's movement direction at the time point before the current time point is toward the frame, it is determined that the billiard ball has collided with the table frame. The time point at this time is recorded as the collision time point, the speed of the billiard ball at the moment of collision is used as the collision speed, and the table frame is used as the collision object. The position information of the billiard ball at that point in time is then compared with the position information of all other billiard balls at that point in time. If the position information of the first billiard ball is within a preset range, and the movement direction of the first billiard ball intersects with the movement direction of the billiard ball at the previous point in time, that point in time is determined to be the collision time point. The speeds of the two billiard balls at the collision time point are recorded as the collision speeds, and the two balls are considered the collision objects. Furthermore, if the billiard ball is white, the starting time period is recorded as the collision time point, and the collision object is the cue.
[0051] For each billiard ball, the system first retrieves the first electrostatic load of each ball corresponding to the target end time of the previous shot from the historical movement record database stored in the system. Simultaneously, based on the movement trajectory of the ball during the current shot, the start time of movement (the time when the position of the trajectory point changes from being constant to starting to change) and the stop time (the time when the position of the trajectory point changes from being constantly changing to being constant) are recorded. The movement trajectory of the ball is then divided into multiple time periods or time points and their corresponding states based on chronological order and the ball's movement status. For example, if the target billiard ball stops moving after two collisions between the start time point and the end time point, the time from the target end time point to the start movement time point is divided into the first time period, and the state is a static state; the time point from the start movement to the first collision time point is divided into the second time period, and the state is a moving state; the time point of the first collision is divided into the third time point, and the state is a collision state; the time point from the first collision to the second collision time point is divided into the fourth time period, and the state is a moving state; the time point of the second collision is divided into the fifth time point, and the state is a collision state; the time point from the last collision to the stop movement time point is divided into the sixth time period, and the state is a moving state; the time point from the stop movement to the end time point is divided into the seventh time period, and the state is a static state.
[0052] Then, in chronological order, according to the state of the billiard ball in each time period or time point, calculate the electrostatic load of the billiard ball in each time period or time point, and use the electrostatic load of the last time period or time point as the electrostatic load of the billiard ball after the ball hits the ball here. Taking the above-mentioned target billiard ball as an example, first calculate the first electrostatic load of the first time period according to the state of the billiard ball in the first time period according to the calculation method corresponding to the state of the billiard ball. Then, according to the state of the billiard ball in the second time period and the first electrostatic load, calculate the second electrostatic load of the second time period according to the corresponding calculation method. Then, according to the state of the billiard ball at the third time point and the second electrostatic load, calculate the third electrostatic load of the third time period. Afterwards, according to the state of the billiard ball in the fourth time period and the third electrostatic load, calculate the fourth electrostatic load of the fourth time period. Calculate in chronological order according to the above method, and finally obtain the seventh and fourth electrostatic loads of the seventh time period (that is, the electrostatic load of the target billiard ball after the ball hits the ball here). Among them, the method for calculating the electrostatic load of the billiard ball based on factors such as the state of the billiard ball and the electrostatic load is as follows: If the billiard ball is in a stationary state, the static load of the stationary time period is determined based on the length of the stationary time period corresponding to the stationary state, combined with the temperature and humidity information in the environmental data. Because the environmental humidity has a significant impact on the dissipation of static electricity, generally speaking, the higher the humidity, the easier it is for static electricity to dissipate. The server stores a correspondence table between temperature and humidity and static dissipation rate. According to the real-time acquired environmental humidity value, the corresponding static dissipation rate is searched in the correspondence table. The static time is multiplied by the static dissipation rate to obtain the amount of static electricity dissipated during the stationary time period. The static load calculated in the previous time period or time point of the stationary time period is subtracted from the dissipation amount to obtain the static load of the stationary time period.
[0053] If the billiard ball is in motion, the static electricity load during that motion period is determined based on the speed of movement between the ball and the tablecloth (also known as the tablecloth, which covers the billiard table) at each time point during the motion period corresponding to the motion period, as well as environmental data. As the billiard ball slides on the tablecloth, friction between the two generates static electricity. Environmental humidity, air particle concentration, and static electricity field strength can influence the generation and accumulation of static electricity. A pre-stored friction static electricity generation model trained based on extensive experimental data is stored in the server. This model uses motion speed, tablecloth material friction coefficient, air particle concentration, and ambient static electricity field strength as input parameters. The average motion speed of the billiard ball, real-time air particle concentration, and static electricity field strength data for that time period are input into the model. The model outputs the static electricity generated by friction between the ball and the tablecloth. This static electricity amount is then added to the static electricity load calculated for the previous time period or time point to determine the static electricity load for the motion period.
[0054] If the billiard ball is in a collision state, at the collision time point corresponding to the collision state, the electrostatic load corresponding to the collision time point is determined based on the collision speed, the charge carried by the collision object (obtained by previously calculating the electrostatic load of the collision object before its corresponding collision), and environmental data.
[0055] For collisions between billiard balls, a mathematical model for charge transfer based on extensive experimental data is pre-stored on the server. This model accounts for factors such as collision velocity, the material of the colliding balls, the initial surface charge of the balls, ambient humidity, and electrostatic field strength. When multiple balls collide, the model calculates the amount of charge transfer based on the velocity at the moment of collision, the material properties of the balls (different materials have different charge transfer characteristics upon collision), and the initial surface charge of each ball. The model also considers the inhibitory effect of ambient humidity on charge transfer (higher humidity makes charge transfer more difficult) and the influence of electrostatic field strength on charge transfer (electrostatic field strength can either promote or inhibit charge transfer). The charge of the ball is then updated based on the calculated charge transfer. If the charge transfer is greater than zero, the ball's charge is calculated as the target electrostatic load calculated for the period or time preceding the collision, minus the charge transfer. If the charge transfer is less than zero, the ball's charge is calculated as the target electrostatic load plus the charge transfer.
[0056] When a billiard ball collides with the table frame, since the table frame is generally considered a large conductor, charge redistribution occurs when the billiard ball collides with it. The server first extracts key parameters from environmental data, such as humidity and electrostatic field strength. Humidity significantly affects charge retention. Higher humidity increases the likelihood that surface charge on the billiard ball will be lost through conduction through water molecules in the air. Electrostatic field strength also alters the charge distribution between the billiard ball and the table frame. The server then calculates the electrostatic charge after the billiard ball collision using a pre-established multivariate function model.
[0057] When a billiard ball collides with a cue, the charge transfer characteristics are complex due to the variety of cue materials (such as wood and carbon fiber) and the potential coating on the cue surface. Based on the cue material type, the server retrieves the corresponding function model from a pre-stored charge transfer database for different materials. For example, for a wooden cue, the base charge transfer coefficient is first determined based on the wood type (such as maple or oak), and then adjusted based on the insulating properties of the cue's surface coating. Simultaneously, data such as the impact force, impact angle, initial charge of the ball, ambient humidity, and electrostatic field strength are substituted into the pre-set cue-ball collision charge transfer function model to calculate the electrostatic load after the collision.
[0058] S204: Based on the preset billiard rules and the real-time positions of the billiard balls, determine the target billiard ball that the user will hit into the pocket with the white ball next time.
[0059] Specifically, the currently executed preset billiard rule type is first obtained. Common billiard rules include Chinese eight-ball, American pool, snooker, etc.
[0060] Then, based on the preset billiard rules and the historical shot-pocketing data of each shot from the start of the game to the current time point, determine the set of billiard balls that the user needs to pocket with the white ball next time according to the billiard rules.
[0061] If the user did not commit a foul during the current shot, for Chinese Eight-Ball and American Eight-Ball, the remaining ball types and numbers on the table are determined based on the historical shot-pocketing data for each shot between the start and the current time point (including whether the shot was pocketed, the type and number of the pocketed ball, the user who shot the ball, whether a foul was committed, and the foul behavior). The shot type (determined based on the type of the ball pocketed by the shooting user) is also determined, as is the shot type of the next shot (if the first user's shot did not pocket the ball, the shooting user is the second user; if the first user's shot pocketed the ball, the shooting user is the first user). If any of the remaining billiard ball types match the shot type, all matching balls are added to the billiard ball set. If no matching ball type exists, the 8-ball is added to the billiard ball set. For snooker, when there are red balls in the remaining billiards, all the red balls in the remaining billiards are added to the billiard set; when there are no red balls in the remaining billiards, the billiard with the lowest colored ball score in the remaining billiards is added to the billiard set.
[0062] If the user commits a foul during this shot, retrieve the foul corresponding to the shot from the historical shot-in-pocket data. Obtain a table of fouls corresponding to the billiards rules. Search the table for the fouls and the corresponding batting party transfer and billiards hitting rules. Determine the billiards ball set based on the billiards hitting rules and the remaining ball types and numbers.
[0063] Then, based on the real-time position information of each billiard ball in the collection and the pocket positions, the probability of each ball being pocketed is determined. The server first builds a three-dimensional simulation model that accurately reproduces the dimensions of the billiard table, the pocket positions, and the real-time positions of each ball on the table. It also obtains the preset range of force and angle within which the cue can strike the white ball. Next, a detailed parameter partitioning is performed within these preset force and angle ranges. The force and angle are each divided into several discrete values, forming a matrix of combined parameters. For each force and angle combination in the matrix, the trajectory of the billiard ball is simulated using the principles of kinematics and dynamics, combined with the physical properties of the billiard ball (mass, radius, etc.), the friction coefficient of the billiard table, and air resistance. During the simulation, numerical calculation methods are used to divide the motion of the billiard ball into extremely small time steps. Within each time step, the net force acting on the billiard ball (including friction, air resistance, etc.) is calculated according to Newton's second law, and the velocity and position of the ball are then updated accordingly. When a billiard ball collides with another ball or the table frame, the velocity and direction of the ball after the collision are updated based on collision theory (elastic or inelastic, with the appropriate collision model selected based on the actual situation). During this process, the position information of each billiard ball at different time steps is recorded in real time. This position information is then concatenated to obtain the trajectory of each ball. This trajectory information includes the coordinate sequence of each ball in three-dimensional space, the direction of movement, and the velocity value at different trajectory points.
[0064] If the ball's position falls within the pocket's detection area (a reasonable three-dimensional spatial range based on the pocket's dimensions), the ball is considered pocketed, and the information about the pocketed ball in this simulation is recorded. After completing the simulation for all combinations of shot parameters, the number of pockets for each ball across all simulations is counted. For each ball in the set, the number of pockets is divided by the total number of simulations to obtain the pocket probability for that ball.
[0065] Finally, the probability of each billiard ball entering the pocket is sorted, and the billiard ball with the highest probability of entering the pocket is selected as the target billiard ball that the user will hit with the white ball to pocket next time.
[0066] S205 : Based on the real-time position of each billiard ball and the preset pocket position, determine a set of hitting schemes for hitting the target billiard ball into the pocket and a simulated moving trajectory of each billiard ball corresponding to each hitting scheme.
[0067] Specifically, the information about the balls pocketed in the simulation at different hitting forces and hitting angles in step S204 and the motion trajectories of each ball are obtained. Each simulated pocketed ball information is traversed. If the pocketed ball information includes the target ball, the simulated hitting forces and hitting angles are combined into a hitting scenario, which is added to the hitting scenario set. The motion trajectories of each ball obtained in the simulation are then used as simulated motion trajectories. After the traversal is complete, a hitting scenario set for pocketing the target ball and the simulated motion trajectories of each ball corresponding to each hitting scenario are obtained.
[0068] S206. Based on the hitting plan set, the real-time position of each billiard ball, and the electrostatic load of each billiard ball, predict the target movement trajectory of each billiard ball under the influence of static electricity when the user hits the white ball according to the hitting plan in the hitting plan set.
[0069] Specifically, for each hitting scheme in the hitting scheme set, the hitting force and hitting angle information are extracted. At the same time, the real-time position data of each billiard ball and the electrostatic load calculated in step S203 are retrieved.
[0070] Next, a billiards motion simulation model was constructed that incorporates the influence of electrostatics. This model is based on Newton's laws of motion and incorporates electrostatic forces as an additional influencing parameter. During the construction process, the calculation method of the electrostatic force was first determined. According to Coulomb's law, the electrostatic force between two charged billiard balls is F = k × q1q2 / r 2 , where k is the electrostatic force constant, q1 and q2 are the electrostatic charges of the two colliding billiard balls, and r is the distance between their centers of mass at the moment of collision. Similar principles are used to calculate the electrostatic interaction force when there is a charge difference between the billiard balls and the statically charged table frame or cue.
[0071] Subsequently, the server divides the time into extremely short time steps, and iteratively calculates the motion state of the billiard ball within each time step. For each hitting plan, first, based on the hitting force and hitting angle, the kinematic formula is used to calculate the initial velocity vector of the white ball at the moment of hitting, and its initial motion state is determined. Then, the friction force on the billiard ball (related to the friction coefficient of the billiard table surface and the mass of the billiard ball), air resistance (related to air density, billiard ball movement speed, windward area, etc.), other billiard balls, the table frame, and the electrostatic force of the cue on the billiard ball are considered. By vectorizing these forces, according to Newton's second law F=ma, the acceleration of the billiard ball within the time step is calculated. Then, according to the kinematic formulas v=v0+at and x=x0+v0t+1 / 2at 2 , update the speed and position of the billiard ball.
[0072] When a billiard ball collides with another, the server not only calculates its post-collision velocity and direction according to traditional collision theories (e.g., elastic or inelastic collision models), but also accounts for charge transfer caused by differences in electrostatic loads at the moment of collision, recalculating the ball's electrostatic load after the collision. Furthermore, changes in the electrostatic force generated during the collision are fed back into the force analysis of the ball in real time, influencing the ball's motion in subsequent time steps. If a billiard ball collides with the table frame, in addition to changing its direction according to the frame's collision rules, the server also calculates the electrostatic interaction between the ball and the frame based on factors such as the frame's conductive properties and ambient humidity, adjusting the charge distribution and electrostatic force on the ball to update the ball's trajectory. As the ball rubs against the table, the magnitude and direction of the friction force acting on the ball are dynamically adjusted based on the ball's electrostatic load, the table's electrostatic properties, as well as ambient humidity and air particulate matter concentration.
[0073] During the entire simulation process, the server continuously records the position, velocity, acceleration and other information of each billiard ball at each time step, and connects these position information in chronological order to form the target predicted movement trajectory of each billiard ball under the hitting plan.
[0074] S207 : Determine the influence degree of static electricity on the movement trajectory of each billiard ball based on the target predicted movement trajectory and the simulated movement trajectory of each hitting plan.
[0075] Specifically, for each shot in the set of shot plans, the predicted target trajectory of each billiard ball corresponding to that shot plan is compared with the simulated trajectory to determine the degree of static electricity's impact on the trajectory of each ball. The position deviation Δx and directional deviation Δθ of the two trajectories at the same time point are calculated (the directional deviation can be calculated by calculating the angle between the tangents of the two trajectories). These position and directional deviations are then combined according to a certain weight. For example, the position deviation weight can be set to w1 and the directional deviation weight to w2 (w1 + w2 = 1). The impact value I = w1 × Δx + w2 × Δθ.
[0076] S208: If the impact value of the abnormal movement of the billiard ball exceeds the preset threshold, a prompt message is sent.
[0077] If the impact value of the abnormal movement of the billiard ball exceeds the preset threshold, a control instruction is sent to a preset display screen or speaker or other prompt device. After receiving the control instruction, the prompt device displays or plays a prompt message.
[0078] The prompt information is used to prompt the user to eliminate static electricity on the surface of the abnormally moving billiard ball.
[0079] In an embodiment of the present application, by acquiring real-time desktop image data and environmental data, the movement of each billiard ball on the table is accurately identified. Furthermore, the static load on the current surface of each billiard ball is determined by combining the movement of each billiard ball, shot data, and the historical movement records of each billiard ball. After determining the target ball's hitting plan, the trajectory of each billiard ball under the influence of static electricity is predicted, and the degree of static influence on the trajectory is calculated. If the degree of static influence on the trajectory of the billiard ball is found to be significant, a prompt message is promptly sent to the user, reminding the user to eliminate static electricity on the surface of the billiard ball, thereby reducing the interference of static electricity on the trajectory of the billiard ball and improving the user's gaming experience.
[0080] The following combination Figure 3 To further illustrate the method of the embodiment of the present application.
[0081] See also Figure 3 , is another flow chart of the interactive control method of an unattended billiard table in an embodiment of the present application.
[0082] S301: Acquire real-time desktop image data and environmental data of a billiard table.
[0083] S302: Based on the real-time desktop image data, identify the movement trajectory information of each billiard ball on the desktop after the user hits the white ball and the hitting data of the cue hitting the white ball when the user hits the white ball.
[0084] S303: Determine the electrostatic load on the surface of each billiard ball based on the movement trajectory information, the hitting data, the environmental data, and the historical movement records of all balls.
[0085] S304: Based on the preset billiard rules, the billiard balls that are pocketed are used as the set of billiard balls that the user will hit with the white ball next time.
[0086] Steps S301-S304 and Figure 2 Steps S201 to S204 in the illustrated embodiment are similar, and reference may be made to the description of steps S201 to S204 , which will not be repeated here.
[0087] S305: Calculate the user's batting proficiency based on the user's shot-in-the-pocket rate, the foul rate of the preset foul behavior, and the difference between the batting time interval and the preset normal batting time interval.
[0088] Specifically, a first proficiency score based on the potting rate is calculated. The server records each of the user's shots in real time, counting the total number of shots and the number of successful pots. The potting rate is calculated by dividing the number of pots by the total number of shots. To more comprehensively assess the impact of the potting rate on proficiency, the server analyzes the fluctuations in the user's potting rate across multiple games and calculates the standard deviation of the potting rate. A smaller standard deviation indicates a more stable user's goal-scoring performance. Based on the preset potting rate-proficiency evaluation rules, the server performs a weighted calculation on the potting rate and the potting rate standard deviation to derive the first proficiency score based on the potting rate.
[0089] Next, a second proficiency score is calculated based on the pre-set foul rate. The server pre-stores a variety of fouls and their corresponding criteria. During the game, the server analyzes the image data transmitted by the image acquisition device, combined with the shot data acquired in step S302, to monitor in real time whether the user has committed a foul. Once a foul is detected, it is recorded. The number of pre-set fouls among all recorded fouls is then counted and divided by the total number of fouls to determine the foul rate for the pre-set foul. The corresponding second proficiency score is then retrieved from a pre-set foul rate-proficiency score table.
[0090] Next, a third proficiency score based on the time interval between shots is calculated. The user's average time interval between shots throughout the entire game is calculated, and the difference between the standard time interval under the billiards rules and the average time interval is calculated. A first score corresponding to this difference is searched in a preset score table. Simultaneously, the time interval data during the game is discretized and divided into multiple time intervals. The proportion of shots within each time interval to the total number of shots is calculated. By analyzing the distribution of each interval, the stability of the user's batting rhythm is determined. If the majority of the time intervals between shots are concentrated within a smaller interval, the user's batting rhythm is stable; conversely, if the distribution is more dispersed, the rhythm is unstable. Based on the stability, a corresponding second score is obtained from a preset rhythm stability score table. The first and second scores are weighted and summed according to a certain weight to obtain a third proficiency score based on the time interval between shots.
[0091] Finally, the first proficiency score, the second proficiency score, and the third proficiency score are weighted and calculated according to pre-set weights to obtain the user's comprehensive proficiency score in this game.
[0092] S306: Based on the preset hitting scheme set and the hitting proficiency of the white ball, determine the feasibility of the user hitting the white ball according to the preset hitting scheme in the preset hitting scheme set.
[0093] Specifically, a set of preset hitting schemes is first obtained, each scheme including specific hitting force and hitting angle parameters.
[0094] For each preset hitting scenario, a pre-established database of hitting proficiency-to-operation error mappings is retrieved. This database, trained using extensive experimental data, records the correspondence between different hitting proficiency scores and the force and angle error ranges that may occur in actual hitting operations. Based on the user's comprehensive hitting proficiency score, the corresponding force and angle error ranges are retrieved from the database.
[0095] Then, the upper and lower limits of the error range are added to and subtracted from the preset force in the preset striking scheme to obtain the force fluctuation range. Simultaneously, the angle values within the error range are added to and subtracted from the preset angle in the preset striking scheme to obtain the angle fluctuation range. Multiple fluctuating striking schemes are then recombined based on the force fluctuation range and the angle fluctuation range.
[0096] Next, according to the method of simulating the motion trajectory of each billiard ball according to the hitting scheme and the position of each billiard ball in step S204, the first simulated motion trajectory of each billiard ball corresponding to the preset hitting scheme and the second simulated motion trajectory of each billiard ball corresponding to multiple wave hitting schemes are simulated.
[0097] Finally, the first simulated trajectory is compared with multiple second simulated trajectories to analyze the similarity of the trajectories. Specifically, the Euclidean distance between each second simulated trajectory and the first simulated trajectory is calculated, with smaller distances indicating more similar trajectories. The number of second simulated trajectories with a similarity below a preset threshold is counted and divided by the total number of second simulated trajectories to obtain a feasibility score for the user hitting the ball according to the preset hitting plan.
[0098] S307: Based on the preset hitting scheme set, feasibility, and real-time position of each billiard ball, predict the probability of each billiard ball in the billiard ball set entering the pocket when the white ball is hit according to the preset hitting scheme in the preset hitting scheme set.
[0099] Specifically, a second set of preset hitting solutions for pocketing each billiard ball in the set of billiard balls is first obtained according to the method in steps S204 and S205. A feasibility score for each solution in the second set of preset hitting solutions is then obtained. For each billiard ball in the set of billiard balls, the number of solutions in the second set of preset hitting solutions for that billiard ball whose feasibility score exceeds a preset threshold is counted. This number of solutions is divided by the total number of solutions in the set of preset hitting solutions to obtain the probability of pocketing each billiard ball in the set of billiard balls when the white ball is hit according to the preset hitting solution in the set of preset hitting solutions.
[0100] S308: The billiard ball corresponding to the highest probability of being pocketed is used as the target billiard ball for the user to pocket with the white ball next time.
[0101] S309: Based on the real-time position of each billiard ball and the preset pocket position, determine a set of hitting schemes for hitting the target billiard ball into the pocket and a simulated moving trajectory of each billiard ball corresponding to each hitting scheme.
[0102] S310: Based on the hitting plan set, the real-time position of each billiard ball, and the electrostatic load of each billiard ball, predict the target movement trajectory of each billiard ball under the influence of static electricity when the user hits the white ball according to the hitting plan in the hitting plan set.
[0103] S311 : Determine the degree of influence of static electricity on the movement trajectory of each billiard ball based on the target predicted movement trajectory and the simulated movement trajectory of each hitting plan.
[0104] S312: If the impact value of the abnormal movement of the billiard ball exceeds the preset threshold, a prompt message is sent.
[0105] Steps S308-S312 and Figure 2 Steps S204 to S208 in the illustrated embodiment are similar, and reference may be made to the description of steps S204 to S208 , which will not be repeated here.
[0106] S313: If the abnormal movement of the billiard ball off the table is detected before the user hits the white ball next time, the first hitting data of the cue hitting the white ball when the user hits the white ball next time is obtained.
[0107] Specifically, real-time image data of the billiard table is acquired in real time. According to the method in step S202, the real-time position of the abnormally moving billiard balls is identified using a target detection algorithm, and the movement trajectory of each billiard ball is tracked. If the actual physical displacement of the white ball changes from zero (i.e., from static to dynamic) at a certain time point, it indicates that the user has started the next stroke of the white ball, and this time point is recorded as the first time point.
[0108] If the real-time position of the abnormally moved billiard ball on the table cannot be identified before the first time point, indicating that the abnormally moved billiard ball has left the table, the method in step S202 is used to determine the first shot data of the cue hitting the white ball and the actual movement trajectory information of each billiard ball at the first time point. If the real-time position of the abnormally moved billiard ball on the table cannot be identified, indicating that the abnormally moved billiard ball has always been on the table, step S322 is executed.
[0109] S314 : Based on the first hitting data and the position of each billiard ball when the user hits the white ball next time, predict a first predicted moving trajectory of each billiard ball without the influence of static electricity.
[0110] Specifically, according to the hitting plan (consistent with the parameters in the first hitting data) and the position of each billiard ball in step S204, the simulated billiard ball motion trajectory of each billiard ball is simulated, and the first predicted movement trajectory of each billiard ball corresponding to the first hitting data without the influence of preset abnormal factors such as static electricity is simulated.
[0111] S315 : If the actual movement trajectory of each billiard ball does not match the first predicted movement trajectory, determine the abnormal movement position, abnormal movement time point, and the first abnormal movement trajectory of each billiard ball based on the actual movement trajectory of each billiard ball and the first predicted movement trajectory.
[0112] Specifically, the similarity between the actual movement trajectory of each billiard ball and each trajectory point in the first predicted movement trajectory is calculated. First, the actual movement trajectory and the first predicted movement trajectory are aligned in time, and the trajectory points corresponding to the same time point are taken out in turn. The distance between the two points is calculated using the Euclidean distance formula to obtain the similarity. After traversing all the trajectory points, the proportion of trajectory points with a similarity lower than a preset threshold is counted to obtain the overall trajectory similarity. If the overall trajectory similarity is lower than the preset threshold, it is determined that the actual movement trajectory and the first predicted movement trajectory do not match, and the similarity of each trajectory point is traversed in chronological order. The position of the first traversed trajectory point with a similarity less than the preset threshold is selected as the abnormal movement position, and the arrival time of the trajectory point is selected as the abnormal time point. The trajectory points in the actual movement trajectory of each billiard ball whose arrival time is after the trajectory point are screened out to obtain the first abnormal movement trajectory of each billiard ball.
[0113] S316: Determine whether the user has committed any foul behavior.
[0114] Based on the historical video data, the abnormal movement location, the abnormal movement time, the first abnormal movement trajectory, and the real-time impact data of the preset impact parameters affecting the deviation of the billiard ball trajectory, it is determined whether the user has committed a foul. If so, step S317 is executed; if not, step S318 is executed.
[0115] Specifically, based on historical desktop image data at the time of abnormal movement and the positions of each image acquisition device, the system identifies image occlusion areas and corresponding occlusion categories on the table at the time of abnormal movement. Occlusion categories include both intentional and normal occlusion. First, historical video data within a preset time range at the time of abnormal movement is acquired. Information such as the installation location, shooting angle, and lens parameters of each image acquisition device around the pool table is also retrieved. Utilizing the principles of multi-view geometry in computer vision, the video footage captured by multiple image acquisition devices is fused to construct a three-dimensional spatial model of the pool table and its surrounding area. Subsequently, a deep learning-based object detection algorithm is used to analyze the fused video footage frame by frame. During this analysis, the trained model identifies various objects in the image, including billiard balls, cues, user body parts, and other items that may be present around the pool table. For each detected occlusion area, the extent of the occlusion is recorded, and the occlusion category is determined based on features such as the area's shape, size, movement speed, and direction.
[0116] If the occlusion area is irregular in shape and exhibits obvious dynamic characteristics associated with human motion, such as sudden appearance or rapid movement, and its relative position to the pool table changes significantly before and after the abnormal movement, the occlusion is considered human-induced. If the occlusion area is regular in shape, moves slowly, and remains relatively stable relative to the pool table, such as due to fixed objects in the background or changes in light and shadow in the natural environment, the occlusion is considered normal.
[0117] If the abnormal movement position is located in the image occlusion area or image acquisition area whose occlusion category is normal occlusion, and the user's foul behavior is not identified, it is determined that the user has not committed a foul.
[0118] If the abnormal movement position is located in the image occlusion area where the occlusion category is artificial occlusion, based on the real-time impact data of the first abnormal movement trajectory and preset influencing parameters that affect the deviation of the billiard ball trajectory (such as the table top inclination angle, table top flatness, air flow speed, billiard ball surface friction coefficient, etc.), the possibility of each billiard ball moving according to the first abnormal movement trajectory under the influence of the real-time impact data is determined.
[0119] First, obtain the real-time impact data of the preset impact parameters. For the tilt angle of the tabletop, obtain the tilt angle data collected in real time by the high-precision tilt sensor installed at the bottom of the billiard table. For the flatness of the tabletop, according to the pre-grid division scheme of the billiard table, combined with the data of the laser rangefinder distributed around the billiard table, a three-dimensional topography of the tabletop is constructed. For air flow velocity, by arranging multiple miniature wind speed sensors around the billiard table, wind speed and wind direction data at different positions are collected in real time. These data are input into the preset fluid mechanics model to calculate the magnitude and direction of the air resistance encountered by the billiard balls during movement. For the surface friction coefficient of the billiard balls, image recognition technology is used to monitor the surface of the billiard balls in real time. If stains, wear, etc. are detected on the surface of the billiard balls, the real-time value of the surface friction coefficient of the billiard balls is dynamically adjusted according to factors such as the type of stains and the degree of wear through the established friction coefficient change model.
[0120] Then, based on Newton's laws of motion and combined with the various real-time influencing data obtained, the dynamic equations for billiard ball motion are established. The tabletop tilt angle data is converted into a component of gravity along the tabletop direction and incorporated into the dynamic equations. This component will continuously act on the billiard ball, affecting its acceleration and trajectory. The direction and magnitude of the support force on the billiard ball at different positions on the tabletop are calculated based on the three-dimensional topography of the tabletop, and the force conditions in the dynamic equations are further corrected. For air resistance, the magnitude and direction of the resistance calculated by the preset fluid mechanics model are substituted into the dynamic equations as external force terms. Considering the characteristic that air resistance changes with the billiard ball's speed, an iterative algorithm is used to update the resistance value in real time to accurately simulate the motion state of the billiard ball in an air environment. At the same time, the real-time value of the billiard ball's surface friction coefficient is applied to the calculation of friction in the dynamic equations. Friction not only affects the attenuation of the billiard ball's translational velocity, but also interacts with the billiard ball's rotation, changing its trajectory.
[0121] Next, numerical calculation methods are used to solve the equations, simulating the next trajectory point position of each billiard ball starting from the abnormal time point under the current real-time influence data. By calculating indicators such as the Euclidean distance and angular deviation between the next trajectory point position and the trajectory point position of the first abnormal movement trajectory at the same time point, the similarity between the two is evaluated according to a preset evaluation method, which is used as the movement probability. This simulation and evaluation process is repeated for multiple billiard balls to determine the movement probability of each ball following the first abnormal movement trajectory under the influence of the real-time influence data.
[0122] If the movement possibility is lower than the preset possibility threshold, it is determined that the user has committed a foul; if the movement possibilities are all higher than the preset possibility threshold, it is determined that the user has not committed a foul.
[0123] S317. Send a foul message.
[0124] If a user commits a violation, a control command is sent to a preset display screen or speaker notification device. After receiving the control command, the notification device displays or plays a violation message. The violation message is used to notify the user of the violation.
[0125] S318: Determine abnormal influencing parameters based on a preset normal influencing parameter range and real-time influencing data of preset influencing parameters that affect the deviation of the billiard ball trajectory.
[0126] Specifically, for each influencing parameter, the real-time parameter value of the parameter is compared with the corresponding normal influencing parameter range. If the real-time parameter value exceeds the normal influencing parameter range, the parameter is marked as an abnormal influencing parameter.
[0127] S319: If the abnormal influencing parameters all belong to the preset automatic adjustment parameters, the console table adjusts the values of the abnormal influencing parameters to within the normal parameter range.
[0128] Specifically, the abnormality-influencing parameters are matched with a preset set of automatic adjustment parameters. If all of the abnormality-influencing parameters fall within the preset set of automatic adjustment parameters, an adjustment device and adjustment instructions are determined based on a preset adjustment strategy corresponding to the abnormality-influencing parameters and the deviation value. The adjustment instructions are then sent to the adjustment device. Upon receiving the adjustment instructions, the adjustment device operates according to the preset adjustment strategy to return the abnormality-influencing parameters to within the normal parameter range.
[0129] S320: If the abnormal influencing parameters do not belong to the preset automatic adjustment parameters, send a billiard table replacement information.
[0130] Specifically, if there is an unoccupied pool table with abnormal influencing parameters that fall outside the preset automatic adjustment parameters, and if the real-time impact data for the preset influencing parameters is within the normal parameter range, a control command is sent to a preset notification device, such as a display screen or speaker. Upon receiving the control command, the notification device displays or plays a message to change the pool table. This message serves to notify the user that the current pool table has an abnormality and that they need to switch to an unoccupied table to continue their current game.
[0131] S321, controlling the preset robotic arm for changing the billiard table to place the positions of the billiard balls on the table according to the corresponding billiard ball positions on the billiard table.
[0132] Specifically, the robot first obtains the first real-time position of each billiard ball on the current table. Then, the robot obtains the second real-time position of the corresponding billiard ball on the replacement table (i.e., the vacant table). For each billiard ball, a movement path is generated from the second real-time position to the first real-time position based on a preset path planning algorithm and the robot arm's movement rules. Based on the movement path, a corresponding control instruction is generated and sent to the robot arm. After receiving the control instruction, the robot arm grasps the billiard ball on the replacement table and moves it from the second real-time position to the first real-time position.
[0133] S322. If no abnormal movement of the billiard ball off the table is detected before the user hits the white ball next time, based on the first hitting data of the cue hitting the white ball when the user hits the white ball next time, the position of each billiard ball when the user hits the white ball next time, and the electrostatic load of each billiard ball, predict a second predicted movement trajectory of each billiard ball under the influence of static electricity.
[0134] Specifically, if no abnormal movement of the billiard ball leaving the table is detected before the user hits the white ball next time, based on the first hitting data of the cue hitting the white ball (i.e., the hitting plan), the position of each billiard ball when the user hits the white ball next time, and the electrostatic load of all billiard balls, according to the implementation method in step S206, a second predicted movement trajectory of each billiard ball under the influence of static electricity is predicted.
[0135] S323: Filter out abnormal billiard balls whose end positions are outside the table from the second predicted movement trajectories of all billiard balls and their corresponding second abnormal movement trajectories.
[0136] Specifically, the second predicted movement trajectory of all billiard balls is first traversed. For each trajectory, the coordinates of the ball's final position in the trajectory are obtained. The final position coordinates are then compared with the boundary coordinates of the table surface. If the final position coordinates of the billiard ball exceed the preset boundary coordinate range of the table surface, the billiard ball is marked as an abnormal billiard ball, and the second predicted movement trajectory of the billiard ball is recorded as the second abnormal movement trajectory.
[0137] S324: Based on the second abnormal movement trajectory, identify the abnormal position and abnormal height at which the abnormal billiard ball flies out of the table.
[0138] Specifically, for each second abnormal movement trajectory, the positions of each trajectory point in the movement trajectory are traversed in the order of the time of arrival at each trajectory point. When the position coordinates of a target trajectory point traversed exceed the preset boundary coordinate range of the desktop, the traversal of the trajectory is stopped, and the first position, first movement speed and first movement direction of the first trajectory point before the target trajectory point are obtained.
[0139] Based on the first position, first movement speed, and first movement direction, the abnormal position and abnormal height of the abnormal billiard ball when it is within a preset boundary coordinate range of the table surface are calculated. First, based on the first movement speed and first movement direction, as well as the distance from the trajectory point to the table surface boundary (calculated using the first position and the table surface boundary coordinates), the position of the billiard ball when it reaches the table surface boundary (i.e., the abnormal position) is calculated using a preset kinematic formula. Then, combining the vertical velocity component of the first trajectory point and the movement time of the abnormal billiard ball from the first trajectory point to the table surface boundary, the first height is calculated using a preset vertical motion formula. The abnormal height is calculated by adding the table surface height and the billiard ball radius to the first height.
[0140] S325. Obtain target protection measures that match the abnormal position and abnormal height in the preset protection measures set.
[0141] Specifically, a preset protective measure set is obtained, and a target protective measure whose position and height match the abnormal position and height is searched in the preset protective measure set.
[0142] S326. Control the pool table and implement target protection measures.
[0143] Specifically, based on the target protection measures, corresponding control instructions are generated according to the instruction generation rules and sent to the billiard table. After receiving the control instructions, the billiard table controls the built-in smart guardrail or other protective equipment to execute the target protection measures.
[0144] In an embodiment of the present application, after prompting the user to eliminate static electricity, the abnormally moving billiard ball is further monitored to see whether the static electricity has been eliminated. If the abnormally moving billiard ball leaves the table, it means that the static electricity has been eliminated. By predicting the movement trajectory of the billiard ball without the influence of static electricity, and when the actual movement trajectory of the billiard ball does not match the predicted trajectory, a comprehensive analysis is performed in combination with historical video data and real-time influence data of preset influence parameters to determine whether the cause of the abnormal billiard ball movement is due to a user foul. When a user foul is found, a foul message is sent in time to maintain the fairness and justice of the game. When the static electricity on the billiard ball surface is not eliminated, the movement trajectory of each billiard ball under the influence of static electricity is predicted, and the abnormal billiard balls and their trajectories with the end position outside the table are screened out, and the position and height of the abnormal billiard ball flying out of the billiard table are identified, so that the appropriate target protection measures can be accurately matched from the preset protection measures set and executed, avoiding the potential safety hazards or loss and damage of the billiard ball caused by the billiard ball accidentally flying off the table due to the influence of static electricity.
[0145] The above describes the interactive control method of the unattended billiard table in the embodiment of the present application. The following describes the interactive control server in the embodiment of the present application in detail in combination with the above-mentioned interactive control method of the unattended billiard table.
[0146] See also Figure 4 , which is a schematic diagram of an exemplary hardware structure of an interactive control server in an embodiment of the present application.
[0147] In some embodiments, the interactive control server 400 includes a computer device, which may be a terminal device. The computer device includes a processor 401, memory 402, a communication module 403, an input device 404, and an output device 405, all connected via a system bus. The processor 401 of the computer device is used to provide computing and control capabilities. The memory 402 of the computer device includes a non-volatile storage medium and internal memory. The non-volatile storage medium stores an operating system, computer programs, and a database. The internal memory provides an environment for the operating system and computer programs stored in the non-volatile storage medium. The database is used to store data. The communication module 403 of the computer device is used to transmit collected environmental data and image data to the server and to send control instructions to the billiard table, prompting device, etc. The input device 404 of the computer device is used to receive collected environmental data and image data, etc. The output device 405 of the computer device is used to display prompt information, game scores, etc. When executed by the processor 401, this computer program implements the interactive control method for an unattended billiard table according to the embodiments of the present application.
[0148] Those skilled in the art will understand that Figure 4 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.
[0149] In some embodiments of the present application, a computer-readable storage medium is provided, comprising instructions. When the instructions are executed on the interactive control server 400, the interactive control server 400 can execute the interactive control method for an unattended billiard table in the embodiments of the present application.
[0150] In some embodiments of the present application, a computer program product is further provided. When the computer program product runs on the interactive control server 400, the interactive control server 400 executes the interactive control method of the unattended billiard table in the embodiment of the present application.
[0151] As described above, the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the above embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the above embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.
[0152] As used in the above embodiments, the term “when” may be interpreted to mean “if” or “after” or “in response to determining that” or “in response to detecting that”, depending on the context. Similarly, the phrases “upon determining that” or “if (stated condition or event) is detected” may be interpreted to mean “if determining that” or “in response to determining that” or “upon detecting (stated condition or event)” or “in response to detecting (stated condition or event)”, depending on the context.
[0153] In the above embodiments, all or part of the embodiments can be implemented using software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this application are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that can be accessed by a computer, or a data storage device such as a server or data center that integrates one or more available media. The available medium can be magnetic media (e.g., floppy disk, hard disk, tape), optical media (e.g., DVD), or semiconductor media (e.g., solid-state drive).
[0154] Those skilled in the art will appreciate that all or part of the process steps in the above-described method embodiments can be implemented by a computer program instructing the relevant hardware. The program can be stored in a computer-readable storage medium, and when executed, the program can include the process steps in the above-described method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as ROM or random access memory (RAM), magnetic disks, or optical disks.
Claims
1. An interactive control method for an unattended billiard table, characterized in that: include: Acquire real-time desktop image data and environmental data of the billiard table; Based on the real-time desktop image data, identifying the movement trajectory information of each billiard ball on the desktop after the user hits the white ball and the hitting data of the cue hitting the white ball when the user hits the white ball; determining an electrostatic load condition on a surface of each billiard ball based on the movement trajectory information, the ball hitting data, the environmental data, and historical movement records of all balls; Determining a target billiard ball that the user will pocket next time with the white ball based on preset billiard rules and the real-time positions of the billiard balls; Based on the real-time position of each billiard ball and the preset pocket position, determining a set of hitting schemes for hitting the target billiard ball into the pocket and a simulated movement trajectory of each billiard ball corresponding to each hitting scheme; Based on the hitting plan set, the real-time position of each billiard ball, and the electrostatic load of each billiard ball, predicting the target movement trajectory of each billiard ball under the influence of static electricity when the user hits the white ball according to the hitting plan in the hitting plan set; determining the degree of influence of static electricity on the movement trajectory of each billiard ball based on the target predicted movement trajectory and the simulated movement trajectory of each hitting plan; If the impact value of the abnormally moving billiard ball exceeds a preset threshold, a prompt message is sent, where the prompt message is used to prompt the user to eliminate static electricity on the surface of the abnormally moving billiard ball.
2. The method according to claim 1, characterized in that The step of determining the target billiard ball that the user will hit into the pocket with the white ball next time based on the preset billiard rules and the real-time positions of the billiard balls specifically includes: Based on preset billiard rules, the billiard balls that are pocketed are used as the set of billiard balls that the user will hit with the white ball next time; Determining the probability of each billiard ball in the billiard ball set being pocketed according to the positions of all billiard balls and the preset hitting scheme set for the white ball; The billiard ball corresponding to the highest probability of being pocketed is used as the target billiard ball that the user will pocket with the white ball next time.
3. The method according to claim 2, characterized in that The step of determining the pocketing probability of each billiard ball in the billiard ball set according to the positions of all billiard balls and the preset hitting scheme set of the white ball specifically includes: Calculating the user's batting proficiency based on the user's shot-in-the-pocket rate, the foul rate of a preset foul behavior, and the difference between the batting time interval and the preset normal batting time interval; determining, based on the preset hitting scheme set for the white ball and the hitting proficiency, the feasibility of the user hitting the white ball according to a preset hitting scheme in the preset hitting scheme set; According to the preset hitting scheme set, the feasibility and the real-time position of each billiard ball, the probability of each billiard ball in the billiard ball set entering the pocket when the white ball is hit according to the preset hitting scheme in the preset hitting scheme set is predicted.
4. The method according to claim 1, wherein After the step of sending a prompt message if the impact value of the abnormal movement of the billiard ball exceeds a preset threshold, the method further includes: If the abnormal movement of the billiard ball is detected to leave the table before the user hits the white ball next time, obtaining first shot data of the cue hitting the white ball when the user hits the white ball next time; predicting a first predicted movement trajectory of each billiard ball without the influence of static electricity based on the first ball hitting data and the position of each billiard ball when the user hits the white ball next time; If the actual movement trajectory of each billiard ball does not match the first predicted movement trajectory, determining the abnormal movement position, abnormal movement time point, and the first abnormal movement trajectory of each billiard ball based on the actual movement trajectory of each billiard ball and the first predicted movement trajectory; Determining whether the user has committed a foul based on historical video data, the abnormal movement position, the abnormal movement time point, the first abnormal movement trajectory, and real-time impact data of preset impact parameters affecting the deviation of the billiard ball trajectory; If so, a foul message is sent, where the foul message is used to remind the user that a foul behavior has occurred.
5. The method according to claim 4, characterized in that The determining whether the user has committed a foul based on the historical video data, the abnormal movement position, the abnormal movement time point, the first abnormal movement trajectory, and the real-time impact data of the preset impact parameters affecting the deviation of the billiard ball trajectory specifically includes: Based on the historical desktop image data at the time of the abnormal movement and the positions of each image acquisition device, identifying the image occlusion area on the desktop at the time of the abnormal movement and the corresponding occlusion category, wherein the occlusion category includes human occlusion and normal occlusion; If the abnormal movement position is located in the image occlusion area whose occlusion category is the artificial occlusion, determining, based on the first abnormal movement trajectory and real-time impact data of a preset impact parameter affecting the deviation of the billiard ball trajectory, the possibility of the abnormal collision billiard ball moving along the first abnormal movement trajectory under the influence of the real-time impact data; If the movement possibility is lower than a preset possibility threshold, it is determined that the user has committed a foul.
6. The method according to claim 4, characterized in that After the step of determining whether the user has committed a foul based on historical video data, the abnormal movement position, the abnormal movement time point, the first abnormal movement trajectory, and real-time impact data of preset impact parameters affecting the deviation of the billiard ball trajectory, the method further includes: If not, determining abnormal influencing parameters based on a preset normal influencing parameter range and real-time influencing data of preset influencing parameters affecting the deviation of the billiard ball trajectory; If the abnormal influencing parameters all fall within the preset automatic adjustment parameters, controlling the billiard table to adjust the values of the abnormal influencing parameters to within the normal parameter range; If the abnormal influencing parameter does not belong to the preset automatic adjustment parameter, sending a billiard table replacement message, wherein the billiard table replacement message is used to prompt the user to replace the billiard table; The preset robotic arm for controlling the billiard table is controlled to place the positions of the billiard balls on the table according to the corresponding billiard ball positions on the billiard table.
7. The method according to claim 1, characterized in that After the step of sending a prompt message if the impact value of the abnormal movement of the billiard ball exceeds a preset threshold, the method further includes: If the abnormally moved billiard ball is not detected to have left the table before the user hits the white ball next time, predicting a second predicted movement trajectory of each billiard ball under the influence of static electricity based on first ball hitting data of the cue hitting the white ball when the user hits the white ball next time, the position of each billiard ball when the user hits the white ball next time, and the electrostatic load of each billiard ball; Screening out abnormal billiard balls whose end positions are outside the table from among all the second predicted movement trajectories of the billiard balls and the corresponding second abnormal movement trajectories; Based on the second abnormal movement trajectory, identifying the abnormal position and abnormal height of the abnormal billiard ball flying off the table; Obtain a target protective measure from a preset protective measure set that matches the abnormal position and the abnormal height; The billiard table is controlled to execute the target protection measures.
8. An interactive control server, characterized in that: include: one or more processors and memory; The memory is coupled to the one or more processors, and is configured to store computer program codes, where the computer program codes include computer instructions. The one or more processors call the computer instructions to enable the interactive control server to execute the method according to any one of claims 1 to 7.
9. A computer-readable storage medium storing computer instructions, characterized in that: When the computer instructions are executed on the interactive control server, the interactive control server is caused to execute the method according to any one of claims 1 to 7.
10. A computer program product, characterized in that When the computer program product is run on an interactive control server, the interactive control server is caused to execute the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Billiard battle strategy analysis method and system, terminal and storage medium
CN113312997A
Training system for ball hitting strategy and force exerting method and billiard table thereof
CN118949388A
Static elimination monitoring method and device, equipment and storage medium
CN119855026A