Method and device for predicting stable cadence

By analyzing the user's historical exercise data and starting point, combined with slope and congestion information, a smooth walking cadence is predicted, solving the problem of uncomfortable cadence in personalized music recommendations, and improving the running experience and music synchronization.

CN113761266BActive Publication Date: 2025-09-09HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010485743.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-06-01
Publication Date
2025-09-09
Estimated Expiration
2040-06-01

AI Technical Summary

Technical Problem

Existing technologies cannot accurately provide runners with a suitable cadence in personalized music recommendations, resulting in the recommended music not being in line with the runner's exercise habits, affecting the running experience.

Method used

By obtaining the user's historical exercise data and starting location information, the user's steady pace on the possible exercise trajectory is predicted, and adjustments are made based on factors such as slope and congestion to recommend music that is more in line with the runner's habits.

Benefits of technology

It provides more accurate cadence recommendations, improves the running experience, ensures that the music is synchronized with the runner's cadence, and reduces the risk of sports injuries.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113761266B_ABST
    Figure CN113761266B_ABST
Patent Text Reader

Abstract

The present application relates to a method for predicting a stable cadence, comprising: obtaining information about a user's starting location for exercise; determining a predicted trajectory of the user based on the starting location; and determining the user's stable cadence along the predicted trajectory based on at least one piece of historical exercise data from the user along at least one historical trajectory. The stable cadence can be used to recommend music that is more suitable for the runner's exercise schedule along the corresponding route.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of sports health, and in particular to a method and device for predicting stable cadence. Background Art

[0002] In daily life, jogging has gradually become a mainstream exercise method for urban residents to maintain health and relieve work stress. Some people also have the habit of listening to music while running. Since the human body tends to synchronize with the rhythmic beat when performing regular movements, a suitable musical rhythm can significantly enhance running enjoyment and training effectiveness. This has led to a demand among runners for suitable running music. Today, major music service providers are gradually transitioning from providing "running music playlists" to personalized music recommendations, with cadence being a primary factor in these recommendations.

[0003] Current personalized music recommendations rely on runners setting their cadence before they begin their run, so that music recommendations can be tailored to that cadence during the run. While this approach is simple to implement, inexperienced runners often lack a clear understanding of their preferred cadence. Consequently, recommendations can only be made based on common running cadences. Obviously, these common running cadence recommendations don't apply to every runner, and the music recommendations are inevitably inappropriate. Summary of the Invention

[0004] The present application provides a method for predicting a stable cadence by obtaining the starting point information of a user's current exercise to determine the user's possible motion trajectory. Then, based on the user's historical motion data, the user's stable cadence along the possible motion trajectory is predicted. Predicting the user's stable cadence along the possible motion trajectory based on the user's historical motion data can provide a more appropriate cadence for the runner as a reference, thereby enabling more appropriate music recommendations based on the cadence.

[0005] In a first aspect, a method for predicting a stable cadence is provided. The method comprises: obtaining information about a user's starting location for exercise; determining the user's predicted motion trajectory based on the starting location information; and determining the user's stable cadence along the predicted motion trajectory based on at least one piece of historical motion data from the user along at least one historical motion trajectory. By combining the user's historical motion data to calculate the stable cadence, the application can recommend music based on the cadence to better suit the runner's exercise habits.

[0006] In one possible embodiment, the historical motion data includes first time information and at least one cadence information, wherein the first time information is used to indicate the time when the historical motion data was generated; based on at least one historical motion data of the user, determining the user's smooth cadence on the predicted motion trajectory, including: for each historical motion data, calculating the average cadence of the historical motion data; based on the first time information of each historical motion data and the instability coefficient of each historical motion data, performing weighted summation of the average cadence of each historical motion data to determine the smooth cadence.

[0007] In one possible implementation, for each piece of historical motion data, the average cadence of the historical motion data is calculated, including: for each piece of historical motion data, performing median filtering on at least one cadence information of the historical motion data and then taking the average to obtain the average cadence of the historical motion data.

[0008] In one possible embodiment, the cadence information includes heart rate data; for each piece of historical motion data, the average cadence of the historical motion data is calculated, including: selecting at least one cadence information whose heart rate data is within a preset heart rate range and averaging it to obtain the average cadence of the historical motion data.

[0009] In one possible implementation, the instability coefficient of each piece of historical motion data includes: for each piece of historical motion data, calculating a standard deviation based on at least one cadence information of the historical motion data to determine the instability coefficient of the historical motion data.

[0010] In one possible embodiment, the historical motion data includes at least one cadence information; the predicted motion trajectory includes a first slope segment, and the historical motion trajectory includes a second slope segment, wherein the second slope segment is a slope segment with the same slope as the first slope segment in at least one historical motion trajectory; the method further includes: calculating the differential cadence corresponding to the first slope segment based on at least one historical motion data on the second slope segment; adjusting the smooth cadence on the predicted motion trajectory based on the differential cadence corresponding to the first slope segment, and determining the smooth cadence of the first slope segment on the predicted motion trajectory. The present application can also be combined with a slope threshold to determine the differential cadence of each slope segment based on the user's historical motion data, and adjust the smooth cadence based on the differential cadence of each slope segment to obtain the smooth cadence of each slope segment. This allows users to obtain more accurate cadence data on different slope segments, so that more suitable music can be recommended based on different slopes.

[0011] In one possible embodiment, the differential cadence corresponding to the first slope segment is calculated based on at least one historical motion data on the second slope segment in at least one historical motion trajectory, including: determining a cadence sequence on the second slope segment based on at least one historical motion data on the second slope segment, wherein the cadence sequence includes at least one cadence information on the second slope segment; calculating an average cadence on the second slope segment based on the cadence sequence on the second slope segment; calculating the difference between the average cadence on the second slope segment and the first cadence information of the cadence sequence on the second slope segment, determining the differential cadence on the second slope segment, and using the differential cadence on the second slope segment as the differential cadence corresponding to the first slope segment.

[0012] In one possible embodiment, each cadence information corresponds to a sampling point, and the method further includes: if the cadence sequence includes multiple cadence information, determining the cadence change distance based on the multiple cadence information on the second slope segment, wherein the cadence change distance is used to represent the distance between the cadence inflection point and the starting sampling point on the second slope segment, and the cadence inflection point is the sampling point corresponding to the cadence information when the cadence change is greater than or equal to the cadence threshold for the first time; calculating the average cadence on the second slope segment based on the cadence sequence on the second slope segment, including: calculating at least one cadence information located after the cadence change distance in the cadence sequence to obtain the average cadence on the second slope segment.

[0013] In one possible implementation, the method further includes: segmenting the predicted motion trajectory into slope segments according to the step frequency change distance of the second slope segment.

[0014] In one possible implementation, the method further includes: obtaining at least one slope threshold; performing slope segmentation on the predicted motion trajectory according to the at least one slope threshold; and performing slope segmentation on at least one historical motion trajectory according to the at least one slope threshold.

[0015] In a possible implementation, if there are multiple slope thresholds, the step frequency between two adjacent slope thresholds is less than k steps / minute.

[0016] In one possible implementation, the predicted motion trajectory includes a congestion level; the method further includes adjusting a steady cadence along the predicted motion trajectory based on the congestion level. This application can also adjust steady cadence based on congestion information on different paths, thereby enabling users to obtain more accurate cadence data under varying congestion conditions and recommend more appropriate music.

[0017] In one possible implementation, the method further includes: acquiring road congestion information; and calculating the predicted motion trajectory based on the road congestion information to obtain a congestion level of the predicted motion trajectory.

