Gait data processing method and system

By dynamically updating the sliding factor value and the range of time off the ground, the timing of gait events can be accurately determined, thus solving the timing error problem in gait analysis and improving the accuracy of gait analysis.

CN119110705BActive Publication Date: 2026-06-12SHENZHEN SHOKZ CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHENZHEN SHOKZ CO LTD
Filing Date
2023-04-07
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

In existing technologies, there is a large error in determining the timing of gait events, resulting in inaccurate gait analysis results.

Method used

By dynamically updating the value of the slip factor, the range of time off the ground is determined based on the user's movement state within the target gait cycle, and the target time off the ground is determined using the target slip factor value and the range of time off the ground.

🎯Benefits of technology

This improves the accuracy of gait analysis results and ensures the accuracy of gait characteristics.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119110705B_ABST
    Figure CN119110705B_ABST
Patent Text Reader

Abstract

A gait data processing method and system, obtain the gait data of the lower limbs of a target user for M gait cycles, and determine the target take-off time when the foot of the target user leaves the ground in each of the M gait cycles based on the gait data, and then determine the gait characteristics of the target user based on the target take-off time corresponding to each of the M gait cycles. When processing the gait data, the value of the sliding factor is dynamically updated for each gait cycle to obtain a target sliding factor value, which is related to the movement state of the user in the gait cycle, and then a take-off time range is determined in the current gait cycle, and the target take-off time is determined in the gait cycle based on the target sliding factor value and the take-off time range. Since the value of the sliding factor is updated in real time according to the movement state of the user, the target take-off time determined based on the target sliding factor value is more accurate, and thus the gait analysis result has high accuracy.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing technology, and in particular to a method and system for processing gait data. Background Technology

[0002] Gait analysis has been widely applied in many fields. For example, in the field of running, gait analysis results can guide users to correct their running posture. Another example is in the field of rehabilitation assessment, where gait analysis results can be used to evaluate a user's physical rehabilitation progress.

[0003] Typically, gait analysis follows this process: First, some gait events are predefined. Taking running as an example, heel strike can be defined as a ground contact event, and toe lift-off as a ground take-off event. Then, based on the collected gait data, the occurrence time of each gait event is determined, and the user's gait characteristics are analyzed based on these occurrence times. Therefore, accurately determining the occurrence time of gait events is a crucial step in gait analysis. When there is a significant error in the occurrence time of gait events, the results of gait analysis will also be inaccurate. Therefore, a gait data processing method that can accurately determine the occurrence time of gait events is needed. Summary of the Invention

[0004] This application provides a method and system for processing gait data, which can accurately determine the occurrence time of gait events, thereby making the gait analysis results highly accurate.

[0005] In a first aspect, this application provides a method for processing gait data, comprising: obtaining gait data of M gait cycles of a target user's lower limbs, wherein M is an integer greater than 1; determining, based on the gait data, the target time of the target user's foot leaving the ground within each of the M gait cycles; and determining the gait characteristics of the target user based at least on the target time of the target time of the M gait cycles; wherein the gait cycle corresponding to the currently processed gait data is the target gait cycle, and the process of determining the target time of the target gait cycle includes: dynamically updating the value of a slip factor according to the target gait cycle to obtain a target slip factor value, wherein the target slip factor value is related to the user's movement state within the target gait cycle; and determining a range of time of departure within the target gait cycle, and determining the target time of departure based on the target slip factor value and the range of time of departure.

[0006] In some embodiments, the step of dynamically updating the value of the slip factor according to the target gait cycle to obtain the target slip factor value includes: dynamically updating the value of the slip factor based on the movement speed of the target user within the target gait cycle to obtain the target slip factor value, wherein the target slip factor value is negatively correlated with the movement speed.

[0007] In some embodiments, the step of dynamically updating the value of the slip factor according to the target gait cycle to obtain the target slip factor value includes: dynamically updating the value of the slip factor based on the time difference between the first candidate takeoff time and the second candidate takeoff time within the target gait cycle to obtain the target slip factor value, wherein the target slip factor value is negatively correlated with the time difference.

[0008] In some embodiments, the gait data includes angular velocity data about the y-axis, which is perpendicular to the direction the target user is facing; determining the ground-lift time range in the target gait cycle includes: determining the time corresponding to the target trough of the angular velocity data in the target gait cycle as the start time of the ground-lift time range and the time corresponding to the target peak as the end time of the ground-lift time range, wherein both the target trough and the target peak are located after the ground contact time of the target user's foot in the target gait cycle.

[0009] In some embodiments, determining the target takeoff time based on the target slip factor value and the takeoff time range includes: determining the difference between the angular velocity corresponding to the end time and the angular velocity corresponding to the start time; determining the target angular velocity based on the target slip factor value and the difference; and searching for the target angular velocity within the takeoff time range, and taking the time when the target angular velocity occurs as the target takeoff time.

[0010] In some embodiments, determining the target takeoff time based on the target slip factor value and the takeoff time range includes: determining the difference between the angular velocity corresponding to the end time and the angular velocity corresponding to the start time; determining the target angular velocity based on the target slip factor value and the difference; searching for the target angular velocity within the takeoff time range and using the time when the target angular velocity occurs as a third candidate takeoff time; and determining the target takeoff time based on the first candidate takeoff time, the second candidate takeoff time, and the third candidate takeoff time within the target gait cycle.

[0011] In some embodiments, determining the target takeoff time based on the first candidate takeoff time, the second candidate takeoff time, and the third candidate takeoff time within the target gait cycle includes: executing a first processing mode or a second processing mode based on the time relationship between the first candidate takeoff time and the second candidate takeoff time, wherein the first processing mode includes: determining the average of the second candidate takeoff time and the third candidate takeoff time as the target takeoff time, and the second processing mode includes: determining the third candidate takeoff time as the target takeoff time.

[0012] In some embodiments, the step of executing a first processing mode or a second processing mode based on the time relationship between the first candidate takeoff time and the second candidate takeoff time within the target gait cycle includes: executing the first processing mode if the first candidate takeoff time is earlier than or equal to the second candidate takeoff time; or executing the second processing mode if the first candidate takeoff time is later than the second candidate takeoff time.

[0013] In some embodiments, the gait data includes: first acceleration data along the x-axis and angular velocity data about the y-axis, the x-axis pointing in the direction the target user is facing, and the y-axis perpendicular to the x-axis; the first candidate takeoff time is determined by: determining a first search interval in the angular velocity data corresponding to the target gait cycle, and determining the peak time of the angular velocity data within the first search interval as the first candidate takeoff time, wherein the first search interval is located after the ground contact time within the target gait cycle; the second candidate takeoff time is determined by: determining a second search interval in the first acceleration data corresponding to the target gait cycle, and determining the trough time before the peak time of the first acceleration data within the second search interval as the second candidate takeoff time, wherein the second search interval is located after the ground contact time within the target gait cycle.

[0014] In some embodiments, the method further includes: determining the ground contact time of the target user's foot within the M gait cycles based on the gait data; determining the gait characteristics of the target user includes: determining the gait characteristics of the target user based on the target take-off time and the ground contact time corresponding to the M gait cycles.

[0015] In some embodiments, the gait data includes second acceleration data along the z-axis, the z-axis pointing in a direction perpendicular to the ground; the process of determining the ground contact time corresponding to the target gait cycle includes: determining the first trough occurrence time before the peak occurrence time of the second acceleration data corresponding to the target gait cycle as the ground contact time.

[0016] In some embodiments, determining the gait characteristics of the target user based on the target take-off time and the ground contact time corresponding to the M gait cycles includes: determining the ground contact duration corresponding to the M gait cycles based on the target take-off time and the ground contact time corresponding to the M gait cycles; and determining the gait characteristics of the target user based on the ground contact duration corresponding to the M gait cycles.

[0017] In some embodiments, after determining the gait characteristics of the target user, the method further includes at least one of the following: playing the gait characteristics aloud; displaying the gait characteristics; and sending the gait characteristics to a target device to play the gait characteristics aloud or display the gait characteristics via the target device.

[0018] In some embodiments, the method further includes: segmenting the gait data into gait cycles to determine the start and end positions of each gait cycle.

[0019] Secondly, this application also provides a gait data processing system, comprising: at least one storage medium and at least one processor, wherein the at least one storage medium stores at least one instruction set for processing the gait data; the at least one processor is communicatively connected to the at least one storage medium, and when the gait data processing system is running, the at least one processor reads the at least one instruction set and executes the gait data processing method according to any one of the first aspects according to the instructions of the at least one instruction set.

[0020] In some embodiments, the gait data processing system further includes: a sensor deployed on a wearable device and configured to be worn within the lower limb range of a target user to collect the gait data, wherein the at least one memory and the at least one processor are deployed on a control device, the control device being communicatively connected to the wearable device.

