Acquisition method, system and equipment of motion state data and medium
By using IMU sensors and sliding window technology in wearable devices, identifying the hitting movements of plate tennis players solves the costly and inaccurate problems of existing systems, achieving cost-effective evaluation of sports indicators and training feedback.
Patent Information
- Application Number
- CN202510323524.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-19
- Publication Date
- 2025-07-04
AI Technical Summary
The existing motion capture recognition system equipment is expensive and cannot accurately calculate the athlete's movement index data during the exercise, especially the active time, hitting posture and swinging speed of the plate tennis player.
The built-in inertial measurement unit (IMU) sensor of the wearable device is used to identify the hitting movement through sliding window technology and data feature analysis, and calculate the motion state data such as the beater swing speed, the hitting area, the hitting posture, etc. based on user information.
It provides a convenient and economical way to accurately evaluate athletes' sports indicator data, and can evaluate it yourself without professional coaches, saving costs and improving training results.
Smart Images

Figure CN120242418A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of motion capture and recognition, and particularly relates to a method, system, device, and medium for obtaining motion state data. Background Art
[0002] Motion capture, also known as motion tracking, involves data that can be directly understood and processed by a computer, such as dimensional measurement, object positioning, and azimuth determination in physical space. Trackers are set at key parts of a moving object, and by capturing the positions of the trackers and then processing them by a computer, three-dimensional space coordinate data can be obtained. When the data is recognized by the computer, it can be applied in fields such as animation production, gait analysis, biomechanics, and ergonomics.
[0003] Sports activities are widely popular worldwide, suitable for both casual enthusiasts and elite or professional players. Athletes perform many sports actions (e.g., lobbing, volleying, dropping, serving, clearing, returning, etc.) through limb swings. Athletes can capture and analyze the performance of one or more sports actions (e.g., key, basic, and / or frequently repeated sports actions) they use during exercise through inertial sensors to seek to improve their performance in the selected sport.
[0004] However, most of the existing motion capture and recognition systems currently in use are high-speed camera systems, which are usually expensive and cannot accurately and directly calculate the motion index data of athletes during exercise. Summary of the Invention
[0005] The purpose of this application is to address the above problems and provide a convenient and economical method for quickly and accurately evaluating the motion index data of athletes.
[0006] To achieve the above purpose, this application adopts the following technical solutions:
[0007] In a first aspect, this application provides a method for obtaining motion state data, including:
[0008] Obtaining sensor data monitored by a wearable device worn on the user's racket-holding hand and user information;
[0009] Sequentially storing the sensor data collected each time into a sliding window in chronological order, and identifying whether there is a hitting action in the sliding window;
[0010] When there is the hitting action in the sliding window, adjusting the position of the sliding window so that the hitting moment when the hitting action occurs is located at the middle position of the window;
[0011] Analyzing the user information and the sensor data in the adjusted sliding window to obtain the user's motion state data.
[0012] In some embodiments, identifying whether there is a hitting action within the sliding window includes:
[0013] Extracting the data features of the sensor data within the sliding window;
[0014] Judging whether a preset condition is satisfied according to the data features;
[0015] If the preset condition is satisfied, it is determined that there is the hitting action within the sliding window;
[0016] If the preset condition is not satisfied, it is determined that there is no hitting action within the sliding window.
[0017] In some embodiments, the data features include the acceleration standard deviation output value, the total angular velocity energy standard deviation, and the angular velocity energy output value; judging whether a preset condition is satisfied according to the data features includes:
[0018] Judging whether at least one of the following preset conditions is satisfied by the acceleration standard deviation output value, the total angular velocity energy standard deviation, and the angular velocity energy output value, and the preset conditions include:
[0019] The number of times the acceleration standard deviation output value exceeds the acceleration standard deviation upper limit value reaches the first number threshold; and,
[0020] The number of times the acceleration standard deviation output value exceeds the acceleration standard deviation lower limit value reaches the second number threshold, and the total angular velocity energy standard deviation exceeds the angular velocity standard deviation threshold, and the angular velocity energy output value exceeds the angular velocity energy threshold.
[0021] In some embodiments, the user information includes the user's arm length, the sensor data includes the angular velocity of each axis, and the motion state data includes the swing speed; analyzing the sensor data in the adjusted sliding window according to the user information to obtain the user's motion state data includes:
[0022] Obtaining the swing length according to the user's arm length and the racket length;
[0023] Calculating the swing linear velocity corresponding to each axis according to the swing length and the angular velocity of each axis;
[0024] Calculating the swing speed according to the swing linear velocity corresponding to each axis.
[0025] In some embodiments, the sensor data includes the acceleration of each axis, and the motion state data includes the user's active duration; analyzing the sensor data in the adjusted sliding window according to the user information to obtain the user's motion state data includes:
[0026] Obtain the hitting duration and the movement duration when the hitting action occurs; the movement duration is the time period during which the output value of the acceleration standard deviation calculated based on the accelerations of multiple axes is greater than the acceleration standard deviation threshold, and the output value of the acceleration intensity calculated based on the accelerations of multiple axes is greater than the acceleration intensity threshold;
[0027] Calculate the sum of the hitting duration and the movement duration to obtain the user active duration.
[0028] In some embodiments, the sensor data includes the accelerations of each axis and the angular velocities of each axis, and the motion state data includes the number of hits corresponding to the hitting posture and the total number of hits; the analyzing the sensor data in the adjusted sliding window based on the user information to obtain the motion state data of the user includes:
[0029] Calculate the acceleration feature based on the acceleration, and calculate the angular velocity feature based on the angular velocity;
[0030] Determine the hitting posture based on the acceleration feature and the angular velocity feature;
[0031] Count the number corresponding to each different hitting posture to obtain the corresponding number of hits, and accumulate the number of hits corresponding to all the hitting postures to obtain the total number of hits.
[0032] In some embodiments, adjusting the position of the sliding window includes:
[0033] Obtain the start time and the end time corresponding to the sensor data within the sliding window;
[0034] Compare the middle time calculated based on the start time and the end time with the hitting time;
[0035] Update the position of the sliding window according to the comparison result.
[0036] In a second aspect, the present application further provides a system for obtaining motion state data, including a wearable device, a memory, and a processor. The wearable device is internally provided with a sensor module. The memory is configured to store one or more programs. When the one or more programs are executed by the one or more processors, the processor implements the steps of the method for obtaining motion state data in the first aspect.
[0037] In a third aspect, the present application further provides a wearable device, including a memory and a processor. The wearable device is built-in with a sensor module. The memory is configured to store one or more programs. When the one or more programs are executed by the one or more processors, the processor implements the steps of the method for obtaining motion state data described in the first aspect.
[0038] In a fourth aspect, the present application further provides a storage medium, on which a computer program is stored. When the computer program is run by a processor, it executes the steps of the method for obtaining motion state data described in the first aspect.
[0039] The present application has the following advantages compared with the prior art: 1. The method is simple, and the evaluation is convenient and effective; 2. It is not necessary to hire professional coaching staff to accurately evaluate one's own tennis level, which can save a large amount of costs; 3. It helps users understand their own tennis level and make targeted training. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required to be used in the description of the embodiments will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present application. For those skilled in the art, without creative efforts, other drawings can be obtained according to these drawings.
[0041] Figure 1 It is a schematic flowchart of the method in Embodiment 1 of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0042] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only some embodiments of the present application, rather than all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative efforts belong to the scope of protection of the present application.
[0043] In the description of the embodiments of the present application, it should be understood that the terms "first" and "second" are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly indicating the quantity of the indicated technical features. Thus, the features defined with "first" and "second" may explicitly or implicitly include one or more of the described features. In the description of the embodiments of the present application, "a plurality" means two or more, unless otherwise specifically defined.
[0044] The following description is provided to enable any person skilled in the art to implement and use this application. In the following description, details are set forth for purposes of explanation. It should be understood that those of ordinary skill in the art can recognize that this application can be implemented without using these specific details. In other instances, well-known processes are not elaborated in detail to avoid obscuring the description of the embodiments of this application with unnecessary details. Therefore, this application is not intended to be limited to the embodiments shown, but rather to be in line with the broadest scope consistent with the principles and features disclosed in the embodiments of this application.
[0045] Padel is a new emerging sport that combines the characteristics of tennis, squash, table tennis, and badminton. It is played on a fully enclosed dedicated court surrounded by tempered glass on all sides and enclosed by a metal net on top. Padel players need to master unique techniques, such as hitting the ball by rebounding it off the wall, controlling the landing point and direction of the ball, etc. Compared with traditional tennis, the rackets used in padel are smaller, thicker, and have small holes, and the balls also have lower elasticity, which makes the game focus more on skills and strategies rather than pure strength. In addition, padel is mainly played in doubles, with a fast game rhythm and strong interactivity. Padel has developed rapidly and has become a popular sport. Currently, most of the existing motion capture and recognition systems use high-speed camera systems, which are usually expensive and cannot accurately and directly calculate the motion state data of padel players during exercise, such as the active time, hitting posture, and racket swing speed.
[0046] Refer to Figure 1 as shown Figure 1 is a schematic flowchart of a method for obtaining motion state data provided by an embodiment of this application. It should be noted that although the logical order is shown in the flowchart shown in Figure 1 or other drawings, in some cases, the steps shown or described can be executed in a different order than that shown in the figure. As Figure 1 shown, the method for obtaining motion state data includes:
[0047] S100. Obtain the sensor data monitored by the wearable device worn on the user's racket-holding hand and the user information;
[0048] S200. Sequentially store each collected sensor data into a sliding window in chronological order, and identify whether there is a hitting action in the sliding window;
[0049] S300. When there is the hitting action in the sliding window, adjust the position of the sliding window so that the hitting moment when the hitting action occurs is located at the middle position of the window;
[0050] S400. Analyze the sensor data in the adjusted sliding window based on the user information to obtain the user's motion state data.
[0051] Specifically, the wearable device includes a smart watch, a smart bracelet, or even a smart racket. The wearable device is built-in with a sensor module, and the sensor module includes an IMU (Inertial Measurement Unit). The IMU is a comprehensive sensor unit that usually integrates multiple sensors for measuring the motion state of an object, including acceleration, angular velocity, direction, etc. The core components of the IMU mainly include the following two sensors: an acceleration sensor and a gyroscope. The user information may include the user's gender and height, and the user's arm length is estimated based on the user's basic information (gender and height). Generally, some empirical formulas or proportional relationships can be used. For example, according to the empirical formula of height ratio, the arm length (L) ≈ height (H) × proportionality coefficient (k), where the proportionality coefficient k can be fine-tuned according to gender. Among them, the proportionality coefficient kn for men is approximately 0.48, and the proportionality coefficient kl for women is approximately 0.47. Of course, if more accurate estimation is required, some large-scale population statistical models can be referred to. The population statistical model considers factors such as gender, age, height, and race to output the corresponding user arm length. The user determines whether the racket-holding hand is the left hand or the right hand, and reminds the user to correctly wear the wearable device on the corresponding racket-holding hand. After the user wears the wearable device and starts exercising, during the exercise process, the IMU (Inertial Measurement Unit) sensor will collect the information of the motion state of the racket-holding hand in real time to obtain sensor data, and these sensor data can reflect the action characteristics during the user's exercise. The sensor data collected each time is stored in the sliding window in chronological order. The sliding window is a data processing technology used to analyze continuous data streams in real time. The sliding window will slide forward as new data is added, and at the same time, the oldest data is removed. By calculating the acceleration and angular velocity of each axis in the sliding window, data features are obtained, and whether there is a hitting action is judged based on the data features. When a hitting action is detected, the position of the sliding window is dynamically adjusted through an adaptive algorithm to ensure that the hitting moment is always in the middle of the window. In the adjusted sliding window, the features of the sensor data are further extracted. Based on the data features of the sensor data in the adjusted sliding window, mathematical formula algorithms or machine learning algorithms (such as support vector machines, neural networks) can be used to analyze and obtain motion state data such as swing speed, hitting area, hitting posture, number of hits, and user active duration. After the exercise ends, the motion state data can be displayed to the user, enabling accurate recognition of the hitting action and comprehensive analysis of the motion state, and providing scientific exercise feedback and training suggestions for the user.
[0052] In some embodiments, the identification of whether there is a hitting action in the sliding window includes:
[0053] S210. Extract the data features of the sensor data within the sliding window;
[0054] S220. Determine whether the preset conditions are met according to the data features;
[0055] S230. If the preset conditions are met, determine that the hitting action exists within the sliding window;
[0056] S240. If the preset conditions are not met, determine that the hitting action does not exist within the sliding window.
[0057] Specifically, the sliding window is a commonly used time series analysis method for processing continuous sensor data. By dividing the sensor data into sliding windows of a fixed time length, the sensor data within each sliding window can be analyzed step by step. The data features of the sensor data are extracted from the sliding window. The data features include various data features such as the acceleration standard deviation output value, the total energy standard deviation of the angular velocity, the angular velocity energy output value, the acceleration mean value, the angular velocity mean value, the acceleration maximum and minimum values (the maximum and minimum values of the acceleration), the angular velocity maximum and minimum values (the maximum and minimum values of the angular velocity), the first integral of the acceleration (the change in acceleration), and the first integral of the angular velocity (the change in angle) in the following embodiments. Feature thresholds corresponding to each data feature for determining whether the hitting action exists can be set as a preset condition. In this way, multiple data features correspond to multiple preset conditions. Then, it is judged whether each data feature meets the corresponding preset condition. If the preset condition is met, it is considered that the hitting action exists within the sliding window; otherwise, it is considered that the hitting action does not exist within the sliding window.
[0058] It should be noted that the preset conditions can be adjusted according to different users, different sports scenarios, or different sensor accuracies. For example, for professional athletes and amateur enthusiasts, the characteristics of the hitting action may be different. By adjusting the preset conditions, the system can better meet the needs of different users.
[0059] By obtaining the data features within the sliding window, the original sensor data is transformed into more representative and interpretable data features. These data features can more intuitively reflect the physical characteristics of the hitting action, can remove redundant information and noise, and retain the core information related to the hitting action, thereby improving the data quality and providing a key and accurate basis for subsequent judgments. Judging whether the preset conditions are met based on the data features can effectively filter out the interference of noise data and non-hitting actions. For example, the hitting action is usually accompanied by a rapid rise and fall of acceleration. By setting reasonable thresholds, the hitting action can be accurately distinguished from other ordinary actions (such as waving hands, walking, etc.). Through clear preset conditions and feature judgments, the possibility of misjudgment can be reduced, thereby improving the overall efficiency and reliability of the system.
[0060] In some embodiments, the data features include the acceleration standard deviation output value, the total energy standard deviation of angular velocity, and the angular velocity energy output value; the judging whether the preset conditions are met according to the data features includes:
[0061] Judging whether the acceleration standard deviation output value, the total energy standard deviation of angular velocity, and the angular velocity energy output value meet at least one of the following preset conditions, and the preset conditions include:
[0062] The number of times the acceleration standard deviation output value exceeds the upper limit value of the acceleration standard deviation reaches the first number threshold; and,
[0063] The number of times the acceleration standard deviation output value exceeds the lower limit value of the acceleration standard deviation reaches the second number threshold, and the total energy standard deviation of angular velocity exceeds the angular velocity standard deviation threshold, and the angular velocity energy output value exceeds the angular velocity energy threshold.
[0064] Specifically, the data features include but are not limited to the acceleration standard deviation output value, the total energy standard deviation of angular velocity, and the angular velocity energy output value. Among them, the preset conditions for whether there is a hitting action within the sliding window can include: sum
data_acc_std>data_acc_std_high_thre
[0065] sum
data_acc_std>data_acc_std_low_thre
[0066] data_gvro_mix_std≥gvro_std_thre (Formula 2.2);
[0067] data_gvro_mix_std≥gvro_thre (Formula 2.3).
[0068] Among them, Formula 1 is one of the preset conditions, Formula 2 consists of Formulas 2.1 to 2.3, and Formula 2 is another preset condition.
[0069] In Formulas 1 and 2.1, data_acc_std is the output value of the acceleration standard deviation corresponding to a certain axis, usually the standard deviation calculated from the acceleration on a certain axis (such as X, Y, Z), which reflects the degree of fluctuation of the acceleration data.
[0070] In Formula 1, data_acc_std_high_thre is the upper limit value of the acceleration standard deviation, which is a preset value used to determine whether the acceleration standard deviation has reached a "high" level. If the output value of the acceleration standard deviation exceeds the upper limit value of the acceleration standard deviation, it indicates that a strong hitting action has occurred. sum
data_acc_std>data_acc_std_high_thre
data_acc_std>data_acc_std_high_thre
[0071] In Formula 2.1, data_acc_std_low_thre is the lower limit value of the acceleration standard deviation, which is a preset value used to determine whether the acceleration standard deviation has reached a "low" level. If the output value of the acceleration standard deviation exceeds the lower limit value of the acceleration standard deviation but does not reach the upper limit value of the acceleration standard deviation, it may indicate that a relatively weak hitting action has occurred. For example, the hitting force of padel tennis is usually less than that of tennis, so the lower limit value of the acceleration standard deviation can be used to detect this relatively weak hitting.
[0072] In Formulas 2.2 and 2.3, data_gvro_mix_std is the standard deviation of the total angular velocity energy, which can be obtained by comprehensively processing the angular velocities on three axes (X, Y, Z). Assuming the angular velocity values of the three axes (X, Y, Z) are respectively denoted as gyrx, gyry, and gyrz, for a certain moment, the total angular velocity energy gyro_energy is equal to the sum of the squares of the angular velocity values of the three axes (X, Y, Z), that is, gyro_energy = gyrx 2 +gyry 2 +gyrz 2, assuming that a total of n angular velocity total energies gyro_energy1, gyro_energy2, gyro_energy3, …, gyro_energyn are collected within the time period between the start time and the end time corresponding to the sliding window, the average value of the angular velocity total energy can be calculated. Then, the sum of the squares of the differences between these n angular velocity total energies and the average value of the angular velocity total energy is calculated to obtain the sum of squared differences result. Taking the square root of the quotient of the sum of squared differences result divided by n can obtain the standard deviation of the angular velocity total energy.
[0073] In Formula 2.2, gvro_std_thre is the standard deviation threshold of the angular velocity, which is a preset value used to determine whether the dynamic change of the wrist movement is significant enough. The hitting force of padel tennis is usually less than that of tennis, so the standard deviation threshold of the angular velocity should be smaller than that of tennis. In Formula 2.3, gyro_thre is the energy threshold of the angular velocity, which is a preset value used to determine whether the intensity or total energy of the wrist movement reaches the standard of the hitting action. The hitting force of padel tennis is usually less than that of tennis, so the energy threshold of the angular velocity should be smaller than that of tennis.
[0074] This application considers that the change in acc (Acceleration) is relatively obvious during hitting, so the threshold judgment can be made according to the standard deviation of each axis of acc. During the hitting process, there will be obvious wrist movements during the backswing and follow-through of the wrist, so the combined threshold judgment can be made by combining the angular velocity energy output value and the change in the total angular velocity energy, that is, the standard deviation of the total angular velocity energy. In addition, considering that the hitting force of each hitting action in padel tennis is generally less than that of tennis actions, the relevant threshold settings are smaller than those of tennis. This application comprehensively considers the standard deviation of the acceleration of each axis, which can improve the accuracy of hitting action recognition. This application uses two different acceleration standard deviation thresholds (the lower limit value of the acceleration standard deviation and the upper limit value of the acceleration standard deviation), which can effectively distinguish hitting actions of different intensities. For example, the upper limit value of the acceleration standard deviation can be used to identify hitting actions with greater force, while the lower limit value of the acceleration standard deviation can be used to identify hitting actions with smaller force. This dual judgment mechanism can improve the sensitivity and accuracy of hitting action recognition. This application makes a judgment based on the acceleration standard deviation output value in combination with the angular velocity total energy output value and the standard deviation of the total angular velocity energy, which can further improve the accuracy of hitting action recognition. In addition, by setting the standard deviation threshold of the angular velocity and the energy threshold of the angular velocity, the hitting action and non-hitting action can be effectively distinguished.
[0075] In summary, by setting different thresholds to identify whether a hitting action exists, the present application can provide the accuracy of hitting action recognition. Considering that the force of each hitting action in padel tennis is generally less than that in tennis, the above threshold setting can be adjusted accordingly to adapt to hitting action recognition with different exercise intensities. By comprehensively considering multiple features of acceleration and angular velocity and setting reasonable thresholds, the present application can effectively identify hitting actions and improve the accuracy, sensitivity, and applicable range of recognition.
[0076] In some embodiments, the user information includes the user's arm length, the sensor data includes the angular velocity of each axis, and the motion state data includes the swing speed; the S400, analyzing the sensor data in the adjusted sliding window according to the user information to obtain the user's motion state data includes:
[0077] S411. Obtain the swing length according to the user's arm length and the racket length;
[0078] S412. Calculate the swing linear velocity corresponding to each axis according to the swing length and the angular velocity of each axis;
[0079] S413. Calculate the swing speed according to the swing linear velocity corresponding to each axis.
[0080] Specifically, the arm length is the distance from the shoulder to the wrist, and the racket length is the distance from the wrist to the racket head. The sum of the two represents the total length from the rotation center (shoulder) to the racket head, which is the swing length. In tennis or similar sports, the racket head linear velocity refers to the linear velocity of the racket head at the moment of hitting the ball. The angular velocity of each axis refers to the rotational velocity measured by the gyroscope on three orthogonal axes (X-axis, Y-axis, Z-axis), and these angular velocities reflect the rotational dynamics of the object in three-dimensional space. Adding the user's arm length and the racket length to obtain the swing length, which is the key parameter for converting angular velocity to linear velocity. The swing length refers to the total movement range length of the arm and the racket during the hitting process. Of course, it can also be adjusted and calculated according to the actual motion situation (such as the bending angle of the arm) to obtain the swing length. The swing linear velocity can be calculated by multiplying the angular velocity by the radius (i.e., the swing length). By multiplying the angular velocity of each axis (X-axis, Y-axis, Z-axis) by the swing length, the swing linear velocity corresponding to each axis (X-axis, Y-axis, Z-axis) can be obtained. Taking the vector modulus of the swing linear velocities corresponding to each axis (X-axis, Y-axis, Z-axis), that is, the sum of the square of the swing linear velocity of the X-axis, the square of the swing linear velocity of the Y-axis, and the square of the swing linear velocity of the Z-axis, and taking the square root of the sum value to obtain the racket head linear velocity. The racket head linear velocity is the linear velocity of the racket head at the moment of hitting the ball calculated through sensor data, which reflects the actual motion speed of the racket during hitting. Taking the calculated racket head linear velocity as the swing speed.
[0081] In this application, the linear velocity of each axis is calculated by multiplying the angular velocity of each axis by the swing length, and then the modulus of the vector of these linear velocities is calculated, so as to obtain a racket head linear velocity that comprehensively considers the movements in all directions. This method is more accurate than only considering the linear velocity in a single direction. Since the linear velocities in the X-axis, Y-axis, and Z-axis directions are considered, this calculation method can comprehensively reflect the movement of the racket in three-dimensional space, thus more accurately describing the actual movement speed of the racket during hitting. The swing speed calculated through the above process in this application can provide more accurate and comprehensive actual hitting speed feedback for athletes, provide important and effective data support for sports analysis, help coaches and athletes analyze the efficiency and effect of hitting actions, and thus conduct targeted training and improvement, which is helpful for improving sports performance and training effects. In the field of sports technology, the accurate swing speed calculation method of this application can be applied to various sports analysis systems to improve the accuracy and reliability of sports performance evaluation.
[0082] In some embodiments, the sensor data includes the acceleration of each axis, and the motion state data includes the user active duration; the S400, analyzing the sensor data in the adjusted sliding window according to the user information to obtain the user's motion state data includes:
[0083] S421. Obtain the hitting duration and the motion duration when the hitting action occurs; the motion duration is the time period during which the output value of the acceleration standard deviation calculated based on the acceleration of multiple axes is greater than the acceleration standard deviation threshold, and the output value of the acceleration intensity calculated based on the acceleration of multiple axes is greater than the acceleration intensity threshold;
[0084] S422. Calculate the sum of the hitting duration and the motion duration to obtain the user active duration.
[0085] Specifically, the output value of the acceleration standard deviation corresponding to each axis is calculated according to the acceleration on each axis (such as the X-axis, Y-axis, and Z-axis), and in addition, the output value of the acceleration intensity is calculated according to the acceleration on each axis (such as the X-axis, Y-axis, and Z-axis). The motion duration is obtained by counting the duration that conforms to the following formula 3:
[0086] data_acc_std>data_acc_std_thre (Formula 3.1);
[0087] data_acc_mix>data_acc_thre (Formula 3.2).
[0088] Among them, Formula 3 is composed of Formula 3.1 and Formula 3.2.
[0089] In Equation 3.1, data_acc_std is the output value of the acceleration standard deviation corresponding to a certain axis, and data_acc_std_thre is the acceleration standard deviation threshold, which is a preset value used to determine whether the acceleration fluctuation is large enough. A large amount of acceleration data in the hitting and non-hitting states is collected, the distribution of its standard deviation is calculated, and an acceleration standard deviation threshold that can effectively distinguish the two states is selected. The initial threshold is set based on kinematic knowledge and the experience of the actual motion scenario, and then it is verified and adjusted through experiments. Generally, the acceleration standard deviation threshold is less than the lower limit value of the acceleration standard deviation. When the acceleration standard deviation output value is greater than the acceleration standard deviation threshold, it indicates that the user's motion state is relatively active and the acceleration fluctuation is large.
[0090] In Equation 3.2, data_acc_mix is the output value of the acceleration intensity, which refers to the mixed value of the acceleration (such as the combined value of the three-axis acceleration), representing the overall intensity of the acceleration. For example, assuming the acceleration values of the three axes (X, Y, Z) are denoted as arrx, arry, and arrz respectively, for the acceleration intensity output value arro_energy at a certain moment, it can be equal to the sum of the squares of the acceleration values of the three axes (X, Y, Z), that is, arro_energy = arrx 2 +arry 2 +arrz 2 . data_acc_thre is the acceleration intensity threshold, which is a preset value used to determine whether the acceleration intensity is large enough. A large amount of acceleration data in the hitting and non-hitting states is collected, the distribution of its intensity value is calculated, and an acceleration intensity threshold that can effectively distinguish the two states is selected. The initial threshold is set based on kinematic knowledge and the experience of the actual motion scenario, and then it is verified and adjusted through experiments. When the acceleration intensity output value is greater than the acceleration intensity threshold, it indicates that the user's motion state is relatively active and the acceleration fluctuation is large.
[0091] The time period that simultaneously satisfies Equation 3.1 and Equation 3.2, indicating a large acceleration fluctuation and a high intensity, is considered the active time when the user is in an active state. In this application, the time period that simultaneously satisfies the above two conditions, that is, the time period that simultaneously satisfies Equation 3.1 and Equation 3.2, is obtained to get the active duration. Then, regardless of the acceleration fluctuation and intensity, as long as the time period when the hitting action occurs is detected, it is also considered active time, and the time period when the hitting action occurs is counted to get the hitting duration. The active duration corresponding to all the time periods that simultaneously satisfy Equation 3.1 and Equation 3.2 (large acceleration fluctuation and high intensity) and the hitting duration corresponding to the time period when the hitting occurs are added together to get the user's active duration.
[0092] Of course, the present application can also combine the above formula 3 with other data sources (such as heart rate sensors, GPS, etc.) to further optimize the evaluation of the user's active state and improve the accuracy of the user's active duration.
[0093] The acceleration standard deviation output value, acceleration intensity output value calculated by multi-axis acceleration, and the hitting duration of the hitting action in the present application not only consider the intensity and stability of the acceleration during the movement process, but also combine the duration of specific actions (such as hitting), which can more comprehensively reflect the user's true active situation, avoid misjudgment caused by a single index, and can more accurately capture the user's active state. By using the acceleration standard deviation output value and acceleration intensity output value calculated by multi-axis acceleration and combining the acceleration standard deviation threshold and acceleration intensity threshold for judgment, the interference of short-term and inactive acceleration changes (such as device dropping or accidental shaking) can be effectively reduced, and the truly active movement can be distinguished from the stationary or slightly shaking state, thereby improving the accuracy and reliability of the data. By accurately calculating the user's active duration, important data support can be provided for product design and operation. For example, the sports device can provide personalized training suggestions according to the user's active duration or optimize the function design of the product, thereby enhancing the user experience.
[0094] In some embodiments, the sensor data includes the acceleration of each axis and the angular velocity of each axis, and the motion state data includes the number of hits corresponding to the hitting posture and the total number of hits; the S400, analyzing the sensor data in the adjusted sliding window according to the user information to obtain the user's motion state data includes:
[0095] S431, calculating the acceleration feature according to the acceleration and calculating the angular velocity feature according to the angular velocity;
[0096] S432, determining the hitting posture according to the acceleration feature and the angular velocity feature;
[0097] S433, counting the number corresponding to each hitting posture to obtain the corresponding number of hits, and accumulating the number of hits corresponding to all hitting postures to obtain the total number of hits.
[0098] Specifically, the hitting postures include but are not limited to high hitting, low hitting, forehand hitting, backhand hitting, flat hitting, slicing, topspin, backspin, sidespin, smashing, pushing, lobbing. The acceleration features include but are not limited to the acceleration integration result, the acceleration extreme values (including the maximum value and the minimum value), the acceleration mean value, etc., and the angular velocity features include but are not limited to the angular velocity integration result, the angular velocity extreme values (including the maximum value and the minimum value), the angular velocity mean value, etc.
[0099] The first case: The action of hitting the ball at a high position requires the arm to stretch outwards, while the action of hitting the ball at a low position often does not require an obvious stretching of the arm. In some cases, when hitting the ball at a low position, there may even be an action of contracting the arm inwards (such as when the ball landing point is close). Based on this, the first acceleration integration result can be obtained by integrating the acceleration in the front-back direction (such as the X-axis) of the user's body. According to whether the first acceleration integration result is positive or negative, it is determined whether the hitting posture is one of hitting the ball at a high position and hitting the ball at a low position. Among them, when the first acceleration integration result is positive, it means contracting the arm, and it is determined that the hitting posture is hitting the ball at a low position. When the first acceleration integration result is negative, it means stretching the arm, and it is determined that the hitting posture is hitting the ball at a high position.
[0100] The second case: The second acceleration integration result is obtained by performing a second-order integration on the acceleration in the up-down direction (such as the Z-axis) of the user's body. According to the second acceleration integration result, it is determined whether the hitting posture is one of forehand swing and backhand swing. Among them, when the second acceleration integration result is less than or equal to the first threshold thre_1, it is judged as a forehand swing. When the second acceleration integration result is greater than or equal to the second threshold thre_2, it is judged as a backhand swing. The second threshold thre_2 is greater than the first threshold thre_1. Of course, when the second acceleration integration result is not obvious (that is, between thre_1 and thre_2), the minimum value of the angular velocity in the left-right direction (such as the Y-axis) of the user's body can be combined to determine whether the hitting posture is one of forehand swing and backhand swing.
[0101] The first angular velocity integration result is obtained by integrating the angular velocity in the up-down direction of the user's body and the angular velocity in the left-right direction (such as the Y-axis) of the user's body. The second angular velocity integration result is obtained by integrating the angular velocity in the left-right direction (such as the Y-axis) of the user's body. The third angular velocity integration result is obtained by integrating the angular velocity in the up-down direction (such as the Z-axis) of the user's body. According to the first acceleration integration result, the second acceleration integration result, and the first to third angular velocity integration results, it is determined whether the hitting posture is a smash.
[0102] In short, every time a hitting action is detected, the number of hits is incremented by 1. At the same time, according to the recognition result of the hitting posture, the number of hits of different hitting postures is counted. That is, a counter is set for each hitting posture (such as forehand, backhand, flat smash, etc.) in the program, and a total hit counter is also set. When the system recognizes a hitting event, the hitting posture is classified in the above manner. According to the classification result, the corresponding hitting posture counter is updated, and the total hit counter is incremented by 1. After the movement ends, the number of hits of each hitting posture and the total number of hits are counted and the results are displayed.
[0103] During the exercise process of this application, the hitting statistical information is updated in real time to provide instant feedback to the user. Combining the statistical results of the hitting postures, optimization suggestions for the postures are provided to the user, which can effectively count the number of hits and the total number of hits of each hitting posture, providing data support for exercise analysis and training.
[0104] In some embodiments, adjusting the position of the sliding window includes:
[0105] S310. Obtain the start time and end time corresponding to the sensor data within the sliding window;
[0106] S320. Compare the middle time calculated based on the start time and the end time with the hitting time;
[0107] S330. Update the position of the sliding window according to the comparison result.
[0108] Specifically, to determine whether the hitting time of the hitting action is located at the middle position of the window, it can be first assumed that the sliding window is a time interval, represented by two time points, namely the start time T_start and the end time T_end of the sliding window. Among them, the width of the sliding window remains unchanged, that is, the sliding window width is Deltat = T_end - T_start. This application adds the start time T_start and the end time T_end and calculates the average value to obtain the middle time, that is, T_mid = (T_start + T_end) / 2. Then, compare the hitting time T_hit and the middle time T_mid.
[0109] If T_hit = T_mid, the hitting time is exactly in the middle of the window, and the sliding window does not need to be adjusted.
[0110] If T_hit < T_mid (that is, T_hit is earlier than T_mid), the hitting time is on the left side of the sliding window, and the sliding window needs to move to the left by a distance of |T_mid - T_hit|.
[0111] If T_hit > T_mid (that is, T_hit is later than T_mid), the hitting time is on the right side of the sliding window, and the sliding window needs to move to the right by a distance of |T_mid - T_hit|.
[0112] In this application, by calculating the middle moment \(T_{mid}\) of the sliding window and comparing it with the hitting moment \(T_{hit}\), it can be determined whether the hitting moment is in the middle of the window. According to the comparison result, the starting position of the sliding window is dynamically adjusted to make the hitting moment located in the middle of the window, which can reduce noise interference and improve the detection accuracy. When this application recognizes the hitting action, it adjusts the position of the sliding window to make the hitting moment located in the middle of the window, which is crucial for analyzing the movement details before and after hitting (such as swing speed, hitting force, etc.), provides more accurate time alignment for subsequent motion state analysis, and enhances the adaptability of the system to different hitting rhythms.
[0113] Based on the same technical concept, this application also provides a system for obtaining motion state data, including a wearable device, a memory, and a processor. The wearable device is built-in with a sensor module. The memory is configured to store one or more programs. When the one or more programs are executed by the one or more processors, the processor realizes the steps of the method for obtaining motion state data described in the first aspect.
[0114] Based on the same technical concept, this application also provides a wearable device, including a memory and a processor. The wearable device is built-in with a sensor module. The memory is configured to store one or more programs. When the one or more programs are executed by the one or more processors, the processor realizes the steps of the method for obtaining motion state data described in the first aspect.
[0115] Based on the same technical concept, this application also provides a storage medium, on which a computer program is stored. When the computer program is run by a processor, it executes the steps of the method for obtaining motion state data described in the first aspect.
[0116] In specific implementation, each of the above units or modules can be implemented as an independent entity, or can be combined arbitrarily to be implemented as the same or several entities. For each of the above units or modules, reference can be made to the method embodiment of the connected component labeling method based on the pyramid described above, which will not be elaborated here.
[0117] Those of ordinary skill in the art can understand that all or part of the steps in the above various methods can be completed by instructions, or by instructions controlling related hardware. The instructions can be stored in a computer-readable storage medium and loaded and executed by a processor to implement the above method embodiments. Among them, the computer-readable storage medium can include: read-only memory (ROM, Read Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disc, etc.
[0118] In the above embodiments, the descriptions of the respective embodiments have their own focuses. For the parts not elaborated in a certain embodiment, reference may be made to the relevant descriptions of other embodiments. Those skilled in the art can clearly understand that for the convenience and brevity of description, the specific working processes and the beneficial effects that can be brought by the above-described data acquisition system and its corresponding units can refer to the description of the pyramid-based connected component labeling method in the above embodiments, and will not be elaborated herein specifically.
[0119] The above has introduced in detail a pyramid-based connected component labeling method and system provided by the embodiments of the present application. Specific examples are used herein to elaborate on the principle and implementation manner of the present application. The description of the above embodiments is only used to help understand the method and its core idea of the present application; at the same time, for those skilled in the art, according to the idea of the present application, there will be changes in the specific implementation manner and application scope. In summary, the content of this specification should not be construed as a limitation to the present application.
Claims
1. A method for obtaining motion state data, characterized in that, Including: Obtaining sensor data and user information monitored by a wearable device worn on the user's racket-holding hand; Sequentially storing the collected sensor data into a sliding window in chronological order, and identifying whether there is a hitting action in the sliding window; When there is the hitting action in the sliding window, adjusting the position of the sliding window so that the hitting moment of the hitting action is located at the middle position of the window; Analyzing the sensor data in the adjusted sliding window according to the user information to obtain the user's motion state data.
2. The method for obtaining motion state data according to claim 1, wherein The identifying whether there is a hitting action in the sliding window includes: Extracting the data features of the sensor data in the sliding window; Judging whether the preset conditions are met according to the data features; If the preset conditions are met, determining that there is the hitting action in the sliding window; If the preset conditions are not met, determining that there is no hitting action in the sliding window.
3. The method for obtaining motion state data according to claim 2, wherein The data features include the acceleration standard deviation output value, the total energy standard deviation of the angular velocity, and the angular velocity energy output value; The judging whether the preset conditions are met according to the data features includes: Judging whether the acceleration standard deviation output value, the total energy standard deviation of the angular velocity, and the angular velocity energy output value meet at least one of the following preset conditions, and the preset conditions include: The number of times that the acceleration standard deviation output value exceeds the upper limit value of the acceleration standard deviation reaches the first number threshold; and, The number of times that the acceleration standard deviation output value exceeds the lower limit value of the acceleration standard deviation reaches the second number threshold, and the total energy standard deviation of the angular velocity exceeds the angular velocity standard deviation threshold, and the angular velocity energy output value exceeds the angular velocity energy threshold.
4. The method for obtaining motion state data according to claim 1, wherein The user information includes the user's arm length, the sensor data includes the angular velocity of each axis, and the motion state data includes the racket swing speed; the analyzing the sensor data in the adjusted sliding window according to the user information to obtain the user's motion state data includes: Obtaining the swing length according to the user's arm length and the racket length; Calculating the swing linear velocity corresponding to each axis according to the swing length and the angular velocity of each axis; Calculating the racket swing speed according to the swing linear velocity corresponding to each axis.
5. The method for obtaining motion state data according to claim 1, characterized in that The sensor data includes the acceleration of each axis, and the motion state data includes the user's active duration; the analyzing the sensor data in the adjusted sliding window according to the user information to obtain the user's motion state data includes: Obtaining the hitting duration and the motion duration of the hitting action; the motion duration is the time period during which the acceleration standard deviation output value calculated according to the acceleration of multiple axes is greater than the acceleration standard deviation threshold, and the acceleration intensity output value calculated according to the acceleration of multiple axes is greater than the acceleration intensity threshold; Performing a sum calculation according to the hitting duration and the motion duration to obtain the user's active duration.
6. The method for obtaining motion state data according to claim 1, wherein The sensor data includes the acceleration of each axis and the angular velocity of each axis, and the motion state data includes the number of strokes corresponding to the stroke posture and the total number of strokes; the obtaining of the motion state data of the user according to the user information and the sensor data in the adjusted sliding window includes: Calculating an acceleration feature based on the acceleration, and calculating an angular velocity feature based on the angular velocity; Determining the stroke posture according to the acceleration feature and the angular velocity feature; Counting the number corresponding to each of the different stroke postures to obtain the corresponding number of strokes, and accumulating the number of strokes corresponding to all the stroke postures to obtain the total number of strokes.
7. The method for obtaining motion state data according to claim 1, wherein The adjusting the position of the sliding window includes: Obtaining the start time and the end time corresponding to the sensor data within the sliding window; Comparing the middle time calculated according to the start time and the end time with the stroke time; Updating the position of the sliding window according to the comparison result.
8. A system for obtaining motion state data, characterized in that, Comprising a wearable device, a memory and a processor, the wearable device is built-in with a sensor module, the memory is configured to store one or more programs, and when the one or more programs are executed by the one or more processors, the processor implements the steps of the method for obtaining the motion state data according to any one of claims 1 to 8.
9. A wearable device, characterized in that, Comprising a memory and a processor, the wearable device is built-in with a sensor module, the memory is configured to store one or more programs, and when the one or more programs are executed by the one or more processors, the processor implements the steps of the method for obtaining the motion state data according to any one of claims 1 to 8.
10. A storage medium having a computer program stored thereon, characterized in that, When the computer program is run by the processor, it executes the steps of the method for obtaining the motion state data according to any one of claims 1 to 8.
Citation Information
Cited By
Swing motion data analysis methods
TWI939287B