[0018] In one possible embodiment, the method further includes: obtaining the user's height information, age information, and / or gender information; sending the height information, age information, and / or gender information to a server; receiving the physiological reference cadence corresponding to the height information, age information, and / or gender information sent by the server; and determining the user's average cadence on the predicted motion trajectory based on at least one piece of historical motion data of the user, including: determining the user's average cadence on the predicted motion trajectory based on the physiological reference cadence corresponding to the height information, age information, and / or gender information. The present application can also determine the average cadence in combination with the user's physiological information. When the user does not have historical motion data, the average cadence is calculated based on the user's physiological information, so that the music recommended based on the cadence is more in line with the runner's exercise habits.

[0019] In a possible implementation, the physiological reference cadence includes the physiological reference cadence of each slope segment corresponding to the height information, age information, and / or gender information.

[0020] In a second aspect, a device for predicting a stable cadence is provided. The device includes: a processor coupled to a memory and configured to read and execute instructions from the memory; when the processor is executed, the instructions are executed, causing the processor to further: obtain information about a user's starting location; determine a predicted motion trajectory of the user based on the starting location information; and determine the user's stable cadence along the predicted motion trajectory based on at least one piece of historical motion data of the user along at least one historical motion trajectory. By calculating the stable cadence based on the user's historical motion data, the present application can make music recommendations based on the cadence more consistent with the runner's exercise habits.

[0021] In one possible embodiment, the historical motion data includes first time information and at least one step frequency information, wherein the first time information is used to indicate the time when the historical motion data was generated; the processor is further used to: calculate the average step frequency of each historical motion data; and perform weighted summation of the average step frequency of each historical motion data based on the first time information of each historical motion data and the instability coefficient of each historical motion data to determine the steady step frequency.

[0022] In one possible implementation, the processor is further configured to: for each piece of historical motion data, perform median filtering on at least one cadence information of the historical motion data and then take the average value to obtain an average cadence of the historical motion data.

[0023] In one possible implementation, the cadence information includes heart rate data; the processor is further configured to: select at least one cadence information whose heart rate data is within a preset heart rate range and calculate the average value to obtain the average cadence of the historical exercise data.

[0024] In one possible implementation, the processor is further configured to: for each piece of historical motion data, calculate a standard deviation based on at least one cadence information of the historical motion data, and determine an instability coefficient of the historical motion data.

[0025] In one possible embodiment, the historical motion data includes at least one cadence information; the predicted motion trajectory includes a first slope segment, and the historical motion trajectory includes a second slope segment, wherein the second slope segment is a slope segment with the same slope as the first slope segment in at least one historical motion trajectory; the processor is further used to: calculate the differential cadence corresponding to the first slope segment based on at least one historical motion data on the second slope segment; adjust the smooth cadence on the predicted motion trajectory based on the differential cadence corresponding to the first slope segment, and determine the smooth cadence of the first slope segment on the predicted motion trajectory. The present application can also combine a slope threshold to determine the differential cadence of each slope segment based on the user's historical motion data, and adjust the smooth cadence based on the differential cadence of each slope segment to obtain the smooth cadence of each slope segment. This allows users to obtain more accurate cadence data on different slope segments, so as to recommend more suitable music based on different slopes.

[0026] In one possible embodiment, the processor is further used to: determine a cadence sequence on the second slope segment based on at least one piece of historical motion data on the second slope segment, wherein the cadence sequence includes at least one cadence information on the second slope segment; calculate an average cadence on the second slope segment based on the cadence sequence on the second slope segment; calculate the difference between the average cadence on the second slope segment and the first cadence information of the cadence sequence on the second slope segment, determine the differential cadence on the second slope segment, and use the differential cadence on the second slope segment as the differential cadence corresponding to the first slope segment.

[0027] In one possible embodiment, each cadence information corresponds to a sampling point, and the processor is further used to: if the cadence sequence includes multiple cadence information, determine the cadence change distance based on the multiple cadence information on the second slope segment, wherein the cadence change distance is used to represent the distance between the cadence inflection point and the starting sampling point on the second slope segment, and the cadence inflection point is the sampling point corresponding to the cadence information when the cadence change is greater than or equal to the cadence threshold for the first time; calculate at least one cadence information located after the cadence change distance in the cadence sequence to obtain the average cadence on the second slope segment.

[0028] In one possible implementation, the processor is further configured to: segment the predicted motion trajectory into slope segments according to the step frequency change distance in the second slope segment.

[0029] In one possible implementation, the processor is further configured to: obtain at least one slope threshold; segment the predicted motion trajectory by slope according to the at least one slope threshold; and segment at least one historical motion trajectory by slope according to the at least one slope threshold.

[0030] In a possible implementation, if there are multiple slope thresholds, the step frequency between two adjacent slope thresholds is less than k steps / minute.

[0031] In one possible implementation, the predicted motion trajectory includes a congestion level; the processor is further configured to adjust the cadence of the predicted motion trajectory based on the congestion level. This application can also adjust the cadence based on congestion information on different paths, thereby enabling users to obtain more accurate cadence data under varying congestion conditions and recommend more appropriate music.

[0032] In one possible implementation, the processor is further configured to: obtain road congestion information; and calculate the predicted motion trajectory based on the road congestion information to obtain a congestion level of the predicted motion trajectory.

[0033] In one possible embodiment, the processor is further configured to: obtain the user's height information, age information, and / or gender information; send the height information, age information, and / or gender information to a server; receive the physiological reference cadence corresponding to the height information, age information, and / or gender information sent by the server; and determine the user's average cadence on the predicted motion trajectory based on at least one piece of historical motion data of the user, including: determining the user's average cadence on the predicted motion trajectory based on the physiological reference cadence corresponding to the height information, age information, and / or gender information. The present application can also determine the average cadence in combination with the user's physiological information. When the user does not have historical motion data, the average cadence is calculated based on the user's physiological information, so that the music recommended based on the cadence is more in line with the runner's exercise habits.

[0034] In a possible implementation, the physiological reference cadence includes the physiological reference cadence of each slope segment corresponding to the height information, age information, and / or gender information.

[0035] In a third aspect, a computer-readable storage medium is provided, in which instructions are stored, and the characteristics are that when the instructions are executed on a terminal, the terminal executes any one of the methods of the first aspect.

[0036] According to a fourth aspect, a computer program device comprising instructions is provided, which, when executed on a terminal, causes the terminal to execute any one of the methods according to the first aspect.

[0037] The present application discloses a method and device for predicting a stable cadence, which can provide a runner with a more suitable cadence as a reference on a corresponding road section, so that music that is more suitable for the runner's exercise can be recommended on the corresponding road section based on the more suitable cadence. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] Figure 1 This is a schematic diagram of a user's outdoor running sports scene;

[0039] Figure 2 A flow chart of a method for predicting stable cadence provided in an embodiment of the present application;

[0040] Figure 3 A schematic diagram of a display interface provided in an embodiment of the present application;

[0041] Figure 4 A flowchart for obtaining a predicted motion trajectory provided in an embodiment of the present application;

[0042] Figure 5 A schematic diagram of a predicted motion trajectory and altitude curve;

[0043] Figure 6 A flow chart of another method for predicting stable cadence provided in an embodiment of the present application;

[0044] Figure 7 A flow chart of another method for predicting stable cadence provided in an embodiment of the present application;

[0045] Figure 8 A schematic diagram of a predicted motion trajectory with a slope;

[0046] Figure 9 Schematic diagram of another predicted motion trajectory with a slope;

[0047] Figure 10 A flow chart of another method for predicting stable cadence provided in an embodiment of the present application;