[0021] In some embodiments, the gait data processing system further includes: a sensor configured to be worn within the lower limb range of a target user to collect the gait data, wherein the sensor, the at least one storage medium, and the at least one processor are all deployed on a wearable device.

[0022] As can be seen from the above technical solutions, the gait data processing method and system provided in this application can obtain gait data for M gait cycles of a target user's lower limbs; based on the gait data, determine the target take-off time of the target user's foot leaving the ground within each of the M gait cycles; and determine the gait characteristics of the target user based at least on the target take-off time corresponding to each of the M gait cycles. Specifically, when processing the gait data, the system can dynamically update the value of the slip factor for each gait cycle to obtain a target slip factor value. The target slip factor value is related to the user's movement state within that gait cycle. Furthermore, the system determines the take-off time range within the current gait cycle and determines the target take-off time within that gait cycle based on the target slip factor value and the take-off time range. Since the slip factor value is updated in real time with the user's movement state in the current gait cycle, the target take-off time determined based on the target slip factor value is relatively accurate, and consequently, the gait characteristics determined based on the target take-off time are also relatively accurate. Therefore, the gait analysis results have high accuracy.

[0023] Other functions of the gait data processing methods and systems provided in this application will be partially listed in the following description. The inventiveness of the gait data processing methods and systems provided in this application can be fully explained by practice or by using the methods, devices, and combinations described in the detailed examples below. Attached Figure Description

[0024] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0025] Figure 1 A schematic diagram of a user running process provided according to an embodiment of this application is shown;

[0026] Figure 2 A schematic diagram of a gait data processing system according to an embodiment of this application is shown;

[0027] Figure 3 A hardware structure diagram of a computing device according to an embodiment of this application is shown;

[0028] Figure 4 A flowchart of a gait data processing method according to an embodiment of this application is shown;

[0029] Figure 5 A schematic diagram of a spatial coordinate system provided according to an embodiment of this application is shown;

[0030] Figure 6 A schematic diagram is shown of a first candidate liftoff time determined from angular velocity data about the y-axis according to an embodiment of this application;

[0031] Figure 7 A schematic diagram is shown of a second candidate liftoff moment determined from first acceleration data along the x-axis, according to an embodiment of this application.

[0032] Figure 8 A schematic diagram showing angular velocity data and time-of-flight range provided according to embodiments of this application is illustrated.

[0033] Figure 9 A schematic diagram is shown showing the target takeoff time determined from angular velocity data based on the target slip factor according to an embodiment of this application;

[0034] Figure 10 A schematic diagram is shown illustrating the ground contact moment determined from second acceleration data along the z-axis according to an embodiment of this application; and

[0035] Figure 11 A schematic diagram of a gait data processing procedure provided according to an embodiment of this application is shown. Detailed Implementation

[0036] The following description provides specific application scenarios and requirements for this application, intended to enable those skilled in the art to make and use the content of this application. Various partial modifications to the disclosed embodiments will be apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments and applications without departing from the spirit and scope of this application. Therefore, this application is not limited to the embodiments shown, but rather to the widest scope consistent with the claims.

[0037] The terminology used herein is for the purpose of describing particular exemplary embodiments only and is not restrictive. For example, unless the context clearly indicates otherwise, the singular forms “a,” “an,” and “the” used herein may also include the plural forms. When used in this application, the terms “comprising,” “including,” and / or “containing” mean that the associated integers, steps, operations, elements, and / or components are present, but do not exclude the presence of one or more other features, integers, steps, operations, elements, components, and / or groups, or that other features, integers, steps, operations, elements, components, and / or groups may be added to the system / method.

[0038] In view of the following description, these and other features of this application, as well as the operation and function of the related elements of the structure, and the economy of assembly and manufacture of the components, can be significantly improved. All of these form part of this application with reference to the accompanying drawings. However, it should be clearly understood that the drawings are for illustrative and descriptive purposes only and are not intended to limit the scope of this application. It should also be understood that the drawings are not drawn to scale.

[0039] The flowcharts used in this application illustrate operations implemented according to some embodiments of this application. It should be clearly understood that the operations in the flowcharts may not be implemented in a sequential order. Instead, the operations may be implemented in reverse order or simultaneously. Furthermore, one or more additional operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.

[0040] For ease of description, the terms used in this application will be explained first.

[0041] Gait refers to the posture and behavioral characteristics of a person walking or running. Specifically, gait can be described as the process by which the body moves in a certain direction through a series of continuous movements of the hips, knees, ankles, and toes. Gait is a continuous, periodic movement, and is influenced by factors such as exercise habits, injuries, and diseases, so gait generally varies from person to person.

[0042] Gait analysis is a method for studying the patterns of gait, describing its characteristics through various parameters. These parameters typically include: gait cycle, kinematic parameters, kinetic parameters, electromyographic parameters, and energy metabolism parameters. The results of gait analysis can guide users in correcting their posture, and can also be used for rehabilitation assessment, clinical diagnosis, and mechanistic research.

[0043] Taking running as an example, Figure 1 A schematic diagram of a user running process provided according to an embodiment of this application is shown below. Figure 1 Explain and describe gait events, ground contact duration, airtime, and gait cycle.

[0044] Gait events are events that describe the movement state of a human body during walking or running. To facilitate gait analysis, some gait events are often predefined. Commonly used gait events include, but are not limited to, ground contact events and ground lift-off events. For example, see... Figure 1A ground contact event occurs when a user's foot begins to make contact with the ground. It should be understood that during running, the foot typically lands heel first, followed by the toes. Therefore, "the foot begins to make contact with the ground" specifically refers to the heel making contact. The moment of occurrence of a ground contact event is the instant the user's foot begins to make contact with the ground (also simply called the ground contact moment). Ground contact events can be specifically divided into left-foot ground contact events and right-foot ground contact events. A ground lift-off event occurs when a user's foot leaves the ground. During running, the foot typically leaves the ground heel first, followed by the toes. Therefore, "the foot leaves the ground" specifically refers to the toes leaving the ground. The moment of occurrence of a ground lift-off event is the instant the user's foot leaves the ground (also simply called the ground lift-off moment). Ground lift-off events can be specifically divided into left-foot lift-off events and right-foot lift-off events.

[0045] Ground contact duration: In walking or running, the time interval between the moment a user's foot first contacts the ground (corresponding to the ground contact event) and the moment that foot leaves the ground (corresponding to the ground lift event) is called ground contact duration. Ground contact duration characterizes the entire time taken for a single foot to complete the process of landing, supporting, pushing off, and lifting off. For example, see... Figure 1 Taking a user's right foot as an example, the ground contact time of the right foot is obtained by subtracting the most recent ground contact time from the moment the right foot leaves the ground. Ground contact time can be used to analyze running efficiency. For example, the shorter the ground contact time, the higher the efficiency of muscle elastic energy conversion, and therefore the higher the running efficiency. High-level runners typically have a single-foot ground contact time of less than 220 milliseconds. Additionally, the ground contact time of each foot can also be used to analyze gait balance. For example, the smaller the difference between the ground contact times of the two feet, the higher the gait balance; the larger the difference, the lower the gait balance.

[0046] Airtime: In walking or running, the time interval between the moment one foot leaves the ground (corresponding to the take-off event) and the moment the other foot begins to touch the ground (corresponding to the ground contact event) is called airtime. Airtime characterizes the duration for which both feet remain in the air simultaneously. For example, see... Figure 1 The time in the air after the right foot leaves the ground is calculated by subtracting the most recent time the right foot leaves the ground from the time the left foot touches down. In gait analysis, airtime can be used to analyze running efficiency. For example, at the same pace, a longer airtime indicates a larger stride and therefore higher running efficiency. High-level runners typically have an airtime greater than 125 milliseconds.

[0047] Gait cycle: During walking or running, the time interval between the moment when one foot on one side first contacts the ground (corresponding to a ground-touching event) and the moment when that foot again first contacts the ground (corresponding to a ground-touching event) is called a gait cycle. For example, see... Figure 1A complete gait cycle can be defined as the duration between the moment the right foot touches the ground and the moment the right foot touches the ground again. This duration corresponds to the sum of the following four durations: the duration of the right foot's ground contact, the duration of the right foot's flight after leaving the ground, the duration of the left foot's ground contact, and the duration of the left foot's flight after leaving the ground. It should be understood that... Figure 1 Only half a gait cycle is shown as an example.

[0048] The gait data processing method and system provided in this application can be applied to gait analysis scenarios. For example, during a user's walking or running, sensors worn on the user's lower limbs collect gait data, and then the processor uses the gait data processing method provided in this application to process the gait data to determine the user's gait characteristics. These gait characteristics can be used to correct the user's movement posture.

[0049] It should be noted that the aforementioned walking or running scenario is only one of the multiple use cases provided in this application. The solution provided in this application can be applied not only to walking or running scenarios, but also to all other scenarios requiring gait analysis, such as rehabilitation assessment and research on movement mechanisms. Those skilled in the art should understand that the application of the solution provided in this application to other use cases is also within the scope of protection of this application.

