Gait data processing method and system
Patent Information
- Application Number
- CN202380014856.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-04-07
- Publication Date
- 2024-12-10
- Estimated Expiration
- 2043-04-07
AI Technical Summary
It is difficult to accurately determine the occurrence moment of a gait event with existing technology, resulting in inaccurate gait analysis results.
By dynamically updating the value of the sliding factor, the ground-leaving time range within the gait cycle is determined, and the occurrence moment of the gait event is determined based on the sliding factor value and time range, thereby improving the accuracy of the gait characteristics.
The accurate determination of the gait event moment is achieved, and the accuracy and reliability of the gait analysis results are improved.
Smart Images

Figure CN119110705A_ABST
Abstract
Description
Gait data processing method and system Technical Field
[0001] The present application relates to the field of data processing technology, and in particular to a method and system for processing gait data. Background Art
[0002] Gait analysis is widely used in various fields. For example, in the field of running, gait analysis results can be used to guide users to correct their running posture. In the field of rehabilitation assessment, gait analysis results can also be used to assess the user's physical recovery.
[0003] Typically, the gait analysis process is as follows: Predefine some gait events. For example, taking running as an example, the heel landing can be defined as a touchdown event, and the toes leaving the ground can be defined as a lift-off event. Then, based on the collected gait data, the time of occurrence of the gait event is determined, and the user's gait characteristics are analyzed based on the time of occurrence of the gait event. It can be seen that accurately determining the time of occurrence of the gait event is a key step in gait analysis. When there is a large error in the time of occurrence of the gait event, the results of the gait analysis will also be inaccurate. Therefore, it is necessary to provide a gait data processing method that can accurately determine the time of occurrence of the gait event.
[0004] Summary of the Invention
[0005] The present application provides a gait data processing method and system, which can accurately determine the occurrence time of gait events, thereby making the gait analysis results more accurate.
[0006] In a first aspect, the present application provides a method for processing gait data, comprising: obtaining gait data of M gait cycles of a target user's lower limbs, where M is an integer greater than 1; determining, based on the gait data, target lift-off times for the target user's feet to leave the ground within the M gait cycles; and determining the gait characteristics of the target user based at least on the target lift-off times corresponding to the M gait cycles; wherein the gait cycle corresponding to the gait data currently being processed is a target gait cycle, and the process of determining the target lift-off time corresponding to the target gait cycle comprises: dynamically updating the value of a sliding factor according to the target gait cycle to obtain a target sliding factor value, the target sliding factor value being related to the user's motion state within the target gait cycle, and determining a lift-off time range in the target gait cycle, and determining the target lift-off time based on the target sliding factor value and the lift-off time range.
[0007] In some embodiments, dynamically updating the sliding factor value according to the target gait cycle to obtain the target sliding factor value includes: dynamically updating the sliding factor value based on the movement speed of the target user in the target gait cycle to obtain the target sliding factor value, wherein the target sliding factor value is negatively correlated with the movement speed.
[0008] In some embodiments, dynamically updating the value of the sliding factor according to the target gait cycle to obtain a target sliding factor value includes: dynamically updating the value of the sliding factor based on a time difference between a first candidate lift-off moment and a second candidate lift-off moment within the target gait cycle to obtain the target sliding factor value, wherein the target sliding factor value is negatively correlated with the time difference.
[0009] In some embodiments, the gait data includes angular velocity data around the y-axis, where the y-axis is perpendicular to the direction facing the target user; determining the lift-off time range in the target gait cycle includes: determining the moment corresponding to a target trough of the angular velocity data in the target gait cycle as the starting moment of the lift-off time range, and determining the moment corresponding to a target peak as the ending moment of the lift-off time range, wherein the target trough and the target peak are both located after the touchdown moment of the target user's foot in the target gait cycle.
[0010] In some embodiments, determining the target lift-off moment based on the target sliding factor value and the lift-off time range includes: determining a difference between an angular velocity corresponding to the end moment and an angular velocity corresponding to the start moment; determining a target angular velocity based on the target sliding factor value and the difference; and searching for the target angular velocity within the lift-off time range, and using the moment when the target angular velocity occurs as the target lift-off moment.
[0011] In some embodiments, determining the target lift-off moment based on the target sliding factor value and the lift-off time range includes: determining the difference between the angular velocity corresponding to the end moment and the angular velocity corresponding to the start moment; determining the target angular velocity based on the target sliding factor value and the difference; searching for the target angular velocity within the lift-off time range, and taking the moment of occurrence of the target angular velocity as a third candidate lift-off moment; and determining the target lift-off moment based on the first candidate lift-off moment, the second candidate lift-off moment, and the third candidate lift-off moment within the target gait cycle.
[0012] In some embodiments, determining the target lift-off time based on the first candidate lift-off time, the second candidate lift-off time, and the third candidate lift-off time within the target gait cycle includes: executing a first processing mode or a second processing mode based on the temporal relationship between the first candidate lift-off time and the second candidate lift-off time, wherein the first processing mode includes: determining the average of the second candidate lift-off time and the third candidate lift-off time as the target lift-off time, and the second processing mode includes: determining the third candidate lift-off time as the target lift-off time.
[0013] In some embodiments, executing the first processing mode or the second processing mode based on the time relationship between the first candidate lift-off time and the second candidate lift-off time within the target gait cycle includes: executing the first processing mode if the first candidate lift-off time is earlier than or equal to the second candidate lift-off time; or executing the second processing mode if the first candidate lift-off time is later than the second candidate lift-off time.
[0014] In some embodiments, the gait data includes: first acceleration data along the x-axis and angular velocity data around the y-axis, the x-axis points to the direction facing the target user, and the y-axis is perpendicular to the x-axis; the first candidate lift-off moment is determined in the following manner: a first search interval is determined in the angular velocity data corresponding to the target gait cycle, and the peak occurrence time of the angular velocity data in the first search interval is determined as the first candidate lift-off moment, wherein the first search interval is located after the touchdown moment in the target gait cycle; the second candidate lift-off moment is determined in the following manner: a second search interval is determined in the first acceleration data corresponding to the target gait cycle, and the trough occurrence time before the peak occurrence time of the first acceleration data in the second search interval is determined as the second candidate lift-off moment, wherein the second search interval is located after the touchdown moment in the target gait cycle.
[0015] In some embodiments, the method further includes: determining the ground contact moments of the target user's feet in 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 lift-off moments and the ground contact moments corresponding to the M gait cycles.
[0016] In some embodiments, the gait data includes second acceleration data along the z-axis, where the z-axis points in a direction perpendicular to the ground; the process of determining the touchdown moment corresponding to the target gait cycle includes: determining the first trough occurrence moment before the peak occurrence moment of the second acceleration data corresponding to the target gait cycle as the touchdown moment.
[0017] In some embodiments, determining the gait characteristics of the target user based on the target lift-off moments and the touchdown moments corresponding to the M gait cycles includes: determining the touchdown durations corresponding to the M gait cycles based on the target lift-off moments and the touchdown moments corresponding to the M gait cycles; and determining the gait characteristics of the target user based on the touchdown durations corresponding to the M gait cycles.
[0018] In some embodiments, after determining the gait characteristics of the target user, it also includes at least one of the following: playing the gait characteristics by voice; displaying the gait characteristics; and sending the gait characteristics to the target device so that the gait characteristics can be played by voice through the target device, or the gait characteristics can be displayed.
[0019] 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.
[0020] In a second aspect, the present 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 described in any one of the first aspects according to the instructions of the at least one instruction set.
[0021] 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 limbs 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, and the control device is communicatively connected to the wearable device.
[0022] In some embodiments, the gait data processing system further includes: a sensor configured to be worn within the lower limbs of the 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.
[0023] 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 lift-off times for the target user's feet to leave the ground within each of the M gait cycles; and determine the target user's gait characteristics based at least on the target lift-off times corresponding to each of the M gait cycles. When processing the gait data, the system can dynamically update the value of a sliding factor for each gait cycle to obtain a target sliding factor value. The target sliding factor value is related to the user's motion state within that gait cycle. Furthermore, the system determines a lift-off time range within the current gait cycle and determines a target lift-off time within that gait cycle based on the target sliding factor value and the lift-off time range. Because the sliding factor value is updated in real time with the user's motion state within the current gait cycle, the target lift-off time determined based on the target sliding factor value is relatively accurate, and thus the gait characteristics determined based on the target lift-off time are also relatively accurate. Consequently, the gait analysis results have a high degree of accuracy.
[0024] Other functions of the gait data processing method and system provided by the present application will be partially listed in the following description. The creative aspects of the gait data processing method and system provided by the present application can be fully explained by practicing or using the methods, devices and combinations described in the following detailed examples. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0026] FIG1 is a schematic diagram showing a user's running process according to an embodiment of the present application;
[0027] FIG2 shows a schematic diagram of a gait data processing system provided according to an embodiment of the present application;
[0028] FIG3 shows a hardware structure diagram of a computing device provided according to an embodiment of the present application;
[0029] FIG4 shows a flowchart of a method for processing gait data according to an embodiment of the present application;
[0030] FIG5 shows a schematic diagram of a spatial coordinate system provided according to an embodiment of the present application;
[0031] FIG6 is a schematic diagram showing a first candidate lift-off time determined from angular velocity data about the y-axis according to an embodiment of the present application;
[0032] FIG7 is a schematic diagram showing a second candidate lift-off time determined from the first acceleration data along the x-axis according to an embodiment of the present application;
[0033] FIG8 is a schematic diagram showing angular velocity data and lift-off time ranges provided according to an embodiment of the present application;
[0034] FIG9 is a schematic diagram showing a target lift-off time determined based on a target sliding factor in angular velocity data according to an embodiment of the present application;
[0035] FIG10 is a schematic diagram showing a contact moment determined from second acceleration data along the z-axis according to an embodiment of the present application; and
[0036] FIG11 is a schematic diagram showing a gait data processing process provided according to an embodiment of the present application. DETAILED DESCRIPTION
[0037] The following description provides specific application scenarios and requirements of the present application, with the purpose of enabling those skilled in the art to make and use the content of this application. Various local modifications to the disclosed embodiments will be apparent to those skilled in the art, and the general principles defined herein may 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 is intended to be of the widest scope consistent with the claims.
[0038] The terms used herein are for the purpose of describing specific example embodiments only and are not intended to be limiting. For example, unless the context clearly indicates otherwise, as used herein, the singular forms "a," "an," and "the" may also include the plural forms. When used in this application, the terms "comprise," "include," and / or "contain" are meant to refer to the presence of associated integers, steps, operations, elements, and / or components, but do not exclude the presence of one or more other features, integers, steps, operations, elements, components, and / or groups or the addition of other features, integers, steps, operations, elements, components, and / or groups in the system / method.
[0039] With the following description in mind, these and other features of the present application, as well as the operation and function of the associated elements of the structure, and the economical assembly and manufacture of the components, can be significantly improved. Reference is made to the accompanying drawings, all of which form a part of this application. However, it should be clearly understood that the drawings are for illustration and description 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.
[0040] The flowcharts used in this application illustrate the operations of the system implementation according to some embodiments of the present application. It should be clearly understood that the operations of the flowcharts may not be implemented in sequence. Instead, the operations may be implemented in reverse order or simultaneously. In addition, one or more additional operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
[0041] For the convenience of description, the terms appearing in this application are first explained.
[0042] Gait refers to the posture and behavioral characteristics of a person walking or running. Specifically, gait refers to 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, cyclical movement that varies from person to person, influenced by factors such as exercise habits, injuries, and illnesses.
[0043] Gait analysis is a method for studying the patterns of gait, characterizing gait through a range of parameters. These parameters typically include the gait cycle, kinematic parameters, kinetic parameters, myoelectric activity parameters, and energy metabolism parameters. The results of gait analysis can be used to guide users in correcting their movement posture and can also be used for rehabilitation assessments, clinical diagnosis, and mechanism research.
[0044] Taking the running scene as an example, Figure 1 shows a schematic diagram of a user's running process according to an embodiment of the present application. The following is an explanation of gait events, ground contact time, air time, and gait cycle in conjunction with Figure 1.
[0045] Gait events are events used to describe the motion state of a person walking or running. To facilitate gait analysis, some gait events are typically predefined. Common gait events include, but are not limited to, touchdown events and lift-off events. For example, referring to Figure 1 , a touchdown event refers to the moment a user's foot begins to contact the ground. It should be understood that during running, the heel typically strikes the ground before the toes. Therefore, the "foot begins to contact the ground" mentioned above can specifically refer to the moment the heel begins to contact the ground. The moment a touchdown event occurs refers to the moment the user's foot begins to contact the ground (also referred to as the touchdown moment). Touchdown events can be specifically categorized as left foot touchdown events and right foot touchdown events. A lift-off event refers to the moment a user's foot leaves the ground. During running, the heel typically leaves the ground before the toes. Therefore, the "foot leaves the ground" mentioned above can specifically refer to the moment the user's toes leave the ground. The lift-off event occurs when the user's foot leaves the ground (also referred to as the lift-off moment). Lift-off events can be specifically categorized as left foot lift-off events and right foot lift-off events.
[0046] Ground contact time: During walking or running, the time interval between the moment a user's foot contacts the ground (corresponding to a touchdown event) and the moment that foot leaves the ground (corresponding to a lift-off event) is called the ground contact time. The ground contact time characterizes the total time it takes for a single foot to land, support itself, push off, and lift off. For example, referring to Figure 1, taking the user's right foot as an example, the ground contact time for the right foot is calculated by subtracting the moment of the most recent right foot touchdown from the moment of the right foot's lift-off. Ground contact time can be used to analyze running efficiency. For example, a shorter ground contact time indicates a higher efficiency in converting muscle elastic energy, and therefore, higher running efficiency. High-level runners typically have a single-foot ground contact time of less than 220 milliseconds. Furthermore, the ground contact times of each foot can be used to analyze gait balance. For example, a smaller difference between the ground contact times of the two feet indicates a higher gait balance, while a larger difference between the ground contact times of the two feet indicates a lower gait balance.
[0047] Air time: During walking or running, the time interval from the moment one foot of the user leaves the ground (corresponding to the lift-off event) to the moment the other foot begins to touch the ground (corresponding to the touchdown event) is called the air time. The air time characterizes the length of time that both feet stay in the air at the same time. For example, referring to Figure 1, the moment the left foot touches the ground minus the moment the right foot most recently lifted off the ground is the air time after the right foot lifts off the ground. In gait analysis, the air time can be used to analyze running efficiency. For example, at the same step frequency, the longer the air time, the larger the stride, and therefore the higher the running efficiency. The air time of high-level runners is generally greater than 125 milliseconds.
[0048] Gait cycle: During walking or running, the time interval between the moment a user's foot contacts the ground (corresponding to a touchdown event) and the moment that foot contacts the ground again (corresponding to a touchdown event) is called a gait cycle. For example, referring to Figure 1 , a complete gait cycle can be defined as the duration between the right foot's touchdown and the next right foot's touchdown. This duration corresponds to the sum of the following four durations: right foot contact duration, right foot lift-off duration, left foot contact duration, and left foot lift-off duration. It should be understood that Figure 1 illustrates only half a gait cycle.
[0049] The gait data processing method and system provided in this application can be applied to gait analysis scenarios. For example, while a user is walking or running, sensors worn within the user's lower limbs collect the user's gait data. A processor then processes this gait data using the gait data processing method provided in this application to determine the user's gait characteristics. These gait characteristics can be used to correct the user's movement posture.
[0050] It should be noted that the walking or running scenario described above is only one of the multiple usage scenarios provided by this application. The solution provided by this application can be applied not only to walking or running scenarios, but also to all other scenarios requiring gait analysis, such as rehabilitation assessments, movement mechanism research, etc. Those skilled in the art should understand that the application of the solution provided by this application to other usage scenarios is also within the scope of protection of this application.
[0051] The solution provided in this application dynamically updates the value of the sliding factor for each gait cycle to obtain a target sliding factor value. This target sliding factor value is correlated with the user's motion state within that gait cycle. Furthermore, a lift-off time range is determined for the current gait cycle, and a target lift-off moment is determined within that gait cycle based on the target sliding factor value and the lift-off time range. Because the sliding factor value is updated in real time with the user's motion state within the current gait cycle, the target lift-off moment determined based on the target sliding factor value is more accurate, and the gait characteristics determined based on the target lift-off moment are also more accurate, resulting in highly accurate gait analysis results.
[0052] FIG2 shows a schematic diagram of a gait data processing system provided according to an embodiment of the present application. Gait data processing system 001 (hereinafter referred to as system 001) can be used in all scenarios of gait analysis. As shown in FIG2, in some embodiments, system 001 may include a 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.
[0053] The wearable device 100 refers to a portable device that can be worn on the user's body, shoes, clothes, or other accessories. The wearable device 100 can be worn by the user on the lower limbs. As shown in Figure 1, the wearable device 100 can be worn on the user's left leg to collect gait data corresponding to the left leg when working. The wearable device 100 can also be worn on the user's right leg to collect gait data corresponding to the right leg when working. In addition, the wearable device 100 can also be worn on the left leg and the right leg respectively, so as to collect gait data corresponding to the left leg and the right leg at the same time. In some embodiments, the wearable device 100 can be worn on the user's ankle. Since the ankle is closer to the foot, the gait data of the ankle can more accurately reflect the user's gait characteristics.
[0054] The wearable device 100 may include a sensor to collect gait data. The sensor may include one or more of an acceleration sensor, an angular velocity sensor, and an inertial sensor.
[0055] An accelerometer is a sensor that can measure acceleration. During operation, it can sense acceleration and convert it into a usable output signal. An accelerometer is usually provided with a mass block. The principle of measuring acceleration is as follows: the sensor measures the inertial force exerted on the mass block during acceleration and obtains the acceleration value using Newton's second law. The accelerometer can be any one of a capacitive sensor, an inductive sensor, a strain sensor, a piezoresistive sensor, and a piezoelectric sensor, or any combination thereof. In some embodiments, the accelerometer can be a three-axis accelerometer that measures the acceleration data of an object along the X, Y, and Z axes in a spatial coordinate system. This can more comprehensively reflect the motion properties of the object.
[0056] An angular velocity sensor, also known as a gyroscope, is a sensor capable of measuring 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 (measuring angular velocity in a single direction) or multi-axis (for example, a three-axis sensor, measuring the angle of rotation of an object around the X, Y, and Z axes).
[0057] An inertial sensor, also known as an inertial measurement unit (IMU), can be understood as a sensor that integrates both an acceleration sensor and an angular velocity sensor. In other words, an inertial sensor can sense changes in both acceleration and angular velocity, and then output signals corresponding to both acceleration and angular velocity.
[0058] In summary, the present application solution deploys sensors in the wearable device 100 and collects gait data through the sensors. Compared with professional equipment such as force treadmills and force plates, on the one hand, it is inexpensive and has low cost. On the other hand, it has flexible application scenarios and can be used in both indoor and outdoor scenarios.
[0059] In some embodiments, the gait data processing method described in this application can be executed on the wearable device 100. In this case, the wearable device 100 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 wearable device 100 may include a hardware device with a data information processing function and a program required to drive the hardware device to work. The gait data processing method is described in other parts of this application.
[0060] The control device 200 may include a mobile device, a tablet computer, a laptop computer, a built-in device of a motor vehicle, or the like, or any combination thereof. In some embodiments, the mobile device may include a smart home device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some embodiments, the smart home device may include a smart TV, a desktop computer, etc., or any combination thereof. In some embodiments, the smart mobile device may include a smartphone, a personal digital assistant, a gaming device, a navigation device, etc., or any combination thereof. In some embodiments, the virtual reality device or the augmented reality device may include a virtual reality helmet, virtual reality glasses, an augmented reality helmet, augmented reality glasses, or the like, or any combination thereof. For example, the virtual reality device or the augmented reality device may include Google Glass, a head-mounted display, VR, etc. In some embodiments, the built-in device in the motor vehicle may include an onboard computer, an onboard TV, etc.
[0061] As shown in Figure 2, the control device 200 is communicatively connected to the wearable device 100. The control device 200 and the wearable device 100 can be connected in a wired manner, for example, via a Universal Serial Bus (USB) connection or other wired connection. The control device 200 can also be connected to the wearable device 100 in a close-range wireless manner, such as a Bluetooth connection, a Near Field Communication (NFC) connection, a Wi-Fi connection or other wireless connection. In some embodiments, the control device 200 and the wearable device 100 can also be connected via a network 400, for example, the control device 200 and the wearable device 100 are both connected to the network 400. In some embodiments, information exchange can be performed between the wearable device 100 and the control device 200. For example, after the wearable device 100 collects the gait data, it 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. The gait data processing method is described in other parts of this application.
[0062] In some embodiments, the control device 200 may be installed with one or more application programs (APPs). The APPs can provide an interactive interface for the user. The 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 platform software, health management tools, sports management tools, and the like. In some embodiments, the control device 200 may be installed with a target APP. The user may trigger a request to collect gait data through the target APP. The target APP may, in response to the collection request, send a control instruction to the wearable device 100 to instruct the wearable device 100 to start collecting gait data. In some embodiments, the user may also trigger a request to process gait data through the target APP. The target APP may, in response to the processing request, execute the gait data processing method described in this application to obtain the user's gait characteristics. In some embodiments, the target APP may also display the user's gait characteristics to the user via voice or visual means.
[0063] The server 300 can be a server that provides various services, such as a background server that provides computing services and / or storage services to the control device 200. As shown in Figure 2, the server 300 can be connected to one or more control devices 200 for communication, and exchange information with the control devices 200. For example, the control device 200 can send gait data to be processed to the server 300, and the server 300 can send the processing result of the gait data (such as the user's gait characteristics) to the control device 200. In some embodiments, the processing method of gait data described in this application can be executed on the server 300. In this case, the server 300 can store data or instructions for executing the processing method of gait data described in this application, and can execute or be used to execute the data or instructions. In some embodiments, the server 300 may include a hardware device with a data information processing function and the necessary program required to drive the hardware device to work. Wherein, the processing method of the gait data is introduced in other parts of this application.
[0064] The network 400 is a medium for providing a communication connection between the control device 200 and the server 300. The network 400 can facilitate the exchange of information or data. As shown in FIG2 , the control device 200 and the server 300 can be connected to the network 400 and transmit information or data to each other via the network 400. In some embodiments, the network 400 can be any type of wired or wireless network, or a combination thereof. For example, the network 400 can include a cable network, a wired network, a fiber optic network, a telecommunications network, an intranet, the Internet, a local area network (LAN), a wide area network (WAN), a wireless local area network (WLAN), a metropolitan area network (MAN), a wide area network (WAN), a public switched telephone network (PSTN), a Bluetooth network, a ZigBee network, a near-field communication (NFC) network, or the like. In some embodiments, the network 400 can include one or more network access points. For example, the network 400 can include a wired or wireless network access point, such as a base station or an Internet exchange point, through which one or more components of the control device 200 and the server 300 can connect to the network 400 to exchange data or information.
[0065] It should be understood that the number of wearable devices 100, control devices 200, servers 300, and networks 400 in FIG1 is merely illustrative. Any number of wearable devices 100, control devices 200, servers 300, and networks 400 may be provided as needed.
[0066] It should be noted that the gait data processing method described in this application can be completely executed on the wearable device 100, or completely executed on the control device 200, or completely executed on the server 300, or can be jointly executed by at least two of the wearable device 100, the control device 200 and the server 300.
[0067] FIG3 shows a hardware structure diagram of a computing device 600 provided according to an embodiment of the present application. The computing device 600 can execute the method for processing gait data described in the present application. For example, in some embodiments, at least some of the steps of the method for processing gait data can be executed on the wearable device 100, in which case the computing device 600 can be the wearable device 100. In some embodiments, at least some of the steps of the method for processing gait data can be executed on the control device 200, in which case the computing device 600 can be the control device 200. In some embodiments, at least some of the steps of the method for processing gait data can be executed on the server 300, in which case the computing device 600 can be the server 300.
[0068] As shown in FIG3 , 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 further include a communication port 650 and an internal communication bus 610. Furthermore, the computing device 600 may further include an I / O component 660. In some embodiments, when the computing device 600 is a wearable device 100, the computing device 600 may further include a sensor (not shown in FIG3 ).
[0069] The internal communication bus 610 can connect different system components. For example, the processor 620 , the storage medium 630 , and the communication port 650 can be connected via the internal communication bus 610 .
[0070] I / O components 660 support input / output between computing device 600 and other components.
[0071] The communication port 650 is used for data communication between the computing device 600 and the outside world. For example, the communication port 650 can be used for data communication between the computing device 600 and the network 400. The communication port 650 can be a wired communication port or a wireless communication port.
[0072] The 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. The 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 codes. The computer program codes may include programs, routines, objects, components, data structures, processes, modules, etc. that execute the gait data processing method provided in this application.
[0073] At least one processor 620 is configured 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, according to the instructions of the at least one instruction set, executes the gait data processing method provided in this application. The processor 620 may execute all or part of the steps included in the gait data processing method. The processor 620 may 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, a microprocessor, a reduced instruction set computer (RISC), an application-specific integrated circuit (ASIC), an application-specific instruction set processor (ASIP), a central processing unit (CPU), a graphics processing unit (GPU), a physical processing unit (PPU), a microcontroller unit, a digital signal processor (DSP), a field programmable gate array (FPGA), an advanced RISC machine (ARM), a 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 the present application may also include multiple processors. Therefore, the operations and / or method steps disclosed in the present application may be performed by a single processor as described in the present application, or may be performed jointly by multiple processors. For example, if the processor 620 of the computing device 600 in the present application performs step A and step B, it should be understood that step A and step B may also be performed jointly or separately by two different processors 620 (e.g., the first processor performs step A and the second processor performs step B, or the first and second processors perform steps A and B together).
[0074] FIG4 shows a flowchart of a method P100 for processing gait data according to an embodiment of the present application. As previously described, the computing device 600 can execute the method P100 for processing gait data described in the present application. Specifically, the storage medium 630 can store at least one set of instruction sets for processing gait data; the processor 620 can read and execute the at least one set of instruction sets, thereby executing the method P100 for processing gait data according to the instructions of the instruction sets. As shown in FIG4 , the method P100 may include:
[0075] S110: Obtaining gait data of M gait cycles of the target user's lower limbs, where M is an integer greater than 1.
[0076] 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), the sensors in the computing device 600 collect gait data of the target user and store (permanently or temporarily) the gait data 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 (permanently or temporarily) the gait data in the storage medium 630, so that the processor 620 can read the gait data from the storage medium 630.
[0077] The gait data refers to data used to describe the lower limb movement posture of the 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 around the y-axis. Wherein, the x-axis, y-axis and z-axis refer to the coordinate axes of the spatial coordinate system. Figure 5 shows a schematic diagram of a spatial coordinate system provided according to an embodiment of the present application. As shown in Figure 5, the x-axis points to the direction facing the target user, the z-axis points to a direction perpendicular to the ground, and the y-axis is perpendicular to the x-axis and perpendicular to the z-axis, that is, the y-axis points to the left or right of the target user.
[0078] It should be understood that when the target user is running, the calf will swing forward rapidly after the foot leaves the ground, causing 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 will increase rapidly, and the angular velocity around the y-axis will also increase 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 when the target user's foot leaves the ground (i.e., the moment when the lift-off event occurs). In addition, when the target user is running, 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 will undergo significant changes. For example, the acceleration along the z-axis will be reversed due to the influence of the ground force. Therefore, the second acceleration data along the z-axis can be used to determine the moment when the target user's foot begins to contact the ground (i.e., the moment when the touchdown event occurs).
[0079] It should be noted that the gait data can be the raw data collected by the sensor, or it can be data obtained by performing certain preprocessing on the raw data. For example, the gait data can be in the form of a data pair in the format of (sampling point identifier, gait sampling value). Since the sampling frequency of the sensor is known, there is a corresponding relationship between the above-mentioned sampling point identifier and the sampling time. For another example, the gait data can also be in the form of a data pair in the format of (sampling time, gait sampling value). It should be understood that the gait data can also be in other data formats, which is not limited in this application.
[0080] The gait of the target user during walking or running is periodic, and the processor 620 can obtain gait data of M gait cycles, where M is an integer greater than 1. It should be noted that the above-mentioned M gait cycles can be continuous gait cycles or discontinuous gait cycles. For example, in some embodiments, assuming that the sensor collects gait data of N gait cycles, the processor 620 can resample the gait data of the above-mentioned N gait cycles (for example, extracting the 1st, 3rd, 5th, ..., 2k+1th gait cycles) to obtain gait data of M gait cycles.
[0081] S120: Determine target lift-off times for the target user's feet to leave the ground within the M gait cycles based on the gait data.
[0082] The processor 620 can process the gait data within each gait cycle separately to determine the target lift-off moment when the target user's foot leaves the ground within the gait cycle. In some embodiments, the gait data processing method P100 provided in the present application may further include: segmenting the gait data into gait cycles to determine the start and end positions of each gait cycle. In other words, the processor 620 can determine the gait data within each gait cycle separately. It can be understood that the processor 620 segments the gait data to identify the start and end positions of each gait cycle, thereby facilitating the 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.
[0083] For ease of description, the gait cycle corresponding to the gait data currently being processed is referred to as a target gait cycle. It should be understood that the target gait cycle can be any one of the M gait cycles. The process of determining the target lift-off moment corresponding to the target gait cycle includes:
[0084] S120-1: Dynamically updating a sliding factor value according to the target gait cycle to obtain a target sliding factor value, where the target sliding factor value is related to the user's motion state within the target gait cycle; and
[0085] S120-2: Determine a lift-off time range in the target gait cycle, and determine the target lift-off moment based on the target sliding factor value and the lift-off time range.
[0086] In the solution provided herein, the processor 620 can preliminarily determine a lift-off time range within a target gait cycle. The lift-off time range refers to the approximate time range within which the target user's foot leaves the ground (i.e., the time at which the lift-off event occurs, which can be simply referred to as the lift-off time) within the target gait cycle. For example, assuming that the lift-off time range starts at time T1 and ends at time T2, it means that the target user's foot leaves the ground within the time range [T1, T2].
[0087] The solution provided in this application proposes the concept of a sliding factor. The sliding factor is used to determine the lift-off time within the lift-off time range, that is, to determine the lift-off time T3 between the start time T1 and the end time T2. The value of the sliding factor is a proportional coefficient used to characterize the relationship between the gait sampling values corresponding to the start time T1, the end time T2, and the lift-off time T3. In some embodiments, the value range of the sliding factor can be [0, 1]. Assuming that the value of the sliding factor is recorded as A, the value A of the sliding factor can be expressed by the following formula (1):
[0088] Among them, f(T1) represents the gait sampling value corresponding to the starting time T1, f(T2) represents the gait sampling value corresponding to the ending time T2, and f(T3) represents the gait sampling value corresponding to the ground departure time T3.
[0089] The sliding factor may correspond to different values in different gait cycles. The value corresponding to the sliding factor in each gait cycle is related to the user's motion state in the gait cycle. The user's motion state may refer to the user's motion state recorded by the gait data in the gait cycle, or may refer to the user's motion state obtained by other means. In some embodiments, when processing the gait data of each gait cycle, the processor 620 may first dynamically update the value of the sliding factor based on the user's motion state in the gait cycle to obtain a target sliding factor value, and then determine the lift-off time within the lift-off time range based on the target sliding factor value. It can be understood that since the value of the sliding factor is dynamically updated to a value related to the user's motion state in the current gait cycle in each gait cycle, the lift-off time determined within the lift-off time range based on the updated sliding factor value (i.e., the target sliding factor value) is more accurate.
[0090] In some embodiments, the value of the sliding factor may be related to the movement speed of the target user. In this case, the processor 620 may dynamically update the value of the sliding factor based on the movement speed of the target user within the target gait cycle to obtain the target sliding factor value, wherein the target sliding 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 sliding factor value, and the smaller the movement speed of the target user within the target gait cycle, the larger the target sliding factor value. In some embodiments, the relationship between the target sliding factor value and the movement speed may be represented by the function A=fun1(V), wherein the function fun1 may be a linear function or a nonlinear function. In some embodiments, the relationship between the target sliding factor value A and the movement speed V of the target user may be as shown in Table 1. It should be understood that Table 1 only illustrates the target sliding factor values corresponding to some movement speeds.
[0091] Table 1
[0092] In some embodiments, the processor 620 may determine the target user's movement speed within the target gait cycle based on the gait data within the target gait cycle, or may predict the target user's movement speed within the target gait cycle based on the gait data within a preset number of historical gait cycles prior to the target gait cycle. Furthermore, the processor 620 may update the value of the sliding factor based on the target user's movement speed within the target gait cycle, thereby obtaining a target sliding factor value.
[0093] In some embodiments, the processor 620 may also update the value of the sliding factor in the following manner: dynamically updating the value of the sliding factor based on the time difference (i.e., time difference, also referred to as time interval) between the first candidate lift-off moment and the second candidate lift-off moment within the target gait cycle to obtain a target sliding factor value, wherein the target sliding factor value is negatively correlated with the time difference. In other words, the smaller the time difference between the first candidate lift-off moment and the second candidate lift-off moment, the larger the target sliding factor value; and the larger the time difference between the first candidate lift-off moment and the second candidate lift-off moment, the smaller the target sliding factor value. For example, in some embodiments, the relationship between the target sliding 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.
[0094] The first candidate lift-off moment and the second candidate lift-off moment may be candidate lift-off moments obtained by preliminary searching the gait data within the target gait cycle using a preset search method. The preset search method may refer to a method for searching lift-off events that is not based on a sliding factor. In some embodiments, the first candidate lift-off moment may be obtained by searching based on angular velocity data about the y-axis using a preset search method. For example, the first candidate lift-off moment may be obtained by determining a first search interval in the angular velocity data about the y-axis corresponding to the target gait cycle, and determining the time when the peak of the angular velocity data within the first search interval occurs as the first candidate lift-off moment, wherein the first search interval is located after the touchdown moment within the target gait cycle.
[0095] For ease of understanding, the following example is illustrated in conjunction with Figure 6. Figure 6 shows a schematic diagram of the first candidate lift-off moment determined from the angular velocity data about the y-axis according to an embodiment of the present application. As shown in Figure 6, since the target user's foot leaves the ground (i.e., the lift-off event) occurs within a period of time after the foot contacts the ground (i.e., the touchdown event), the preset time duration after the target user's foot touches the ground (i.e., the time when the touchdown event occurs) can be used as the first search interval. Figure 6 illustrates two gait cycles. Taking the first gait cycle as an example, assuming that time t1 is the target user's foot touches the ground (marked by a black rectangle in Figure 6) and the preset time duration is ΔT1, [t1, t1+ΔT1] can be used as the first search interval. Since the target user's lower leg swings forward rapidly after leaving the ground, the angular velocity reaches a maximum value in a very short time. Therefore, the first search interval [t1, t1+ΔT1] can be searched for the maximum angular velocity value (i.e., the peak, marked by a black dot in Figure 6), and the time when the maximum value occurs is determined as the first candidate lift-off moment. It should be understood that for the second gait cycle in FIG6 , a similar method as described above may also be used to determine the first candidate lift-off moment, which will not be elaborated in this specification.
[0096] In some embodiments, the second candidate lift-off 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 lift-off time may be obtained by determining a second search interval in the first acceleration data along the x-axis corresponding to a target gait cycle, and determining the second candidate lift-off time as the time at which a trough occurs before a peak in the first acceleration data within the second search interval. The second search interval is located after the touchdown time within the target gait cycle.
[0097] For ease of understanding, an example is given below with reference to FIG7 . FIG7 shows a schematic diagram of the second candidate lift-off moment determined in the first acceleration data along the x-axis provided in accordance with an embodiment of the present application. As shown in FIG7 , since the target user's foot leaves the ground (i.e., the lift-off event) occurs within a period of time after the foot contacts the ground (i.e., the touchdown event), the preset time length after the touchdown moment of the target user's foot (i.e., the moment of occurrence of the touchdown event) can be used as the second search interval. FIG7 illustrates two gait cycles. Taking the first gait cycle as an example, assuming that the moment t3 is the touchdown moment of the target user's foot (marked with a black rectangular block in FIG7 ), and the preset time length is ΔT2, then [t3, t3+ΔT2] can be used as the second search interval. Since the target user's foot rapidly steps forward after leaving the ground, meaning the acceleration along the x-axis rapidly increases to its maximum value, the second search interval [t3, t3+ΔT] can be searched for the maximum acceleration value (i.e., the highest peak, indicated by the dashed box in Figure 7 ). The moment of occurrence of the first minimum value (i.e., the trough, indicated by the black dot in Figure 7 ) preceding the maximum value can be determined as the second candidate lift-off moment. It should be understood that a similar method can also be used to determine the second candidate lift-off moment for the second gait cycle in Figure 7 , and this description will not be repeated here.
[0098] The inventors have found through studying the actual running processes of a large number of users that the gait sampling value corresponding to the moment when the user's foot leaves the ground (i.e., the lift-off moment) does not have obvious characteristics, that is, it is neither a trough nor a peak, but is located between the peak and the trough. It can be seen that the first candidate lift-off moment and the second candidate lift-off moment determined by the above-mentioned preset search method both have certain errors. The inventors further found that although the above-mentioned first candidate lift-off moment and the second candidate lift-off moment both have certain errors, the time difference between the first candidate lift-off moment and the second candidate lift-off moment (i.e., the time difference, which can also be called the time interval) is related to the movement speed. Therefore, the time difference can be used to simulate the movement speed. In this way, in scenarios where the user's running speed varies greatly or the movement speed is difficult to obtain, the processor 620 can dynamically update the sliding factor based on the time difference.
[0099] In some embodiments, the ground lift time range can be determined based on pre-statistical results. For example, gait data from a large number of sample users can be analyzed in advance to determine the locations of the sample users' foot lift-off moments in their gait cycles. Based on these statistical results, a general time range within the gait cycle can be determined. This general time range encompasses the foot lift-off moments of all sample users. Thus, processor 620 can determine the ground lift time range within the target gait cycle based on this general time range.
[0100] In some embodiments, the lift-off time range can also be determined based on gait data within a target gait cycle. For example, assuming that the gait sampling values of the target user gradually increase within a preset time period from before the foot leaves the ground to after the foot leaves the ground, the processor 620 can find the trough (minimum) and peak (maximum) of the gait sampling values within the preset time period, determine the time corresponding to the trough as the start time of the lift-off time range, and determine the time corresponding to the peak as the end time of the lift-off time range. For another example, assuming that the gait sampling values of the target user gradually decrease within a preset time period from before the foot leaves the ground to after the foot leaves the ground, the processor 620 can find the peak (maximum) and trough (minimum) of the gait sampling values within the preset time period, determine the time corresponding to the peak as the start time of the lift-off time range, and determine the time corresponding to the trough as the end time of the lift-off time range.
[0101] In some embodiments, when the gait data includes angular velocity data about the y-axis, the lift-off time range can be obtained based on the angular velocity data within the target gait cycle. Considering that during the target user's running, the calf swing amplitude is minimal when the foot is fully in contact with the ground, at which point the angular velocity reaches a minimum. After the foot completely leaves the ground, the calf swings forward rapidly, at which point the angular velocity reaches a maximum. Therefore, the processor 620 may use the time corresponding to the target trough of the angular velocity data within the target gait cycle as the starting time of the lift-off time range, and the time corresponding to the target peak of the angular velocity data within the target gait cycle as the ending time of the lift-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, FIG8 shows a schematic diagram of angular velocity data and lift-off time ranges provided according to an embodiment of the present application. As shown in FIG8 , the time corresponding to the trough of the angular velocity data is T1, the time corresponding to the peak of the angular velocity data is T2, and the time range between T1 and T2 is the lift-off time range.
[0102] Based on the above angular velocity data and the lift-off time range [T1, T2], the processor 620 may use the following solution 1 or solution 2 to determine the target lift-off time.
[0103] Among them, Option 1 may include:
[0104] (1) Determine the difference between the angular velocity corresponding to the end time and the angular velocity corresponding to the start time.
[0105] 8 , assuming that the angular velocity corresponding to the end time T2 is ω2 and the angular velocity corresponding to the start time T1 is ω1, the difference M between the two is: M=ω2−ω1.
[0106] (2) Determine a target angular velocity based on the target slip factor value and the difference value.
[0107] Assuming the target sliding factor value is recorded as A, the target angular velocity ω3 can be calculated using the following formula: ω3=A*M+ω1=A*(ω2-ω1)+ω1
[0108] (3) Searching for the target angular velocity within the lift-off time range, and taking the time at which the target angular velocity occurs as the target lift-off time.
[0109] Continuing to refer to FIG8 , 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 used as the target lift-off time.
[0110] In the above-mentioned solution 1, the processor 620 can determine the target lift-off time T3 within the lift-off time range [T1, T2] based on the target sliding factor value A. It will be understood that the specific position of the target lift-off time T3 within the lift-off time range [T1, T2] is determined by the target sliding factor value A. For example, the smaller the target sliding factor value A, the closer the target lift-off time T3 is to T1 within the lift-off time range [T1, T2]. The larger the target sliding factor value A, the closer the target lift-off time T3 is to T2 within the lift-off time range [T1, T2]. The target sliding factor value A is related to the user's motion state within the current gait cycle. Therefore, the target lift-off time determined based on the target sliding factor value A is more accurate.
[0111] Figure 9 shows a schematic diagram of a target liftoff time determined from angular velocity data based on a target slip factor, according to an embodiment of the present application. As shown in Figure 9, the target liftoff time determined using Scheme 1 corresponds to the location marked by the black dot. This indicates that the target liftoff time determined using Scheme 1 is located between the trough and the peak. Compared to directly using the trough or peak as the target liftoff time, the target liftoff time determined using Scheme 1 is more consistent with actual conditions, thereby improving the accuracy of the target liftoff time.
[0112] Option 2 could include:
[0113] (1) Determine the difference between the angular velocity corresponding to the end time and the angular velocity corresponding to the start time.
[0114] (2) Determine a target angular velocity based on the target slip factor value and the difference value.
[0115] (3) Searching for the target angular velocity within the lift-off time range, and taking the time at which the target angular velocity occurs as the third candidate lift-off time.
[0116] It should be understood that the implementation of steps (1) to (3) of Solution 2 is similar to that of Solution 1 and will not be described in detail here. Solution 2 differs from Solution 1 in that, in Solution 2, processor 620 uses the liftoff time T3 determined based on the target slip factor value A within the liftoff time range [T1, T2] as the third candidate liftoff time, rather than the target liftoff time.
[0117] (4) Determine the target lift-off time based on the first candidate lift-off time, the second candidate lift-off time, and the third candidate lift-off time within the target gait cycle.
[0118] It should be noted that the method for determining the first candidate lift-off time and the second candidate lift-off time has been described in the relevant parts above and will not be repeated here.
[0119] In some embodiments, the processor 620 may determine the target liftoff time as the average or weighted average of the first candidate liftoff time, the second candidate liftoff time, and the third candidate liftoff time. It will be appreciated that the above embodiment, by comprehensively considering the results of multiple liftoff event search methods, can improve the accuracy of the target liftoff time.
[0120] In some embodiments, processor 620 may execute a first processing mode or a second processing mode based on the temporal relationship between the first candidate lift-off time and the second candidate lift-off time. The first processing mode includes using the average of the second candidate lift-off time and the third candidate lift-off time as the target lift-off time, or using the average of the first candidate lift-off time, the second candidate lift-off time, and the third candidate lift-off time as the target lift-off time. The second processing mode includes using the average of the third candidate lift-off time as the target lift-off time.
[0121] In some embodiments, if the first candidate lift-off time is earlier than or equal to the second candidate lift-off time, the processor 620 executes the first processing mode. In some embodiments, if the first candidate lift-off time is later than the second candidate lift-off time, the processor 620 executes the second processing mode.
[0122] As previously mentioned, the time difference between the first candidate lift-off time and the second candidate lift-off time is related to the user's movement speed. Actual test results show that "the first candidate lift-off time is earlier than or equal to the second candidate lift-off time" corresponds to situations where the user's movement speed is relatively low, for example, when the user's running speed is less than or equal to 6 km / h. In this case, the first candidate lift-off time and / or the second candidate lift-off time can achieve a certain degree of accuracy. Therefore, the average of the first candidate lift-off time and the third candidate lift-off time, or the average of the first candidate lift-off time, the second candidate lift-off time, and the third candidate lift-off time, can be used as the target lift-off time. This process comprehensively considers the results of multiple lift-off event search methods, thereby improving the measurement accuracy of the target lift-off time. "The first candidate lift-off time is later than the second candidate lift-off time" corresponds to situations where the user's movement speed is relatively high, for example, when the user's running speed is greater than 6 km / h. In this case, the accuracy of the first candidate lift-off time and the second candidate lift-off time is not high. Therefore, the third candidate lift-off time can be used as the target lift-off time, thereby improving the measurement accuracy of the target lift-off time.
[0123] S130: Determine the gait characteristics of the target user based at least on the target lift-off times corresponding to the M gait cycles.
[0124] It is understood that after obtaining the M target lift-off moments corresponding to the M gait cycles, the processor 620 can determine the gait characteristics of the target user by analyzing the M target lift-off moments. In some embodiments, the gait characteristics of the target user may include characteristics of at least one dimension of gait balance, running efficiency, and vertical amplitude. Among them, gait balance is an important indicator for measuring the balance of left and right muscle strength and body coordination. Running efficiency is an indicator for measuring running economy, which refers to the ability to maximize energy utilization. For example, when consuming the same amount of energy, a higher running efficiency will allow you to run faster and farther, or in other words, when running the same speed and distance, a higher running efficiency will consume less energy. Vertical amplitude refers to the height to which the center of gravity of the body moves vertically during running, which can also reflect running efficiency to a certain extent. For example, the larger the vertical amplitude, the lower the running efficiency, and the smaller the vertical amplitude, the higher the running efficiency.
[0125] In some embodiments, the gait data processing method P100 provided herein may further include: S125: Based on the gait data, determining the ground contact moments of the target user's feet within the M gait cycles. In this way, the processor 620 may determine the gait characteristics of the target user based on the target lift-off moments and ground contact moments corresponding to the M gait cycles. It should be noted that S125 is not shown in FIG. 4 and may be executed before, after, or simultaneously with S120.
[0126] 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 within each gait cycle to determine the contact moment of the target user's foot within that gait cycle. The gait cycle corresponding to the gait data currently being processed is referred to as the target gait cycle. The process of determining the contact moment corresponding to the target gait cycle includes determining the contact moment as the first trough moment preceding the peak moment of the second acceleration data corresponding to the target gait cycle.
[0127] For ease of understanding, an example is given below with reference to FIG10. FIG10 shows a schematic diagram of the touchdown moment determined in the second acceleration data along the z-axis provided in accordance with an embodiment of the present application. As shown in FIG10, the moment of occurrence of the peak can be searched first in the second acceleration data, and then the moment of occurrence of the first trough before the moment of occurrence of the peak can be searched, and the moment of occurrence of the trough can be used as the touchdown moment. In FIG10, the acceleration sampling value corresponding to the touchdown moment is marked with a black dot. It should be understood that during the actual running process of the user, the foot quickly pushes off the ground after contacting the ground, which causes the acceleration along the z-axis to reverse and quickly reach a maximum value. It can be seen that the touchdown moment has a relatively obvious feature in the second acceleration data (manifested as the first trough before the peak). Therefore, the above method determines the moment of occurrence of the first trough before the moment of occurrence of the peak of the second acceleration data as the touchdown moment, so that the touchdown moment has a higher accuracy.
[0128] In some embodiments, the processor 620 may determine the contact time duration corresponding to the M gait cycles based on the target lift-off time and the contact time corresponding to the M gait cycles. Specifically, for each gait cycle, the processor 620 may subtract the contact time from the target lift-off time to obtain the contact time duration corresponding to the gait cycle. Furthermore, the processor 620 may determine the gait characteristics of the target user based on the contact time duration corresponding to the M gait cycles. In some embodiments, the processor 620 may determine the running efficiency of the target user based on the contact time duration corresponding to the M gait cycles.
[0129] In some embodiments, the processor 620 may further determine the airtime corresponding to the M gait cycles based on the target lift-off times and the target contact times corresponding to the M gait cycles. Furthermore, the processor 620 may determine the gait characteristics of the target user based on the airtime corresponding to the M gait cycles. In some embodiments, the processor 620 may determine the running efficiency of the target user based on the airtime corresponding to the M gait cycles.
[0130] In some embodiments, the processor 620 can respectively obtain the contact time of the left foot corresponding to M gait cycles and the contact time of the right foot corresponding to M gait cycles, and then determine the gait balance based on the contact time of the left foot corresponding to M gait cycles and the contact time of the right foot corresponding to M gait cycles.
[0131] In some embodiments, when the computing device 600 includes a display screen, the processor 620, after determining the target user's gait characteristics, may also display the gait characteristics on the display screen. For example, the gait characteristics may be displayed in text form, or in the form of visual elements such as graphics and tables. By displaying the gait characteristics, the system 001 allows the target user to understand their own gait characteristics, thereby facilitating the target user to correct their movement posture in a timely manner.
[0132] 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 play the gait characteristics by voice through the audio output device. It can be understood that the system 001 plays the gait characteristics by voice, so that the target user can learn about his or her own gait characteristics, thereby facilitating the target user to correct his or her movement posture in a timely manner. In addition, since this method does not require the user to stare at the screen to view, it is convenient for the user to learn about his or her own gait characteristics in real time while exercising, and to correct his or her movement posture in real time, thereby improving operational efficiency.
[0133] In addition, the computing device 600 can also be connected to the target device for communication. For example, when the computing device 600 is a wearable device 100, the target device can be the control device 200. For another example, when 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, smart screens, etc. After determining the gait characteristics of the target user, the processor 620 can send the gait characteristics to the target device so that the gait characteristics can be played by voice through the target device, or the gait characteristics can be displayed. In this way, the gait feature output method suitable for the current scenario can be adopted in combination with the actual application scenario, so that the user can know his or her own gait characteristics, and then the target user can correct the movement posture in time.
[0134] FIG11 is a schematic diagram showing a gait data processing process according to an embodiment of the present application. As shown in FIG11 , the gait data processing process includes:
[0135] (1) The processor 620 obtains gait data of M gait cycles of the target user's lower limbs, wherein the gait data includes: first acceleration data along the x-axis, second acceleration data along the z-axis, and angular velocity data around the y-axis.
[0136] (2) The processor 620 can process the gait data in each gait cycle respectively to determine the target user's foot contact time TD and the target lift-off time TO of the foot leaving the ground in each gait cycle.
[0137] For the foot contact moment TD, the processor 602 may search for it in the current gait cycle using the contact event search method shown in FIG. 10 .
[0138] The processor 602 may obtain the target lift-off time TO in the following manner:
[0139] (a) Based on the angular velocity data about the y-axis, the first candidate lift-off time TO1 is determined in the current gait cycle using the lift-off event search method shown in FIG6 .
[0140] (b) Based on the first acceleration data along the x-axis, a second candidate lift-off time TO2 is determined in the target gait cycle using the lift-off event search method shown in FIG7 .
[0141] (c) Determine the time difference (TO1-TO2) between the first candidate lift-off time and the second candidate lift-off time.
[0142] (d) Dynamically update the sliding factor value based on the time difference (TO1-TO2) to obtain the target sliding factor value A.
[0143] (e) Determine a lift-off time range in the current gait cycle based on the angular velocity data about the y-axis, and determine a third candidate lift-off time TO3 within the lift-off time range based on the target sliding factor value A.
[0144] (f) Determining a target lift-off time TO in the current gait cycle based on the first candidate lift-off time TO1, the second candidate lift-off time TO2, and the third candidate lift-off time TO3. If the first candidate lift-off time TO1 is earlier than or equal to the second candidate lift-off time TO2, the processor 620 may determine the average of the second candidate lift-off time TO2 and the third candidate lift-off time TO3 as the target lift-off time TO, i.e., TO = (TO2 + TO3) / 2. If the first candidate lift-off time TO1 is later than the second candidate lift-off time TO2, the processor 620 may determine the third candidate lift-off time TO3 as the target lift-off time, i.e., TO = TO3.
[0145] (3) The processor 620 can determine the contact time TL=TO-TD corresponding to each of the M gait cycles based on the target lift-off time TO and contact time TD corresponding to each of the M gait cycles.
[0146] (4) The processor 620 determines the gait characteristics of the target user based on the ground contact duration TL corresponding to each of the M gait cycles.
[0147] It should be understood that the specific implementation of each step in the gait data processing process shown in FIG11 has been introduced in the relevant part above and will not be repeated here.
[0148] To verify the effectiveness of the present invention, gait data of the target user at different running speeds (6 km / h, 8 km / h, and 10 km / h) was collected in an experiment. The gait data was processed according to the process shown in Figure 11 to obtain the corresponding contact time of the target user at different running speeds. Furthermore, the contact time obtained based on the present invention was compared with the contact time measured by a treadmill, and the test results shown in Table 2 were obtained. As can be seen from Table 2, the average error between the contact time obtained by the present invention and the contact time measured by the treadmill is 10 ms, indicating that the contact time obtained by the present invention has a high degree of accuracy.
[0149] Table 2
[0150] It should be noted that the gait analysis process described in this application can be performed 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 performed in non-real time, that is, the sensor collects gait data for multiple gait cycles within a preset time period, and after the preset time period ends, the processor 620 processes the gait data for the multiple gait cycles.
[0151] 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 a target user's lower limbs; based on the gait data, determine the target lift-off times for the target user's feet to leave the ground within each of the M gait cycles; and determine the target user's gait characteristics based at least on the target lift-off times corresponding to each of the M gait cycles. Specifically, when processing the gait data, system 001 can dynamically update the value of the sliding factor for each gait cycle to obtain a target sliding factor value. The target sliding factor value is related to the user's motion state within that gait cycle. Furthermore, system 001 determines a lift-off time range within the current gait cycle and, based on the target sliding factor value and the lift-off time range, determines a target lift-off time within that gait cycle. Because the sliding factor value is updated in real time with the user's motion state within the current gait cycle, the target lift-off time determined based on the target sliding factor value is relatively accurate, and thus the gait characteristics determined based on the target lift-off time are also relatively accurate. Consequently, the gait analysis results have a high degree of accuracy.
[0152] Another aspect of the present application provides a non-transitory storage medium storing at least one set of executable instructions for processing gait data. When executed by a processor, the executable instructions direct the processor to implement the steps of the gait data processing method P100 described herein. In some possible implementations, various aspects of the present application may also be implemented as a program product comprising program code. When the program product is executed on a computing device 600, the program code is configured to cause the computing device 600 to perform the steps of the gait data processing method P100 described herein. The program product for implementing the above method may utilize a portable compact disc read-only memory (CD-ROM) comprising the program code and be executable on the computing device 600. However, the program product of the present application is not limited thereto. In the present application, a readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system. The program product may utilize 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, device, or any combination thereof. More specific examples of computer-readable storage media include: an electrical connection having one or more conductors, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. The computer-readable storage medium may include a data signal propagated in baseband or as part of a carrier wave, which carries readable program code. Such a propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing. The computer-readable storage medium may also be any readable medium other than a readable storage medium that can transmit, propagate, or transfer a program for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on the computer-readable storage medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing. Program code for performing the operations of the present application may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the computing device 600, partially on the computing device 600, as a stand-alone software package, partially on the computing device 600 and partially on a remote computing device, or entirely on the remote computing device.
[0153] The foregoing description describes specific embodiments of the present 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 an order different from that described in the embodiments and still achieve the desired results. Furthermore, the processes depicted in the accompanying drawings do not necessarily require a specific or sequential order to achieve the desired results. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0154] In summary, after reading this detailed disclosure, those skilled in the art will appreciate that the foregoing detailed disclosure may be presented by way of example only and may not be limiting. Although not expressly stated herein, those skilled in the art will understand that the present application requires various reasonable changes, improvements, and modifications to the embodiments. Such changes, improvements, and modifications are intended to be proposed by the present application and are within the spirit and scope of the exemplary embodiments of the present application.
[0155] In addition, certain terms in this application have been used to describe embodiments of the application. For example, "one embodiment," "an embodiment," and / or "some embodiments" mean that a particular feature, structure, or characteristic described in conjunction with that embodiment may be included in at least one embodiment of the application. Therefore, it is emphasized and should be understood that two or more references to "an embodiment," "one embodiment," or "an alternative embodiment" in various sections of this application do not necessarily refer to the same embodiment. Furthermore, particular features, structures, or characteristics may be appropriately combined in one or more embodiments of the application.
[0156] It should be understood that in the foregoing description of the embodiments of this application, in order to facilitate understanding of a feature and to simplify this application, this application combines various features into a single embodiment, figure, or description thereof. However, this does not mean that the combination of these features is required. When reading this application, it is entirely possible for a person skilled in the art to mark out some of the devices and understand them as separate embodiments. In other words, the embodiments of this application can also be understood as the integration of multiple secondary embodiments. This also applies when the content of each secondary embodiment is less than all the features of a single aforementioned disclosed embodiment.
[0157] Each patent, patent application, patent application publication, and other materials, such as articles, books, specifications, publications, documents, articles, and the like, cited herein, except any historical prosecution documents to which it relates, any equivalent that may be inconsistent or conflicting with this document, or any equivalent historical prosecution documents that may have a limiting effect on the broadest scope of the claims, is hereby incorporated by reference for all purposes now or hereafter connected with this document. In addition, in the event of any inconsistency or conflict between the descriptions, definitions, and / or use of terms associated with any incorporated material and the terminology, descriptions, definitions, and / or use associated with this document, the terminology in this document shall control.
[0158] Finally, it should be understood that the embodiments of the application disclosed herein are illustrations of the principles of the embodiments of the present application. Other modified embodiments are also within the scope of the present application. Therefore, the embodiments disclosed in the present application are merely examples and not limitations. Those skilled in the art can adopt alternative configurations based on the embodiments in the present application to implement the applications in the present application. Therefore, the embodiments of the present application are not limited to the embodiments precisely described in the application.
Claims
1. A method for processing gait data, characterized in that: include: Obtaining gait data of M gait cycles of the target user's lower limbs, where M is an integer greater than 1; Based on the gait data, target lift-off times for the feet of the target user to leave the ground in the M gait cycles are determined respectively, wherein the gait cycle corresponding to the gait data currently being processed is the target gait cycle, and the process of determining the target lift-off time corresponding to the target gait cycle includes: Dynamically updating the value of the sliding factor according to the target gait cycle to obtain a target sliding factor value, wherein the target sliding factor value is related to the user's motion state within the target gait cycle, and Determining a ground lift time range in the target gait cycle, and determining the target ground lift time based on the target sliding factor value and the ground lift time range; and The gait characteristics of the target user are determined based at least on the target ground lift-off times corresponding to the M gait cycles.
2. The method according to claim 1, characterized in that The dynamically updating the value of the sliding factor according to the target gait cycle to obtain the target sliding factor value includes: The sliding factor value is dynamically updated based on the movement speed of the target user in the target gait cycle to obtain the target sliding factor value, wherein The target sliding factor value is negatively correlated with the movement speed.
3. The method according to claim 1, characterized in that The dynamically updating the value of the sliding factor according to the target gait cycle to obtain the target sliding factor value includes: Based on the time difference between the first candidate lift-off time and the second candidate lift-off time in the target gait cycle, the value of the sliding factor is dynamically updated to obtain the target sliding 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 a y-axis, the y-axis being perpendicular to the direction in which the target user is facing; as well as Determining the ground-lift time range in the target gait cycle includes: The time corresponding to the target trough of the angular velocity data in the target gait cycle is determined as the starting time of the ground-lift time range, and the time corresponding to the target peak is determined as the ending time of the ground-lift time range, wherein The target trough and the target peak are both located after the ground contact moment of the target user's foot within the target gait cycle.
5. The method according to claim 4, characterized in that The determining the target lift-off time based on the target sliding factor value and the lift-off time range includes: Determine the difference between the angular velocity corresponding to the end time and the angular velocity corresponding to the start time; determining a target angular velocity based on the target slip factor value and the difference; and The target angular velocity is searched within the lift-off time range, and the occurrence time of the target angular velocity is used as the target lift-off time.
6. The method according to claim 4, characterized in that The determining the target lift-off time based on the target sliding factor value and the lift-off time range includes: Determine the difference between the angular velocity corresponding to the end time and the angular velocity corresponding to the start time; determining a target angular velocity based on the target sliding factor value and the difference; searching for the target angular velocity within the lift-off time range, and taking the time at which the target angular velocity occurs as a third candidate lift-off time; and The target lift-off time is determined based on the first candidate lift-off time, the second candidate lift-off time and the third candidate lift-off time in the target gait cycle.
7. The method according to claim 6, characterized in that The determining the target lift-off time based on the first candidate lift-off time, the second candidate lift-off time and the third candidate lift-off time in the target gait cycle includes: Based on the time relationship between the first candidate lift-off time and the second candidate lift-off time, a first processing mode or a second processing mode is executed, wherein: The first processing mode includes: determining an average of the second candidate lift-off time and the third candidate lift-off time as the target lift-off time, and The second processing mode includes: determining the third candidate lift-off time as the target lift-off time.
8. The method according to claim 7, characterized in that The executing the first processing mode or the second processing mode based on the time relationship between the first candidate ground lift-off time and the second candidate ground lift-off time in the target gait cycle includes: If the first candidate lift-off time is earlier than or equal to the second candidate lift-off time, executing the first processing mode; or If the first candidate lift-off time is later than the second candidate lift-off time, 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 an x-axis and angular velocity data around a y-axis, wherein the x-axis points to a direction in which the target user is facing, and the y-axis is perpendicular to the x-axis; The first candidate lift-off time is determined in the following manner: determining a first search interval in the angular velocity data corresponding to the target gait cycle, and determining the time when a peak of the angular velocity data in the first search interval occurs as the first candidate lift-off time, wherein the first search interval is located after the ground contact time in the target gait cycle; and The second candidate lift-off time is determined in the following manner: a second search interval is determined in the first acceleration data corresponding to the target gait cycle, and a trough occurrence time before a peak occurrence time of the first acceleration data in the second search interval is determined as the second candidate lift-off time, wherein the second search interval is located after the ground contact time in the target gait cycle.
10. The method according to claim 1, characterized in that The method further includes: determining the ground contact moments of the feet of the target user in the M gait cycles respectively based on the gait data; and The determining the gait feature of the target user includes: determining the gait feature of the target user based on the target ground lift-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 a z-axis, wherein the z-axis points in a direction perpendicular to the ground; as well as The process of determining the ground contact moment corresponding to the target gait cycle includes: determining the ground contact moment as a first trough occurrence moment before a peak occurrence moment of the second acceleration data corresponding to the target gait cycle.
12. The method according to claim 10, characterized in that The determining the gait characteristics of the target user based on the target ground lift-off times and the ground contact times corresponding to the M gait cycles includes: Determining ground contact durations corresponding to the M gait cycles based on the target ground lift-off times and the ground contact times corresponding to the M gait cycles; and The gait characteristics of the target user are determined based on the ground contact durations 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, at least one of the following is further included: Playing the gait characteristics in a language; displaying the gait characteristics; and The gait feature is sent to a target device so that the gait feature is played by voice through the target device, or the gait feature is displayed.
14. The method according to claim 1, characterized in that The method further comprises: 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, in communication with the at least one storage medium, Wherein, 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 to 14 according to the instructions of the at least one instruction set.
16. The system according to claim 15, characterized in that Also includes: The sensor is deployed on a wearable device and is configured to be worn within the lower limbs of a target user to collect the gait data. The at least one memory and the at least one processor are deployed on a control device, and the control device is communicatively connected to the wearable device.
17. The system according to claim 15, characterized in that Also includes: The sensor is configured to be worn within the lower limbs of the 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.
Citation Information
Patent Citations
Self-adaptive gait phase recognition method and device based on thigh angles
CN112263246A
Stride detection
WO2014043757A1
Cited By
Gait data processing method and system
CN116919387A