[0048] Figure 11 A schematic diagram of a congestion trajectory;

[0049] Figure 12 A schematic diagram of a predicted motion trajectory with road congestion information;

[0050] Figure 13 A schematic diagram of another predicted motion trajectory with road congestion information;

[0051] Figure 14 A flow chart of another method for predicting stable cadence provided in an embodiment of the present application;

[0052] Figure 15A flow chart of another method for predicting stable cadence provided in an embodiment of the present application;

[0053] Figure 16 A schematic diagram of a device for predicting stable cadence provided in an embodiment of the present application. DETAILED DESCRIPTION

[0054] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.

[0055] This application is mainly used in outdoor sports scenarios. Figure 1 As shown in the schematic scene diagram, when a user is running outdoors, their cadence changes with the changing environment. It is understood that "runner" can also refer to "user," and their meanings are the same in this application and can be referenced interchangeably. Runners often enjoy listening to music while running. When the music rhythm matches the runner's current running cadence, the runner's overall running rhythm can adapt to the music rhythm, providing the runner with a comfortable running experience. However, if the music rhythm does not suit the current runner's running cadence, the music rhythm will disrupt the runner's overall running rhythm, causing the runner's cadence to decrease or increase, seriously disrupting the runner's running rhythm and resulting in a very poor running experience. Therefore, it is very important to recommend suitable music to runners. Choosing music recommendations based on cadence can ensure that the recommended music is fully adapted to the current runner's running rhythm. Therefore, calculating the user's steady running cadence along a particular path is particularly important.

[0056] To accommodate runners' changing cadence throughout their runs, some solutions allow runners to adjust their cadence data at any time, and then recommend music based on this user-adjusted cadence data. Obviously, in this solution, cadence changes are manually modified by the runner, and since this modification is subjectively determined by the runner, if the modified cadence is faster than the actual cadence, the recommended music will also be fast-paced and rousing. This can cause runners to run faster and faster to the music, gradually deviating from their ideal cadence range, resulting in a very poor running experience. Excessive deviations from the ideal cadence range can also cause sports injuries.

[0057] Of course, there are some solutions that calculate the runner's speed based on the duration and distance of the runner's most recent run, and then use the speed to get the speed in various situations such as comfortable running, rhythm running, competitive running, and long-distance running. But obviously, the speed indicator cannot accurately reflect the runner's running rhythm in different areas. Since the determinants of speed include cadence and stride length, it is obvious that using speed instead of cadence to recommend music is not suitable for all runners. The difference in cadence will cause the music recommended at the same speed to be inconsistent with the runner's actual running rhythm, resulting in a poor running experience.

[0058] This application determines the possible movement trajectory of the user by obtaining the starting point information of the user's current movement. Then, based on the historical movement data on the user's historical movement trajectory, the user's smooth and steady frequency on the possible movement trajectory is predicted. The slope threshold can also be obtained based on big data, and the possible movement trajectory can be segmented according to the slope threshold, and the smooth and steady frequency on each segment can be predicted. At the same time, the congestion conditions on different road sections can be referred to and the smooth and steady frequency on each segment can be corrected. Using this smooth and steady frequency can recommend music that is more suitable for runners on the corresponding road sections and ensure a comfortable exercise experience.

[0059] The technical solutions in the embodiments of the present application will be described in detail below with reference to the accompanying drawings in the embodiments of the present application.

[0060] Figure 2 A flow chart of a method for predicting stable cadence provided in an embodiment of the present application.

[0061] like Figure 2 As shown, the present application provides a method for predicting a stable cadence, which can be applied to a terminal device. The terminal equipment (TE) can be a smart watch, a mobile phone, a tablet computer, a computer with wireless transceiver function, a virtual reality (VR) terminal device, an augmented reality (AR) terminal device, a wireless terminal in remote medical care, a wireless terminal in a smart city, a wireless terminal in a smart home, etc.

[0062] The cadence referred to in this application can be the cadence of a user running, the cadence of a user cycling, or the cadence generated by the user's foot movement during other sports. It is understood that the stable cadence determined in this application can be applied to running, cycling, slow walking, or other similar sports that generate cadence. The technical solution of this application will be described in detail using running as an example.

[0063] When you are ready to run, you can do the following:

[0064] S201, the user chooses to start exercising.

[0065] When the user is ready to start running, the user can display a prompt message on the display screen of the terminal device, and the prompt message can be instructing the user whether to start running. When the user clicks to start running, S202 can be executed. In one example, the display interface can be as follows Figure 3 As shown, a prompt message is displayed on the display screen of the terminal device, such as shown in the dotted box. When the user clicks the "Start" button, it can be considered that the user chooses to start exercising, and S202 is executed. Of course, if the user clicks the "Not yet" button, it can be considered that the user is not ready to start exercising at this time.

[0066] S202: Acquire the user's historical exercise data and the starting point information of the exercise.

[0067] When the user chooses to start exercising, the terminal device can obtain at least one historical motion data of the user on at least one historical motion track, as well as the starting position point information of the user starting to exercise. In one example, the starting position point information of the user starting to exercise can be that when the user chooses to start exercising, the terminal device can obtain the user's location information at this time through the global positioning system (GPS), and use the location information as the starting position point information. Of course, in another example, the starting position point information of the user starting to exercise can also be manually input by the user. For example, when the user chooses to start exercising, a text box can be displayed on the display screen of the terminal device so that the user can enter the starting position point information in the text box; or map information can be displayed so that the user can select a certain location in the map information as the starting position point information. It can be understood that the starting position point information can also be obtained by any other equivalent method, and this application is not limited here.

[0068] S203: Calculate possible motion trajectories based on the starting position information.

[0069] After the terminal device obtains the starting location information, it can calculate the possible movement trajectory based on the starting location information.

[0070] In one example, S203 may be specifically as follows: Figure 4 As shown, after S202, the following steps may be included:

[0071] S401: Determine whether the historical motion trajectory contains starting position information.

[0072] After obtaining the starting location information, the terminal device can determine whether the starting location information is included in all historical motion trajectories of the user. If the terminal device detects that a historical motion trajectory contains the starting location information, S402 is executed. If the terminal device detects that no historical motion trajectory contains the starting location information, S403 is executed.

[0073] S402 , obtaining historical motion trajectories including starting position information, and taking the union of the historical motion trajectories as a predicted trajectory set.

[0074] When the terminal device detects that there are historical motion trajectories containing starting position information, such historical motion trajectories can be merged to obtain a predicted trajectory set.

[0075] S403: Obtain multiple motion trajectories including starting position information from the cloud, and take the union of the trajectories as a predicted trajectory set.

[0076] When the terminal device detects that there is no historical motion trajectory containing the starting location point information, the terminal device can send the starting location point information to the cloud server and receive one or more motion trajectories sent by the cloud server. It is understandable that the one or more motion trajectories sent by the cloud server are one or more popular motion trajectories containing the starting location point information determined by the cloud server. Obviously, the cloud server can calculate multiple popular motion trajectories selected by most users through a large amount of motion trajectory data provided by different users, and then select a popular motion trajectory containing the starting location point from the multiple popular motion trajectories and send it to the terminal device.

[0077] The terminal device merges one or more received popular motion trajectories to obtain a predicted trajectory set.

[0078] S404: Output the predicted trajectory set.

[0079] After the terminal device executes S402 or S403 to obtain the predicted trajectory set, the predicted trajectory set may be output so that the terminal device can calculate the smooth steady frequency on each possible predicted motion trajectory in the predicted trajectory set.