[0050] The solution provided in this application dynamically updates the value of the slip factor for each gait cycle to obtain a target slip factor value. This target slip factor value is related to the user's movement state within that gait cycle. Furthermore, a range of ground-lift time is determined within the current gait cycle, and a target ground-lift moment is determined within that gait cycle based on the target slip factor value and the ground-lift time range. Since the slip factor value is updated in real-time with the user's movement state in the current gait cycle, the target ground-lift moment determined based on the target slip factor value is relatively accurate. Consequently, the gait characteristics determined based on the target ground-lift moment are also relatively accurate. Therefore, the gait analysis results have high accuracy.

[0051] Figure 2 A schematic diagram of a gait data processing system according to an embodiment of this application is shown. The gait data processing system 001 (hereinafter referred to as System 001) can be used in all scenarios of gait analysis. For example... Figure 2 As shown, in some embodiments, system 001 may include wearable device 100. In some embodiments, system 001 may include wearable device 100 and control device 200. In some embodiments, system 001 may include wearable device 100, control device 200, server 300, and network 400.

[0052] Wearable device 100 refers to a portable device that can be worn on a user's body, shoes, clothing, or other accessories. Wearable device 100 can be worn by a user on the lower limbs. Figure 1 As shown, the wearable device 100 can be worn on the user's left leg to collect gait data corresponding to the left leg during operation. The wearable device 100 can also be worn on the user's right leg to collect gait data corresponding to the right leg during operation. Additionally, the wearable device 100 can be worn on both the left and right legs simultaneously to collect gait data corresponding to both legs. In some embodiments, the wearable device 100 can be worn on the user's ankle. Because the ankle is close to the foot, gait data from the ankle area can more accurately reflect the user's gait characteristics.

[0053] Wearable device 100 may include sensors to collect gait data. These sensors may include one or more of an accelerometer, an angular velocity sensor, and an inertial sensor.

[0054] An accelerometer is a sensor capable of measuring acceleration. During operation, it senses acceleration and converts it into a usable output signal. Accelerometers typically incorporate a mass, and their acceleration measurement principle is as follows: the sensor measures the inertial force acting on the mass during acceleration, and obtains the acceleration value using Newton's second law. Accelerometers can be any one of capacitive, inductive, strain gauge, piezoresistive, or piezoelectric sensors, or any combination thereof. In some embodiments, the accelerometer can be a 3-axis accelerometer, measuring the acceleration data of an object along the X, Y, and Z axes in a spatial coordinate system. This provides a more comprehensive reflection of the object's motion.

[0055] An angular velocity sensor, also known as a gyroscope, is a sensor that measures angular velocity. During operation, it senses changes in angular velocity and converts them into a usable output signal. Angular velocity sensors can be single-axis sensors (measuring angular velocity in a single direction) or multi-axis sensors (such as a triaxial sensor, which measures the angles of rotation of an object around the X, Y, and Z axes).

[0056] An inertial sensor, also known as an inertial measurement unit (IMU), can be understood as a sensor that integrates both an accelerometer and an angular velocity sensor. In other words, when an inertial sensor is working, it can detect changes in both acceleration and angular velocity, and then output signals corresponding to the acceleration and angular velocity, respectively.

[0057] In summary, the proposed solution, by deploying sensors in the wearable device 100 and collecting gait data through the sensors, is more cost-effective than professional equipment such as force measuring treadmills and force measuring boards. Furthermore, it is applicable to a variety of scenarios, including both indoor and outdoor environments.

[0058] In some embodiments, the gait data processing method described herein can be executed on a wearable device 100. In this case, the wearable device 100 may store data or instructions for executing the gait data processing method described herein, and may execute or be used to execute the data or instructions. In some embodiments, the wearable device 100 may include a hardware device with data information processing capabilities and a program required to drive the hardware device. The gait data processing method is described in other parts of this application.

[0059] Control device 200 may include mobile devices, tablets, laptops, built-in devices in motor vehicles, or similar content, or any combination thereof. In some embodiments, the mobile device may include smart home devices, smart mobile devices, virtual reality devices, augmented reality devices, or similar devices, or any combination thereof. In some embodiments, the smart home device may include a smart TV, desktop computer, etc., or any combination thereof. In some embodiments, the smart mobile device may include a smartphone, personal digital assistant, gaming device, navigation device, etc., or any combination thereof. In some embodiments, the virtual reality device or augmented reality device may include a virtual reality headset, virtual reality glasses, augmented reality headset, augmented reality glasses, or similar content, or any combination thereof. For example, the virtual reality device or the augmented reality device may include Google Glass, head-mounted displays, VR, etc. In some embodiments, the built-in device in the motor vehicle may include an in-vehicle computer, in-vehicle television, etc.

[0060] like Figure 2As shown, the control device 200 is communicatively connected to the wearable device 100. The control device 200 and the wearable device 100 can be connected via a wired connection, such as via Universal Serial Bus (USB) or other wired connections. The control device 200 can also be connected to the wearable device 100 via a near-field communication (NFC) connection, such as via Bluetooth, Near Field Communication (NFC), Wi-Fi, or other wireless connections. In some embodiments, the control device 200 and the wearable device 100 can also be connected via a network 400; for example, both the control device 200 and the wearable device 100 are connected to the network 400. In some embodiments, the wearable device 100 and the control device 200 can exchange information. For example, after collecting gait data, the wearable device 100 can send the gait data to the control device 200. In some embodiments, the gait data processing method described in this application can be executed on the control device 200. In this case, the control device 200 may store data or instructions for executing the gait data processing method described in this application, and may execute or be used to execute the data or instructions. In some embodiments, the control device 200 may include a hardware device with data information processing capabilities and the necessary programs required to drive the hardware device to operate. The gait data processing method is described in other parts of this application.

[0061] In some embodiments, the control device 200 may have one or more applications (APPs) installed. The APPs provide an interactive interface for the user. These APPs include, but are not limited to: web browser APPs, search APPs, chat APPs, shopping APPs, video APPs, financial management APPs, instant messaging tools, email clients, social media platforms, health management tools, sports management tools, etc. In some embodiments, a target APP may be installed on the control device 200. The user can trigger a gait data collection request through the target APP. In response to the collection request, the target APP can send control commands to the wearable device 100 to instruct the wearable device 100 to begin collecting gait data. In some embodiments, the user can also trigger a gait data processing request through the target APP. In response to the processing request, the target APP can execute the gait data processing method described in this application to obtain the user's gait characteristics. In some embodiments, the target APP can also display the user's gait characteristics to the user via voice or visual means.

