Measuring gait to detect injury
Gait data is collected through the accelerometer, and gait fingerprints are generated using frequency domain analysis to detect individual injuries, solving the problem of non-invasive detection of damage in the prior art, achieving early and accurate damage detection and emergency response.
Patent Information
- Application Number
- CN202380088048.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-21
- Filing Date
- 2023-12-08
- Publication Date
- 2025-08-01
AI Technical Summary
The prior art is difficult to accurately detect damage in an individual through a non-invasive manner, especially due to movement abnormalities caused by substance abuse or nervous system emergencies.
The individual gait data is collected using an accelerometer, and the gait fingerprint is generated through frequency domain analysis and time domain conversion, and the residuals are compared with the reference gait fingerprint, the damage measurement is calculated and compared with the threshold to generate an alarm.
Early detection of individual injuries, especially intoxication and neurological damage, such as stroke, provides support for emergency care responses and reduces false positive and false negative rates.
Smart Images

Figure CN120417835A_ABST
Abstract
Description
BACKGROUND OF THE INVENTION
[0001] Mobile devices such as cellular phones may include motion sensors such as accelerometers. The accelerometer may be used to detect the motion of the mobile device. Time series data may be sampled from sensor signals such as the output of an accelerometer. SUMMARY OF THE INVENTION
[0002] In one embodiment, one or more non-transitory computer-readable media are presented. The non-transitory computer-readable media include computer-executable instructions stored thereon that, when executed by at least one processor of a computer, cause the computer to perform operations or steps of a method. The instructions cause the computer to receive measurements of a human's gait from a sensor. Monitor the human's gait to detect an injury. The instructions cause the computer to convert the measurements of the gait into a time series of observations for each frequency bin from a set of frequency bins. The instructions cause the computer to generate a time series of residuals for each range of the set by performing a pointwise subtraction between the time series of observations for each range of the set and a reference time series. The instructions cause the computer to generate an injury metric based on the time series of residuals. The instructions cause the computer to compare the injury metric to a threshold for injury. And, in response to the injury metric meeting the threshold, the instructions cause the computer to generate an alert that the human is injured.
[0003] In one embodiment, a computer-implemented method is presented. The method includes receiving measurements of a biological entity's gait from a sensor. Monitor the biological entity's gait to detect an injury. The method includes converting the measurements of the gait into a time series of observations for each frequency bin from a set of frequency bins. The method includes generating a time series of residuals for each range of the set by performing a pointwise subtraction between the time series of observations for each range of the set and a reference time series. The method includes generating an injury metric based on the time series of residuals. The method includes comparing the injury metric to a threshold for injury. And, in response to the injury metric meeting the threshold, the method includes generating an alert that the biological entity is injured.
[0004] In one embodiment, a computing system is presented. The computing system includes at least one processor, at least one accelerometer connected to the processor, and one or more non-transitory computer-readable media. The non-transitory computer-readable media includes instructions stored thereon that, when executed by at least the processor, cause the computing system to perform operations or steps of a method. The instructions cause the computing system to receive measurements of a human's gait from the accelerometer. Monitor the human's gait to detect an injury. The instructions cause the computing system to convert the measurements of the gait into a time series of observations for each frequency bin from a set of frequency bins. The instructions cause the computing system to generate a time series of residuals for each range of the set by performing point-by-point subtraction between the time series of observations for each range of the set and a reference time series. The instructions cause the computing system to generate an injury metric based on the time series of residuals. The instructions cause the computing system to compare the injury metric to a threshold for an injury. And, in response to the injury metric meeting the threshold, the instructions cause the computing system to generate an alert that the human is injured. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various systems, methods, and other embodiments of the disclosure. It will be appreciated that the element boundaries shown in the figures (e.g., boxes, groups of boxes, or other shapes) represent one embodiment of the boundaries. In some embodiments, one element may be implemented as multiple elements, or multiple elements may be implemented as one element. In some embodiments, an element shown as an internal component of another element may be implemented as an external component and vice versa. Additionally, the elements may not be drawn to scale.
[0006] Figure 1 An embodiment of a gait monitoring system associated with gait characterization and monitoring using vibration fingerprints is illustrated.
[0007] Figure 2 An embodiment of a gait monitoring method associated with gait characterization and monitoring using vibration fingerprints is illustrated.
[0008] Figure 3 A three-dimensional plot of an example measurement of an individual human's gait is illustrated.
[0009] Figure 4 A spectrogram of an example power spectrum and a corresponding example time series plot of an example of the top-ranked frequency bins in an example gait measurement are illustrated.
[0010] Figure 5 A bar graph illustrating the difference in injury metric values between an example normal state and an injured state is illustrated.
[0011] Figure 6 An embodiment of a gait fingerprinting method associated with gait characterization and monitoring using vibration fingerprints is illustrated.
[0012] Figure 7 An embodiment of a gait monitoring method associated with gait characterization and monitoring using vibration fingerprints is illustrated.
[0013] Figure 8 A graph showing the relative noise levels of example time series sampled from an example frequency range is shown.
[0014] Figure 9 Time series sampled from the top-ranked frequency ranges for a person walking slowly, a person walking quickly, and a person jogging are shown.
[0015] Figure 10 An embodiment of a computing system configured with the example systems and / or methods described herein is illustrated.
[0016] Figure 11 An example mobile device configured with the example systems and / or methods described herein is illustrated. Detailed Description
[0017] Systems, methods, and other embodiments for monitoring gait to detect injury are described herein. In one embodiment, a gait monitoring system employs three-dimensional vibration fingerprints to characterize the gait of a human or other individual. In one embodiment, the gait monitoring system characterizes vibrations associated with an individual's movement and compares them to the vibration fingerprint or vibration profile of uninjured movement to determine whether the individual is injured. In short, the vibration pattern of an individual's walk is examined against a reference vibration pattern to detect the occurrence or presence of an injured movement.
[0018] In one embodiment, a gait monitoring system receives measurements of an individual's gait from a sensor. For example, the sensor can be an accelerometer carried by the individual that senses the individual's movement. The measurements are converted into a time series of the repetitive movement for various frequency ranges (or frequency bands). The set of time series is compared to a reference set of time series values of the repetitive movement for the frequency range. The reference set of time series values provides a baseline for an uninjured gait for the individual. This comparison produces a residual value between the observed gait and the baseline reference. An injury metric can be derived from the residual value. If the injury metric meets a threshold for injury, then the gait monitoring system generates an alert that a human is injured.
[0019] In one embodiment, the detection of impairment based on sensed gait as discussed herein can detect intoxication and be used to prevent the operation of a machine, such as preventing drunk driving, until the impairment is resolved. In one embodiment, the detection of impairment based on sensed gait as discussed herein can detect the occurrence of a neurological impairment (such as a stroke) early and be used to initiate an emergency care response within the initial “golden” hour to avoid long-term brain function degradation or death. In one embodiment, the detection of impairment based on sensed gait as discussed herein can detect the occurrence of negative pharmacological effects, such as a reaction to a poison present in the environment or an adverse reaction to a drug, and be used to initiate an emergency care response.
[0020] Any action or function described or claimed herein is not performed by a human mind. Any interpretation that an action or function can be performed by a human mind is inconsistent with and contrary to this disclosure.
[0021] — Definitions —
[0022] As used herein, the term “gait” refers to the manner or pattern of movement of an individual's body during displacement over a surface.
[0023] As used herein, the term “displacement” is a general term for the movement of a living being from one place to another by means of its feet, such as by walking, jogging, or running. For example, the measurement of gait indicates the pattern of an individual's stride and walking speed.
[0024] As used herein, the term “injured” or “impairment” refers to a decrease or alteration in an individual's normal motor activity due to drug exposure (such as alcohol or marijuana intoxication and drug adverse reactions or interactions) or a neurological emergency (such as a stroke or seizure).
[0025] As used herein, the term “individual” or “living being” refers to a human or animal capable of displacement. Thus, an individual or living being can be either human or animal.
[0026] As used herein, the term “time series” refers to a data structure in which a sequence of data points (such as observations or sampled values) is indexed in time order. In one embodiment, the data points of a time series can be indexed with indices such as timestamps and / or observation numbers. As used herein, the term “time series signal” is synonymous with “time series”.
[0027] As used herein, the term “time series database” refers to a data structure that includes one or more time series sharing a common index (such as a sequence of timestamps, locations, or observation numbers).
[0028] As used herein, the term "residual" refers to the absolute value of the difference between a value (such as a measured, observed, sampled, or resampled value) and a reference, prediction, or estimate that the value is expected to be. Thus, in one embodiment, a residual time series or a time series of residuals refers to a time series composed of the residual values between a time series of certain values and the time series that these values are expected to be.
[0029] —Example Gait Monitoring System—
[0030] Figure 1 FIG. illustrates an embodiment of a gait monitoring system 100 associated with gait characterization and monitoring using vibration fingerprints. The gait monitoring system 100 includes components for monitoring the gait of an individual organism (such as a human or an animal). The components of the gait monitoring system 100 may include a measurement receiver 105, a time series converter 110, a residual generator 115, an impairment metric generator 120, a threshold comparator 125, and an alert generator 130. In one embodiment, each of these components 110, 115, 120, 125, and 130 of the gait monitoring system 100 may be implemented as software executed by computer hardware. For example, the components 110, 115, 120, 125, and 130 may be implemented as one or more software modules, routines, or services that communicate with each other to perform the functions of the components.
[0031] The measurement receiver 105 is configured to receive a measurement 140 of the gait of an individual from a sensor 145. In one embodiment, the measurement receiver 105 stores the measurement of the gait in a measurement buffer 147. In one embodiment, the sensor 145 is an accelerometer, such as a multi-axis accelerometer. In one embodiment, the measurement 140 of the gait is a measurement of the magnitude and direction of the acceleration of the sensor 145. In one embodiment, the sensor 145 is carried on or otherwise borne by the individual so as to produce a measurement of the magnitude and direction of the acceleration when the individual walks, jogs, or otherwise moves with the feet, as the measurement 140 of the gait. The measurement 140 of the gait may be monitored to detect an impairment of the individual.
[0032] The time series converter 110 is configured to convert the measurements 140 of a gait into an observed time series 150 for each frequency bin of a set of frequencies. The residual generator 115 is configured to generate a residual time series 155 for each frequency bin of the set by point - wise subtraction between the observed time series 150 for each range of the set and a reference time series 160. The reference time series 160 (or gait fingerprint) is a time series for each frequency bin generated for an individual's uninjured gait. The injury metric generator 120 is configured to generate an injury metric 165 based on the residual time series 155. The threshold comparator 125 is configured to compare the injury metric 165 with a threshold 170 for injury. The threshold 170 for injury can be pre - configured by a user or an administrator of the gait monitoring system 100. The result 175 of the comparison is provided to the alert generator 130 and indicates whether the injury metric 165 meets the threshold 170 for injury. The alert generator 130 is configured to generate an alert 180 that the individual is injured in response to the injury metric meeting the threshold.
[0033] Further details regarding the gait monitoring system 100 are presented herein. In one embodiment, reference will be made Figure 2 and Figure 7 to the example gait monitoring methods 200 and 700 shown in Figure 6 to describe the operation of the gait monitoring system 100. In one embodiment, reference will be made Figure 5 to the example gait fingerprinting method 600 shown in to describe the generation of gait fingerprints (or the set of reference time series 160) by the gait monitoring system 100. In one embodiment, reference will be made to the example injury metric bar charts shown in to describe the difference between uninjured and injured displacements. In one embodiment, reference will be made to the example spectrogram 400 and the corresponding time series 405 generated from the example gait measurements shown in
[0034] —Example Gait Monitoring Method—
[0035] FIG. illustrates an embodiment of a gait monitoring method 200 associated with gait characterization and monitoring using vibration fingerprints. Generally speaking, in one embodiment, the gait monitoring method 200 receives measurements of a human's gait from a sensor. The human's gait is monitored to detect injuries. The gait monitoring method 200 converts the measurements of the gait into a time series of observations for each frequency interval from a set of frequency intervals. Then, the gait monitoring method 200 generates a time series of residuals for each range of the set. The time series of residuals is generated by point - by - point subtraction between the time series of observations for each range of the set and a reference time series. The gait monitoring method 200 generates an injury metric based on the time series of residuals. The gait monitoring method 200 compares the injury metric with a threshold for injury. In response to the injury metric meeting the threshold, the gait monitoring method 200 generates an alert that the human is injured.
[0036] In one embodiment, the gait monitoring method 200 is initiated at a "start" block 205 in response to the gait monitoring system determining one or more of the following: (i) an incoming stream of measurements of the gait has been detected; (ii) an instruction to perform the gait monitoring method 200 on the measurements of the gait has been received; (iii) a user or administrator of the gait monitoring system 100 has initiated the gait monitoring method 200; (iv) the current time is the time at which the gait monitoring method 200 is scheduled to run; or (v) the gait monitoring method 200 should start in response to the occurrence of some other condition. In one embodiment, a computer configured by computer - executable instructions to perform the functions of the gait monitoring system 100 executes the gait monitoring method 200. In one embodiment, the steps of the gait monitoring method 200 or other methods herein are performed as a streaming workflow that processes the gait measurements as they arrive from the sensor. After being initiated at the start block 205, the gait monitoring method 200 proceeds to a processing block 210.
[0037] —Example Gait Monitoring Method - Receiving Gait Measurements—
[0038] At a processing block 210, the gait monitoring method 200 receives measurements of a biological entity's gait from a sensor. The biological entity's gait is monitored to detect injuries. For example, an accelerometer records measurements of the vibrations or movements of an individual as the individual walks or otherwise displaces.
[0039] In one embodiment, the sensor is an accelerometer. For example, the sensor can be an on - board accelerometer integrated with a mobile device. In one embodiment, the accelerometer can be a solid - state accelerometer integrated circuit. In one embodiment, the accelerometer can produce readings of acceleration at a sampling rate of multiple times per second. For example, the accelerometer can produce a reading every few milliseconds.
[0040] The accelerometer is placed on or carried by an individual, such as by placing a mobile device in a pocket. The individual displaces (e.g., walks) while the accelerometer is worn on the individual, such that the accelerometer measures or detects the movement of the accelerometer caused by the individual's gait. In one embodiment, the measurement of the gait characterizes or quantifies the periodic motion pattern performed by the individual during displacement. While carrying the accelerometer, the individual's displacement can be performed at various speeds. For example, accelerometer readings can be obtained while the individual walks at a slow pace, and again while the individual walks at a moderately faster pace, and so on, thereby increasing the pace of the gait. In one embodiment, the measurement of the gait covers a time range or time window. For example, the measurement of the gait can detect the movement of the carried accelerometer during a two-minute displacement at one time.
[0041] In one embodiment, when the sensor is an accelerometer, the measurement of the gait is the accelerometer readings detected by the accelerometer. In one embodiment, each accelerometer reading is a data structure including acceleration values of multiple axes of motion detected by the accelerometer. For example, the accelerometer can sense acceleration along three orthogonal (e.g., x - y - z) axes or directions and generate a data structure including the magnitude of the acceleration in each direction.
[0042] In one embodiment, the gait monitoring method 200 receives the measurement of the gait from the accelerometer (e.g., from sensor 145) as a stream of accelerometer readings. The accelerometer readings are the measurement of the gait. The stream of accelerometer readings (readings of the magnitude of the acceleration along the axes of the accelerometer) is presented to, accessed by, or otherwise received by the gait monitoring system 100 when the accelerometer generates the readings.
[0043] When an accelerometer reading is received, it is written to a memory (e.g., measurement buffer 147) along with a timestamp. The timestamp indicates the time at which the accelerometer reading was obtained. In one embodiment, a time series of accelerometer readings that measure the gait is thereby generated in the memory. In one embodiment, the time series of accelerometer readings records the accelerometer readings at the sampling rate generated by the accelerometer, with each accelerometer reading having a timestamped data point. In one embodiment, the time series of accelerometer readings downsamples the accelerometer readings by recording a timestamped data point for every few accelerometer readings (e.g., for every tenth accelerometer reading).
[0044] In one embodiment, the measured time series has a predetermined length. The predetermined length covers a predetermined amount of time. The predetermined length is to separate the continuous stream of accelerometer measurements of a gait into analyzable segments or windows. The amount of time and / or the length of the time series are selected to balance adequately characterizing the periodic activity of the gait with the timeliness of detecting abnormal injuries to the gait. In one embodiment, a time series covering approximately between one and three minutes (such as a time series with readings covering two minutes (120 seconds)) provides a satisfactory balance. On this time scale, an individual can shift dozens or hundreds of steps, and the occurrence of an injury will be detected within just a few minutes. In one example, where the accelerometer and the time series of measurements it produces have a sampling rate of 2000 Hertz, a time series of measurements with a length of 240,000 observations is thus produced. The measurements of the gait can also be analyzed to either detect injuries in the measured gait or to generate a gait fingerprint of a normal gait.
[0045] Thus, in one embodiment, the accelerometer produces a series of measurements of the magnitudes of accelerations along multiple axes associated with a human's gait, the measurement receiver collects the measurements when the accelerometer produces the measurements and writes the measurements to a memory (e.g., as a time series of accelerometer readings), and the measurement receiver provides the series of measurements to the time series converter 210 after the measurements cover a time window (e.g., two minutes). Then, processing block 210 is completed, and the gait monitoring method 200 proceeds to processing block 215. In one embodiment, the functions of processing block 210 are performed by the gait monitoring system 100 and the sensor 145. When the collection of measurements of a biological entity's gait from the sensor is completed, a series of measurements of the gait covering the time range of the gait are collected and made available for subsequent analysis. The measurements of the biological entity's gait can be used to determine an injury to the biological entity, such as as part of a gait fingerprint or, for example, by representing the displaced injury of the biological entity.
[0046] —Example gait monitoring method - Converting to a frequency bin time series—
[0047] At processing block 215, the gait monitoring method 200 converts the measurements of the gait into a time series of observations for each frequency bin from a set of frequency bins. In one embodiment, the conversion transforms the broad-spectrum measurements of the gait recorded in the time series of measurements into separate time series for specific frequency ranges within that broad spectrum. In one embodiment, the conversion produces a time series for each frequency bin of the set of frequency bins that are most relevant to displacement.
[0048] In one embodiment, as discussed above, the measurement of gait is a time series of accelerometer readings along each axis. The measured time series includes periodic or oscillatory movements detected by the accelerometer at various different frequencies. Not all periodic or oscillatory activities are associated with the normal, uninjured gait of an individual. Therefore, the measured time series of gait should be transformed into several time series of component periodic or oscillatory movements that occur in frequency ranges associated with the normal gait of the individual.
[0049] At a high level, transforming the measurement of gait into several time series of observations for different frequency ranges involves performing a time-domain - frequency-domain - time-domain double transformation. A time-domain to frequency-domain transformation, such as a fast Fourier transform, is performed on the measured time series of gait to produce a power spectrum for the measurement (such as a power spectral density curve or a periodogram). The power spectrum is subdivided into multiple frequency ranges. Then, those frequency ranges associated with the normal, uninjured gait of the individual are sampled to produce time series for the frequency ranges, thereby transforming the sampled frequency ranges back from the frequency domain to the time domain. In this way, the measurement of gait is transformed into time series of observations for each of the frequency ranges in a set of frequency ranges associated with the normal, uninjured gait.
[0050] The power spectrum for the measurement of gait is defined by a power spectral density function generated from the Fourier transform of the measurement of gait. In one embodiment, a Fourier transform is performed on each acceleration axis and the results are appropriately combined through axis rotation and vector summation in order to produce a total power spectral density function for the measurement of gait over all axes. In one embodiment, the individual accelerometer readings on each axis are summed and a Fourier transform is performed on the summed accelerometer readings to produce a total power spectral density function for the measurement of gait over all axes. In one embodiment, the total power spectral density function can be replaced with a power spectral density function for a single measurement axis. In one embodiment, all three axes can be analyzed separately.
[0051] In one embodiment, as mentioned above, the power spectrum for the measurement of gait is subdivided or partitioned into discrete, contiguous frequency ranges. A frequency range is a range of frequencies that are discrete from and non - overlapping with each other. A frequency range is a range of frequencies that are contiguous with each other within the power spectrum and there are generally no gaps between adjacent ranges. A frequency range is a range of frequencies with approximately equal widths that cover similar range intervals in the frequency spectrum. The set of all frequency ranges covers the power spectrum. It has been determined empirically that 100 frequency ranges are sufficient to dissect the power spectrum for analyzing human gait. Therefore, in one embodiment, the power spectrum for the measurement of gait is subdivided into 100 discrete, contiguous frequency ranges or intervals.
[0052] In one embodiment, the conversion of gait measurements into a set of frequency bins of a time series is a subset of the frequency bins most relevant to an individual's normal gait. In one embodiment, the set of frequency bins most relevant to normal gait is a subset of the set of frequency bins having the highest amplitude in the power spectrum when the individual is shifting normally and without injury. For example, the top 10 frequency bins for normal displacement amplitude are selected. These top-ranked frequency bins are identified based on a reference measurement of the gait obtained when the individual is shifting normally. Additional details regarding the selection of the set of frequency bins for which a time series will be generated are discussed below, for example under the heading "Identifying Top-Ranked Frequency Bins".
[0053] By measuring the gait for each frequency bin of the set, an observed time series is generated. In one embodiment, a time series is generated for a frequency bin by reporting the value of the frequency bin at regular intervals. In one embodiment, an interval of 2 seconds or less has been determined to be satisfactory, for example an interval of 1 second. Values can be reported for more than one frequency bin. For example, when the power spectrum is divided into 100 frequency bins, by reporting the value of each frequency bin per second, the 100 frequency bins are converted into 100 time series, each having a sampling rate of 1 second (1 Hertz). Each frequency bin sampled at that interval produces a time series resulting in a set of observed time series (of the frequency bins) sampled at a common rate, or an observed time series database. As used in the terms "observed time series" or "observed time series database", an observation refers to the amplitude value sampled from the frequency bin.
[0054] In one embodiment, a time series is generated for each frequency bin in the entire power spectrum, and then a subset of the time series corresponding to the top-ranked frequency bins having the highest amplitude is selected. For example, all 100 frequency bins covering the power spectrum are converted into time series, and then a subset of the time series generated by the top 10 intervals having the highest power amplitude is selected. In either case, an observed time series is generated for each frequency bin from the set of top-ranked frequency bins by converting back to the time domain.
[0055] Brief reference , FIG. 300 is a three-dimensional plot of an example measurement 305 of the gait of an individual human. The measurement 305 of the gait shows the change in frequency over time when a human walks slowly. The example measurement 305 of the gait is plotted as a three-dimensional surface along a time axis 310, a frequency axis 315, and an amplitude axis 320. In one embodiment, the amplitude of the example measurement 305 of the gait is the total amplitude along all axes of motion sensed by the sensor, e.g., the vector sum of the magnitudes of the accelerations on all axes. Here, the power spectrum of the example measurement 305 of the gait covers from 0 to 50 Hz, as shown along the frequency axis 315. The example measurement 305 of the gait is divided into intervals along the frequency axis 315, e.g., divided into 100 intervals. Note that the content at the lower frequencies 325 is stronger (has a higher amplitude) than the content at the higher frequencies 330. Thus, when the example measurement 305 of the gait is used as a reference for normal displacement of a human or a gait fingerprint, the top-ranked intervals that best characterize (are most relevant to) normal gait will be selected from among the intervals that include the content at the lower frequencies 325.
[0056] Now refer to , FIG. 400 is a spectrogram of an example power spectrum (power spectral density) of the top 5 frequency intervals among the example measurements 305 of the gait and a plot of the corresponding example time series 405. As shown, the behavior of the example measurement 305 of the gait is further analyzed in the frequency domain. The peaks in the frequency domain power spectrum 400 correspond to the periodic gait movements of a person walking slowly. The first five frequency intervals 405 are the frequency intervals in the power spectrum that have the strongest frequency components (the highest peaks) among the 100 intervals along the frequency axis 315. In one embodiment, the top 10 intervals are selected based on the height of the peaks in the frequency domain. (For simplicity, only the top 5 intervals are shown in
[0057] Again refer to Processing block 215. In one embodiment, a gait monitoring method converts measurements of a gait into a time series of observations for each frequency interval of a set of frequency intervals by: transforming the measurements of the gait into the frequency domain to produce a power spectrum of the measurements; subdividing the power spectrum into a plurality of frequency intervals; sampling, at an interval, each frequency interval of the set of frequency intervals most relevant to normal gait to produce a time series of observations (amplitude values of the intervals) for each frequency interval of the set of frequency intervals. Processing block 215 then completes, and gait monitoring method 200 proceeds to processing block 220. In one embodiment, the functionality of processing block 215 is performed by time series converter 110. In one embodiment, upon completion of processing block 215, a time series database of observations has been generated, which includes time series of amplitudes sampled from those frequency intervals most relevant to the normal gait of an individual. This time series database of observations can be compared to a reference time series database, which includes time series of reference value amplitudes sampled from those frequency intervals when the individual is normally displaced, to determine whether the measured gait is significantly different from the reference gait. In one embodiment, the set of time series of observations for each interval of the set may be referred to herein as the current or observed gait fingerprint.
[0058] —Example Gait Monitoring Method - Generation of Residuals—
[0059] At processing block 220, gait monitoring method 200 generates a time series of residuals for each interval of the set by point - by - point subtraction between the time series of observations for each interval of the set and the reference time series. In other words, the gait monitoring method finds the difference between a data point in the time series of observations and the data point at the corresponding index in the reference time series, and stores the differences to create a time series.
[0060] As mentioned above, a time series of residuals is a time series composed of residuals - values that are the difference between a given value and the value that is expected to be. A time series of observations for a frequency interval (such as the time series of observations produced by processing block 215) stores a series of amplitude values indexed in time for that frequency interval. A reference time series for a frequency interval stores a series of amplitude values expected at each data point for that frequency interval. The index positions are spaced at an interval, for example, one second (sampling rate of 1 Hz), as discussed above. Thus, the data points in the time series of observations and the reference time series share a series of common index positions. In this way, the values in the time series of observations correspond to the estimated values at the corresponding index positions in the reference time series.
[0061] In one embodiment, the reference time series is a time series of values of normal, uninjured displacements for an individual obtained from a frequency interval. The reference time series for the frequency interval provides a series of expected values for that frequency interval due to displacement. In one embodiment, there are reference time series for more than one frequency interval, e.g., reference time series for each frequency interval in a set of top-ranked frequency intervals most relevant to the normal, uninjured movement of the individual. The set of reference time series for each frequency interval in the top-ranked frequency intervals most relevant to the normal, uninjured movement of the individual may also be referred to herein as a reference time series database or a reference gait fingerprint.
[0062] In one embodiment, each reference time series may be created based on measurements of the individual's gait during a training session in which the individual is moving normally and without injury. In one embodiment, the reference time series database may be created based on measurements obtained in multiple training sessions. In one embodiment, during the multiple training sessions, the displacement pace of the individual in one training session is different from the displacement pace in another training session. In other words, the individual displaces at a different pace in each of the multiple training sessions, e.g., at an increasing pace in each training session. In one embodiment (discussed in more detail below under the heading "Phase Synchronization"), the reference time series database from multiple training sessions may be phase-normalized to synchronize the different pace speeds, and then the average of each reference time series across the multiple training sessions may be taken to generate the reference time series.
[0063] In one embodiment, the set of reference time series may be stored at creation and retrieved from a storage device for generating a residual at processing block 220 (as indicated by inputting the reference time series 160 into the residual generator 115). The reference time series may be stored with an identifier of the individual. In one embodiment, the gait monitoring method 200 looks up the identifier of the individual and accesses and retrieves the set of reference time series associated with that individual.
[0064] A time series of values can be subtracted point by point from a time series of expected values to produce a time series of residuals. In point by point subtraction, the values at corresponding indices in the two time series are subtracted to generate a value for the difference or residual at that index. Point by point subtraction processes the two time series data point by data point (i.e., index position by index position). At each index position, point by point subtraction subtracts or finds the difference between the actual value of the data point in the observed time series and the estimated value of the data point in the reference time series. The absolute value of the difference at that index position is then taken to produce the residual difference at that index position. The residual difference obtained by finding the absolute value of the pairwise difference between the actual value and the estimated value at each index position is placed in the time series at that index position to create a time series of residuals.
[0065] In one embodiment, a time series of residuals is generated for a plurality of frequency intervals. In particular, a time series of residuals can be generated for each frequency interval of a set of top-ranked frequency intervals that are most relevant to an uninjured or normal gait. For example, an observed time series and a reference time series can be obtained for each frequency interval of a set of the first ten frequency intervals and used to generate a time series of residuals for each of the first ten frequency intervals. In this way, a time series of residuals can be generated for each frequency interval of a set of frequency intervals.
[0066] In one embodiment, the gait monitoring method generates a time series of residuals for each interval of the set by point-by-point subtraction between the observed time series and the reference time series by: accessing a set of reference time series for each frequency interval of the set of frequency intervals most relevant to normal, uninjured gait; accessing a set of observed time series for each frequency interval of the set of frequency intervals most relevant to normal, uninjured gait; for each frequency interval of the set, finding the difference between the value of the observed time series for that frequency interval and the value of the reference time series for that frequency interval; and placing the absolute value of these differences as residuals in the time series of residuals. Processing block 220 is then completed, and the gait monitoring method 200 proceeds to processing block 225. In one embodiment, the functionality of processing block 220 is performed by residual generator 115. Upon completion of processing block 220, the gait monitoring method 200 has created a time series database (a set of time series) of residuals between the individual's current gait and the reference gait for the individual's uninjured motion based on the frequencies that best represent uninjured motion. The time series database of residuals can be used to generate an impairment metric that indicates how much the currently measured gait differs from a reference gait.
[0067] — Example Gait Monitoring Method - Generation of Impairment Metrics —
[0068] At processing block 225, gait monitoring method 200 generates an impairment metric based on the residual time series. The impairment metric indicates how different the measured gait is from a reference gait. The impairment metric represents, as a single number, the extent to which the time series of residuals shows the deviation of an individual's current gait from the reference gait for uninjured displacement.
[0069] In one embodiment, the impairment metric is the cumulative mean absolute error (CMAE) of a set of residual time series. In one embodiment, since the impairment metric represents the CMAE of the motion of a human individual due to the individual's gait, the impairment metric is sometimes referred to herein as the human gait dynamics (HGD) CMAE. In one embodiment, to generate the impairment metric, the mean absolute error (MAE) of the residual time series is determined for each frequency bin, and then the MAEs for each resulting frequency bin are summed to produce the CMAE across all frequency bins. In this way, the impairment metric is generated based on the residual time series.
[0070] As discussed above, a residual is the value of the difference between two values. A residual can also be referred to as the error between two values. The mean absolute error (MAE) of a frequency bin is the average of the absolute values of the residuals in the residual time series for that frequency bin. The MAE of a frequency bin quantifies the similarity or likeness of the measured gait to the reference gait over the frequency range covered by that frequency bin. In one embodiment, the gait monitoring method calculates the MAE based on the residual time series for each frequency. To calculate the MAE of a residual time series, the values of the residuals in the residual time series are summed and then divided by the count of the residuals in the time series. In other words, the sum of the residuals in the residual time series is divided by the length of the time series to generate the MAE.
[0071] As discussed above, the MAE is calculated for each frequency bin and the MAE values are then summed to calculate the HGD CMAE (impairment metric). If an individual person has no impairment, then the difference between their gait and the reference gait will be small, and the residuals for each frequency bin will also be small. Thus, the MAE and the HGD CMAE will also be small. If a person has an impairment, then their gait (including stride pattern and step frequency) will change. When the impaired measurements are compared to the original gait fingerprint, the resulting residuals, MAE, and HGDCMAE will be significantly higher.
[0072] Thus, in one embodiment, the gait monitoring method 200 generates a damage metric based on a set of time series of residuals by calculating the mean absolute error of each time series of the set of residuals and summing the mean absolute errors of all time series of the set of residuals to produce a cumulative mean absolute error of the residuals (which is the damage metric). Then, process block 225 is completed, and the gait monitoring method 200 proceeds to process block 230. In one embodiment, the functionality of process block 225 is performed by the damage metric generator 120. When process block 225 is completed, the complex issue of how closely the currently measured gait of an individual resembles the reference gait of the individual's displacement when not injured has been characterized with a simple damage metric. This damage metric can be used to determine whether the individual has become injured.
[0073] —Example Gait Monitoring Method - Comparison with Damage Threshold—
[0074] At process block 230, the gait monitoring method 200 compares the damage metric with a threshold for damage. In one embodiment, the gait monitoring method 200 makes the comparison to determine whether the damage metric (CMAE) meets the threshold for damage indicating displacement (also referred to as the damage threshold). The damage threshold provides a value at which the damage metric transitions from indicating a low likelihood of individual injury to indicating a high likelihood of individual injury.
[0075] In one embodiment, a damage threshold X is used to distinguish between injured and non - injured classifications. The value of the threshold X can be a configurable parameter that can be adjusted by a user or administrator of the gait monitoring system 100. In one embodiment, the threshold depends on the time lengths covered by the observed time series, the reference time series, and the time series of residuals and their sampling rates. For example, when the time length covered is two minutes (120 seconds) and the sampling rate is 1 sample per second (1 Hz), a threshold for the damage metric between 10 and 14 (such as a threshold of 12) satisfactorily distinguishes between uninjured and injured displacements. For example, when a person's damage metric exceeds the threshold of 12, the likelihood that the person is in an injured state is high, while when it is below the threshold of 12, the likelihood that the person is in an injured state is low.
[0076] In one embodiment, the damage threshold X can be generalized to different time rates and sampling rates. For example, the threshold can be the time length T covered by the time series of residuals (or observations or references) multiplied by the sampling rate S of the time series of residuals (or observations or references) and divided by approximately 10 (X = T * S / 10).
[0077] In one embodiment, the impairment metric is compared to an impairment threshold value X to determine whether the threshold value X is met. In one embodiment, the gait monitoring method 200 compares the impairment metric to the threshold value to determine whether the impairment metric is less than, equal to, or greater than the threshold value for impairment. In one embodiment, the impairment metric satisfies the impairment threshold value by being greater than the threshold value (or greater than or equal to the threshold value). The result of the comparison is then recorded, i.e., an indication that the threshold value is either met (e.g., greater than the threshold value) or not met (e.g., less than the threshold value). For example, the gait monitoring method may write the result of the comparison to a memory for subsequent retrieval and processing.
[0078] Now refer to , A bar graph 500 illustrating the difference in impairment metric (HGD CMAE) values between an example normal state and an injured state is illustrated. Bar graph 500 shows impairment metric values for both normal walking and injured walking. Bar graph 500 shows an uninjured state value 505 (approximately 8) for the impairment metric, representing an individual walking normally in an uninjured state. Bar graph 500 also shows an injured state value 510 (approximately 28) for the impairment metric, representing an individual walking abnormally in an injured state. The injured state value 510 for the impairment metric, representing an individual walking irregularly and inconsistently, is more than three times higher than the uninjured state value 505 (representing an individual walking in a more regular and consistent manner).
[0079] The impairment metric can be used to determine with a high probability when a person is likely to be in an injured state due to a medical emergency or consciousness-altering intoxication. As the impairment metric value increases, the certainty that the individual is injured also increases. The impairment threshold used to distinguish between normal walking and injured walking can be derived empirically. In one embodiment, the impairment threshold is derived based on the value of the impairment metric calculated based on a reference gait fingerprint of a living being with normal displacement. (For convenience, the value of the impairment metric calculated based on a reference gait fingerprint of normal displacement may be referred to herein as the "reference baseline.") For example, the impairment threshold for a living being can be set to a certain additional percentage above the living being's reference baseline. For example, the impairment threshold can be set to approximately 50% above the living being's reference baseline. Other values for the impairment threshold can also be used. For example, a more stringent impairment threshold can be set to 20% above the reference baseline. Alternatively, a more relaxed impairment threshold can be set, for example, to 100% above the reference baseline. In this way, the impairment threshold can be made dynamic and adjustable for different living beings or reference gait fingerprints.
[0080] exist In Figure 5, the example impairment threshold 51 has been empirically generated based on an individual's reference gait fingerprint (as discussed above). The example impairment threshold 515 has an impairment metric value of 12. The example impairment threshold 515 clearly distinguishes normal walking from injured walking. Comparing the uninjured state value 505 (approximately 8) with the example impairment threshold 515 of 12 shows that the impairment metric for normal walking does not rise to the threshold level indicating a high likelihood of injury. Comparing the injured state value 510 (approximately 28) with the example impairment threshold 515 of 12 shows that the impairment metric for injured walking far exceeds the threshold level indicating a high likelihood of injury, indicating a high certainty of injury.
[0081] Thus, in one embodiment, the gait monitoring method 200 compares the impairment metric to a threshold value for impairment by: retrieving a value for the impairment threshold and the impairment metric (CMAE); comparing the impairment metric to the impairment threshold; determining that the impairment metric satisfies the impairment threshold, e.g., the value of the impairment metric satisfies or exceeds the value of the impairment threshold (or determining that the impairment metric does not satisfies the impairment threshold, e.g., the value of the impairment metric falls below the value of the impairment threshold); and storing the result of the determination indicating that the threshold value is met (or not met). Processing block 230 is then complete, and the gait monitoring method 200 proceeds to processing block 235. In one embodiment, the functionality of processing block 230 is performed by the threshold comparator 125.
[0082] — Example Gait Monitoring Method - Alert Generation —
[0083] At processing block 235, in response to the impairment metric meeting the threshold, the gait monitoring method 200 generates an alert that the individual is injured. When the impairment metric indicates an injury to the individual, a message is generated to inform the individual, another individual, or an emergency response system that the individual has become injured. In one embodiment, the alert can be generated by a mobile device that includes a sensor (accelerometer) for monitoring the individual's gait.
[0084] As discussed herein, a living being may be injured due to a sudden medical emergency (such as a stroke or poisoning) or due to intoxication (such as alcohol, marijuana, or other narcotics). The injury affects the movement of the living being such that the living being's gait at the time of the injury does not conform to a reference gait for the living being's movement without injury. Once the impairment in the living being's gait develops to a point where it differs sufficiently from a normal, uninjured gait that an impairment metric satisfies an impairment threshold, the living being is likely to have become injured while moving.
[0085] In one embodiment, the method generates an alert of injury to the living being or individual by writing a message indicating or declaring the injury to the living being or individual. In one embodiment, the message includes a value of a measure of injury (CMAE). In one embodiment, the message includes a value of an injury threshold. In one embodiment, the message includes an indication or declaration that the measure of injury has reached or exceeded the injury threshold, as a basis or support for the alert of injury to the living being or individual. In one embodiment, the message includes location information, such as GPS coordinates, longitude and latitude, an address, or other location information, which can be used to render an emergency response to provide care to the individual.
[0086] Note that, in one embodiment, the processing blocks 210 to 230 of the gait monitoring method may be repeated in a loop until the most recent measure of injury meets the threshold for injury. In other words, the gait of the individual is monitored until an injury is detected, at which point an alert is generated. For example, as discussed above, the gait of the individual may be monitored at approximately two-minute (120-second) intervals. In one embodiment, after each approximate two-minute interval is completed, the measure of injury within that interval is calculated, compared to the injury threshold, and stored along with the result of the comparison to the threshold. When the measure of injury meets the injury threshold, processing block 235 is executed and an alert is generated. In one embodiment, the message may include previous measure of injury values prior to the current measure of injury value that meets the injury threshold value and triggers the generation of the alert.
[0087] In one embodiment, the alert is a message configured to be displayed by a graphical user interface of a mobile device that includes a sensor. In one embodiment, the alert is configured to cause the mobile device to generate one or more of an audible output (e.g., a ringtone, beep, or other sound), a tactile output (e.g., vibration), or a visual output (e.g., a flash or display of a symbol on the screen of the mobile device) to attract the attention of the individual. In one embodiment, the alert displayed by the mobile device may include user-selectable elements (such as graphical user interface buttons) to initiate an emergency response to provide medical or other assistance to the individual. In one embodiment, generating the alert includes presenting or displaying the message with the mobile device.
[0088] In one embodiment, the alert is a message configured to be transmitted over a network such as a cellular telephone network, a Wi-Fi network, or other communication infrastructure. The message can be configured to be read by a computing device. For example, the alert can be configured to be processed by a computing device of an alert monitoring system configured to initiate a response to the alert of injury. In one embodiment, generating the alert includes transmitting the message from a mobile device to the alert monitoring system. In one embodiment, the message is transmitted to initiate an emergency response. The alert monitoring system is configured to initiate an emergency response to an individual. The emergency response to the individual can include initiating communication with the individual, such as asking the individual if assistance is needed. The inquiry can be sent to the mobile device via a text message or a telephone communication. In one embodiment, the emergency response to the individual can include requesting dispatch of medical assistance personnel and / or equipment to the location of the individual.
[0089] In one embodiment, the message can be transmitted to equipment associated with the individual to prevent the individual from operating the equipment while in an injured state. In response to receiving the message, the equipment can determine to stop operating until a message is received indicating that the injury metric no longer meets the injury threshold, indicating that the individual is no longer injured. For example, a car associated with the individual can be temporarily inoperable by receiving a message indicating that the individual is injured to prevent the individual from operating the vehicle while in an injured state.
[0090] Thus, in one embodiment, in response to the injury metric meeting the threshold, the gait monitoring method generates an alert of biological injury by one or more of composing a message indicating the individual's injury, presenting the message to the individual, transmitting the message to initiate an emergency response, or transmitting the message to prevent operation of the equipment. Then, processing block 235 is completed, and the gait monitoring method 200 proceeds to the "end" block 240, where the gait monitoring method 200 is completed. In one embodiment, the functions of processing block 235 are performed by the alert generator 130.
[0091] At the end of the gait monitoring method 200, the gait of the individual has been analyzed to determine that the individual has become injured, and an alert has been generated to relevant personnel and / or systems. The individual can be informed of their injured condition by displaying the alert on a mobile device used to monitor the individual's gait. Emergency response personnel can be informed of a potential medical emergency by receiving the alert from the mobile device. By receiving the alert from the mobile device, dangerous equipment can be locked or the individual prevented from operating dangerous equipment.
[0092] —Further embodiments of the gait monitoring method—
[0093] In one embodiment, before generating a residual at processing block 220, the measurement of the gait may be stretched (expanded) or shortened (compressed) to match a uniform pace of displacement and phase-align with a reference pace. In one embodiment, before generating a time series of residuals at processing block 220, gait monitoring method 200 further normalizes the measurement of the gait to a uniform pace by expanding or compressing the measurement of the gait in a moving window. Then, the lead and lag times of the measurement of the gait may be aligned with the uniform pace. More details regarding normalizing the measurement of the gait to a uniform pace and alignment of lead and lag times are discussed below under the heading "Phase Synchronization".
[0094] In one embodiment, a reference measurement of the gait is obtained from an individual when the individual is not injured and is used to select a set of frequency ranges used in processing block 215 and to generate a reference time series used in processing block 220. In one embodiment, before receiving a measurement of a human's gait at processing block 210, gait monitoring method 200 receives a reference measurement of a second (reference) gait of the human walking when the human is not injured. Then, gait monitoring method 200 identifies a plurality of frequency ranges in which the reference measurement shows the highest level of vibratory content as a set of frequency ranges. Then, gait monitoring method 200 converts the reference measurement of the second (reference) gait into a reference time series for each range of the set. More details regarding selection of the set of frequency ranges are discussed below under the heading "Identifying Top-Ranked Frequency Ranges".
[0095] In one embodiment, the reference time series for each frequency bin represents a combination of multiple gaits in which an individual displaced at different walking speeds when uninjured. Thus, in one embodiment, to generate the reference time series, gait monitoring method 200 receives reference measurements of a third (faster reference) gait in which a human walks at a fast walking speed when the human is uninjured. The fast walking speed of the third (faster reference) gait is faster than the walking speed of the second (reference) gait. Gait monitoring method 200 also receives reference measurements of a fourth (slower reference) gait in which a human walks at a slow walking speed when the human is uninjured. The slow walking speed of the fourth (slower reference) gait is slower than the walking speed of the second (reference) gait. Then, gait monitoring method 200 normalizes the reference measurements of the second (reference) gait, the third (faster reference) gait, and the fourth (slower reference) gait to a uniform walking speed by expanding or compressing the reference measurements of each gait in a moving window. Gait monitoring method 200 aligns the lead and lag times of the reference measurements of the second (reference) gait, the third (faster reference) gait, and the fourth (slower reference) gait to the uniform walking speed. Converting the reference measurement of the second gait into a reference time series for each range of the set (as discussed above) also includes generating an average of the reference time series for each range of the set based on the reference measurements of the second (reference) gait, the third (faster reference) gait, and the fourth (slower reference) gait.
[0096] Alternatively, in one embodiment, the reference time series for each frequency bin represents a combination of at least two gaits in which an individual displaced at different walking speeds when uninjured. Thus, in one embodiment, to generate the reference time series, gait monitoring method 200 receives reference measurements of a third gait when the organism is uninjured, where the second gait has a different walking speed of displacement than the third gait. Then, gait monitoring method 200 normalizes the reference measurements of the second gait and the third gait to a uniform walking speed by expanding or compressing the reference measurements of each gait in a moving window. Then, gait monitoring method 200 aligns the lead and lag times of the reference measurements of the second gait and the third gait to the uniform walking speed. Then, gait monitoring method 200 generates an average of the reference time series for each range of the set based on the reference measurements of the second gait and the third gait to convert the reference measurement of the second gait into a reference time series for each range of the set.
[0097] Again, additional details regarding normalization to a uniform walking speed and alignment of lead and lag times are discussed below under the heading "Phase Synchronization". Additional details regarding the time series of signals of multiple walking speeds of combined gaits are discussed below under the heading "Combined Synchronized Sequences".
[0098] In one embodiment, noise in each of the observed time series is removed by performing Fourier decomposition and reconstruction on the observed time series according to several component frequencies with the highest amplitudes. In one embodiment, to denoise one or more of the observed time series, gait monitoring method 200 transforms one or more of the observed time series into the frequency domain. Then, gait monitoring method 200 selects multiple harmonics with the largest amplitudes for one or more of the observed time series. Then, gait monitoring method 200 transforms the selected harmonics into the time domain to reconstruct one or more of the observed time series with reduced noise. More details regarding denoising of signals by Fourier decomposition and reconstruction are discussed below under the heading "Denoising".
[0099] In one embodiment, as discussed above with reference to processing block 225, the damage metric is the cumulative mean absolute error of the time series of the residuals. In one embodiment, to generate a damage metric based on the time series of the residuals, gait monitoring method 200 generates the mean absolute error of the time series of the residuals for each range of the set. Then, gait monitoring method 200 sums the mean absolute error of each time series of the residuals to produce the cumulative mean absolute error, where the damage metric is the cumulative mean absolute error.
[0100] In one embodiment, as discussed above with reference to processing block 230, the threshold indicates a value of the damage metric (such as the cumulative mean absolute error for the time series of the residuals) that is not typically reached when the individual is not injured. Thus, in one embodiment, when the measured gait of a human differs from the reference gait by a large enough amount such that the damage metric meets the threshold, the individual is considered injured.
[0101] In one embodiment, as discussed above with reference to processing block 210, the sensor is an accelerometer carried by the individual. In one embodiment, the accelerometer is part of a mobile device. In one embodiment, the computing system is a mobile device that integrates a processor, an accelerometer, and a non-transitory computer-readable medium in a unit configured to be carried by the individual.
[0102] In one embodiment, as discussed above with reference to processing block 235, an alarm that the individual is injured can be issued so that emergency service personnel can attend to the injured individual in a timely manner. In one embodiment, to generate an alarm that a human is injured, gait monitoring method 200 composes a message indicating that the human is injured; and transmits the message to initiate an emergency response. In one embodiment, the message can include information regarding the suspected injury, such as signs of a stroke or signs of intoxication, as well as the GPS or other location information of the individual.
[0103] In one embodiment, one or more non-transitory computer-readable media have computer-executable instructions (also referred to as program instructions) stored thereon. The computer-executable instructions are configured to cause one or more computers to perform operations including those of gait monitoring method 200 (or other methods described herein) when the computer-executable instructions are executed.
[0104] In one embodiment, a computing system includes one or more computers. The computing system is configured by computer-executable instructions to perform operations including those of gait monitoring method 200 (or other methods described herein).
[0105] In one embodiment, a computer program product includes a computer program. The computer program, when executed by at least one processor of a computer, causes the computer to perform operations including those of gait monitoring method 200 (or other methods described herein). As an example, the computer program can include one or more computer-executable instructions that cause the computer to perform the operations.
[0106] In one embodiment, a mobile device, which is one type of unit configured to be carried by a living being, includes (i) one or more processors, (ii) sensors, and (iii) one or more non-transitory computer-readable media having computer-executable instructions stored thereon. The mobile device is configured by the computer-executable instructions to perform operations including those of gait monitoring method 200 (or other methods described herein).
[0107] —Overview—
[0108] Today, mobile devices such as cellular phones have powerful and accurate embedded accelerometers (i.e., vibration sensors) built in. These accelerometers can be used to detect movements related to the gait of an individual (such as a human) during displacement. In one embodiment, a gait monitoring system and method can perform a prognostic analysis of an individual's gait. Through gait prognostic analysis, it becomes possible to detect an individual's injury. In one embodiment, the gait monitoring system learns an individual's "normal," nominal, or expected gait and detects the occurrence of an injury anomaly in the individual's ongoing gait.
[0109] As discussed above, an individual's injury can be caused by consciousness-altering substances or by cognitive problems (such as the early onset of a stroke). In one embodiment, a gait monitoring system and method can be used to detect: (1) injuries caused by the abuse of alcohol, marijuana, or other narcotics, thus significantly improving the over-reliance on ankle bracelets to prevent mechanical operations of injury; and (2) injuries caused by the onset of epilepsy, stroke, or other emergency health conditions, thus significantly improving emergency rescue response.
[0110] The gait monitoring systems and methods described herein present a novel approach to characterizing, quantifying, and classifying the motion of human gait. In one embodiment, a gait monitoring method characterizes a multivariate operational frequency domain signature of a gait by autonomously extracting and ranking the most significant (i.e., carrying the most relevant information about an individual's gait or having the strongest association with an individual's gait) vibratory time series signals from a database of measurements of the gait. These signals are then used to determine an individual's nominal gait. A set of reference signals representing an individual's nominal gait is sometimes referred to herein as the individual's "gait fingerprint". The gait fingerprint can then be compared to subsequent measurements to determine whether the individual is in an injured state based on a novel injury metric.
[0111] In one embodiment, accelerometer measurements can be used to characterize a nominal human gait. Also, accelerometer measurements can be used to distinguish a nominal human gait from an injured or otherwise altered gait. In one embodiment, a gait monitoring method quickly identifies specific narrow frequency bands that best reflect the energy content associated with an individual's gait (e.g., reflecting stride pattern and / or cadence). In one embodiment, to determine the gait, an accelerometer is placed on, carried by, or otherwise borne by an individual, and vibration measurements are recorded. Some narrow frequency bands that are components of the vibration measurements are closely associated with a person's gait (referred to as "significant" frequencies), while other narrow frequency bands are just random noise.
[0112] In one embodiment, a double transformation from the frequency domain to the time domain and back to the frequency domain is performed to facilitate the identification of relevant frequencies. The double transformation includes a first transformation from raw accelerometer readings in the time domain to fine frequencies in the frequency domain, e.g., by performing a fast Fourier transform on the raw accelerometer readings. The double transformation includes a second transformation from the fine frequencies obtained from the first transformation to a set of individual time series in the time domain, e.g., by gathering the fine frequencies into intervals or ranges and then generating new time series for the intervals. In one embodiment, each time series is denoised by performing Fourier decomposition and reconstruction from a subset of the signal. Subsequently, the most significant frequency intervals are determined to select the time series signals that make up a gait profile or gait fingerprint. In one embodiment, multiple strides of a gait are measured, transformed, denoised, phase synchronized, and combined to generate a gait fingerprint. In one embodiment, because a gait fingerprint includes time series signals with varying amplitude values covering multiple intervals of the spectrum, the gait fingerprint can be referred to herein as a "three-dimensional (3D) gait dynamic fingerprint".
[0113] Once a gait fingerprint is established, it can be used to determine whether an individual is injured. Determination of injury can be achieved by obtaining a second set of gait measurements of the individual and preprocessing it in a manner similar to that of generating the gait fingerprint described above. Thus, the new measurement frequencies are binned, denoised, and reconstructed, and phase normalization is performed. However, since the most significant frequencies were previously determined when generating the gait fingerprint, those most significant frequency bins that were selected to be included in the gait fingerprint are also used to monitor any new measurements of the gait.
[0114] Thus, in one embodiment, the frequencies selected to be included in the gait fingerprint are monitored and compared to the original measurements by point-by-point subtraction to generate a series of residuals. For example, if ten frequency bins are selected to be included in the gait fingerprint, then two sets of time series (for the gait fingerprint and for the current gait measurement) are compared by point-by-point subtraction between the time series for the corresponding frequency bins, resulting in ten sets of residuals. Then the mean absolute error (MAE) for each frequency is calculated. Subsequently, the MAE values are summed to distill the difference between the two signatures into an injury metric. The injury metric can be referred to herein as the Human Gait Dynamics Cumulative MAE (HGD CMAE). If the HGD CMAE exceeds a threshold, then it indicates that the current gait is outside the normal range of the gait, thus distinguishing the nominal gait of a person from an injured state. In one embodiment, the threshold is 12. In one embodiment, the user or administrator of the gait monitoring system 100 can configure the threshold to other values. When the threshold is met (e.g., met or exceeded), an alert indicating injury can be generated.
[0115] An embodiment of a gait fingerprinting method 600 associated with gait characterization and monitoring using vibration fingerprints is illustrated. In one embodiment, the gait fingerprinting method 600 is initiated at "Start" block 605 in response to the gait monitoring system determining one of the following: (i) a training or configuration session has been initiated; (ii) an instruction to generate a gait fingerprint has been received; (iii) the user or administrator of the gait monitoring system 100 has initiated the gait fingerprinting method 600; (iv) it is the time for the gait fingerprinting method 600; or (v) the gait fingerprinting method 600 should start in response to the occurrence of some other condition. In one embodiment, the gait fingerprinting method 600 is executed by a computer configured with computer-executable instructions to perform the functions of the gait monitoring system 100. After being initiated at Start block 605, the gait fingerprinting method 600 proceeds to process block 610.
[0116] At processing block 610, gait fingerprinting method 600 uses the internal accelerometer of a phone (or other mobile device) carried by an individual to obtain a first set of gait measurements of an individual performing a slow walk (e.g., as shown and described above with reference to processing block 210). At processing block 615, the measurements are subdivided into 100 frequency bins (e.g., as described above with reference to processing block 215). These 100 frequency bins cover the frequency range generated by the individual's gait. At processing block 620, the bins are tracked over time to create 100 frequency-time series bins (e.g., as described above with reference to reporting the values in the bins in processing block 215). At processing block 625, gait fingerprinting method 600 performs a Fourier transform on each of the 100 frequency-specific time series bins. At processing block 630, gait fingerprinting method 600 identifies and extracts the top 10 time series X based on the height of the peak of the maximum power spectral density in the corresponding power spectral density curve generated by the Fourier transform. 10 (e.g., as described with respect to selecting the top-ranked frequency bins in processing block 215 and further described under the heading "Identifying Top-Ranked Frequency Bins", and as described for reporting values at intervals in processing block 215).
[0117] Processing blocks 635 - 655 constitute a denoising loop for denoising the extracted top 10 time series signals X 10 . At processing block 635, a counter i is initialized. At decision block 640, gait fingerprinting method 600 determines whether all of the top 10 time series signals X 10 have been denoised by determining whether the value of counter i remains below 10. If so, then gait fingerprinting method 600 proceeds to processing block 645. At processing block 645, gait fingerprinting method 600 denoises and reconstructs the i-th time series signal X i (e.g., as described below under the heading "Denoising"). At processing block 650, the original time series signal X i is replaced with the denoised reconstructed version of the time series signal X i , e.g., by overwriting the time series signal X i with the denoised reconstructed version. At processing block 655, counter i is incremented, and processing returns to decision block 640 to determine whether there are more time signals to denoise in a further iteration of the denoising loop. When gait fingerprinting method 600 determines that all of the top 10 time series signals X 10 have been denoised by determining that the value of counter i has reached 10, the denoising loop terminates, and processing proceeds to processing block 660.
[0118] At processing block 660, gait fingerprinting method 600 obtains a second set of gait measurements for an individual performing a faster walk (i.e., a walk faster than the first, slow walk) using the internal accelerometer of the phone carried by the individual. At processing block 665, gait fingerprinting method 600 obtains a third set of gait measurements for an individual performing a fast walk or a jog (i.e., a walk faster than the second, faster walk) using the internal accelerometer of the phone carried by the individual. (Similar to the measurements of the first slow walk, these further reference measurements for progressively faster gaits can also be performed, e.g., as described above with reference to processing block 210).
[0119] For both the second set of gait measurements and the third set of gait measurements, processing blocks 670 - 684 are repeated. At processing block 670, the second set and the third set of gait measurements are also subdivided into 100 frequency bins of processing block 615. At processing block 672, gait fingerprinting method 600 extracts the observed time series from the previously determined top 10 frequency bins X 10 for both the second set and the third set of gait measurements. The time series for the second set and the third set of gait measurements can be extracted, e.g., as described for reporting values at intervals in processing block 215.
[0120] Processing blocks 674 - 684 constitute a denoising and phase normalization (synchronization) loop. At processing block 674, counter j is initialized. At decision block 676, gait fingerprinting method 600 determines whether all the time series signals of the second set (or third set) of gait measurements sampled from the previously determined top 10 frequency bins X 10 have been denoised and phase normalized by determining whether the value of counter j remains below 10. If so, then gait fingerprinting method 600 proceeds to processing block 678. At processing block 678, gait fingerprinting method 600 denoises and reconstructs (again, e.g., as described below under the heading "Denoising") the j-th time series signal Y j from the second set (or third set) of gait measurements. At processing block 680, dynamic phase synchronization (DPS) is applied to the reconstructed time series signal Y j from the second set (or third set) of gait measurements. DPS normalizes (or synchronizes) the phase of the time series signal Y j to the uniform pace or rhythm used by the top ten time series X 10 . In one embodiment, the phase of the time series signal Y j is normalized by selectively expanding or compressing the data points of signal Y j so that the signal Y jThe data points are time-aligned with the first ten time series X 10 The data points. (In one embodiment, phase synchronization can be performed as described under the heading "Phase Synchronization" below.)
[0121] At processing block 682, the original time series signal Y j is replaced with a denoised, reconstructed, and phase-synchronized version of the time series signal Y j , for example, by overwriting the time series signal Y j . At processing block 684, the counter j is incremented, and the processing returns to decision block 676 to determine whether there are any more time series signals to be denoised and phase-synchronized in a further iteration of the denoising and phase-synchronization loop. When the gait fingerprinting method 600 determines that all the time series signals Y j sampled for the second (or third) set of gait measurements have been denoised and phase-synchronized by determining that the value of the counter j has reached 10, the denoising and phase-synchronization loop terminates, and the processing proceeds to processing block 686.
[0122] At processing block 686, the corresponding denoised, phase-synchronized frequencies for all three sets of measurements are averaged. That is, the values of their respective time series data points are averaged (e.g., as described under the heading "Combined Synchronized Sequences" below). These averaged time series signals are the component time series signals of the reference gait fingerprint of the individual. At processing block 688, the gait fingerprinting method 600 creates and stores the reference 3D gait fingerprint GS 3D . For example, the gait fingerprinting method 600 combines the averaged time series signals for the first, second, and third gait measurements into component time series in a reference time series database. And, the gait fingerprinting method 600 writes the time series database to a memory or storage device for subsequent retrieval and comparison with real-time measurements of the individual's gait. After storing the gait fingerprint, the gait fingerprinting method 600 is complete at "End" block 690.
[0123] In one embodiment, once an individual's gait fingerprint has been established, it can be used to determine the individual's injury status based on changes in the individual's gait. For subsequent analysis of an individual's gait while the individual has their phone or other mobile device, the gait monitoring system and method can process the real-time output of the vibration accelerometer with processing steps similar to those used to establish the gait fingerprint. For example: divide into 100 frequency bins; pick the same frequency bins identified during calibration testing with the individual; create time series corresponding to the top frequency bins using the most recent 120 seconds of data for all top frequency bins; perform phase normalization (e.g., DPS as described herein) to shrink or expand portions of the waveform to align with the stored pace or rhythm of the subject; for all top frequency bins, subtract the new frequency time series of the top frequency bins from the reference time series of the top frequency bins stored as the individual's gait fingerprint to create a residual time series for the corresponding top frequency bin; calculate the mean absolute error (MAE) across all residual time series; and calculate the cumulative MAE of the individual, i.e., CMAE, as a measure of injury of the individual's current state. (If using a two-minute time window, then a new CMAE injury measure is produced every two minutes.)
[0124] FIG. illustrates an embodiment of a gait monitoring method 700 associated with gait characterization and monitoring using a vibration fingerprint. In one embodiment, the gait monitoring method 700 is initiated at "Start" block 705 in response to the occurrence of conditions such as those described above for the gait monitoring method 200. In one embodiment, a computer configured by computer-executable instructions to perform the functions of the gait monitoring system 100 executes the gait monitoring method 700. After initiation at block 705, the gait monitoring method 700 proceeds to processing block 710.
[0125] At processing block 710, the gait monitoring method 700 obtains measurements of the gait for two minutes using the phone accelerometer (e.g., as shown and described above with reference to processing block 210). At processing block 715, the measurements of the gait are subdivided into 100 frequency bins (e.g., as described above with reference to processing block 215). At processing block 720, the bins are tracked over time to create 100 frequency time series bins (e.g., as described above with reference to reporting the values in the bins in processing block 215). At processing block 725, a Fourier transform is performed on each of the 100 frequency-specific time series bins. At processing block 730, the gait monitoring method 700 extracts the 10 observed time series UUT corresponding to the top 10 frequencies X previously determined (at processing block 630) 10 10 , for example, by selecting those time series sampled from the top 10 frequencies as the observed time series UUT 10 At processing block 735, gait monitoring method 700 initializes the reference 3D gait fingerprint GS 3D (a set of reference time series), for example, by retrieving it from a storage device or memory (e.g., as shown at the input of reference time series 160 and described at processing block 220).
[0126] Processing blocks 740 - 765 constitute a denoising and phase normalization (synchronization) loop. At processing block 740, a counter i is initialized. At decision block 745, gait monitoring method 700 determines whether all ten observed time series UUT 10 have been denoised and phase - normalized by determining whether the value of counter i remains below 10. If so, then gait monitoring method 700 proceeds to processing block 750. At processing block 750, gait monitoring method 700 denoises and reconstructs the i - th time series signal UUT i (e.g., as described below under the heading "Denoising"). At processing block 755, dynamic phase synchronization (DPS) is applied to the reconstructed time series signal UUT i to phase - normalize (synchronize) the time series signal UUT i to the uniform gait speed used by the first ten time series X 10 (e.g., as described below under the heading "Phase Synchronization"). At processing block 760, the original time series signal UUT i is replaced by the denoised, reconstructed, and phase - synchronized version of the time series signal UUT i , for example, by overwriting the time series signal UUT i .
[0127] At processing block 765, counter i is incremented, and the process returns to decision block 745 to determine whether there are more time series signals in UUT 10 that need to be denoised and phase - synchronized. When gait monitoring method 700 determines that all time series signals UUT i have been denoised and phase - synchronized by determining that the value of counter j has reached 10, the denoising and phase - synchronization loop terminates, and the process proceeds to processing block 770. At processing block 770, gait monitoring method 700 creates a 3D gait fingerprint surface UUT 3D (i.e., creates a current gait fingerprint or an observed time series database for the current measurement of an individual's gait).
[0128] Processing blocks 772 - 780 form a residual and MAE generation loop. At processing block 772, counter j is initialized. At decision block 774, gait monitoring method 700 determines whether all of the observed time series in the current gait fingerprint have been compared with the corresponding reference time series in the reference gait fingerprint by determining whether the value of counter j remains below 10. If so, then gait monitoring method 700 proceeds to processing block 776. At processing block 776, gait monitoring method 700 calculates the residual R j between the reference signal (reference time series) GS j and the observed signal (observed time series) UUT j . For example, the residual can be generated as described in reference processing block 220. At processing block 778, gait monitoring method 700 performs a mean absolute error calculation on the residual R j to find the mean absolute error MAE j between the reference time series GS j and the observed time series UUT j . The mean absolute error MAE j can be generated, for example, as described in processing block 225. The mean absolute error MAE j is stored for subsequent processing to generate a cumulative mean absolute error as a damage metric. At processing block 780, counter j is incremented and processing returns to decision block 774 to determine whether a residual and MAE have been generated for each observed time series UUT j . When gait monitoring method 700 determines that a residual and MAE have been generated for each observed time series UUT j , the residual and MAE generation loop terminates and processing proceeds to processing block 782.
[0129] At processing block 782, gait monitoring method 700 sums the ten mean absolute errors MAE jSum to calculate the Cumulative Mean Absolute Error (CMAE) (e.g., as shown and described with reference to processing block 225). The CMAE can be used as a damage metric. At decision block 784, gait monitoring method 700 compares the CMAE (damage metric) with a damage threshold (e.g., as described in processing block 230). In this example, the damage threshold is 12. If the CMAE is not greater than 12, then the damage threshold is not met (as described in processing blocks 230 - 235), and gait monitoring method 700 proceeds to the "end" block 786 and terminates. If the CMAE is greater than 12, then the damage threshold is met (as described in processing blocks 230 - 235), and gait monitoring method 700 proceeds to processing block 788. At processing block 788, gait monitoring method 700 indicates that the individual's gait is abnormal (e.g., by generating and displaying or transmitting an alert, as described in processing block 235). When indicating that the individual's gait is abnormal, gait monitoring method 700 proceeds to the "end" block 786 and terminates. In one embodiment, after reaching the "end" block 786, gait monitoring method returns to start block 705 to repeat performing gait measurements for another two minutes.
[0130] —Identify top - ranked frequency intervals—
[0131] In one embodiment, gait monitoring method 200 further includes an automated framework to identify the top - ranked frequency intervals that best characterize an individual's normal gait. For example, a configuration or training process is performed prior to gait monitoring method 200 to generate a set of reference time series of those top - ranked frequency intervals that are most relevant to the individual's normal gait. At a high level, the gait monitoring method receives reference measurements of the normal gait of an individual during non - injured periods of individual movement, identifies a set of top - ranked frequency intervals, i.e., the set of frequency intervals where the reference measurements are characterized by the most frequent vibration content, and converts the reference measurements of the normal gait into a reference time series for each frequency interval in the set.
[0132] In one embodiment, reference measurements of the gait of an individual are obtained during non - injured periods of the individual and are used to select the set of frequency intervals to be used in processing block 215 and to generate the reference time series to be used in processing block 220. In one embodiment, the reference measurements are obtained prior to receiving the gait measurements of the individual at processing block 210. In one embodiment, the set of frequency intervals is selected prior to converting the measurements of the gait into an observed time series at processing block 215. In one embodiment, the reference time series is generated prior to generating the time series of residuals at processing block 220.
[0133] Reference measurements of normal gait are obtained in a manner similar to that of the reference processing block 210 above for receiving measurements of an individual's gait from a sensor. Additionally, the reference measurements are indicated as representative of the normal displacement of the individual. In one embodiment, the reference measurements are, by definition, indicated as representing the normal displacement of the individual because they are obtained during a configuration or training process where it is assumed that the individual is not injured.
[0134] Once the reference measurements of normal gait are obtained, the next step is to determine the optimal or most significant reference frequency intervals (i.e., the top-ranked frequency intervals that best characterize the normal gait of the individual) for monitoring. To accomplish the associated frequency identification, the behavior of the time series for each interval is further examined in the frequency domain. The time series generated for each interval that covers the power spectrum of the gait measurement is individually transformed back to the frequency domain again, thereby generating a separate power spectrum for each time series. Then, the intervals are ranked according to the strongest frequency components in the associated individual power spectra (i.e., ranked according to the maximum amplitude in the individual power spectra). In a spectrogram, there are multiple top-ranked signals with the strongest frequency components (the highest peaks). The top few frequency intervals are selected based on the height of the peaks in the frequency domain. These peaks correspond to the gait frequency of the individual.
[0135] For example, each of the 100 intervals containing the new time series is transformed back to the frequency domain again and ranked according to the maximum periodic amplitude, and the top 10 intervals with the highest amplitudes are selected. In one embodiment, selecting the top 10 intervals out of 100 intervals has been empirically shown to be sufficient to distinguish the complexity of the gait motion. Then, the residuals between the reference time series from these 10 intervals and the observed time series from these 10 intervals are used to generate a damage metric (e.g., as described in reference processing block 225 herein).
[0136] —Denosing—
[0137] There are complex factors that can cause the values of the damage metric (HGD CMAE) between measurements to skew. One complex factor that can occur when comparing measurements is that the time series sampled from the frequency intervals can be noisy, thus masking the underlying patterns. The noise can be reduced through signal reconstruction.
[0138] In one embodiment, to reduce noise, each time series in the frequency interval is decomposed by a technique called Fourier decomposition, all harmonics except the first few harmonics (also called component frequencies) are removed, and then reconstructed from the remaining first few harmonics to generate a denoised signal. The decomposition is performed in the frequency domain by a fast Fourier transform (FFT) of the time series signal. The first N harmonics in the power spectral density of the signal are selected. To select the first N harmonics, the frequencies of the N highest peaks in the power spectral density curve are identified. Experiments show that N = 3 works well for denoising the signal by reconstruction. After selecting the first N (e.g., N = 3) harmonic modes to be retained, an inverse fast Fourier transform (iFFT) is used to reconstruct the original time series, removing some high-frequency noise components.
[0139] In one embodiment, this method of denoising by reconstruction eliminates some high-frequency noise in the binned frequency time series. Advantageously, in one embodiment, this method of denoising by reconstruction does not introduce signal bias in the time series. Conventional smoothing techniques tend to make both peaks and valleys closer to the average value, thus introducing a certain degree of bias at the high and low points in the curve. In one embodiment, in addition to ensuring that the minimum signal bias is introduced by this Fourier decomposition and iFFT reconstruction process, when taking the difference (i.e., point-by-point subtraction) between the reference gait fingerprint and the subsequently measured gait fingerprint, the residual function is also minimized. This makes the residual produce a more distinct separation when comparing normal gait with injured gait. In one embodiment, the Fourier decomposition and iFFT reconstruction process reduce the instability of the injury metric (HGD CMAE) values between measurements and increase the certainty of injury assertion.
[0140] FIG. 800 shows a graph illustrating the relative noise levels of an example time series sampled from an example frequency interval at 6.5 Hz. The raw, undenoised signal 805 and the denoised signal 810 are plotted relative to the time axis 815 and the amplitude axis 820. The undenoised signal 805 shows that the example time series before reconstruction is a noisy signal. To reduce the noise of the raw, undenoised signal 805, the signal reconstruction process discussed above is applied. An FFT transform is applied to the undenoised signal 805. The first 3 harmonics are selected from the power spectral density of the undenoised signal 805. After selecting the first 3 harmonics (for the top-ranked harmonic modes to be retained), an inverse FFT (called iFFT) is used to reconstruct the original time series, removing some high-frequency noise components, thereby generating the denoised signal 810. The denoised signal 810 has reduced noise in the signal reconstruction process for denoising compared to the undenoised signal 805.
[0141] —Phase Synchronization—
[0142] An additional complication that can cause the values of the damage metric (HGD CMAE) between measurements to skew is that people tend to walk at different paces. Measurements taken from people walking at different speeds result in faster or slower periodic behavior within the frequency range, causing the time series to be out of phase. A technique called dynamic phase synchronization (DPS) can be used to correct the phase of the time series to normalize the phase between human walking paces. This provides a uniform pace or rhythm of displacement in the time series.
[0143] In one embodiment, before generating a time series of residuals using measurements of the gait at processing block 220, the measurements of the gait can be stretched (expanded) or shortened (compressed) to match the uniform pace of displacement and phase-align with a reference pace. The uniform pace of displacement can be the pace or rhythm of displacement common to the reference time series. As a repetitive, periodic, or cyclic motion, the gait has a phase that indicates a fraction of the cycle of the motion that has been completed. In one embodiment, the uniform pace has a uniform period and frequency. For example, the uniform pace is one walking cycle (two steps, left and right) per second, or a period of one second. Other consistent periods and frequencies of the uniform pace can be set by the user or administrator of the gait monitoring system 100. In one embodiment, aligning with the uniform pace moves the measurements of the gait along the time dimension so that the phase of the measurements of the gait occurs simultaneously with the phase of the uniform pace, for example, by adjusting the lead and lag times of the measurements of the gait.
[0144] Inconsistent or varying walking speeds cause the observed time series to be out of phase with the reference time series (in the reference gait fingerprint). Generating residuals from an out-of-phase time series results in larger residuals, which in turn increases the occurrence of false alarms. The dynamic phase synchronization (DPS) method can be performed upstream of the residual calculation to correct these phase shifts in real time. In one embodiment, DPS compresses and expands the time series data points in a moving window to continuously normalize the phase by a transformation factor and sequentially optimize the correlation lead or lag time between the target signals. After DPS is completed over all the moving time windows (over the length of the observed time series), a version of the adjusted observed time series has been generated from the previously variable out-of-phase time series. The adjusted observed time series is now synchronized with the reference time series (reference signal) over the entire time domain.
[0145] Once the time series of measurements of the gait at different paces has been denoised and reconstructed, the individual time series are phase-normalized (such as DPS) to minimize the variability in the time series. Time series sampled from the top-ranked frequency bin (6 Hz) for a person walking slowly, a person walking quickly, and a person jogging are shown in three subplots: in subplot 900 of the unsynchronized time series before phase normalization is applied, in subplot 930 of the synchronized time series after phase normalization is applied, and in subplot 960 of the average of the synchronized time series the average of the signal after phase normalization. Each subplot shows the time series signal plotted on a time axis 970 and an amplitude axis 975.
[0146] Subplot 900 of the unsynchronized time series shows the time series signals for three independent walking speeds (slow walk 905, fast walk 910, and jog 915) after denoising and reconstruction for the 6 Hz frequency bin. Slow walk 905 is the slowest walking speed. Fast walk 910 is the first increase in walking speed. Jog 915 shows a further increase in walking speed to a light jog. The slow walk 905, fast walk 910, and jog 915 signals are out of phase to varying degrees. The phase misalignment is particularly evident when comparing the peaks and valleys of the slow walk 905 and fast walk 905 signals. Subplot 930 of the synchronized time series illustrates the signals after phase normalization is applied. The peaks and valleys of the slow walk 905, fast walk 910, and jog 915 signals are closer to being aligned.
[0147] In one embodiment, the synchronized phase of the time series signal provides additional improvement to the stability of the damage metric (HGD CMAE) value between measurements and increases the certainty of damage assertions.
[0148] —A combined synchronized sequence—
[0149] In one embodiment, the reference time series for each frequency bin represents a combination of multiple gaits in which an individual displaces at different walking speeds when uninjured. For example, reference measurements can be taken of an individual walking slowly, walking at a moderate pace, walking quickly, jogging, or running. Thus, in one embodiment, reference measurements of multiple gaits of an individual are taken when the individual is uninjured. The reference measurements of the multiple gaits are stretched (expanded) or shortened (compressed) to have a uniform walking speed or rhythm. Then, the reference measurements of the multiple gaits are phase synchronized or aligned, for example, by adjusting the lead and lag times of the gaits. Then, the reference measurements of the multiple gaits are averaged to produce a reference time series. This averaging combines the reference measurements of the different walking speeds of the individual into a gait fingerprint.
[0150] Refer again to , once the time series of the time series signals for slow walking 905, fast walking 910, and jogging 915 are synchronized to a reference pace or rhythm (e.g., using DPS), the time series signals for slow walking 905, fast walking 910, and jogging 915 are averaged to produce an average time series signal 920. The average time series signal 920 is a reference denoised time series signal in a frequency band centered at 6 Hz. A subplot of the average value of the synchronized time series 960 illustrates the average time series signal 920 of the slow walking 905, fast walking 910, and jogging 915 signals once phase normalization is complete. The average time series signal 920 is more representative of the behavior of the time series in the 6 Hz frequency band than any one measurement. The average time series signal 920 will ultimately be used as one of the signals for the gait fingerprint.
[0151] In one embodiment, the denoising, phase synchronization, and averaging steps are applied to the time series for an individual from all of the top-ranked frequency bands (e.g., the top 10 frequency bands). The time series used for denoising, synchronization, and averaging for the top-ranked frequency bands together define the reference gait fingerprint for the individual. In one embodiment, the reference gait fingerprint for each individual is stored in a library (such as a database or other data structure for gait fingerprints).
[0152] In one embodiment, when making gait measurements for multiple gaits (e.g., slow walking, fast walking, and jogging), the top-ranked frequencies are determined based on the measurement at the slowest pace. For example, after determining the top-ranked frequencies for slow walking, the binning and sorting will be repeated for the remaining set of measurements. However, since slow walking has the longest period and each cycle of the gait has the most measurements, it will be more indicative of gait dynamics than the other measurements. Thus, in one embodiment, instead of finding the optimal frequencies for faster walking, the optimal frequencies found during slow walking are used for all three gaits.
[0153] —Selected advantages—
[0154] In one embodiment, the systems, methods, and other embodiments described herein for gait monitoring provide accurate detection of the onset of cognitive impairment in a living being that moves with its feet. In one embodiment, the systems, methods, and other embodiments described herein for gait monitoring provide detection of human health abnormalities in an individual with extremely low false positives and false negatives based on a measurement of the difference between the individual's gait and an expected normal gait. In one embodiment, an impairment can be detected with just two minutes of monitoring.
[0155] The onset of cognitive impairment can be an indicator of an individual's intoxication due to alcohol, marijuana, or other consciousness-altering substances, and in one embodiment, in response to the highly accurate detection of impairment provided by the systems, methods, and other embodiments described herein for gait monitoring, an individual can be prevented from operating dangerous machinery. The onset of cognitive impairment can also be an indicator of the onset of a serious health problem such as a stroke or seizure, and in one embodiment, in response to the rapid and accurate detection of impairment provided by the systems, methods, and other embodiments described herein for gait monitoring, emergency personnel can be dispatched quickly and early.
[0156] —Software Module Embodiments—
[0157] Generally, software instructions are designed to be executed by one or more appropriately programmed processors accessing memory. These software instructions can include, for example, computer-executable code and source code that can be compiled into computer-executable code. These software instructions can also include instructions written in an interpreted programming language such as a scripting language.
[0158] Such instructions can be arranged into program modules, and each such module performs a specific task, process, function, or operation. The operation of the entire set of modules can be controlled or coordinated by an operating system (OS) or other form of organizing platform.
[0159] In one embodiment, one or more of the components described herein are configured as program modules stored on a non-transitory computer-readable medium. The program modules are configured with stored instructions that, when executed by at least one processor, cause the computing device to perform the corresponding function(s) as described herein.
[0160] In one embodiment, one or more of the components described herein can communicate with each other via electronic messages or signals. These electronic messages or signals can be configured as calls to a function or procedure that accesses the features or data of a component, such as, for example, an application programming interface (API) call. In one embodiment, these electronic messages or signals are sent between hosts in a format compatible with the Transmission Control Protocol / Internet Protocol (TCP / IP) or other computer networking protocols. In one embodiment, a component can (i) generate or compose an electronic message or signal to issue a command or request to another component; (ii) transmit the message or signal to other components; and (iii) parse the content of the received electronic message or signal to identify the command or request that the component can execute, and in response to identifying the command, the component will automatically execute the command or request.
[0161] —Computing Device Embodiments—
[0162] FIG. illustrates an example computing system 1000 including an example computing device 1005 that is configured and / or programmed as a dedicated computing device having one or more of the example systems and methods described herein, and / or equivalents. The example computing device 1005 can be a computer including at least one hardware processor 1010, a memory 1015, and an input / output port 1020 operably connected via a bus 1025. In one example, the computing device 1005 can include gait monitoring logic 1030 configured to assist in monitoring an individual's gait to detect an individual's injury, similar to the logic, systems, and methods shown and described with reference to as shown and described.
[0163] In different examples, the logic 1030 can be implemented in hardware, a non-transitory computer-readable medium 1037 having stored instructions, firmware, and / or a combination thereof. Although the logic 1030 is shown as a hardware component attached to the bus 1025, it should be appreciated that in other embodiments, the logic 1030 can be implemented in the processor 1010, stored in the memory 1015, or stored on the disk 1035.
[0164] In one embodiment, the logic 1030 or the computer is a component (e.g., structure: hardware, non-transitory computer-readable medium, firmware) for performing the described actions. In some embodiments, the computing device can be a server operating in a cloud computing system, a server configured in a software as a service (SaaS) architecture, a smart phone, a laptop computer, a tablet computing device, etc.
[0165] The component can be implemented as, for example, an ASIC programmed to monitor an individual's gait to detect an individual's injury. The component can also be implemented as stored computer-executable instructions that are presented to the computing device 1005 as data 1040, temporarily stored in the memory 1015, and then executed by the processor 1010.
[0166] The logic 1030 can also provide a component (e.g., hardware, non-transitory computer-readable medium storing executable instructions, firmware) for execution.
[0167] Generally describing an example configuration of the computing device 1005, the processor 1010 can be various processors, including dual microprocessors and other multiprocessor architectures. The memory 1015 can include volatile memory and / or non-volatile memory. The non-volatile memory can include, for example, ROM, PROM, etc. The volatile memory can include, for example, RAM, SRAM, DRAM, etc.
[0168] The storage disk 1035 can be operatively connected to the computing device 1005 via, for example, an input / output (I / O) interface (such as a card, device) 1045 and an input / output port 1020 controlled by at least one input / output (I / O) controller 1047. The disk 1035 can be, for example, a disk drive, a solid state disk drive, a floppy disk drive, a tape drive, a Zip drive, a flash card, a memory stick, etc. In addition, the disk 1035 can be a CD-ROM drive, a CD-R drive, a CD-RW drive, a DVD ROM, etc. The memory 1015 can store, for example, a process 1050 and / or data 1040. The disk 1035 and / or the memory 1015 can store an operating system that controls and allocates resources of the computing device 1005.
[0169] The computing device 1005 can interact with, control, or be controlled by an input / output (I / O) device via the input / output (I / O) controller 1047, the I / O interface 1045, and the input / output port 1020. The input / output port 1020 can include, for example, a serial port, a parallel port, a network port, and a USB port. The input / output device can include, for example, one or more displays 1070, a printer 1072 (such as an inkjet printer, a laser printer, or a 3D printer), an audio output device 1074 (such as a speaker or a headset), a text input device 1080 (such as a keyboard), a cursor control device 1082 for pointing and selection input (such as a mouse, a trackball, a touch screen, a joystick, a pointing stick, an electronic stylus, an electronic tablet), an audio input device 1084 (such as a microphone or an external audio player), a video input device 1086 (such as a video and still camera or an external video player), an image scanner 1088, a video card (not shown), the disk 1035, a network device 1055, etc. In one embodiment, the computing device 1005 is connected to and interacts with one or more sensors (such as an accelerometer 1090) that convert physical phenomena into electrical signals via the input / output (I / O) controller 1047, the I / O interface 1045, and the input / output port 1020 and receives input from the one or more sensors. In one embodiment, the accelerometer is a solid state multi-axis accelerometer that can be carried by an individual. In one embodiment, the accelerometer 1090 is fixed to the chassis of the computing device 1005. In one embodiment, the accelerometer 1090 can be remote from the computing device 1005, and the accelerometer 1090 can be connected to the computing device 1005 via a wired or wireless network. In one embodiment, the computer 1005 is configured with logic to collect readings from sensors such as the accelerometer 1090 and store them as observations in a time series data structure such as a time series database.
[0170] The computing device 1005 can operate in a network environment and can thus be connected to the network device 1055 via the I / O interface 1045 and / or the I / O port 1020. Through the network device 1055, the computing device 1005 can interact with the network 1060. Through the network, the computer 1005 can be logically connected to the remote computer 1065. Networks with which the computer 1005 can interact include, but are not limited to, LANs, WANs, and other networks.
[0171] —Mobile Device Embodiment—
[0172] Now refer to , which illustrates an example mobile device 1100 configured and / or programmed using one or more of the example systems and methods described herein and / or their equivalents. In one example, the mobile device 1100 can include gait monitoring logic 1105 configured to facilitate change handling independent of data providers in mobile client applications, similar to the logic, systems, and methods shown and described in reference to . The mobile device 1100 can include a cellular antenna 1110. This example embodiment can be implemented in the signal processing and / or control circuitry generally identified at 1120 in . In some implementations, the mobile device 1100 includes a microphone 1130, an audio output 1140 (such as a speaker and / or an audio output jack), a display 1150, and / or an input device 1160 (such as a keypad, a graphical keypad / keyboard, a touch screen, a pointing device, voice actuation, and / or other input devices). In one embodiment, the mobile device 1100 includes a sensor (such as an accelerometer 1165) for sensing vibrations or movement of the mobile device. The signal processing and / or control circuitry 1120 and / or other circuitry (not shown) in the mobile device 1100 can process data, perform encoding / decoding and / or encryption, perform calculations, format data, and / or perform other cellular phone, tablet, or mobile device functions.
[0173] The mobile device 1100 can communicate with a mass data storage device 1170 that stores data in a non-volatile manner, such as stored in magnetic, optical, and / or solid-state storage devices (e.g., including HDDs, DVDs, and / or SSDs). The cellular phone 1100 can be connected to a memory 1180, such as RAM, ROM, low-latency non-volatile memory (such as flash memory), and / or other suitable electronic data storage devices. The mobile device 1100 can also support a connection to a WLAN through a WLAN network interface 1190. The mobile device 1100 can include a WLAN antenna 1195. In one embodiment, the mobile device 1100 can communicate with a cloud storage system that stores data in a non-volatile manner through a WLAN. In one embodiment, the example systems and methods can be implemented using the WLAN network interface 1190, but other arrangements are possible.
[0174] —Definitions and Other Embodiments—
[0175] In another embodiment, the described methods and / or their equivalents can be implemented with computer-executable instructions. Thus, in one embodiment, a non-transitory computer-readable / storage medium is configured to have computer-executable instructions for an algorithm / executable application stored thereon, which when executed by one or more machines cause the one or more machines (and / or associated components) to perform the method. Example machines include, but are not limited to, processors, computers, servers operating in a cloud computing system, servers configured with a software-as-a-service (SaaS) architecture, smart phones, and the like. In one embodiment, a computing device is implemented with one or more executable algorithms configured to perform any of the disclosed methods.
[0176] In one or more embodiments, the disclosed methods or their equivalents are performed by any of the following: computer hardware configured to perform the method; or, computer instructions embodied in a module stored in a non-transitory computer-readable medium, where the instructions are configured as an executable algorithm, and the executable algorithm is configured to perform the method when executed by at least one processor of a computing device.
[0177] Although, for purposes of simplifying the description, the methods illustrated in the figures are shown and described as a series of blocks of an algorithm, it should be recognized that these methods are not limited by the order of the blocks. Some blocks may occur in a different order than shown and described and / or may occur concurrently with other blocks. Also, example methods can be implemented using fewer blocks than all of those illustrated. The blocks can be combined or divided into multiple actions / components. Additionally, and / or alternatively, additional actions not illustrated in the blocks can be employed by the methods.
[0178] The following includes definitions of selected terms used herein. The definitions include various examples and / or forms of components that fall within the scope of the term and can be used to implement. The examples are not intended to be restrictive. Both the singular and plural forms of the term can be within the definition.
[0179] References to "one embodiment", "an embodiment", "one example", "an example", etc. indicate that the (one or more) embodiments or (one or more) examples so described may include a particular feature, structure, characteristic, property, element, or limitation, but not every embodiment or example must include that particular feature, structure, characteristic, property, element, or limitation. Additionally, repeated use of the phrase "in one embodiment" does not necessarily refer to the same embodiment, but may.
[0180] As used herein, "data structure" is the organization of data stored in a memory, storage device, or other computerized system in a computing system. A data structure can be any one of, for example, data fields, data files, data arrays, data records, databases, data tables, graphs, trees, linked lists, etc. A data structure can be formed by many other data structures and contain many other data structures (e.g., a database includes many data records). According to other embodiments, other examples of data structures are possible.
[0181] As used herein, "computer-readable medium" or "computer storage medium" refers to a non-transitory medium that stores instructions and / or data configured to perform one or more of the disclosed functions when executed. In some embodiments, the data can be used as instructions. The computer-readable medium can take forms including but not limited to non-volatile media and volatile media. Non-volatile media can include, for example, optical discs, magnetic disks, etc. Volatile media can include, for example, semiconductor memories, dynamic memories, etc. Common forms of computer-readable media can include but are not limited to floppy disks, flexible disks, hard disks, magnetic tapes, other magnetic media, application-specific integrated circuits (ASICs), programmable logic devices, compact discs (CDs), other optical media, random access memory (RAM), read-only memory (ROM), memory chips or cards, storage sticks, solid-state storage devices (SSDs), flash drives, and other media that a computer, processor, or other electronic device can operate on. If each type of medium is selected for implementation in an embodiment, it can include stored instructions of an algorithm configured to perform one or more of the disclosed and / or claimed functions.
[0182] As used herein, "logic" refers to components implemented using computer or electrical hardware, a non-transitory medium having stored executable applications or program modules, and / or combinations thereof, to perform any function or action as disclosed herein, and / or to cause a function or action from another logic, method, and / or system to be performed as disclosed herein. Equivalent logic can include firmware, a microprocessor programmed with an algorithm, discrete logic (e.g., ASIC), at least one circuit, an analog circuit, a digital circuit, a programmable logic device, a memory device containing instructions of an algorithm, etc., any of which can be configured to perform one or more of the disclosed functions. In one embodiment, the logic can include one or more gates, combinations of gates, or other circuit components configured to perform one or more of the disclosed functions. In cases where multiple logics are described, it is possible to combine the multiple logics into one logic. Similarly, in cases where a single logic is described, it is possible to distribute that single logic among multiple logics. In one embodiment, one or more of these logics are corresponding structures associated with performing the disclosed and / or claimed functions. The choice of which type of logic to implement can be based on desired system conditions or specifications. For example, if higher speed is considered, hardware will be selected to implement the function. If lower cost is considered, stored instructions / executable applications will be selected to implement the function.
[0183] An "operable connection" or the connection by which entities are "operably connected" is a connection through which signals, physical communication, and / or logical communication can be sent and / or received. An operable connection can include a physical interface, an electrical interface, and / or a data interface. An operable connection can include different combinations of interfaces and / or connections sufficient to allow operable control. For example, two entities can be operably connected to transmit signals to each other directly or through one or more intermediate entities (e.g., a processor, an operating system, logic, a non-transitory computer-readable medium). A logical and / or physical communication channel can be used to create an operable connection.
[0184] As used herein, "user" includes, but is not limited to, one or more individuals, computers, or other devices, or combinations thereof.
[0185] Although the disclosed embodiments have been illustrated and described in considerable detail, it is not intended to limit or in any way define the scope of the appended claims to such details. Of course, it is not possible to describe every conceivable combination of components or methods for the various aspects of the subject matter. Accordingly, the present disclosure is not limited to the specific details or illustrative examples shown and described. Thus, the present disclosure is intended to cover alterations, modifications, and variations that fall within the scope of the appended claims.
[0186] To the extent that the term "comprising" is used in the detailed description or claims, it is intended to be inclusive in a manner similar to the way the term "including" is interpreted when used as a transitional word in a claim.
[0187] To the extent that the term "or" is used in the detailed description or claims (e.g., A or B), it is intended to mean "A or B or both". When the applicant intends to indicate "only A or B but not both", then the phrase "only A or B but not both" will be used. Accordingly, the term "or" is used inclusively herein, and not in an exclusive sense.
Claims
1. A computer-implemented method, the method comprising: Receiving measurements of a gait of a living being from a sensor, wherein the gait of the living being is monitored to detect an injury; Converting the measurements of the gait into a time series of observations for each frequency range from a set of frequency ranges; Generating a time series of residuals for each range of the set by pointwise subtraction between the time series of observations for each range of the set and a reference time series; Generating an injury metric based on the time series of residuals; Comparing the injury metric with a threshold for an injury; And In response to the injury metric meeting the threshold, generating an alert that the living being is injured.
2. The computer-implemented method according to claim 1, further comprising, before generating the time series of residuals: Normalizing the measurements of the gait to a uniform pace by expanding or compressing the measurements of the gait in a moving window; and Aligning the lead and lag times of the measurements of the gait with the uniform pace.
3. The computer-implemented method according to any one of claims 1-2, further comprising, before receiving the measurements of the gait of the living being: Receiving a reference measurement of a second gait of the living being when the living being is not injured; Identifying a plurality of frequency ranges showing the highest level of vibration content in the reference measurement as a set of frequency ranges; and Converting the reference measurement of the second gait into a reference time series for each range of the set.
4. The computer-implemented method according to claim 3, further comprising: Receiving a reference measurement of a third gait of the living being when the living being is not injured, wherein the second gait and the third gait have different displacement paces; Normalizing the reference measurements of the second gait and the third gait to a uniform pace by expanding or compressing the reference measurements of each of the second gait and the third gait in a moving window; Aligning the lead and lag times of the reference measurements of the second gait and the third gait with the uniform pace; And Generating an average of the reference time series for each range of the set from the reference measurements of the second gait and the third gait to convert the reference measurement of the second gait into a reference time series for each range of the set.
5. The computer-implemented method according to any one of claims 1-4, further comprising denoising one or more of the time series of observations by: Transforming the one or more of the time series of observations into a frequency domain; Selecting a plurality of harmonics having the largest amplitudes for the one or more of the time series of observations; and Transforming the selected harmonics into a time domain to reconstruct the one or more of the time series of observations with reduced noise.
6. The computer-implemented method according to any one of claims 1-5, wherein generating an injury metric based on the time series of residuals further comprises: Generating an average absolute error of the time series of residuals for each range of the set; Summing the average absolute error of each time series of residuals to produce a cumulative average absolute error, wherein the injury metric is the cumulative average absolute error.
7. The computer-implemented method according to any one of claims 1-6, wherein the sensor is an accelerometer carried by the living being.
8. A computer-implemented method according to any one of claims 1-7, wherein the creature is considered injured when the measured gait of the creature is sufficiently different from a reference gait such that an injury metric meets a threshold.
9. A computer-implemented method according to any one of claims 1-8, wherein generating an alert that the creature is injured further comprises instructions that, when executed by at least a processor, cause a computing system to perform the following operations: Compose a message indicating that the creature is injured; and Transmit the message to initiate an emergency response.
10. One or more non-transitory computer-readable media having computer-executable instructions stored thereon, wherein the computer-executable instructions are configured to cause one or more computers to perform operations including those described in any one of claims 1-9 when the computer-executable instructions are executed.
11. A computing system comprising one or more computers, wherein the computing system is configured by computer-executable instructions to perform operations including those described in any one of claims 1-9.
12. A computer program product comprising a computer program that, when executed by at least a processor of a computer, causes the processor to perform operations including those described in any one of claims 1-9.
13. A mobile device in a unit configured to be carried by a creature, the mobile device comprising one or more processors, sensors, and one or more non-transitory computer-readable media having computer-executable instructions stored thereon, wherein the mobile device is configured by computer-executable instructions to perform operations including those described in any one of claims 1-9.
14. A non-transitory computer-readable medium having computer-executable instructions stored thereon that, when executed by at least a processor of a computer, cause the computer to: Receive measurements of a human's gait from a sensor, wherein the human's gait is monitored to detect injury; Convert the measurements of the gait into a time series of observations for each frequency interval from a set of frequency intervals; Generate a time series of residuals for each range of the set by pointwise subtraction between the time series of observations for each range of the set and a reference time series; Generate an injury metric based on the time series of residuals; Compare the injury metric to a threshold for injury; And In response to the injury metric meeting the threshold, generate an alert that the human is injured.
15. A computing system comprising: At least one processor; An accelerometer connected to the processor; A non-transitory computer-readable medium comprising instructions stored thereon that, when executed by at least the processor, cause the computing system to: Receive measurements of a human's gait from the accelerometer, wherein the human's gait is monitored to detect injury; Convert the measurements of the gait into a time series of observations for each frequency interval from a set of frequency intervals; Generate a time series of residuals for each range of the set by pointwise subtraction between the time series of observations for each range of the set and a reference time series; Generate an injury metric based on the time series of residuals; Compare the injury metric to a threshold for injury; And Generate an alert of human injury in response to the injury metric meeting a threshold.