[0080] In one example, the output predicted trajectory set can be called TrackRaw. TrackRaw contains at least one possible predicted motion trajectory and an altitude curve for each possible predicted motion trajectory. Figure 5 As shown, it can be seen that the output TrackRaw may contain gray-white paths and black paths. Figure 5 The lower part shows the elevation curve of the gray-white path as a whole, where the horizontal axis represents the kilometers of the path and the vertical axis represents the altitude of different locations. Figure 5The position indicated by the arrow in the upper part corresponds to Figure 5 The altitude at 303 meters in the lower half is 71 meters. It is understandable that TrackRaw also contains the altitude curve of the black path (not shown in the figure).

[0081] Continue back Figure 2 For each possible predicted motion trajectory in the predicted trajectory set output in S404, the following steps may be performed:

[0082] S204: Calculate the possible steady-state frequency on the motion trajectory based on the user's historical motion data.

[0083] For each possible predicted motion trajectory in the predicted trajectory set, the steady-state frequency on the possible predicted motion trajectory is calculated based on the user's historical motion data.

[0084] In one example, the user's steady pace can be calculated based on multiple historical motion data of the user when the road is flat and there is no congestion. The slope of different paths and congestion are not considered at this time. Figure 6 The method for determining the user's steady walking pace under the condition of a smooth road and no congestion may include the following steps:

[0085] S601, determining the current time and historical exercise data.

[0086] First, the terminal device needs to determine the second time information. The second time information is the time when the user is preparing to exercise. This second time information can be obtained in real time when the terminal device is preparing to determine the steady pace. At the same time, the terminal device also needs to determine the first time information and the pace information of each sampling point in each historical exercise data. The first time information is the time when the historical exercise data was generated.

[0087] In one example, the second time information can be recorded as t, and the first time information can be recorded as t i Each piece of historical motion data has at least one cadence information. A cadence sequence set consisting of at least one cadence information can represent the piece of historical motion data. For example, it can be recorded as Cseq i , where i is a positive integer, representing the i-th historical motion data. Each historical trajectory can have M sampling points, where M is a positive integer. The step frequency sequence set of each historical motion data can also be recorded as Cseq i ={Cpoint i1 , Cpoint i2 ,…,Cpoint iM}, and first-time information t i Among them, Cpoint iMUsed to represent the step frequency information of the Mth sampling point on the i-th historical exercise trajectory.

[0088] S602: Perform median filtering on each piece of historical motion data.

[0089] After the terminal device determines the first time information and the cadence information at each sampling point in each piece of historical motion data, it can perform median filtering on each piece of historical motion data based on the cadence information at each sampling point. It will be appreciated that the purpose of median filtering is to remove singular points, thereby preventing their influence in subsequent calculations. The specific method for median filtering is the same as that of existing solutions and will not be repeated here for ease of description.

[0090] S603, calculate the average value Cavg of the filtered data i .

[0091] After executing S602, for each piece of historical motion data, the average cadence of the piece of historical motion data is calculated based on the cadence information of each sampling point in the piece of historical motion data, which is recorded as Cavg i It is understandable that in S603, the average step frequency Cavg is obtained by averaging the step frequency information of each sampling point in the historical motion data after removing the singular points. i .

[0092] In another example, S602' and S603' may be used instead of S602 and S603, for example, the average value Cavg is determined by the step frequency information of a certain heart rate interval. i The specific steps may include:

[0093] S602', selecting at least one cadence information whose heart rate data is within a preset heart rate range.

[0094] Each piece of historical exercise data may also include the heart rate data of each sampling point, that is, each sampling point may include the heart rate data and cadence information of the sampling point. The terminal device selects all cadence information whose heart rate data is within a preset heart rate interval. In one example, the preset heart rate interval may be [60%, 70%] of the user's maximum heart rate, or it may be a specific heart rate value, such as [132, 154]. Obviously, the specific heart rate interval can be arbitrarily set according to actual conditions, and this application does not limit it here.

[0095] S603', calculate the average value Cavg using the selected at least one step frequency information i .

[0096] For each piece of historical exercise data, the terminal device calculates its average value Cavg by using at least one step frequency information of the historical exercise data selected in S602'. i .

[0097] S604: Calculate the standard deviation for each piece of historical motion data.

[0098] After the terminal device determines the first time information and the cadence information of each sampling point in each piece of historical motion data, the standard deviation can be calculated based on the cadence information of each sampling point of the historical motion data, which is recorded as Cstd. i .

[0099] It is understandable that there is no clear order between S604 and S602. That is, after executing S601, S602 and S604 can be executed simultaneously, or S602 can be executed first and then S604. Of course, S604 can also be executed first and then S602. This application does not limit this. It should be noted that since S604 is not necessarily executed after S602, it is obvious that when calculating the standard deviation Cstd i When , it is not the historical motion data after removing the singular points, but is calculated based on the step frequency information of all sampling points in the historical motion data.

[0100] S605, based on the current time t, the average value Cavg of each historical motion data i And the standard deviation Cstd of each historical motion data i , calculate the steady-state frequency.

[0101] When the terminal device obtains the average value Cavg of each historical motion data through S603 or S603' i , and the standard deviation Cstd of each historical motion data is obtained through S604 i After that, you can use the current time t, the Cavg of each historical motion data i And Cstd of each historical motion data i Determine the user's historical stable frequency Cstable.

[0102] In one example, a weighted average algorithm may be used to calculate the historical stable frequency Cstable.

[0103]

[0104] in, as well as It can be understood that α controls the contribution weight of the historical motion data to the overall steady-state frequency from the perspective of acquisition time, and β controls the contribution weight of the historical motion data to the overall steady-state frequency from the perspective of Cseqi The instability angle controls the contribution weight of the historical motion data to the overall steady frequency. The formula of α shows that the closer the time of the historical motion data is to the current motion time, the greater the weight. At the same time, if Cstd i The larger the value, the more unstable the historical trajectory is, and the lower the weight is. Here, B is a fixed parameter that can be set by the user in advance as a coefficient for adjusting α and β.

[0105] At this time, the user's historical steady frequency Cstable can be used as the steady frequency Cpredict on the possible predicted motion trajectory, such as shown in Formula 2,

[0106] Cpredict=Cstable...Formula 2

[0107] Of course, in some possible examples, we can also consider the influence of the slope on the smooth steady-state frequency Cpredict. Figure 7 The calculation of the influence of different slopes on the smooth steady frequency Cpredict based on different slopes is shown. Specifically, the method of correcting the smooth steady frequency based on different slopes may include the following steps:

[0108] S701, obtaining at least one slope threshold from a cloud server and determining historical motion data.

[0109] The terminal device can also refer to the effect of different slopes on the steady pace. Therefore, in one example, the terminal device can also obtain at least one gradient threshold value from the cloud server. N . Where N is a positive integer. The slope value between two adjacent slope thresholds can be set as a slope level, denoted as l, l∈[1, N], l is a positive integer. For example, when the slope of a certain road section is between [Gradient N , Gradient N+1 ], it can be considered that the slope level l of the current road section is level N.

[0110] In one example, at least one gradient threshold value obtained from the cloud server N The cloud server can use the iterative method to calculate the big data based on the historical exercise data of multiple users collected to obtain multiple gradient thresholds. N In some examples, the cloud server can calculate the gradient threshold value based on the preset target cadence. N The target cadence can be, for example, k steps / minute. The setting of the target cadence means that the slope is in [Gradient N, Gradient N+1 ], the difference in stride frequency between most runners is less than or equal to k steps / minute.

[0111] S702 : Segment each piece of historical motion data according to at least one slope threshold to determine at least one cadence sequence set.