[0062] Server 300 can be a server that provides various services, such as a backend server that provides computing and / or storage services to control device 200. Figure 2 As shown, server 300 can communicate with one or more control devices 200 and exchange information with them. For example, control device 200 can send gait data to be processed to server 300, and server 300 can send the processing result of the gait data (e.g., the user's gait characteristics) to control device 200. In some embodiments, the gait data processing method described herein can be executed on server 300. In this case, server 300 can store data or instructions for executing the gait data processing method described herein, and can execute or be used to execute the data or instructions. In some embodiments, server 300 may include hardware devices with data information processing capabilities and the necessary programs required to drive the hardware devices. The gait data processing method is described in other parts of this application.

[0063] Network 400 is a medium used to provide a communication connection between control device 200 and server 300. Network 400 can facilitate the exchange of information or data. For example... Figure 2 As shown, control device 200 and server 300 can be connected to network 400 and transmit information or data to each other through network 400. In some embodiments, network 400 can be any type of wired or wireless network, or a combination thereof. For example, network 400 may include cable networks, wired networks, fiber optic networks, telecommunications networks, intranets, the Internet, local area networks (LANs), wide area networks (WANs), wireless local area networks (WLANs), metropolitan area networks (MANs), public switched telephone networks (PSTNs), Bluetooth networks, ZigBee networks, near field communication (NFC) networks, or similar networks. In some embodiments, network 400 may include one or more network access points. For example, network 400 may include wired or wireless network access points, such as base stations or Internet switching points, through which one or more components of control device 200 and server 300 can connect to network 400 to exchange data or information.

[0064] It should be understood that Figure 1 The number of wearable devices 100, control devices 200, servers 300, and networks 400 shown is merely illustrative. Depending on implementation needs, any number of wearable devices 100, control devices 200, servers 300, and networks 400 can be included.

[0065] It should be noted that the gait data processing method described in this application can be executed entirely on the wearable device 100, entirely on the control device 200, entirely on the server 300, or jointly by at least two of the wearable device 100, the control device 200, and the server 300.

[0066] Figure 3 A hardware structure diagram of a computing device 600 according to an embodiment of this application is shown. The computing device 600 can execute the gait data processing method described in this application. For example, in some embodiments, at least some steps of the gait data processing method can be executed on a wearable device 100, in which case the computing device 600 can be the wearable device 100. In some embodiments, at least some steps of the gait data processing method can be executed on a control device 200, in which case the computing device 600 can be the control device 200. In some embodiments, at least some steps of the gait data processing method can be executed on a server 300, in which case the computing device 600 can be the server 300.

[0067] like Figure 3 As shown, the computing device 600 may include at least one storage medium 630 and at least one processor 620. In some embodiments, the computing device 600 may also include a communication port 650 and an internal communication bus 610. Additionally, the computing device 600 may also include I / O components 660. In some embodiments, when the computing device 600 is a wearable device 100, the computing device 600 may also include sensors (…). Figure 3 (Not shown in the image).

[0068] The internal communication bus 610 can connect different system components. For example, the processor 620, storage medium 630, and communication port 650 can be connected via the internal communication bus 610.

[0069] I / O component 660 supports input / output between computing device 600 and other components.

[0070] Communication port 650 is used for data communication between computing device 600 and external sources. For example, communication port 650 can be used for data communication between computing device 600 and network 400. Communication port 650 can be a wired communication port or a wireless communication port.

[0071] Storage medium 630 may include a data storage device. The data storage device may be a non-transitory storage medium or a temporary storage medium. For example, the data storage device may include one or more of a disk 632, a read-only storage medium (ROM) 634, or a random access storage medium (RAM) 636. Storage medium 630 also includes at least one instruction set stored in the data storage device. The instruction set includes instructions, which are computer program code. The computer program code may include programs, routines, objects, components, data structures, procedures, modules, etc., that execute the gait data processing method provided in this application.

[0072] At least one processor 620 is used to execute the at least one instruction set described above. When the computing device 600 is running, the at least one processor 620 reads the at least one instruction set and executes the gait data processing method provided in this application according to the instructions of the at least one instruction set. The processor 620 can execute all or part of the steps included in the gait data processing method. The processor 620 can be in the form of one or more processors. In some embodiments, the processor 620 may include one or more hardware processors, such as a microcontroller, microprocessor, reduced instruction set computer (RISC), application-specific integrated circuit (ASIC), application-specific instruction set processor (ASIP), central processing unit (CPU), graphics processing unit (GPU), physical processing unit (PPU), microcontroller unit, digital signal processor (DSP), field-programmable gate array (FPGA), advanced RISC machine (ARM), programmable logic device (PLD), any circuit or processor capable of performing one or more functions, or any combination thereof. For illustrative purposes only, only one processor 620 is described in the computing device 600 in this application. However, it should be noted that the computing device 600 in this application may also include multiple processors. Therefore, the operation and / or method steps disclosed in this application may be executed by one processor as described in this application, or they may be executed jointly by multiple processors. For example, if the processor 620 of the computing device 600 in this application executes steps A and B, it should be understood that steps A and B may also be executed jointly or separately by two different processors 620 (e.g., the first processor executes step A, the second processor executes step B, or the first and second processors jointly execute steps A and B).

[0073] Figure 4 A flowchart of a gait data processing method P100 according to an embodiment of this application is shown. As previously described, a computing device 600 can execute the gait data processing method P100 described in this application. Specifically, a storage medium 630 can store at least one set of instructions for processing gait data; a processor 620 can read and execute the at least one set of instructions, thereby executing the gait data processing method P100 of this application according to the instructions of the set of instructions. Figure 4 As shown, method P100 may include:

[0074] S110: Obtain gait data of M gait cycles of the target user's lower limbs, where M is an integer greater than 1.

[0075] In some embodiments, when the computing device 600 is a wearable device 100 (i.e., the wearable device 100 has the structure of the computing device 600), sensors in the computing device 600 collect gait data of the target user and store the gait data (persistently or temporarily) in the storage medium 630, so that the processor 620 can read the gait data from the storage medium 630. In some embodiments, when the computing device 600 is a control device 200 (i.e., the control device 200 has the structure of the computing device 600), the wearable device 100 collects gait data of the target user through sensors and sends the gait data to the computing device 600. After receiving the gait data, the computing device 600 can store the gait data (persistently or temporarily) in the storage medium 630, so that the processor 620 can read the gait data from the storage medium 630.

[0076] The gait data refers to data used to describe the lower limb movement posture of a target user. In some embodiments, the gait data may include at least one of the following: first acceleration data along the x-axis, second acceleration data along the z-axis, and angular velocity data about the y-axis. Here, the x-axis, y-axis, and z-axis refer to the coordinate axes of a spatial coordinate system. Figure 5 A schematic diagram of a spatial coordinate system provided according to an embodiment of this application is shown. Figure 5 As shown, the x-axis points in the direction the target user is facing, the z-axis points in a direction perpendicular to the ground, and the y-axis is perpendicular to both the x-axis and the z-axis. In other words, the y-axis points to the left or right of the target user.

[0077] It should be understood that during a target user's running process, the lower leg swings forward rapidly after the foot leaves the ground. This causes significant changes in the acceleration along the x-axis and the angular velocity around the y-axis. For example, the acceleration along the x-axis increases rapidly, and the angular velocity around the y-axis also increases rapidly. Therefore, the first acceleration data along the x-axis and the angular velocity data around the y-axis can be used to determine the moment the target user's foot leaves the ground (i.e., the moment of the takeoff event). Additionally, during the target user's running process, the acceleration along the z-axis is equal to the acceleration due to gravity before the foot contacts the ground. After the foot begins to contact the ground, the acceleration along the z-axis changes significantly. For example, the acceleration along the z-axis is reversed by the ground force. Therefore, the second acceleration data along the z-axis can be used to determine the moment the target user's foot begins to contact the ground (i.e., the moment of the ground contact event).

[0078] It should be noted that the gait data can be raw data collected by the sensor, or data after some preprocessing. For example, the gait data can be in the form of (sampling point identifier, gait sample value) data pairs. Since the sampling frequency of the sensor is known, there is a correspondence between the sampling point identifier and the sampling time. Alternatively, the gait data can also be in the form of (sampling time, gait sample value) data pairs. It should be understood that the gait data can also be in other formats, and this application does not limit its format.

[0079] The target user's gait during walking or running is periodic. The processor 620 can obtain gait data for M gait cycles, where M is an integer greater than 1. It should be noted that the aforementioned M gait cycles can be consecutive or non-consecutive. For example, in some embodiments, assuming the sensor collects gait data for N gait cycles, the processor 620 can resample the gait data for the aforementioned N gait cycles (e.g., extracting the 1st, 3rd, 5th, ..., 2k+1th gait cycles) to obtain gait data for M gait cycles.

[0080] S120: Based on the gait data, determine the target time when the target user's foot leaves the ground within each of the M gait cycles.

[0081] The processor 620 can process the gait data within each gait cycle separately to determine the target take-off time of the target user's foot leaving the ground within that gait cycle. In some embodiments, the gait data processing method P100 provided in this application may further include: segmenting the gait data into gait cycles to determine the start and end positions of each gait cycle. That is, the processor 620 can determine the gait data within each gait cycle separately. It is understood that the processor 620 identifies the start and end positions of each gait cycle by segmenting the gait data, thereby facilitating subsequent processing of the gait data according to the gait cycle. It should be understood that when the processor 620 processes the gait data according to the gait cycle, different gait cycles can be executed sequentially or in parallel, and this application does not limit this.

[0082] For ease of description, the gait period corresponding to the gait data currently being processed is referred to as the target gait period. It should be understood that the target gait period can be any one of M gait periods. The process of determining the target takeoff time corresponding to the target gait period includes:

[0083] S120-1: Dynamically update the value of the sliding factor according to the target gait cycle to obtain the target sliding factor value, wherein the target sliding factor value is related to the user's movement state within the target gait cycle; and

[0084] S120-2: Determine the range of takeoff time within the target gait cycle, and determine the target takeoff time based on the target slip factor value and the range of takeoff time.

[0085] In the solution provided in this application, the processor 620 can initially determine the range of time taken off the ground within the target gait cycle. This range of time taken off the ground refers to the approximate time range in which the target user's foot leaves the ground within the target gait cycle (i.e., the moment the off-ground event occurs, which can be simply referred to as the off-ground moment). For example, assuming the start time of the off-ground time range is T1 and the end time is T2, it means that the target user's foot leaves the ground within the time range of [T1, T2].

[0086] The solution provided in this application proposes the concept of a sliding factor. The sliding factor is used to determine the takeoff time within the takeoff time range, that is, to determine the takeoff time T3 between the start time T1 and the end time T2. The value of the sliding factor is a proportionality coefficient used to characterize the relationship between the gait sample values ​​corresponding to the start time T1, the end time T2, and the takeoff time T3. In some embodiments, the value range of the sliding factor can be [0, 1]. Assuming the value of the sliding factor is denoted as A, the value A can be expressed by the following formula (1):

[0087]

[0088] Where f(T1) represents the gait sample value corresponding to the start time T1, f(T2) represents the gait sample value corresponding to the end time T2, and f(T3) represents the gait sample value corresponding to the time of takeoff T3.

[0089] The slip factor can have different values ​​in different gait cycles. The value of the slip factor in each gait cycle is related to the user's motion state within that cycle. This user motion state can refer to the user's motion state recorded in the gait data within that cycle, or it can refer to the user's motion state obtained through other means. In some embodiments, when processing the gait data for each gait cycle, the processor 620 can first dynamically update the value of the slip factor based on the user's motion state within that cycle to obtain a target slip factor value. Then, based on the target slip factor value, the takeoff time is determined within the takeoff time range. It is understood that since the value of the slip factor is dynamically updated to a value related to the user's motion state within each gait cycle, the takeoff time determined based on the updated slip factor value (i.e., the target slip factor value) within the takeoff time range is relatively accurate.

[0090] In some embodiments, the value of the slip factor may be related to the movement speed of the target user. In this case, the processor 620 can dynamically update the value of the slip factor based on the movement speed of the target user within the target gait cycle to obtain the target slip factor value, wherein the target slip factor value is negatively correlated with the movement speed. That is, the greater the movement speed of the target user within the target gait cycle, the smaller the target slip factor value; conversely, the smaller the movement speed of the target user within the target gait cycle, the larger the target slip factor value. In some embodiments, the relationship between the target slip factor value and the movement speed can be represented by the function A = fun1(V), where the function fun1 can be a linear function or a nonlinear function. In some embodiments, the relationship between the target slip factor value A and the movement speed V of the target user can be as shown in Table 1. It should be understood that Table 1 only exemplifies the target slip factor values ​​corresponding to some movement speeds.

[0091] Table 1

[0092]

[0093] In some embodiments, the processor 620 can determine the target user's movement speed within the target gait cycle based on gait data within the target gait cycle, or it can predict the target user's movement speed within the target gait cycle based on gait data from a preset number of historical gait cycles prior to the target gait cycle. Furthermore, the processor 620 can update the value of the slip factor based on the target user's movement speed within the target gait cycle to obtain the target slip factor value.

[0094] In some embodiments, the processor 620 may also update the value of the slip factor as follows: dynamically update the value of the slip factor based on the time difference (i.e., time difference, also known as time interval) between the first candidate takeoff time and the second candidate takeoff time within the target gait cycle to obtain a target slip factor value, wherein the target slip factor value is negatively correlated with the time difference. That is, the smaller the time difference between the first candidate takeoff time and the second candidate takeoff time, the larger the target slip factor value; the larger the time difference between the first candidate takeoff time and the second candidate takeoff time, the smaller the target slip factor value. For example, in some embodiments, the relationship between the target slip factor value A and the time difference X can be represented by the function A = fun2(X), where fun2 can be a linear function or a nonlinear function.

[0095] The first and second candidate takeoff times can be candidate takeoff times obtained by preliminary searching in gait data within the target gait cycle using a preset search method. The preset search method can refer to a method of searching for takeoff events without based on a slip factor. In some embodiments, the first candidate takeoff time can be obtained by searching based on angular velocity data around the y-axis using a preset search method. For example, the first candidate takeoff time can be obtained as follows: a first search interval is determined in the angular velocity data around the y-axis corresponding to the target gait cycle, and the peak time of the angular velocity data within the first search interval is determined as the first candidate takeoff time, wherein the first search interval is located after the ground contact time within the target gait cycle.

[0096] To facilitate understanding, the following will be combined with... Figure 6 Let's illustrate with examples. Figure 6 A schematic diagram is shown illustrating a first candidate liftoff time determined from angular velocity data about the y-axis, according to an embodiment of this application. (See diagram below.) Figure 6 As shown, since the target user's foot leaving the ground (i.e., the take-off event) occurs some time after the foot touches the ground (i.e., the ground contact event), a preset time interval can be used as the first search interval after the target user's foot touches the ground (i.e., the moment the ground contact event occurs). Figure 6 The example illustrates two gait cycles. Taking the first gait cycle as an example, assume that time t1 is the time when the target user's foot touches the ground ( Figure 6 (Using black rectangular blocks for labeling), with a preset duration of ΔT1, the first search interval can be [t1, t1 + ΔT1]. Since the target user's lower leg swings forward rapidly after leaving the ground, meaning the angular velocity reaches its maximum in a very short time, the maximum value of the angular velocity (i.e., the peak) can be searched within the first search interval [t1, t1 + ΔT1]. Figure 6 (Using black dots to mark the values), and determining the time of the maximum value as the first candidate liftoff time. It should be understood that, for... Figure 6 The second gait cycle can also be determined in a similar way to the above method to determine the first candidate takeoff time, which will not be elaborated on in this specification.

[0097] In some embodiments, the second candidate takeoff time may be obtained by searching based on the first acceleration data along the x-axis using a preset search method. For example, the second candidate takeoff time may be obtained by determining a second search interval in the first acceleration data along the x-axis corresponding to the target gait cycle, and determining the trough occurrence time before the peak occurrence time of the first acceleration data within the second search interval as the second candidate takeoff time, wherein the second search interval is located after the ground contact time within the target gait cycle.

[0098] To facilitate understanding, the following will be combined with... Figure 7 Let's illustrate with examples. Figure 7 A schematic diagram is shown illustrating a second candidate liftoff moment determined from first acceleration data along the x-axis, according to an embodiment of this application. (See diagram below.) Figure 7 As shown, since the target user's foot leaving the ground (i.e., the take-off event) occurs some time after the foot touches the ground (i.e., the ground contact event), a preset time interval can be used as the second search interval after the target user's foot touches the ground (i.e., the moment the ground contact event occurs). Figure 7 The example illustrates two gait cycles. Taking the first gait cycle as an example, assume that time t3 is the time when the target user's foot touches the ground ( Figure 7 (Using black rectangular blocks for labeling), with a preset duration of ΔT2, the second search interval can be [t3, t3+ΔT2]. Since the target user's foot will rapidly move forward after leaving the ground, meaning the acceleration along the x-axis will rapidly increase to its maximum value, the maximum acceleration (i.e., the highest peak) can be searched within the second search interval [t3, t3+ΔT]. Figure 7 (Using dashed boxes to indicate the maximum value), and the first minimum value (i.e., the trough) before the maximum value. Figure 7 The time of occurrence (marked with black dots) was determined as the second candidate liftoff time. It should be understood that, for... Figure 7 The second gait cycle can also be determined in a similar way as described above, and this specification will not elaborate on this.

[0099] Through research on the actual running processes of a large number of users, the inventors discovered that the gait sampling value corresponding to the moment a user's foot leaves the ground (i.e., the moment of takeoff) does not have obvious characteristics; that is, it does not appear as a trough or a peak, but rather lies between a peak and a trough. Therefore, it is evident that both the first and second candidate takeoff moments determined by the aforementioned preset search method have a certain degree of error. Further research by the inventors revealed that although both the first and second candidate takeoff moments have certain errors, the time difference (i.e., time interval) between them is related to movement speed. Therefore, this time difference can be used to simulate movement speed. Thus, in scenarios where the user's running speed varies significantly or where movement speed is difficult to obtain, the processor 620 can dynamically update the sliding factor based on the time difference.

[0100] In some embodiments, the take-off time range can be determined based on pre-analytical results. For example, gait data from a large number of sample users can be analyzed in advance to determine the position of each user's foot take-off time within the gait cycle. Based on the statistical results, a general time range within the gait cycle can be determined, which can cover the foot take-off times of all sample users. Thus, the processor 620 can determine the take-off time range within the target gait cycle based on this general time range.

[0101] In some embodiments, the takeoff time range can also be determined based on gait data within the target gait cycle. For example, assuming that the gait sampling values ​​of the target user's foot gradually increase within a preset time period from before to after takeoff, the processor 620 can find the troughs (minimum values) and peaks (maximum values) of the gait sampling values ​​within the preset time period, determine the time corresponding to the trough as the start time of the takeoff time range, and determine the time corresponding to the peak as the end time of the takeoff time range. As another example, assuming that the gait sampling values ​​of the target user's foot gradually decrease within a preset time period from before to after takeoff, the processor 620 can find the peaks (maximum values) and troughs (minimum values) of the gait sampling values ​​within the preset time period, determine the time corresponding to the peak as the start time of the takeoff time range, and determine the time corresponding to the trough as the end time of the takeoff time range.

[0102] In some embodiments, when the gait data includes angular velocity data about the y-axis, the take-off time range can be obtained based on the angular velocity data within the target gait cycle. Considering that during running, the target user's lower leg swing amplitude is minimal when the foot fully contacts the ground, at which point the angular velocity reaches its minimum value, and the lower leg swings forward rapidly after the foot completely leaves the ground, at which point the angular velocity reaches its maximum value, the processor 620 can use the time corresponding to the target trough of the angular velocity data within the target gait cycle as the start time of the take-off time range, and the time corresponding to the target peak of the angular velocity data within the target gait cycle as the end time of the take-off time range. Both the target trough and the target peak are located after the target user's foot touches the ground within the target gait cycle. For example, Figure 8 A schematic diagram illustrating angular velocity data and time-of-flight range provided according to embodiments of this application is shown. Figure 8 As shown, the time corresponding to the trough of the angular velocity data is T1, and the time corresponding to the peak of the angular velocity data is T2. The time range between T1 and T2 is taken as the time range of the time away from the ground.

[0103] Based on the above angular velocity data and the time range of takeoff [T1, T2], the processor 620 can use either Scheme 1 or Scheme 2 to determine the target takeoff time.

[0104] Option 1 may include:

[0105] (1) Determine the difference between the angular velocity at the end time and the angular velocity at the beginning time.

[0106] Combination Figure 8 For example, suppose the angular velocity at the end time T2 is ω2 and the angular velocity at the beginning time T1 is ω1, and the difference M between the two is: M = ω2 - ω1.

[0107] (2) Determine the target angular velocity based on the target sliding factor value and the difference.

[0108] Assuming the target slip factor is denoted as A, the target angular velocity ω3 can be calculated using the following formula:

[0109] ω3=A*M+ω1=A*(ω2-ω1)+ω1

[0110] (3) Search for the target angular velocity within the time range of the ground takeoff, and take the time when the target angular velocity occurs as the time when the target takes off.

[0111] See also Figure 8 The target angular velocity ω3 is searched between the start time T1 and the end time T2, and the time T3 corresponding to the target angular velocity ω3 is taken as the time when the target leaves the ground.

[0112] In Scheme 1 above, the processor 620 can determine the target takeoff time T3 within the takeoff time range [T1, T2] based on the target slip factor value A. It is understandable that the specific position of the target takeoff time T3 within the takeoff time range [T1, T2] is determined by the target slip factor value A. For example, the smaller the target slip factor value A, the closer the target takeoff time T3 is to position T1 within the takeoff time range [T1, T2]; the larger the target slip factor value A, the closer the target takeoff time T3 is to position T2 within the takeoff time range [T1, T2]. Since the target slip factor value A is related to the user's movement state within the current gait cycle, the target takeoff time determined based on the target slip factor value A is relatively accurate.

[0113] Figure 9 A schematic diagram is shown illustrating the target takeoff time determined from angular velocity data based on the target slip factor, according to an embodiment of this application. For example... Figure 9As shown, the target takeoff time determined using Scheme 1 corresponds to the position marked by the black dot. It is evident that the target takeoff time determined by Scheme 1 lies between the trough and the peak of the wave. Compared to directly using the trough or peak as the target takeoff time, Scheme 1 more accurately reflects the actual situation, thus improving the accuracy of the target takeoff time.

[0114] Option 2 may include:

[0115] (1) Determine the difference between the angular velocity at the end time and the angular velocity at the beginning time.

[0116] (2) Determine the target angular velocity based on the target sliding factor value and the difference.

[0117] (3) Search for the target angular velocity within the time range of the takeoff time, and take the time when the target angular velocity occurs as the third candidate takeoff time.

[0118] It should be understood that the implementation of steps (1) to (3) of scheme 2 is similar to that of scheme 1, and will not be repeated here. The difference between scheme 2 and scheme 1 is that in scheme 2, the processor 620 uses the takeoff time T3 determined based on the target sliding factor value A within the takeoff time range [T1, T2] as the third candidate takeoff time, rather than the target takeoff time.

[0119] (4) Determine the target takeoff time based on the first candidate takeoff time, the second candidate takeoff time and the third candidate takeoff time within the target gait cycle.

[0120] It should be noted that the methods for determining the first candidate liftoff time and the second candidate liftoff time have been explained in the relevant sections above, and will not be repeated here.

[0121] In some embodiments, the processor 620 can determine the target take-off time as the average or weighted average of the first candidate take-off time, the second candidate take-off time, and the third candidate take-off time. It is understood that the above embodiments, by comprehensively considering the results of multiple take-off event search methods, can improve the accuracy of the target take-off time.

[0122] In some embodiments, the processor 620 may execute a first processing mode or a second processing mode based on the time relationship between the first candidate liftoff time and the second candidate liftoff time. The first processing mode includes: using the average of the second and third candidate liftoff times as the target liftoff time; or, using the average of the first, second, and third candidate liftoff times as the target liftoff time. The second processing mode includes: using the average of the third candidate liftoff times as the target liftoff time.

[0123] In some embodiments, if the first candidate's takeoff time is earlier than or equal to the second candidate's takeoff time, the processor 620 executes the first processing mode described above. In some embodiments, if the first candidate's takeoff time is later than the second candidate's takeoff time, the processor 620 executes the second processing mode.

[0124] As mentioned earlier, the time difference between the first and second candidate takeoff times is related to the user's movement speed. Actual test results show that "the first candidate takeoff time is earlier than or equal to the second candidate takeoff time" corresponds to situations where the user's movement speed is relatively low, such as a running speed less than or equal to 6 km / h. In this case, the first and / or second candidate takeoff times achieve a certain level of accuracy. Therefore, the average of the first and third candidate takeoff times, or the average of the first, second, and third candidate takeoff times, can be used as the target takeoff time. This approach comprehensively considers the results of multiple takeoff event search methods, thus improving the accuracy of the target takeoff time measurement. "The first candidate takeoff time is later than the second candidate takeoff time" corresponds to situations where the user's movement speed is relatively high, such as a running speed greater than 6 km / h. In this case, the accuracy of the first and second candidate takeoff times is not high. Therefore, the third candidate takeoff time can be used as the target takeoff time, thereby improving the accuracy of the target takeoff time measurement.

[0125] S130: Determine the gait characteristics of the target user based at least on the target takeoff time corresponding to the M gait cycles.

[0126] It is understood that after obtaining the M target take-off times corresponding to M gait cycles, the processor 620 can determine the gait characteristics of the target user by analyzing the M target take-off times. In some embodiments, the gait characteristics of the target user may include at least one dimension of gait balance, running efficiency, and vertical amplitude. Gait balance is an important indicator for measuring left-right muscle strength balance and body coordination. Running efficiency is an indicator for measuring running economy, referring to the ability to maximize energy utilization. For example, with the same energy expenditure, higher running efficiency means running faster and farther; or, with the same speed and distance, higher running efficiency means consuming less energy. Vertical amplitude refers to the vertical height of the body's center of gravity during running, and it can also reflect running efficiency to some extent; for example, a larger vertical amplitude indicates lower running efficiency, and a smaller vertical amplitude indicates higher running efficiency.

[0127] In some embodiments, the gait data processing method P100 provided in this application may further include: S125: Based on the gait data, determining the ground contact time of the target user's foot within the M gait cycles. Thus, the processor 620 can determine the gait characteristics of the target user based on the target ground departure time and ground contact time corresponding to the M gait cycles. It should be noted that S125 in... Figure 4 As not shown in the diagram, S125 can be executed before S120, after S120, or simultaneously with S120.

[0128] In some embodiments, the gait data may include second acceleration data along the z-axis. In this case, the processor 620 may process the gait data for each gait cycle separately to determine the ground contact time of the target user's foot within that gait cycle. The gait cycle corresponding to the currently processed gait data is referred to as the target gait cycle. The process of determining the ground contact time corresponding to the target gait cycle includes determining the first trough occurrence time before the peak occurrence time of the second acceleration data corresponding to the target gait cycle as the ground contact time.

[0129] To facilitate understanding, the following will be combined with... Figure 10 Let's illustrate with examples. Figure 10 A schematic diagram is shown illustrating the ground contact moment determined from second acceleration data along the z-axis, according to an embodiment of this application. (See diagram below.) Figure 10 As shown, the peak occurrence time can be found first in the second acceleration data, and then the first trough occurrence time before the peak occurrence time can be found, with this trough occurrence time taken as the ground contact time. Figure 10 The acceleration sample value corresponding to the ground contact moment is marked with a black dot. It should be understood that during actual running, the foot pushes off the ground rapidly after contact, causing the acceleration along the z-axis to reverse and quickly reach its maximum value. Therefore, the ground contact moment has a relatively obvious characteristic in the second acceleration data (represented as the first trough before the peak). Thus, the above method determines the ground contact moment as the first trough before the peak of the second acceleration data, resulting in high accuracy in determining the ground contact moment.

[0130] In some embodiments, the processor 620 can determine the ground contact duration corresponding to the M gait cycles based on the target take-off time and the ground contact time corresponding to the M gait cycles. Specifically, for each gait cycle, the processor 620 can subtract the ground contact time from the target take-off time to obtain the ground contact duration corresponding to that gait cycle. Furthermore, the processor 620 can determine the gait characteristics of the target user based on the ground contact durations corresponding to the M gait cycles. In some embodiments, the processor 620 can determine the running efficiency of the target user based on the ground contact durations corresponding to the M gait cycles.

[0131] In some embodiments, the processor 620 can further determine the airtime corresponding to the M gait cycles based on the target takeoff time and the ground contact time corresponding to the M gait cycles. Furthermore, the processor 620 can determine the gait characteristics of the target user based on the airtime corresponding to the M gait cycles. In some embodiments, the processor 620 can determine the running efficiency of the target user based on the airtime corresponding to the M gait cycles.

[0132] In some embodiments, the processor 620 can obtain the ground contact duration of the left foot and the ground contact duration of the right foot in M ​​gait cycles, and then determine the gait balance based on the ground contact duration of the left foot and the right foot in M ​​gait cycles.

[0133] In some embodiments, when the computing device 600 includes a display screen, the processor 620 can also display the gait characteristics of the target user on the display screen after determining the gait characteristics. For example, the gait characteristics can be displayed as text, or as visual elements such as graphics and tables. By displaying the gait characteristics, the system 001 enables the target user to know their own gait characteristics, thereby facilitating timely correction of their movement posture.

[0134] In some embodiments, when the computing device 600 includes an audio output device (e.g., a speaker), the processor 620, after determining the gait characteristics of the target user, can also verbally play the gait characteristics through the audio output device. It is understood that by playing the gait characteristics aloud, the system 001 allows the target user to be aware of their own gait characteristics, thereby facilitating timely correction of their movement posture. Furthermore, this method eliminates the need for the user to look at a screen, allowing the user to be aware of their gait characteristics in real time while exercising and to correct their movement posture accordingly, thus improving operational efficiency.

[0135] Furthermore, the computing device 600 can also communicate with the target device. For example, if the computing device 600 is a wearable device 100, the target device can be a control device 200. As another example, if the computing device 600 is a control device 200, the target device can be other terminal devices connected to the control device 200, such as headphones or a smart screen. After determining the gait characteristics of the target user, the processor 620 can send the gait characteristics to the target device to either play the gait characteristics aloud or display them. This allows for the adoption of a gait characteristic output method appropriate to the current application scenario, making it easier for the user to understand their own gait characteristics and thus facilitating timely correction of their movement posture.

[0136] Figure 11 A schematic diagram illustrating a gait data processing procedure according to an embodiment of this application is shown. Figure 11 As shown, the gait data processing procedure includes:

[0137] (1) The processor 620 obtains gait data of the target user’s lower limbs for M gait cycles, the gait data including: first acceleration data along the x-axis, second acceleration data along the z-axis and angular velocity data around the y-axis.

[0138] (2) The processor 620 can process the gait data in each gait cycle to determine the target user's foot contact time TD and the target foot departure time TO in each gait cycle.

[0139] Specifically, for the foot contact time TD, the processor 602 can adopt the following... Figure 10 The ground contact event shown is obtained by searching within the current gait cycle.

[0140] For the target's takeoff time TO, the processor 602 can obtain it in the following way:

[0141] (a) Based on angular velocity data about the y-axis, using, for example Figure 6 The off-ground event search method shown determines the first candidate off-ground moment TO1 in the current gait cycle.

[0142] (b) Based on the first acceleration data along the x-axis, using, as Figure 7 The off-ground event search method shown identifies the second candidate off-ground moment TO2 within the target gait cycle.

[0143] (c) Determine the time difference (TO1-TO2) between the first candidate time of departure and the second candidate time of departure.

[0144] (d) The value of the sliding factor is dynamically updated based on the time difference (TO1-TO2) to obtain the target sliding factor value A.

[0145] (e) Determine the range of takeoff time in the current gait cycle based on the angular velocity data around the y-axis, and determine the third candidate takeoff time TO3 within the range of takeoff time based on the target slip factor value A.

[0146] (f) Based on the first candidate takeoff time TO1, the second candidate takeoff time TO2, and the third candidate takeoff time TO3, the target takeoff time TO is determined in the current gait cycle. Wherein, if the first candidate takeoff time TO1 is earlier than or equal to the second candidate takeoff time TO2, the processor 620 can take the average of the second candidate takeoff time TO2 and the third candidate takeoff time TO3 as the target takeoff time TO, that is: TO = (TO2 + TO3) / 2; if the first candidate takeoff time TO1 is later than the second candidate takeoff time TO2, the processor 620 can take the third candidate takeoff time TO3 as the target takeoff time, that is: TO = TO3.

[0147] (3) Based on the target takeoff time TO and ground contact time TD corresponding to each of the M gait cycles, the processor 620 can determine the ground contact time TL = TO - TD corresponding to each of the M gait cycles.

[0148] (4) The processor 620 determines the gait characteristics of the target user based on the ground contact time TL corresponding to each of the M gait cycles.

[0149] It should be understood that Figure 11 The specific implementation methods of each step in the gait data processing process shown have been introduced in the relevant sections above, and will not be repeated here.

[0150] To verify the effectiveness of the proposed solution, gait data of the target user at different running speeds (6km / h, 8km / h, and 10km / h) were collected in the experiment, and then processed according to the following... Figure 11 The processing procedure shown above processes the gait data to obtain the ground contact time corresponding to the target user at different running speeds. Furthermore, the ground contact time obtained based on this application's solution is compared with the ground contact time measured by the force-measuring treadmill, resulting in the test results shown in Table 2. As can be seen from Table 2, the average error between the ground contact time obtained by this application's solution and the ground contact time measured by the force-measuring treadmill is 10 ms, indicating that the ground contact time obtained by this application's solution has high accuracy.

[0151] Table 2

[0152]

[0153] It should be noted that the gait analysis process described in this application can be executed in real time, that is, after the sensor collects gait data for one gait cycle, the processor 620 immediately processes the gait data for that gait cycle. The gait analysis process described in this application can also be executed non-real time, that is, the sensor collects gait data for multiple gait cycles within a preset time period, and the processor 620 processes the gait data for the multiple gait cycles after the preset time period ends.

[0154] In summary, by executing the gait data processing method P100 provided in this application, system 001 can obtain gait data for M gait cycles of the target user's lower limbs; based on the gait data, it determines the target take-off time of the target user's foot leaving the ground within each of the M gait cycles; and determines the gait characteristics of the target user based at least on the target take-off time corresponding to each of the M gait cycles. Specifically, when processing the gait data, system 001 can dynamically update the value of the slip factor for each gait cycle to obtain a target slip factor value. The target slip factor value is related to the user's movement state within that gait cycle. Furthermore, system 001 determines the take-off time range within the current gait cycle and determines the target take-off time within that gait cycle based on the target slip factor value and the take-off time range. Since the slip factor value is updated in real time with the user's movement state in the current gait cycle, the target take-off time determined based on the target slip factor value is relatively accurate, and consequently, the gait characteristics determined based on the target take-off time are also relatively accurate. Therefore, the gait analysis results have high accuracy.

[0155] This application, in another aspect, provides a non-transitory storage medium storing at least one set of executable instructions for processing gait data. When the executable instructions are executed by a processor, they instruct the processor to implement the steps of the gait data processing method P100 described in this application. In some possible embodiments, various aspects of this application can also be implemented as a program product comprising program code. When the program product is run on a computing device 600, the program code causes the computing device 600 to execute the steps of the gait data processing method P100 described in this application. The program product for implementing the above method may employ a portable compact disc read-only memory (CD-ROM) containing program code and may run on the computing device 600. However, the program product of this application is not limited thereto. In this application, the readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system. The program product may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of readable storage media include: electrical connections having one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. The computer-readable storage medium may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable storage medium may also be any readable medium other than a readable storage medium that can send, propagate, or transmit programs for use by or in connection with an instruction execution system, apparatus, or device. Program code contained on a readable storage medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof. Program code for performing the operations of this application can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java and C++, and conventional procedural programming languages ​​such as C or similar languages. The program code can be executed entirely on computing device 600, partially on computing device 600, as a standalone software package, partially on computing device 600 and partially on a remote computing device, or entirely on a remote computing device.

[0156] The foregoing has described specific embodiments of this application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require a specific or sequential order to achieve the desired result. In some embodiments, multitasking and parallel processing are possible or may be advantageous.

[0157] In summary, after reading this detailed disclosure, those skilled in the art will understand that the foregoing detailed disclosure is presented by way of example only and is not restrictive. Although not explicitly stated herein, those skilled in the art will understand that the requirements of this application encompass various reasonable changes, improvements, and modifications to the embodiments. These changes, improvements, and modifications are intended to be made by this application and are within the spirit and scope of the exemplary embodiments of this application.

[0158] Furthermore, certain terms used in this application have been used to describe embodiments of this application. For example, "an embodiment," "an embodiment," and / or "some embodiments" mean that a particular feature, structure, or characteristic described in connection with that embodiment may be included in at least one embodiment of this application. Therefore, it is to be emphasized and understood that two or more references to "an embodiment" or "an embodiment" or "alternative embodiment" in various parts of this application do not necessarily refer to the same embodiment. Moreover, specific features, structures, or characteristics may be appropriately combined in one or more embodiments of this application.

[0159] It should be understood that in the foregoing description of the embodiments of this application, various features are combined in a single embodiment, drawing, or description for the purpose of simplifying the understanding of a feature. However, this does not mean that the combination of these features is necessary, and those skilled in the art may readily identify some of the devices as separate embodiments when reading this application. That is, the embodiments in this application can also be understood as an integration of multiple sub-embodiments. It is also valid when each sub-embodiment contains fewer than all the features of a single foregoing disclosed embodiment.

[0160] Every patent, patent application, publication of a patent application, and other material such as articles, books, specifications, publications, documents, articles, etc., cited herein, except for any related historical prosecution documents, any identical ones that may be inconsistent with or conflict with this document, or any identical historical prosecution documents that may have a limiting effect on the widest scope of the claims, may be incorporated herein by reference and used for all purposes now or hereafter in connection with this document. Furthermore, in the event of any inconsistency or conflict between the description, definition, and / or use of terms related to any included material and those related to this document, the terminology used herein shall prevail.

[0161] Finally, it should be understood that the embodiments disclosed herein are illustrative of the principles of the embodiments of this application. Other modified embodiments are also within the scope of this application. Therefore, the embodiments disclosed herein are merely examples and not limitations. Those skilled in the art can adopt alternative configurations to implement the applications in this application based on the embodiments in this application. Therefore, the embodiments of this application are not limited to the embodiments precisely described in the application.

Claims

1. A method for processing gait data, characterized in that, include: Gait data of the target user's lower limbs for M gait cycles are obtained, where M is an integer greater than 1; Based on the gait data, the target take-off time of the target user's foot leaving the ground is determined within each of the M gait cycles. The gait cycle corresponding to the currently processed gait data is the target gait cycle. The process of determining the target take-off time corresponding to the target gait cycle includes: The target slip factor value is obtained by dynamically updating the slip factor value based on the target gait cycle. The target slip factor value is a proportional coefficient related to the user's movement state within the target gait cycle, used to characterize the relationship between the start and end times of the target user's foot take-off time, and the gait sample values ​​corresponding to each target take-off time. Determine the takeoff time range within the target gait cycle, and determine the target takeoff time based on the target slip factor value and the takeoff time range; and The gait characteristics of the target user are determined based on the target take-off time corresponding to the M gait cycles. The gait characteristics include at least one dimension of gait balance, running efficiency, and vertical amplitude.

2. The method according to claim 1, characterized in that, The step of dynamically updating the value of the slip factor based on the target gait cycle to obtain the target slip factor value includes: The value of the slip factor is dynamically updated based on the movement speed of the target user within the target gait cycle to obtain the target slip factor value, wherein... The target slip factor value is negatively correlated with the motion speed.

3. The method according to claim 1, characterized in that, The step of dynamically updating the value of the slip factor based on the target gait cycle to obtain the target slip factor value includes: Based on the time difference between the first candidate takeoff time and the second candidate takeoff time within the target gait cycle, the value of the slip factor is dynamically updated to obtain the target slip factor value, wherein... The target sliding factor value is negatively correlated with the time difference.

4. The method according to claim 1, characterized in that, The gait data includes angular velocity data about the y-axis, which is perpendicular to the direction the target user is facing. as well as Determining the takeoff time range within the target gait cycle includes: The time corresponding to the target trough of the angular velocity data within the target gait cycle is determined as the start time of the takeoff time range, and the time corresponding to the target peak is determined as the end time of the takeoff time range. Both the target trough and the target peak are located after the moment the target user's foot touches the ground within the target gait cycle.

5. The method according to claim 4, characterized in that, Determining the target takeoff time based on the target slip factor value and the takeoff time range includes: Determine the difference between the angular velocity corresponding to the end time and the angular velocity corresponding to the start time; The target angular velocity is determined based on the target slip factor value and the difference; and The target angular velocity is searched within the time range of the takeoff time, and the moment when the target angular velocity occurs is taken as the target takeoff time.

6. The method according to claim 4, characterized in that, Determining the target takeoff time based on the target slip factor value and the takeoff time range includes: Determine the difference between the angular velocity corresponding to the end time and the angular velocity corresponding to the start time; The target angular velocity is determined based on the target slip factor value and the difference. The target angular velocity is searched within the stated time range of takeoff, and the moment when the target angular velocity occurs is taken as the third candidate takeoff moment; and The target takeoff time is determined based on the first candidate takeoff time, the second candidate takeoff time, and the third candidate takeoff time within the target gait cycle.

7. The method according to claim 6, characterized in that, Determining the target take-off time based on the first candidate take-off time, the second candidate take-off time, and the third candidate take-off time within the target gait cycle includes: Based on the time relationship between the first candidate liftoff time and the second candidate liftoff time, either the first processing mode or the second processing mode is executed, wherein... The first processing mode includes: determining the average of the second candidate takeoff time and the third candidate takeoff time as the target takeoff time, and The second processing mode includes: determining the third candidate takeoff time as the target takeoff time.

8. The method according to claim 7, characterized in that, The step of executing a first processing mode or a second processing mode based on the time relationship between the first candidate takeoff time and the second candidate takeoff time within the target gait cycle includes: If the first candidate's takeoff time is earlier than or equal to the second candidate's takeoff time, then the first processing mode is executed; or If the first candidate's takeoff time is later than the second candidate's takeoff time, then the second processing mode is executed.

9. The method according to claim 3 or 6, characterized in that, The gait data includes: first acceleration data along the x-axis and angular velocity data about the y-axis, wherein the x-axis points in the direction the target user is facing and the y-axis is perpendicular to the x-axis; The first candidate takeoff time is determined as follows: a first search interval is determined from the angular velocity data corresponding to the target gait cycle, and the peak time of the angular velocity data within the first search interval is determined as the first candidate takeoff time, wherein the first search interval is located after the ground contact time within the target gait cycle; and The second candidate takeoff time is determined as follows: a second search interval is determined in the first acceleration data corresponding to the target gait cycle, and the trough time before the peak time of the first acceleration data within the second search interval is determined as the second candidate takeoff time, wherein the second search interval is located after the ground contact time within the target gait cycle.

10. The method according to claim 1, characterized in that, The method further includes: determining, based on the gait data, the ground contact time of the target user's foot within each of the M gait cycles; and Determining the gait characteristics of the target user includes: determining the gait characteristics of the target user based on the target take-off time and the ground contact time corresponding to the M gait cycles.

11. The method according to claim 10, characterized in that, The gait data includes second acceleration data along the z-axis, which points in a direction perpendicular to the ground; as well as The process of determining the ground contact time corresponding to the target gait cycle includes: determining the first trough occurrence time before the peak occurrence time of the second acceleration data corresponding to the target gait cycle as the ground contact time.

12. The method according to claim 10, characterized in that, The determination of the target user's gait characteristics based on the target take-off time and ground contact time corresponding to the M gait cycles includes: Based on the target takeoff time and ground contact time corresponding to the M gait cycles, determine the ground contact duration corresponding to the M gait cycles; and The gait characteristics of the target user are determined based on the ground contact time corresponding to the M gait cycles.

13. The method according to claim 1, characterized in that, After determining the gait characteristics of the target user, the method further includes at least one of the following: The gait characteristics are played back via voice. Display the gait characteristics; and The gait features are sent to the target device so that the gait features can be played or displayed via voice on the target device.

14. The method according to claim 1, characterized in that, The method further includes: The gait data is segmented into gait cycles to determine the start and end positions of each gait cycle.

15. A gait data processing system, characterized in that, include: At least one storage medium storing at least one instruction set for processing the gait data; as well as At least one processor is communicatively connected to the at least one storage medium. When the gait data processing system is running, the at least one processor reads the at least one instruction set and executes the gait data processing method according to any one of claims 1-14 according to the instructions of the at least one instruction set.

16. The system according to claim 15, characterized in that, Also includes: Sensors are deployed on wearable devices and configured to be worn within the lower limb area of ​​the target user to collect the gait data. The at least one memory and the at least one processor are deployed on a control device, which is communicatively connected to the wearable device.

17. The system according to claim 15, characterized in that, Also includes: Sensors are configured to be worn within the lower limb area of ​​the target user to collect the gait data. The sensor, the at least one storage medium, and the at least one processor are all deployed on the wearable device.