A serve training system
Patent Information
- Application Number
- CN202611138498.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-29
- Publication Date
- 2026-10-20
AI Technical Summary
因此,仍然需要用户对发球训练数据自行分析,根据自己的理解对训练过程进行调整,导致训练与分析过程相互独立,需要人工干预,训练效率低,同时训练过程中产生的数据无法被实时用于指导后续训练,训练效果受限
在接球率低于第一预设阈值时,降低发球训练计划中未执行的训练项目的难度等级;
Smart Images

Figure FT_1 
Figure FT_2 
Figure FT_3
Abstract
Description
Technical Field
[0001] This invention relates to the field of artificial intelligence technology, and more specifically to a serve training system. Background Technology
[0002] Badminton serving machines, as automated training equipment, are widely used in professional training and amateur practice. Existing badminton serving machines typically have basic serving functions, programmed training functions, and remote control functions. They can mechanically serve according to preset parameters (such as serving speed, angle, frequency, and landing point), supporting fixed or simple random serving training modes. Users can manually adjust the serving parameters via physical buttons, a remote control, or a mobile app.
[0003] During serve training, the ball machine executes the serve according to preset parameters, and the user hits the ball and judges the effect. When the user wants to change the training difficulty, they usually need to interrupt the ongoing training, manually reset the serve parameters, and then the ball machine can continue serving according to the new parameters. It can be seen that the existing serve training process requires frequent interruptions to adjust equipment parameters, disrupting the training rhythm, and the training content is fixed and difficult to adapt to users.
[0004] Furthermore, existing ball-serving machines operate solely as standalone serving devices, lacking data interaction with data analysis systems. While systems exist in the sports field capable of collecting and statistically analyzing sports data, their application is typically limited to offline analysis of match videos, rather than analysis of serving training data. Therefore, users still need to analyze their serving training data independently and adjust the training process based on their own understanding. This results in independent training and analysis processes, requiring manual intervention, leading to low training efficiency. Additionally, the data generated during training cannot be used in real-time to guide subsequent training, thus limiting training effectiveness. Summary of the Invention
[0005] This invention provides a serve training system to solve one of the technical problems existing in the prior art.
[0006] In a first aspect, the present invention provides a serving training system, which includes an AI server, a cloud server, a user terminal and a serving machine, wherein the user terminal is communicatively connected to the serving machine and the cloud server respectively, and the AI server is communicatively connected to the cloud server. The user-side interface is used to respond to user actions and trigger this serve training session. The cloud server is used to generate a serve training plan based on the user's historical training data, calculate the execution parameters of the serve training plan, and forward it to the serve machine through the user terminal for execution; The AI server is used to receive court video before each set of serves to verify the position, and after the verification is successful, it controls the ball machine to start serving through the user terminal. During this serving training, it continuously receives court video to determine the user's training data. The cloud server is also used to assess the user's training level based on training data after each set of serves is completed, and to adjust the serve training plan based on the training level. The AI server is also used to upload the training data of this serving practice to the cloud server after the practice session ends. The cloud server is also used to update user profiles and historical training data based on the training data from this serve training session.
[0007] This invention enables training triggered by user actions via the user terminal. A cloud server generates personalized serving training plans based on the user's historical training data, ensuring precise matching of training content to the user's skill level. Execution parameters are forwarded to the serving machine via the user terminal. Before each set of serves, the AI server receives court video for position verification, avoiding potential safety hazards from incorrect serves. During training, the AI server continuously receives court video to determine the user's training data, achieving recording and quantification of hitting effectiveness. After each set of serves, the cloud server evaluates the user's performance based on training data and automatically adjusts the plan without user intervention, preventing interruptions to the training rhythm. After training, the AI server uploads the training data to the cloud server, which updates the user profile and historical training data based on this data, making subsequent training recommendations increasingly accurate. The entire serving training process integrates serving and analysis, requiring no user intervention. The serving machine transforms from a passive serving execution device into an intelligent training companion capable of actively sensing the user's state and performance, and dynamically adapting to the user's ability level, achieving a leap from passive mechanical training to proactive intelligent training companionship.
[0008] In one alternative implementation, the cloud server includes a data storage module and a recommendation module; The data storage module is used to store users' personal information, profiles, and historical training data; The recommendation module is used to calculate the user's proficiency at each difficulty level of each training item based on historical training data; construct a directed acyclic graph by using each difficulty level of each training item as vertices and the difficulty dependencies between training items as weighted directed edges; perform topological sorting on the directed acyclic graph, and select vertices that meet the preconditions based on the sorting results and proficiency; and generate a serve training plan based on the selected vertices.
[0009] This invention stores user-related data through a data storage module, and the recommendation module generates personalized serve training plans by constructing a directed acyclic graph and using randomized topological sorting, thus solving the problem of fixed and monotonous training content that is difficult to adapt to users.
[0010] In one alternative implementation, the cloud server further includes a ball-serving machine parameter processing module, used for: Obtain the serve landing point, serve dispersion radius, flight time, and serve frequency for each set of serves in the serve training plan; For each ball in each set of serves, the expected landing point of each ball is generated by randomly shifting the ball's landing point as the center and the radius of the serve's spread. Calculate the horizontal axis rotation angle for each ball based on the expected landing point; Calculate the flight distance of each ball based on the expected landing point and the position of the ball machine; Based on the flight distance and flight time, obtain the vertical axis rotation angle and serve speed for each ball; The horizontal axis rotation angle, vertical axis rotation angle, serve speed, and serve frequency corresponding to each ball are used as the execution parameters for each ball.
[0011] This invention obtains the baseline parameters for each group of balls by looking up a table, and then introduces a random offset independently for each ball to generate the expected landing point. It then calculates the horizontal axis rotation angle, flight distance, vertical axis rotation angle, and serving speed for each ball. Thus, while ensuring the overall training objective remains consistent for each group of balls, the landing point and serving parameters of each ball exhibit controlled variations. This solves the problem that existing ball-serving machines can only repeat the same landing point or rely on simple random patterns, resulting in a lack of targeted landing point distribution. This makes training closer to real-world conditions and improves the diversity and effectiveness of training.
[0012] In one alternative implementation, the AI server includes a video processing module, a ball-serving machine recognition module, and a player perception module; The video processing module is used to receive the field video before each set of serves begins, decode and cache multiple video frames, detect the multiple video frames, and send the multiple video frames and their detection results to the ball machine recognition module and the player perception module. The ball-launching machine recognition module is used to determine the preset image region of the ball-launching machine in each video frame based on camera parameters, extract image features from the preset image region, calculate the similarity between the image features and the preset features, and determine that the ball-launching machine position verification is passed when the similarity of multiple consecutive video frames is greater than a preset threshold. The player perception module is used to obtain the preset preparation area corresponding to each set of serves, convert the human body detection box in the detection results of each video frame into projection point coordinates, and determine that the user position verification is successful when the projection point coordinates are continuously located in the preset preparation area in multiple consecutive video frames.
[0013] This invention utilizes a video processing module to perform target detection before each set of serves, providing data for verification. The ball machine recognition module confirms that the ball machine is properly positioned, while the player perception module identifies whether the user is in the designated area. This prevents the ball machine from serving when the user is not in position or when the ball machine is incorrectly positioned, eliminating safety hazards. Simultaneously, it ensures coordination between the ball machine and the user during training, improving the smoothness and safety of the training process.
[0014] In one alternative implementation, the AI server further includes a trajectory analysis module; The video processing module is also used to continuously receive court video during this serve training, decode and cache multiple video frames, detect multiple video frames, and send multiple video frames and their detection results to the trajectory analysis module. The trajectory analysis module is used to triangulate the ball coordinates from the detection results of multiple video frames corresponding to each set of serves, performing multi-view matching, to obtain the three-dimensional coordinates of each ball in each video frame; the extended Kalman filter algorithm is used to track the three-dimensional coordinates and generate multiple trajectory segments; each trajectory segment is fitted and the hit evaluation index is extracted; based on the coordinate change trend of each trajectory segment and the position of the ball machine, the hitting object of each trajectory segment is determined; the hit evaluation index and the hitting object are used as training data for each set of serves by the user and sent to the cloud server.
[0015] This invention uses a trajectory analysis module to reconstruct two-dimensional pixel coordinates into three-dimensional spatial coordinates through multi-view matching and triangulation. It employs extended Kalman filtering for time-series tracking, which can effectively distinguish multiple balls flying simultaneously. By fitting trajectory segments and extracting indicators, and then judging the correlation between trajectory coordinate change trends and ball machine position, it automatically identifies the ball-hitting object on the trajectory. This achieves accurate recording and quantitative analysis of the user's hitting effect, providing data for subsequent dynamic adjustment of difficulty and generation of personalized reports.
[0016] In one optional implementation, the ball-serving machine parameter processing module is further configured to: After completing a set of serves, the first number of trajectory segments whose target is the user is selected from the training data corresponding to the set of serves. The ratio of the first number to the total number of trajectory segments in the set of serves is calculated as the return rate. When the first number is not zero, based on the hit evaluation index in the training data corresponding to a set of serves, the second number of trajectory segments that meet the preset standard in the trajectory segments of the hit object is the user, and the ratio of the second number to the first number is calculated as the excellence rate. When the reception rate is below the first preset threshold, reduce the difficulty level of the training items not executed in the serve training plan; When the excellence rate is higher than the second preset threshold, increase the difficulty level of the training items that were not executed in the serve training plan.
[0017] This invention, through the ball machine parameter processing module, automatically calculates the user's receiving rate and excellence rate based on the hitting object and hitting evaluation index output by the trajectory analysis module after each set of serves. Based on this, the difficulty of subsequent training is adjusted, solving the problem that the difficulty adjustment of existing ball machines relies on manual intervention and the training rhythm is easily interrupted. It realizes dynamic adaptive adjustment of training intensity, ensuring that the user is always in the optimal training range, thus improving training efficiency and effectiveness.
[0018] In one alternative implementation, the AI server further includes a data upload module; The video processing module is also used to synthesize and save the training data and video frames corresponding to each set of serves in this serving training session after the session ends. The data upload module is used to upload the corresponding training data to the cloud server after each set of serves is completed, and to upload the training highlights video to the cloud server after the current serving training session is over.
[0019] This invention uploads training data after each set of serves via a data upload module, enabling the cloud server to promptly obtain user performance data and adjust subsequent difficulty levels, thus achieving dynamic closed-loop control during the training process. Furthermore, it uploads training highlight videos after training concludes, providing users with visual training review materials.
[0020] In one alternative implementation, the system further includes a display screen that is communicatively connected to a cloud server; The display screen shows training prompts and data for each set of serves.
[0021] This invention displays training prompts on a screen to guide users through training. Training data is also displayed after each set of serves, allowing users to instantly understand their performance in that set. This combination of pre-training guidance and post-training feedback enhances the autonomy and consistency of training.
[0022] In one alternative implementation, the cloud server further includes a report generation module for: Using each set of serves completed in this serving training session as an index, the corresponding training points and improvement suggestions are retrieved from the preset knowledge base as the search results; Input the portrait, training data of each set of serves in this serving training, and retrieval results into the large language model, and output an initial report; The initial report and the verification prompts are merged and then input into the large language model so that the large language model can determine whether the initial report has passed the verification. If the initial report fails to pass the verification, obtain the modification requirements output by the large language model, add the modification requirements to the verification prompt words, and make the large language model re-output the initial report until the initial report passes the verification. The initial report that passes the verification is then used as the training report. Send the training report to the user's device; Input the training report and the training data of each set of serves in this serving training into the large language model to obtain the output conclusion; The profile is updated based on the output conclusions, and the historical training data is updated based on the training data of each set of serves in this serving training session.
[0023] This invention utilizes a report generation module centered on a large language model, combining user profiles, training data, and knowledge base retrieval results to generate training reports. It also employs validation prompts to achieve self-assessment and iterative correction of report quality. Furthermore, by extracting conclusions from the training reports and updating user profiles, the system's understanding of users deepens with each training iteration, providing a continuously optimized data foundation for accurate recommendations and report generation in subsequent training plans.
[0024] In one alternative implementation, the user terminal is further configured to: Responding to user actions, edit the serve training plan; In response to user actions, pause or exit each set of serves, and exit the current serve training session; The training report and training highlights video will be displayed after this serving practice session.
[0025] This invention supports user-edited training plans via a client-side interface, allowing users to adjust training content according to their needs or preferences. Furthermore, it supports pausing, exiting each set of serves, or exiting the current training session, giving users flexible control over training progress. After training, a training report and highlights video are displayed, enabling users to comprehensively review the training session, thus improving training flexibility and user experience. Attached Figure Description
[0026] To more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0027] Figure 1 This is a schematic diagram of a serve training system according to an embodiment of the present invention; Figure 2 This is a schematic diagram of the camera installation according to an embodiment of the present invention; Figure 3This is an execution flowchart of a serve training system according to an embodiment of the present invention. Detailed Implementation
[0028] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0029] It is understood that before using the technical solutions disclosed in the various embodiments of the present invention, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in the present invention and their authorization should be obtained in accordance with relevant laws and regulations through appropriate means.
[0030] The terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this invention, "a plurality of" means two or more, unless otherwise explicitly specified.
[0031] This embodiment provides a serve training system. Figure 1 This is a schematic diagram of a serve training system according to an embodiment of the present invention, such as... Figure 1 As shown, the system includes an AI server, a cloud server, a user terminal, and a ball-serving machine. The user terminal communicates with both the ball-serving machine and the cloud server, while the AI server communicates with the cloud server. The user terminal responds to user actions and triggers the current serve training session. The cloud server generates a serve training plan based on the user's historical training data, calculates the execution parameters of the plan, and forwards it to the ball-serving machine for execution via the user terminal. The AI server receives court video for position verification before each serve session begins, and after successful verification, controls the ball-serving machine to start serving via the user terminal. During the serve training session, it continuously receives court video to determine the user's training data. The cloud server also assesses the user's training level based on the training data after each serve session and adjusts the serve training plan accordingly. After the serve training session ends, the AI server uploads the training data to the cloud server. The cloud server updates the user's profile and historical training data based on the training data from the current serve training session.
[0032] Specifically, the user terminal refers to the user's operating terminal, typically an application or mini-program running on an Android or iOS device. The user triggers the current serve training session by operating the user terminal. The user terminal connects to the serve machine via Bluetooth pairing to control the machine. Based on the user's historical training data, the cloud server generates a serve training plan tailored to the user and translates it into execution parameters that the serve machine can execute. The user terminal then forwards this plan to the serve machine, causing it to serve according to the corresponding execution parameters, thus achieving personalized training. Figure 2 This is a schematic diagram of the camera installation according to an embodiment of the present invention, such as... Figure 2 As shown, cameras are installed at the four corners of the training field to capture video from different angles. Before the start of this serving practice session, the AI server receives the video from the cameras for position verification. After successful verification, the serving machine begins serving. Throughout the session, the AI server continuously receives video to accurately record the user's complete training data, quantifying the user's training performance. After each set of serves is completed, the cloud server assesses the user's training level based on the training data from that set, automatically adjusting subsequent serving practice plans to avoid manual adjustments that could disrupt the training rhythm. After the session concludes, the AI server uploads the training data to the cloud server, allowing the cloud server to update the user's profile and historical training data, facilitating more accurate personalized training recommendations.
[0033] In some optional implementations, the cloud server includes a data storage module and a recommendation module; the data storage module is used to store the user's personal information, profile, and historical training data; the recommendation module is used to calculate the user's proficiency at each difficulty level of each training item based on the historical training data; construct a directed acyclic graph by using each difficulty level of each training item as vertices and the difficulty dependencies between training items as weighted directed edges; perform topological sorting on the directed acyclic graph, and select vertices that meet the preconditions based on the sorting results and proficiency; and generate a serve training plan based on the selected vertices.
[0034] Specifically, the data storage module uses a structured database (such as an SQL database) to store users' personal information and historical training data. Simultaneously, a separate Markdown-formatted text document is maintained for each user, containing a user profile described in natural language, including various characteristics and historical data. For example, "This user's backhand return lands slightly to the left, and their high clear shot hits at a low point. Their high clear shot success rates in the last three training sessions were 55%, 62%, and 75%, showing a continuous upward trend."
[0035] The recommendation module generates suitable training items based on the user's historical training data. Specifically, assuming there are N training items, and the i-th training item has k difficulty levels, each difficulty level of each training item is treated as a vertex, resulting in M vertices. For example, if the training items are high clear, smash, and net shot, and high clear has 3 difficulty levels and smash has 2 difficulty levels, then 5 vertices can be formed: high clear - difficulty level 1, high clear - difficulty level 2, high clear - difficulty level 3, smash - difficulty level 1, and smash - difficulty level 2.
[0036] If the execution of a certain difficulty level of a training item requires a certain threshold of proficiency in another training item at a certain difficulty level, then a weighted directed edge is constructed between these two vertices, with the edge weight being the proficiency level. This forms a directed acyclic graph (DAG) to represent the prerequisite dependencies between the difficulty levels of each training item. For example, if difficulty level 1 of training item A requires a proficiency of 0.7 in training item B at difficulty level 3, and a proficiency of 0.5 in training item C at difficulty level 2, then an edge is drawn from B to A, and another edge is drawn from C to A.
[0037] For each vertex (i.e., each combination of "training item - difficulty level"), the recommendation module obtains key indicators from historical training data, such as the number of training sessions, number of shots, success rate of shots in recent training sessions, and landing point distribution for that vertex. Using the proficiency calculation method corresponding to that training item, the module calculates the user's proficiency at that vertex. Optionally, the proficiency calculation methods differ for each training item, and will not be elaborated here.
[0038] Then, the recommendation module uses a randomized Kahn algorithm to perform topological sorting on the directed acyclic graph, obtaining a random topological sequence S. It then sequentially checks whether the user's proficiency at each vertex meets all the preconditions for that vertex, selecting vertices that meet the conditions to form a candidate sequence Q, which is a subsequence of S. Due to the randomness of S, Q is also random. Finally, the recommendation module selects vertices at fixed quantiles from Q as the output training plan. Because of the randomness of Q, each generated serve training plan is diverse, avoiding identical recommendations each time. Furthermore, since all vertices in Q already meet the preconditions, the generated serve training plan matches the user's current skill level, thus achieving personalized training planning.
[0039] For example, the training items are high clear and smash. High clear has two difficulty levels, corresponding to vertices A1 and A2 respectively, while smash has one difficulty level, corresponding to vertex B. The prerequisite for A2 is a proficiency level of 0.6 in A1, and the prerequisite for B is a proficiency level of 0.7 in A2. The user's proficiency at each vertex is: A1 = 0.9, A2 = 0.8, and B = 0.4. The recommendation module obtains a random topological sequence S = [A1, A2, B]. Then, S is traversed: A1 has no prerequisites and directly enters Q; the prerequisite for A2 is a proficiency level ≥ 0.6 in A1, and the user's proficiency level in A1 is 0.9, satisfying the condition, so it enters Q; the prerequisite for B is a proficiency level ≥ 0.7 in A2, and the user's proficiency level in A2 is 0.8, satisfying the condition, so it enters Q. Finally, Q = [A1, A2, B]. Assuming the fixed quantiles are 50% and 100%, the second and third vertices are selected from Q, resulting in a serve training plan of [A2, B]. Since the topological sorting result may differ each time, for example, if another sorting result is S = [A1, B, A2], after traversal Q = [A1, B, A2], the serve training plan extracted using the fixed quantiles is [B, A2].
[0040] In some optional implementations, the cloud server also includes a ball-serving machine parameter processing module, used to: obtain the ball landing point, ball dispersion radius, flight time, and ball frequency corresponding to each group of serves in the serve training plan; for each ball in each group of serves, randomly offset with the ball landing point as the center and the ball dispersion radius as the amplitude to generate the expected landing point of each ball; calculate the horizontal axis rotation angle corresponding to each ball based on the expected landing point; calculate the flight distance of each ball based on the expected landing point and the position of the ball-serving machine; obtain the vertical axis rotation angle and ball speed corresponding to each ball based on the flight distance and flight time; and use the horizontal axis rotation angle, vertical axis rotation angle, ball speed, and ball frequency corresponding to each ball as the execution parameters corresponding to each ball.
[0041] Specifically, the serve training plan consists of binary pairs of <training item, difficulty level>, with each binary pair corresponding to a set of serves, and each set containing 10-20 serves. For each set of serves, the serve landing point, serve spread radius, flight time, and serve frequency can be obtained by looking up a table based on its corresponding training item and difficulty level. These four parameters are common to the set of serves.
[0042] Building upon this, the ball-serving machine parameter processing module further sets individual serving parameters for each ball in the group. First, a random offset vector is generated in a two-dimensional plane. The direction of this vector is uniformly distributed within the range of 0° to 360°, and the amplitude is uniformly distributed within the range of 0 to the ball's dispersion radius. The ball's landing point coordinates are added to this random offset vector to obtain the expected landing point. Then, using the ball-serving machine's location as the origin, the projection direction of the direction vector pointing from the origin to the expected landing point on the horizontal plane is calculated. The angle between this projection direction and the initial orientation of the ball-serving machine's horizontal axis is used as the horizontal axis rotation angle. Next, based on the straight-line distance between the ball-serving machine's location and the expected landing point on the horizontal plane, the ball's flight distance is calculated. Finally, using this flight distance and flight time as an index, a preset parameter mapping table is consulted to obtain the corresponding vertical axis rotation angle and serving speed for the ball. This parameter mapping table records the correspondence between the vertical axis rotation angle and serving speed required for the ball to travel along a parabolic trajectory from the ball-serving machine's launch port to the expected landing point under different combinations of flight distance and flight time.
[0043] The horizontal and vertical rotation angles, serving speed, and serving frequency of each ball are used as the corresponding execution parameters. Optionally, the serving frequency can be converted into a waiting time after serving; for example, if the serving frequency is 3 seconds per ball, the waiting time after serving is 3 seconds. Therefore, the expected landing points of different balls within the same group vary due to different random offset vectors, and the angle and speed of each serve from the ball machine also change accordingly. This makes the landing point distribution in training closer to reality and avoids the reduction in training effectiveness caused by repeated landing points.
[0044] In some optional implementations, the AI server includes a video processing module, a ball machine recognition module, and a player perception module. The video processing module receives court video before each set of serves, decodes and caches multiple video frames, detects the multiple video frames, and sends the multiple video frames and their detection results to the ball machine recognition module and the player perception module. The ball machine recognition module determines the preset image region of the ball machine in each video frame based on camera parameters, extracts image features from the preset image region, calculates the similarity between the image features and preset features, and determines that the ball machine position verification is successful when the similarity of multiple consecutive video frames is greater than a preset threshold. The player perception module obtains the preset preparation area corresponding to each set of serves, converts the human detection boxes in the detection results of each video frame into projection point coordinates, and determines that the user position verification is successful when the projection point coordinates are continuously located within the preset preparation area in multiple consecutive video frames.
[0045] Specifically, the AI server includes a video processing module, a ball machine recognition module, and a player perception module. The video processing module receives court video before each serve, uses hardware acceleration to decode the video, obtains and caches the video frames, and then uses the YOLO detection model to detect the video frames, obtaining detection results, including the human body and badminton shuttlecock and their corresponding detection boxes. The video frames and detection results are then sent to the ball machine recognition module and the player perception module, providing a data foundation for subsequent position verification.
[0046] The ball-serving machine recognition module, based on the preset three-dimensional spatial coordinate range of the ball-serving machine in the field (e.g., the ball-serving machine should be placed near the T-shaped area, with coordinates ranging from x=4.2 to 5.2, y=2.6 to 3.5, z=0 to 2), projects this three-dimensional spatial range onto a two-dimensional image plane using camera intrinsic and extrinsic parameters. This yields the corresponding pixel region in the video frame, and the bounding rectangle of this pixel region is calculated as the preset image region. An image of this preset image region is extracted from the video frame and input into a feature extraction model (e.g., the Mobile-CLIP model, which balances accuracy and inference performance) to obtain image features. The cosine similarity between these image features and the preset features is calculated. If the cosine similarity of multiple consecutive frames is greater than a preset threshold, it indicates that the actual position of the ball-serving machine in the image matches the preset placement position, and the ball-serving machine position verification passes. Optionally, the ball machine recognition module can also output whether the ball machine is in the half of the court where x < 6.7 or x > 6.7 (the net position is x = 6.7), providing a basis for distinguishing between serves and returns in subsequent badminton trajectory analysis.
[0047] The player perception module obtains the corresponding preset preparation area based on the current set of serving training exercises and their difficulty level. The human detection boxes in each video frame are projected into 3D space using camera intrinsic and extrinsic parameters to obtain the coordinates of the projected point of the human on the court. Since multiple cameras with different viewing angles are located around the court, the same user may appear in multiple video frames at the same time. The player perception module performs cross-view correlation and deduplication on the detection results from different perspectives to determine the user's unique position in 3D space. If the projected point coordinates remain within the preset preparation area for multiple consecutive frames, it indicates that the user is ready in the designated area, and the user's position verification passes.
[0048] The ball is only served when both the ball machine position and the user position have been verified, thus preventing the ball from being served when the user is not in position or the ball machine position is incorrect. This eliminates the safety hazards caused by misserves and ensures coordination between the ball machine and the user during training, improving the smoothness and safety of the training.
[0049] In some optional implementations, the AI server also includes a trajectory analysis module; a video processing module, which continuously receives court video during the current serve training, decodes and caches multiple video frames, detects the multiple video frames, and sends the multiple video frames and their detection results to the trajectory analysis module; the trajectory analysis module is used to triangulate the ball coordinates in the detection results of multiple video frames corresponding to each set of serves after multi-view matching, to obtain the three-dimensional coordinates of each ball in each video frame; it uses an extended Kalman filter algorithm to track the three-dimensional coordinates and generate multiple trajectory segments; it fits each trajectory segment and extracts the hit evaluation index; based on the coordinate change trend of each trajectory segment and the position of the ball machine, it determines the hit object of each trajectory segment; and it sends the hit evaluation index and the hit object as training data for each set of serves to the cloud server.
[0050] Specifically, the video processing module continuously receives court video during this serve training, decodes and caches it, and then performs detection according to the above steps. The video frames and their detection results are sent to the trajectory analysis module to provide a data foundation for subsequent 3D trajectory reconstruction. The trajectory analysis module first performs multi-view matching on the ball coordinates in video frames from different perspectives, that is, associating pixels belonging to the same ball in different camera images at the same moment. Then, using a triangulation algorithm, based on the matched pixel coordinates and corresponding camera parameters, it calculates the 3D coordinates of each ball on the court in each frame. Based on this, an extended Kalman filter algorithm is used to perform temporal tracking of the 3D coordinates, predicting the ball's position in the next frame based on its motion model, and fusing the prediction results with the actual observations to smooth the tracking trajectory and resist detection noise. Finally, several trajectory segments are generated, each corresponding to a complete flight process of a ball from its serve to its landing or being hit, thus distinguishing multiple balls flying simultaneously. When the ball's flight direction reverses, it indicates a collision with the racket. The trajectory analysis module then determines the termination of the current trajectory segment and begins a new one.
[0051] After a set of serves, the trajectory analysis module obtains multiple trajectory segments with increasing and decreasing x-coordinates. Combining this with the ball machine identification module's output information about the ball machine's half of the court, and based on the relationship between the x-coordinate change trend of the trajectory segments and the ball machine's position, the module determines the target ball for each trajectory segment: trajectory segments located in the ball machine's half of the court with increasing x-coordinates are from the ball machine, while those located in the opponent's half of the court with decreasing x-coordinates are hit by the user (the rule is reversed when the ball machine is in the right half of the court). The trajectory analysis module performs trajectory fitting on each trajectory segment (using quadratic function fitting, Bayesian fitting, convexity fitting, or a grid enumeration algorithm based on physical characteristics) to suppress detection noise and reconstruct the true flight path. Based on this, it extracts hit evaluation metrics, including whether the ball was hit, trajectory angle, flight altitude, release speed, and landing point. The hit evaluation metrics for each trajectory segment and its corresponding target ball are used as training data for the user and sent to the cloud server.
[0052] In some optional implementations, the ball-serving machine parameter processing module is further configured to: after completing a set of serves, select a first number of trajectory segments whose target is the user from the training data corresponding to the set of serves, and calculate the ratio of the first number to the total number of trajectory segments in the set of serves as the reception rate; when the first number is not zero, based on the hitting evaluation index in the training data corresponding to the set of serves, count a second number of trajectory segments whose target is the user that meet the preset standard, and calculate the ratio of the second number to the first number as the excellence rate; when the reception rate is lower than a first preset threshold, reduce the difficulty level of the training items not executed in the serve training plan; when the excellence rate is higher than a second preset threshold, increase the difficulty level of the training items not executed in the serve training plan.
[0053] Specifically, after completing a set of serves, the ball machine parameter processing module selects trajectory segments whose target is the user from the training data corresponding to that set of serves, counts their number as the first quantity, and calculates the total number of all trajectory segments in that set of serves. The ratio of the first quantity to the total number is calculated as the return rate, which reflects the proportion of times the user successfully returns the ball in that set of training. If the first quantity is not zero, the ball machine parameter processing module further selects trajectory segments that meet the preset standard from the trajectory segments whose target is the user, based on the hitting evaluation index in the training data corresponding to that set of serves, counts their number as the second quantity, and calculates the ratio of the second quantity to the first quantity as the excellence rate, which reflects the proportion of times the user successfully returns the ball to a high-quality standard.
[0054] When the return rate is below the first preset threshold, it indicates that the user is having difficulty making effective returns in this set of serves, and the current difficulty exceeds their ability. Therefore, the difficulty level of the training items not yet executed in the serve training plan is reduced to suit the current level. When the excellence rate is above the second preset threshold, it indicates that the user can consistently hit high-quality returns in this set of serves. Therefore, the difficulty level of subsequent training items is increased to maintain the intensity of advanced training. If neither the return rate nor the excellence rate triggers the above conditions, the difficulty level remains unchanged. Thus, the system can automatically adjust the difficulty of subsequent training in real time based on the user's actual performance in this set of training, ensuring that the training intensity is always within the optimal range that matches the user's current ability, without requiring manual intervention from the user, achieving dynamic adaptive training.
[0055] In some optional implementations, the AI server also includes a data upload module; a video processing module, which is further used to synthesize and save the training data and video frames corresponding to each set of serves in this serving training session after the session ends; and a data upload module, which is used to upload the corresponding training data to the cloud server after each set of serves is completed, and to upload the training highlights video to the cloud server after the session ends.
[0056] Specifically, after each serve training session, the video processing module combines the training data and video frames from each set of serves into a training highlights video and saves it. It can also add effects, background music, intros, and outros to this highlights video. After each set of serves, the AI server's data upload module uploads the corresponding training data to the cloud server, enabling the cloud server to promptly obtain the user's performance data for that set of training and dynamically adjust subsequent training. The training highlights video is then uploaded to the cloud server after the serve training session, providing users with visual training review material. Optionally, for longer training highlights videos, the data upload module will segment the video into m3u8 video blocks before uploading to ensure upload stability.
[0057] In some optional implementations, the system also includes a display screen that is communicatively connected to a cloud server; the display screen is used to show training prompts and training data corresponding to each set of serves.
[0058] Specifically, the display screen is typically mounted on the side of the court or behind the baseline to facilitate more convenient human-computer interaction. Before each set of serves begins, the screen displays important information such as the training content, key training points, player initial positions, and a serve countdown, guiding the user through the training. After each set of serves, the screen displays the user's training data for that set, helping them practice more effectively. This combination of pre-training guidance and post-training feedback enhances the autonomy and fluency of the training process.
[0059] In some optional implementations, the cloud server also includes a report generation module, used for: using the training items of each set of serves completed in this serving training as an index, retrieving corresponding training points and improvement suggestions from a preset knowledge base as search results; inputting the profile, the training data of each set of serves in this serving training, and the search results into a large language model, and outputting an initial report; merging the initial report with verification prompts and inputting it again into the large language model so that the large language model can determine whether the initial report passes verification; if the initial report fails verification, obtaining the modification requirements output by the large language model, adding the modification requirements to the verification prompts, causing the large language model to re-output the initial report until the initial report passes verification, and using the initial report that passes verification as the training report; sending the training report to the user terminal; inputting the training report and the training data of each set of serves in this serving training into the large language model to obtain output conclusions; updating the profile based on the output conclusions, and updating the historical training data based on the training data of each set of serves in this serving training.
[0060] Specifically, the report generation module of the cloud server uses each set of serves completed in this serving training session as an index to retrieve corresponding training points and improvement suggestions from a preset knowledge base as search results. Simultaneously, it acquires the user's profile and the training data for each set of serves in this training session, merges them with the search results according to a set format, adds generation prompts, and inputs them into the large language model to output an initial report. These generation prompts are pre-defined natural language instructions used to instruct the large language model to generate the report. To ensure the report content meets preset conditions, the report generation module merges the initial report with the verification prompts and inputs it again into the large language model for verification. If the verification fails, the large language model outputs modification requirements, and the report generation module adds these requirements to the verification prompts, causing the large language model to regenerate the initial report based on the modified prompts. This process is repeated until the initial report passes verification, at which point the final output initial report is used as the training report and sent to the user.
[0061] The training report is merged with the training data from each set of serves in this training session. Extraction prompts are added, and the data is then input into a large language model. This allows the large language model to extract key conclusions and important memories from this training session, which are then used as output conclusions. The user profile is updated based on these output conclusions, and historical training data is updated based on the training data from each set of serves in this training session.
[0062] Through the above process, a complete closed loop from data collection, report generation, quality verification to user profile updates is achieved, solving the problems of existing training report content being templated and lacking specificity. At the same time, the system's understanding of users deepens with the increase of training times, providing a richer data foundation for accurate recommendations of subsequent training plans.
[0063] In some optional implementations, the user terminal is also configured to: edit a serve training plan in response to user actions; pause or exit each set of serves and exit the current serve training session in response to user actions; and display a training report and training highlights video after the current serve training session has ended.
[0064] Specifically, users can edit their serving training plans through the client application to adjust the difficulty level of each training exercise. Users can also pause or exit each set of serves, and exit the current serving training session, all through the client application. Therefore, the duration of a serving training session depends on whether the user exits early. If the user does not exit early, the training ends naturally after the serving training plan is completed; if the user exits early, only the completed sets of serves are executed, and unexecuted training exercises are not repeated. After each set of serves, the client application automatically enters a preset rest timer (e.g., 30 seconds). If the user does not perform any actions during the rest timer, the next set of serves automatically begins; if the user needs a longer rest period, they can manually delay the continuation. After the current serving training session ends (regardless of whether the user exits early), the client application displays a training report and highlights video of each completed set of serves, allowing users to fully understand their performance and instantly review and summarize their training results. Through these client application functions, users can flexibly control their training progress according to their own status, improving the autonomy and adaptability of their training.
[0065] In some alternative implementations, Figure 3 This is an execution flowchart of a serve training system according to an embodiment of the present invention, such as... Figure 3 As shown, when a user triggers a serving training session on the user's device, the recommendation module retrieves data from the data storage module to recommend a serving training plan for the user, which the user can edit / confirm through the user's device. Training prompts are displayed on the screen. The serving machine parameter processing module calculates execution parameters based on the serving training plan, while simultaneously waiting for position verification by the serving machine recognition module and the player perception module. Once both verifications pass, the user's device forwards the execution parameters to the serving machine to execute the serve. The user can pause or exit each set of serves through the user's device. After each set of serves, the trajectory analysis module outputs training data and displays it on the screen. The serving machine parameter processing module modifies subsequent serving training plans based on the training data of the current set of serves. The user can end training early through the user's device or manually adjust the difficulty level. If the user manually ends or completes the serving training plan, the data upload module uploads the training highlights video and the training data for each set of serves. The training report module generates a training report and sends it to the user's device. If the user does not end training early, training continues after a preset rest period, returning to the step of waiting for position verification by the serving machine recognition module and the player perception module.
[0066] This invention enables training triggered by user actions via the user terminal. A cloud server generates personalized serving training plans based on the user's historical training data, ensuring the training content is precisely matched to the user's skill level. Execution parameters are forwarded to the serving machine via the user terminal. Before each set of serves, the AI server receives court video for position verification, avoiding potential safety hazards from incorrect serves. During training, the AI server continuously receives court video to determine the user's training data, achieving the recording and quantification of hitting effectiveness. After each set of serves, the cloud server evaluates the user's performance based on the training data and automatically adjusts the plan without user intervention, preventing interruptions to the training rhythm. After training, the AI server uploads the training data to the cloud server, which updates the user profile and historical training data based on this data, making subsequent training recommendations increasingly accurate. The entire serving training process requires no user intervention. The serving machine transforms from a passive serving execution device into an intelligent training companion capable of actively sensing the user's state and performance and dynamically adapting to the user's ability level, achieving a leap from passive mechanical training to proactive intelligent training companionship.
[0067] Although embodiments of the invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the invention, and such modifications and variations all fall within the scope defined by the appended claims.
Claims
1. A serve training system, characterized in that, The system includes an AI server, a cloud server, a user terminal, and a ball-serving machine. The user terminal is communicatively connected to the ball-serving machine and the cloud server, respectively, and the AI server is communicatively connected to the cloud server. The user terminal is used to respond to user operations and trigger this serve training session; The cloud server is used to generate a serve training plan based on the user's historical training data, calculate the execution parameters of the serve training plan, and forward it to the serve machine through the user terminal for execution; The AI server is used to receive court video for position verification before each set of serves begins, and after the verification is successful, it controls the ball machine to start serving through the user terminal. During this serving training, it continuously receives court video to determine the user's training data. The cloud server is also used to assess the user's training level based on the training data after each set of serves is completed, and to adjust the serve training plan based on the training level. The AI server is also used to upload the training data of this serving practice to the cloud server after the current serving practice is completed. The cloud server is also used to update the user's profile and historical training data based on the training data from this serve training session.
2. The system according to claim 1, characterized in that, The cloud server includes a data storage module and a recommendation module; The data storage module is used to store users' personal information, profiles, and historical training data; The recommendation module is used to calculate the user's proficiency at each difficulty level of each training item based on the historical training data. By using the difficulty levels of each training item as vertices and the difficulty dependencies between training items as weighted directed edges, a directed acyclic graph is constructed. Perform a topological sort on the directed acyclic graph, and select vertices that meet the preconditions based on the sorting results and the proficiency level. The serve training plan is generated based on the selected vertices.
3. The system according to claim 2, characterized in that, The cloud server also includes a ball-serving machine parameter processing module, used for: Obtain the serve landing point, serve dispersion radius, flight time, and serve frequency for each set of serves in the serve training plan; For each ball in each set of serves, the expected landing point of each ball is generated by randomly shifting the ball with the landing point as the center and the radius of the ball's spread as the amplitude. Calculate the horizontal axis rotation angle corresponding to each ball based on the expected landing point; Based on the expected landing point and the position of the ball-launching machine, calculate the flight distance of each ball; Based on the flight distance and flight time, obtain the longitudinal axis rotation angle and serve speed corresponding to each ball; The horizontal axis rotation angle, vertical axis rotation angle, serve speed, and serve frequency corresponding to each ball are used as the execution parameters for each ball.
4. The system according to claim 3, characterized in that, The AI server includes a video processing module, a ball-serving machine recognition module, and a player perception module; The video processing module is used to receive the court video before each set of serves begins, decode and cache multiple video frames, detect the multiple video frames, and send the multiple video frames and their detection results to the ball machine recognition module and the player perception module. The ball-serving machine identification module is used to determine the preset image region of the ball-serving machine in each video frame based on camera parameters, extract image features from the preset image region, calculate the similarity between the image features and the preset features, and determine that the ball-serving machine position verification is passed when the similarity of multiple consecutive video frames is greater than a preset threshold. The player perception module is used to obtain the preset preparation area corresponding to each set of serves, convert the human body detection box in the detection results of each video frame into projection point coordinates, and determine that the user position verification is successful when the projection point coordinates are continuously located in the preset preparation area in multiple consecutive video frames.
5. The system according to claim 4, characterized in that, The AI server also includes a trajectory analysis module; The video processing module is also used to continuously receive court video during this serve training, decode and cache multiple video frames, detect the multiple video frames, and send the multiple video frames and their detection results to the trajectory analysis module. The trajectory analysis module is used to triangulate the ball coordinates in the detection results of multiple video frames corresponding to each set of serves, after multi-view matching, to obtain the three-dimensional coordinates of each ball in each video frame; to track the three-dimensional coordinates using an extended Kalman filter algorithm, generating multiple trajectory segments; to fit each trajectory segment and extract the hit evaluation index; to determine the hit object of each trajectory segment based on the coordinate change trend of each trajectory segment and the position of the ball machine; and to send the hit evaluation index and the hit object as training data for each set of serves by the user to the cloud server.
6. The system according to claim 5, characterized in that, The ball-serving machine parameter processing module is also used for: After completing a set of serves, a first number of trajectory segments whose target is the user are selected from the training data corresponding to the set of serves. The ratio of the first number to the total number of trajectory segments in the set of serves is calculated as the reception rate. When the first number is not zero, based on the ball-hitting evaluation index in a set of training data corresponding to a serve, the second number of trajectory segments that meet the preset standard in the trajectory segments of the ball-hitting object is the user, and the ratio of the second number to the first number is calculated as the excellence rate. When the receiving rate is lower than a first preset threshold, the difficulty level of the training items not executed in the serving training plan is reduced. When the excellence rate is higher than the second preset threshold, the difficulty level of the training items that were not executed in the serve training plan is increased.
7. The system according to claim 5, characterized in that, The AI server also includes a data upload module; The video processing module is also used to synthesize and save the training data and video frames corresponding to each set of serves in this serving training session after the session ends. The data upload module is used to upload the corresponding training data to the cloud server after each set of serves is completed, and to upload the training highlights video to the cloud server after the current serve training session is completed.
8. The system according to claim 7, characterized in that, The system also includes a display screen, which is communicatively connected to the cloud server. The display screen is used to show training prompts and training data for each set of serves.
9. The system according to claim 7, characterized in that, The cloud server also includes a report generation module, used for: Using each set of serves completed in this serving training session as an index, the corresponding training points and improvement suggestions are retrieved from the preset knowledge base as the search results; Input the portrait, the training data of each set of serves in this serving training, and the retrieval results into the large language model, and output an initial report; The initial report and the verification prompt words are combined and then input into the large language model so that the large language model can determine whether the initial report passes the verification. When the initial report fails the verification, the modification requirements output by the large language model are obtained, and the modification requirements are added to the verification prompt words, so that the large language model re-outputs the initial report until the initial report passes the verification. The initial report that passes the verification is then used as the training report. The training report is sent to the user terminal; The training report and the training data of each set of serves in this serving training are input into the large language model to obtain the output conclusion; The profile is updated based on the output conclusion, and the historical training data is updated based on the training data of each set of serves in this serving training session.
10. The system according to claim 9, characterized in that, The user terminal is also used for: In response to user actions, edit the aforementioned serve training plan; In response to user actions, pause or exit each set of serves, and exit the current serve training session; The training report and the training highlights video will be displayed after this serving practice session concludes.