[0112] The terminal device receives at least one gradient threshold value in S701. N Afterwards, the gradient can be calculated based on at least one gradient threshold. N The user's historical motion data obtained in S201 is segmented to determine at least one step frequency sequence set. For example, for each piece of historical motion data, the historical motion trajectory corresponding to the piece of historical motion data is first determined. Then, at least one gradient threshold is used to determine the historical motion trajectory. N The historical motion track corresponding to the piece of historical motion data is segmented to obtain at least one slope segment corresponding to the piece of historical motion data.

[0113] Each slope segment contains the cadence information of multiple sampling points on the slope segment, and the cadence information of multiple sampling points on the slope segment is regarded as a cadence sequence set. For example, the cadence sequence set can be recorded as Cseq il ={Cpoint il1 , Cpoint il2 ,...,Cpoint ilM}, where Cpoint ilM It can represent the cadence information of the Mth sampling point at the lth slope level on the i-th historical motion trajectory. Of course, in some examples, a historical motion trajectory may have multiple slope segments of the same slope level. Therefore, a portion of the lth slope level can be recorded as l′ or l″ to distinguish it from l.

[0114] S703 : For each cadence sequence set, determine the average cadence of the cadence sequence set.

[0115] The terminal device performs the following operations on each step frequency sequence set Cseq: il The step frequency information of each sampling point in is used to calculate the step frequency sequence set Cseq il Average cadence Cavg il In one example, by adding Cseq il All Cpoints in ilM Perform median filtering, accumulate and average the step frequency information corresponding to the filtered sampling points, and obtain the step frequency sequence set Cseq il Cavg il .

[0116] Of course, in one example, the slope of some slope sections may not have a slope from the starting position of the slope section. Therefore, the cadence change distance can be calculated to determine the part of the slope section that actually has a slope, and the cadence information of this part can be used to calculate the average cadence Cavg. il , so that the calculation result is more accurate. In one example, the terminal device can determine the step frequency sequence set Cseq il The cadence information exceeds the preset cadence difference z for the first time, where z is a positive integer. The cadence difference z can be pre-set, and the unit can be steps / minute. It is understandable that when the cadence information of a sampling point is less than z, it can be considered that the position of the sampling point does not have a slope. The terminal device determines the sampling point where the cadence information is greater than or equal to z for the first time, and can use the sampling point as the cadence inflection point. It is understandable that in a certain slope section, the path before the cadence inflection point does not have a corresponding slope, and the path after the cadence inflection point has the slope corresponding to the slope section. The terminal device calculates the slope inflection point and the cadence sequence set Cseq il The distance between the starting sampling points in , and the distance is used as the step frequency change distance Distchange il , used to indicate the distance on the slope section that does not have a slope. The terminal device determines the distance of the change in cadence Distchange il After that, the cadence information corresponding to the sampling points after the cadence inflection point can be used for median filtering, and then the cadence information corresponding to the filtered sampling points can be accumulated and averaged to obtain the cadence sequence set Cseq il Cavg il Obviously, by removing the step frequency information of the sampling points without slope, the calculated Cavg il It can more accurately reflect the average cadence on this slope.

[0117] S704 : For each cadence sequence set, determine the difference cadence of the cadence sequence set according to the average cadence of the cadence sequence set and the first cadence information of the cadence sequence set.

[0118] The terminal device determines the step frequency sequence set Cseq in S703 il Cavg il Afterwards, combined with the step frequency sequence set Cseq il The step frequency information of the first sampling point in is used to calculate Cavg il and the step frequency sequence set Cseq il The difference between the step frequency information of the first sampling point in is used as the step frequency sequence set Cseq il The difference in cadence Coffset ilObviously, Coffset il This means that in the i-th historical motion data, the slope segment with a slope level of l can produce Coffset on the cadence. il For example, in the i-th historical motion data, the Coffset with a slope level of l il It is 10 steps / minute, which means that the slope segment with a slope level of l in the i-th historical motion data can have an impact of 10 steps per minute on the cadence.

[0119] S705: averaging multiple cadence differences for the same slope level to obtain the cadence difference for the slope level.

[0120] When the terminal device obtains the difference in cadence Coffset corresponding to each slope level in each historical exercise data in S704 il In order to adjust the steady frequency Cpredict more conveniently later, you can use Coffset il Accumulate and average the values ​​to get the average difference in cadence Cavgoffset at the slope level l l .

[0121] In one example, the terminal device obtains the average difference in cadence Cavgoffset at each slope level l il For each possible predicted motion trajectory, at least one gradient threshold value obtained in S701 may be used. N The possible predicted motion trajectory is segmented.

[0122] More specifically, in one example, for each possible predicted motion trajectory, the altitude curve contained in the possible predicted motion trajectory is converted into a gradient curve. The conversion can be performed in an existing manner, which is not described in detail in this application for the sake of convenience. N The gradient curve obtained by the conversion is segmented. After segmentation, a predicted motion trajectory with a gradient can be obtained, which can be recorded as GradientMap = {point, GradientLevel}. Among them, the segmentation point (point) is used to represent the gradient according to at least one gradient threshold value. N The possible predicted motion trajectory is divided into multiple slope segments, with a dividing point between each slope segment. GradientLevel is used to represent the slope level of the slope segment between this point and the next point. For example Figure 8As shown, the predicted motion trajectory with slope contains 4 points, namely A1, A2, A3 and A4, where {A1, l} can represent the slope segment from A1 to A2 with a slope level of 1. Of course, it is understandable that {A4, l} represents the slope segment from A4 to A1 with a slope level of 1.

[0123] When the terminal device obtains the predicted motion trajectory with a slope, it can also refer to the average difference in step frequency Cavgoffset under each slope level l l , adjust the steady-state frequency Cpredict of each slope segment in the predicted motion trajectory with slope. For example, as shown in formula 3,

[0124] Cpredict(q)=Cstable-γ1*Coffset(q)……Formula 3

[0125] Where q is used to represent different slope segments in the possible predicted motion trajectory, where Coffset(q) = Cavgoffset GradientLevel(q) γ1 can be the pre-set difference step frequency Cavgoffset l The specific value can be set arbitrarily according to the actual situation and is not limited in this application. GradientLevel(q) is used to represent the gradient level of the gradient segment q, that is, GradientLevel(q)=1.

[0126] Of course, in some examples, the terminal device can also calculate the distance Distchange of the step frequency change corresponding to the same slope level l on each historical exercise data obtained in S703. il The average value is accumulated to get the average cadence change distance Distchange under the slope level l. l Then, according to the average cadence change distance Distchange at each slope level l l , the predicted motion trajectory with slope is segmented again, for example Figure 9 shown. Figure 9 Compared to Figure 8 , there are 4 more dividing points B1, B2, B3 and B4. Obviously, the newly added dividing points are used to divide the path with a relatively gentle slope in each slope segment. For the slope segments A1→B1, A2→B2, A3→B3 and A4→B4, it can be considered that there is no slope, while for B1→A2, B2→A3, B3→A4 and B4→A1, it can be considered that there is a slope on the corresponding path. For formula 3, further optimization can be performed, that is, combined with the slope segment q, when q(A X →B X ), Coffset(q)=0; when q(BX →A X+1 ), Coffset(q)=Cavgoffset GradientLevel(q) , where X is a positive integer.

[0127] Figure 10 A flow chart of another method for predicting stable cadence provided in an embodiment of the present application.

[0128] In other examples, the congestion on the path can also be considered, and the steady-state frequency Cpredict of the predicted motion trajectory can be adjusted based on the congestion. Figure 10 As shown, the method may further include the following steps:

[0129] S1001: Obtain road congestion information.

[0130] The terminal device can also obtain road congestion information. In one example, this road congestion information may be sent to the terminal device by a cloud server. In another example, the road congestion information may be obtained by the terminal device from the operator's server. The road congestion information may directly provide the congestion level (JamLevel) for certain road sections. Alternatively, the road congestion information may provide information about the flow of people on certain road sections and the road width of the corresponding road sections. The terminal device may use the road width of the road section as a weight to calculate the congestion level (JamLevel) for the road section. In another example, the road width of the corresponding road section may be obtained by the terminal device from a third-party application, such as a map application. For a specific road section, the JamLevel for the road section is determined by calculating the flow of people on the road section / the road width of the road section and comparing the result with a pre-set threshold. For example, the pre-set congestion thresholds may be 50, 100, etc. Pre-set rules may include: if the value is less than or equal to 50, JamLevel = 1; if it is greater than 50 and less than or equal to 100, JamLevel = 2; and if it is greater than 100, JamLevel = 3. If the result of the number of people on the road section / the road width of the road section is 35, then it can be determined that the road section has JamLevel = 1; if the result is 105, then it can be determined that the road section has JamLevel = 3. Of course, the specific value of the congestion threshold and the number of congestion levels can be arbitrarily set according to actual conditions and are not limited in this application.

[0131] The terminal device can obtain a congestion map set JamMap based on the road congestion information. The congestion map set can be recorded as JamMap = {point', JamLevel}. point' is different from the point determined according to at least one slope threshold in S705. It can be understood that point' is the congestion segmentation point determined by the terminal device based on the road congestion information. For example Figure 11 As shown, it can be seen Figure 11 There are two congestion points C1 and C2. The congestion level between C1 and C2 is JamLevel. Of course, the congestion level between C2 and C1 can be considered non-congested and the congestion level can be 0.

[0132] S1002: Adjust the steady frequency on the predicted motion trajectory according to the road congestion information.

[0133] If the possible predicted trajectories are not segmented according to slope, you can refer to Figure 11 As shown, the terminal device can adjust the smooth frequency Cpredict of the predicted motion trajectory according to the road congestion information. For example, the smooth frequency Cpredict of the predicted motion trajectory can be adjusted with reference to Formula 4.

[0134] Cpredict(q)=Cstable-γ2*JamLevel(q)……Formula 4

[0135] Wherein, JamLevel(q)=JamMap(q), which is used to represent the congestion level on segment q. γ2 is a pre-set weight of the congestion level, and the specific value can be arbitrarily set according to actual conditions, and this application does not limit it here.

[0136] Obviously, in some examples, for each possible predicted motion trajectory, the terminal device can further segment the predicted motion trajectory with the slope level according to the congestion map set JamMap. Figure 12 As shown, compared to Figure 8 , Figure 12 exist Figure 8 Based on the above, two new congestion segmentation points, C1 and C2, are added. The terminal device can then adjust the smoothing frequency Cpredict of the predicted motion trajectory with a slope level based on the road congestion information. For example, the smoothing frequency Cpredict of the predicted motion trajectory with a slope level can be adjusted by referring to Formula 5.

[0137] Cpredict(q)=Cstable-γ1*Coffset(q)-γ2*JamLevel(q)...Formula 4

[0138] For specific parameters, please refer to Formula 3 and Formula 4, which will not be repeated here.

[0139] Of course, in some other examples, the terminal device can also combine the average cadence change distance Distchange at each slope level l. l The predicted motion trajectory with slope levels is segmented again, e.g. Figure 13 As shown. It can be seen that compared with Figure 9 , Figure 13 exist Figure 9 Two new congestion segmentation points C1 and C2 are added based on the above. Figure 9 The corresponding description adjusts the steady frequency Cpredict of the predicted motion trajectory, which will not be repeated in this application.

[0140] Of course, in other examples, the smooth and steady frequency Cpredict of the predicted motion trajectory can also be adjusted in combination with unexpected situations that may occur on the predicted motion path, such as construction on the path, or obtaining road information in real time while the runner is running, and adjusting the smooth and steady frequency Cpredict of the predicted motion trajectory based on the real-time road congestion.

[0141] Figure 14 A flow chart of another method for predicting stable cadence provided in an embodiment of the present application.

[0142] like Figure 14 As shown, an embodiment of the present application provides an overall flow chart of a method for predicting a stable cadence. The method can be executed by a terminal device and may include the following steps:

[0143] S1401, the user chooses to start exercising.

[0144] S1402, obtaining the user's personal historical exercise data.

[0145] S1403, calculating a steady-state pace based on personal historical exercise data.

[0146] S1404: Obtain the starting point information of the user's exercise.

[0147] It is understandable that there is no execution order between S1402 and S1404. In an example, S1402 may be executed first and then S1404, or S1404 may be executed first and then S1402. Of course, S1402 and S1404 may also be executed simultaneously.

[0148] S1405: Obtain at least one slope threshold.

[0149] S1406: Determine the different cadences corresponding to the various slope levels based on the personal historical exercise data and at least one slope threshold.

[0150] S1407: Determine a possible predicted motion trajectory based on the starting position information.

[0151] It is understandable that there is no execution order between S1406 and S1407. In an example, S1406 may be executed first and then S1407, or S1407 may be executed first and then S1406. Of course, S1406 and S1407 may also be executed simultaneously.

[0152] S1408 : Segment the possible predicted motion trajectory according to at least one slope threshold.

[0153] S1409: Calculate the smooth cadence of each slope segment on the possible predicted motion trajectory based on the smooth cadence and the differential cadences corresponding to each slope level.

[0154] The specific implementation of steps S1401-S1409 can be found in Figures 2 to 13 The corresponding description will not be repeated here.

[0155] This application determines the smooth cadence without considering the slope based on the user's personal historical motion data. Secondly, it determines the possible predicted motion trajectory based on the user's location information. At the same time, it can also determine the differential cadence under each slope in combination with the slope information, and adjust the smooth cadence in combination with the differential cadence under each slope to obtain the smooth cadence of each slope under the possible predicted motion trajectory. Of course, this application can also adjust the smooth cadence of the predicted motion trajectory in combination with the congestion conditions on different paths, or adjust the smooth cadence of each slope under the predicted motion trajectory. In the above manner, this application can obtain the corresponding smooth cadence for different road sections, and recommend suitable music based on the smooth cadence, so that the music can perfectly fit the entire exercise process. At the same time, the recommended cadence can ensure that the runner's single exercise cadence is not too large, thereby avoiding sports injuries.

[0156] Figure 15 A flow chart of another method for predicting stable cadence provided in an embodiment of the present application.

[0157] Compared to Figures 2 to 13 The described solution needs to be calculated based on the user's historical motion data. If the user is a new user or no historical motion data exists, the user's physiological characteristics information can be used to replace the historical motion data and determine the possible steady-state frequency along the predicted motion trajectory. After S201, the method may include the following steps:

[0158] S1501, obtaining the user's physiological information and the estimated location information of the user when starting exercise.

[0159] When a user uses the device for the first time or there is no historical exercise data for the user for other reasons, the terminal device can also obtain the user's physiological information. This physiological information can be manually entered by the user, for example, including physiological information such as height, gender, and age. Of course, in some examples, physiological information can also include any possible physiological information such as weight, whether there have been injuries, etc., which is not limited in this application.

[0160] The terminal device also needs to obtain the starting position information of this movement. For details, please refer to the corresponding description in S202, which will not be repeated here.

[0161] S1502, sending the user's physiological information to the cloud server.

[0162] After the terminal device obtains the user's physiological information in S1501, it can send the physiological information to the cloud server.

[0163] S1503: Receive the physiological reference cadence sent by the cloud server.

[0164] The terminal device receives the physiological reference cadence sent by the cloud server, wherein the physiological reference cadence is generated by the cloud server based on the physiological information sent by the terminal device.

[0165] In one example, the cloud server performs big data calculations based on the collected motion data of multiple users to obtain the cadence information corresponding to each physiological information. For example, the average cadence of a user with a height of 180 cm is 60 steps per minute, or the average cadence of a 25-year-old user is 75 steps per minute, and so on. This average cadence is used as the physiological reference cadence corresponding to the corresponding physiological information. Based on the received physiological information of the user, the cloud server feeds back the physiological reference cadence corresponding to the physiological information to the terminal device.

[0166] S1504: The terminal device calculates possible motion trajectories based on the starting location information.

[0167] For details, please refer to the corresponding description of S203, which will not be repeated here.

[0168] It is understandable that there is no execution order between S1502 and S1504. In an example, S1502 may be executed first and then S1504, or S1504 may be executed first and then S1502. Of course, S1502 and S1504 may also be executed simultaneously.

[0169] S1505 , calculating a possible smooth cadence on the motion trajectory based on the physiological reference cadence.

[0170] The terminal device calculates the physiological reference cadence corresponding to each physiological information received in S1503, for example, by accumulating and averaging the cadence, and obtains a possible steady cadence on the motion trajectory.

[0171] In one example, the terminal device may also receive at least one slope threshold sent by the server and segment the possible predicted motion trajectory according to the slope threshold. For details, please refer to the corresponding description of obtaining a predicted motion trajectory with a slope in S705, which will not be repeated in this application. In S1503, the terminal device may also receive the physiological reference cadence corresponding to each physiological information at different slopes for each physiological information. For example, on a slope segment with slope level 1, the average cadence of a user with a height of 180 cm is 60 steps / minute; on a slope segment with slope level 3, the average cadence of a user with a height of 180 cm is 50 steps / minute; on a slope segment with slope level 1, the average cadence of a 25-year-old user is 75 steps / minute; on a slope segment with slope level 2, the average cadence of a 25-year-old user is 72 steps / minute, and so on. The terminal device combines the physiological reference cadence corresponding to each physiological information at different slopes to determine the average cadence at different slope segments on the possible motion trajectory.

[0172] This application Figures 2 to 15 The described solution can be applied to the services of various running applications. For example, music recommendations and running plan recommendations can be made based on the obtained steady pace.

[0173] Figure 16 A schematic diagram of a device for predicting stable cadence provided in an embodiment of the present application.

[0174] like Figure 16 As shown, a device 1600 for predicting a stable cadence is provided. The device 1600 may include a processor 1601, a memory 1602, a communication interface 1603, a display 1604, and a bus 1605. The processor 1601, the memory 1602, the communication interface 1603, and the display 1604 in the device 1600 may establish a communication connection via the bus 1605. The communication interface 1603 is used to send and receive external information.

[0175] The processor 1601 may be a central processing unit (CPU).

[0176] Memory 1602 may include volatile memory, such as random-access memory (RAM); memory 1602 may also include non-volatile memory (English: non-volatile memory), such as read-only memory (ROM), flash memory, hard disk drive (HDD) or solid state drive (SSD); memory 1602 may also include a combination of the above types of memory.

[0177] The display 1604 may be a liquid crystal display (LCD), an organic light-emitting diode (OLED), etc. Of course, the display 1604 may also have a touch function.

[0178] The processor 1601 is coupled to the memory 1602 and reads and executes instructions in the memory 1602; when the processor 1601 is running, the instructions are executed, so that the processor 1601 is also used to execute Figures 2 to 15 The method described.

[0179] This application determines the possible movement trajectory of the user by obtaining the starting position information of the user's current run. Then, based on the historical movement data on the user's historical movement trajectory, the user's smooth and steady pace on the possible movement trajectory is predicted. The slope threshold can also be obtained based on big data, and the possible movement trajectory can be segmented according to the slope threshold, and the smooth and steady pace on each segment can be predicted. At the same time, the congestion conditions on different road sections can be referred to and the smooth and steady pace on each segment can be corrected. A more suitable cadence can be provided for runners on the corresponding road sections as a reference, so that music that is more suitable for the runner's movement can be recommended on the corresponding road sections based on a more suitable cadence.

[0180] Those skilled in the art should further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the composition and steps of each example according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0181] Those skilled in the art will appreciate that all or part of the steps in the above-described embodiment method can be performed by instructing a processor through a program, and the program can be stored in a computer-readable storage medium, which is a non-transitory medium, such as a random access memory, a read-only memory, a flash memory, a hard disk, a solid-state drive, a magnetic tape, a floppy disk, an optical disc, and any combination thereof.

[0182] The above description is merely a preferred embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in the present application should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A method for predicting a stable cadence, characterized in that: The method comprises: Get the starting point information of the user's movement; Determining a predicted movement trajectory of the user based on the starting location point information; determining, based on at least one piece of historical motion data of the user on at least one historical motion trajectory, a steady-state pace of the user on the predicted motion trajectory, wherein the historical motion data includes first time information and at least one piece of pace information, wherein the first time information is used to indicate a time when the historical motion data was generated; The determining, based on at least one piece of historical motion data of the user, a steady pace of the user on the predicted motion trajectory includes: For each piece of historical motion data, calculating the average cadence of the piece of historical motion data; The average step frequency of each piece of the historical motion data is weightedly summed according to the first time information of each piece of the historical motion data and the instability coefficient of each piece of the historical motion data to determine the steady step frequency.

2. The method according to claim 1, wherein Calculating the average cadence of each piece of historical motion data includes: For each piece of the historical motion data, median filtering is performed on at least one piece of the step frequency information of the historical motion data, and then the average is taken to obtain the average step frequency of the historical motion data.

3. The method according to claim 1, wherein The cadence information includes heart rate data; Calculating the average cadence of each piece of historical motion data includes: At least one of the cadence information pieces whose heart rate data is within a preset heart rate interval is selected and averaged to obtain an average cadence for the piece of historical exercise data.

4. The method according to claim 1, wherein The instability coefficients of each piece of historical motion data include: For each piece of the historical motion data, a standard deviation is calculated based on at least one piece of the step frequency information of the historical motion data to determine the instability coefficient of the historical motion data.

5. The method according to claim 1, wherein The historical motion data includes at least one cadence information; the predicted motion trajectory includes a first slope segment, and the historical motion trajectory includes a second slope segment, wherein the second slope segment is a slope segment in at least one of the historical motion trajectories having the same slope as the first slope segment; the method further includes: Calculating a difference in cadence corresponding to the first slope segment based on at least one piece of historical exercise data on the second slope segment; The smooth step frequency on the predicted motion trajectory is adjusted according to the differential step frequency corresponding to the first slope segment, and the smooth step frequency of the first slope segment on the predicted motion trajectory is determined.

6. The method according to claim 5, wherein The calculating, based on at least one piece of the historical motion data on the second slope segment in at least one of the historical motion trajectories, of the differential cadence corresponding to the first slope segment includes: determining a cadence sequence on the second slope segment according to the at least one piece of historical motion data on the second slope segment, wherein the cadence sequence includes the at least one cadence information on the second slope segment; calculating an average cadence on the second slope segment according to the cadence sequence on the second slope segment; Calculate the difference between the average cadence on the second slope segment and the first cadence information of the cadence sequence on the second slope segment, determine the differential cadence on the second slope segment, and use the differential cadence on the second slope segment as the differential cadence corresponding to the first slope segment.

7. The method according to claim 6, wherein Each of the step frequency information corresponds to a sampling point, and the method further includes: If the cadence sequence includes multiple cadence information, determining a cadence change distance based on the multiple cadence information on the second slope segment, wherein the cadence change distance represents the distance between a cadence inflection point and a starting sampling point on the second slope segment, the cadence inflection point being the sampling point corresponding to the cadence information when the cadence change is greater than or equal to a cadence threshold for the first time; The step of calculating the average cadence on the second slope segment according to the cadence sequence on the second slope segment includes: The at least one piece of cadence information located after the cadence change distance in the cadence sequence is calculated to obtain an average cadence on the second slope segment.

8. The method according to claim 7, wherein The method further includes: segmenting the predicted motion trajectory into slope segments according to the step frequency change distance of the second slope segment.

9. The method according to claim 5, wherein The method further comprises: Obtain at least one slope threshold; Segmenting the predicted motion trajectory into slope segments according to at least one of the slope thresholds; and Segment the slope of at least one of the historical motion tracks according to at least one of the slope thresholds.

10. The method according to claim 9, wherein If there are multiple slope thresholds, the cadence between two adjacent slope thresholds is less than the preset target cadence.

11. The method according to any one of claims 1 to 10, wherein: The predicted motion trajectory includes a congestion level; and the method further includes: The smoothing frequency on the predicted motion trajectory is adjusted according to the congestion level.

12. The method according to claim 11, wherein The method further comprises: Obtain road congestion information; The predicted motion trajectory is calculated according to the road congestion information to obtain the congestion level of the predicted motion trajectory.

13. The method according to claim 1, wherein In a case where the user does not have the at least one piece of historical motion data, the method further includes: Obtaining the user's height, age, and / or gender information; Sending the height information, the age information and / or the gender information to a server; receiving a physiological reference cadence corresponding to the height information, the age information, and / or the gender information sent by the server; The user's average cadence on the predicted motion trajectory is determined according to a physiological reference cadence corresponding to the height information, the age information, and / or the gender information.

14. The method according to claim 13, wherein The physiological reference cadence includes the physiological reference cadence of each slope segment corresponding to the height information, the age information and / or the gender information.

15. A device for predicting stable cadence, characterized in that: The device comprises: a processor, configured to be coupled to the memory and read and execute instructions in the memory; When the processor is executed, the instructions are executed, so that the processor is further configured to: obtain starting location information of the user's movement; determine the user's predicted movement trajectory based on the starting location information; determine the user's average step frequency along the predicted movement trajectory based on at least one piece of historical movement data of the user on at least one historical movement trajectory, wherein the historical movement data includes first time information and at least one step frequency information, wherein the first time information is used to indicate the time when the historical movement data was generated; The processor is further configured to: For each piece of historical motion data, calculating the average cadence of the piece of historical motion data; The average step frequency of each piece of the historical motion data is weightedly summed according to the first time information of each piece of the historical motion data and the instability coefficient of each piece of the historical motion data to determine the steady step frequency.

16. The device according to claim 15, characterized in that The processor is further configured to: For each piece of the historical motion data, median filtering is performed on at least one piece of the step frequency information of the historical motion data, and then the average is taken to obtain the average step frequency of the historical motion data.

17. The device according to claim 15, wherein The cadence information includes heart rate data; the processor is further configured to: At least one of the cadence information pieces whose heart rate data is within a preset heart rate interval is selected and averaged to obtain an average cadence for the piece of historical exercise data.

18. The device according to claim 15, wherein The processor is further configured to: For each piece of the historical motion data, a standard deviation is calculated based on at least one piece of the step frequency information of the historical motion data to determine the instability coefficient of the historical motion data.

19. The device according to claim 15, wherein The historical motion data includes at least one cadence information; the predicted motion trajectory includes a first slope segment, and the historical motion trajectory includes a second slope segment, wherein the second slope segment is a slope segment in at least one of the historical motion trajectories having the same slope as the first slope segment; the processor is further configured to: Calculating a difference in cadence corresponding to the first slope segment based on at least one piece of historical exercise data on the second slope segment; The smooth step frequency on the predicted motion trajectory is adjusted according to the differential step frequency corresponding to the first slope segment, and the smooth step frequency of the first slope segment on the predicted motion trajectory is determined.

20. The device according to claim 19, wherein The processor is further configured to: determining a cadence sequence on the second slope segment according to the at least one piece of historical motion data on the second slope segment, wherein the cadence sequence includes the at least one cadence information on the second slope segment; calculating an average cadence on the second slope segment according to the cadence sequence on the second slope segment; Calculate the difference between the average cadence on the second slope segment and the first cadence information of the cadence sequence on the second slope segment, determine the differential cadence on the second slope segment, and use the differential cadence on the second slope segment as the differential cadence corresponding to the first slope segment.

21. The device according to claim 20, characterized in that Each of the step frequency information corresponds to a sampling point, and the processor is further configured to: If the cadence sequence includes multiple cadence information, determining a cadence change distance based on the multiple cadence information on the second slope segment, wherein the cadence change distance represents the distance between a cadence inflection point and a starting sampling point on the second slope segment, the cadence inflection point being the sampling point corresponding to the cadence information when the cadence change is greater than or equal to a cadence threshold for the first time; The at least one piece of cadence information located after the cadence change distance in the cadence sequence is calculated to obtain an average cadence on the second slope segment.

22. The device according to claim 21, wherein The processor is further configured to segment the predicted motion trajectory into slope segments according to the step frequency change distance of the second slope segment.

23. The device according to claim 19, wherein The processor is further configured to: Obtain at least one slope threshold; Segmenting the predicted motion trajectory into slope segments according to at least one of the slope thresholds; and Segment the slope of at least one of the historical motion tracks according to at least one of the slope thresholds.

24. The device according to claim 23, wherein If there are multiple slope thresholds, the cadence between two adjacent slope thresholds is less than the preset target cadence.

25. The device according to any one of claims 15 to 24, characterized in that The predicted motion trajectory includes a congestion level; and the processor is further configured to: The smoothing frequency on the predicted motion trajectory is adjusted according to the congestion level.

26. The device according to claim 25, characterized in that The processor is further configured to: Obtain road congestion information; The predicted motion trajectory is calculated according to the road congestion information to obtain the congestion level of the predicted motion trajectory.

27. The device according to claim 15, wherein In a case where the user does not have the at least one piece of historical motion data, the processor is further configured to: Obtaining the user's height, age, and / or gender information; Sending the height information, the age information and / or the gender information to a server; receiving a physiological reference cadence corresponding to the height information, the age information, and / or the gender information sent by the server; The user's average cadence on the predicted motion trajectory is determined according to a physiological reference cadence corresponding to the height information, the age information, and / or the gender information.

28. The device according to claim 27, wherein The physiological reference cadence includes the physiological reference cadence of each slope segment corresponding to the height information, the age information and / or the gender information.

29. A computer-readable storage medium having instructions stored therein, characterized in that: When the instruction is executed on a terminal, the terminal is caused to execute the method according to any one of claims 1 to 14.

30. A computer program device comprising instructions which, when executed on a terminal, cause the terminal to perform the method according to any one of claims 1 to 14.

Citation Information

Patent Citations

  • Personalized exercise amount recommendation system and method

    CN110706777A

  • Dynamic time estimation method and device for running route, and electronic equipment

    CN111105058A