Motion analysis method and motion analysis device
The motion analysis method accurately determines walking or running periods by refining initial estimates using an iterative optimization process, addressing inaccuracies in current devices and improving clinical assessment validity.
Patent Information
- Application Number
- JP2022574157
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-06-12
- Filing Date
- 2021-06-11
- Publication Date
- 2025-08-26
- Estimated Expiration
- 2041-06-11
AI Technical Summary
Current activity measurement devices, such as activity trackers and pedometers, often inaccurately count steps and walking duration due to misinterpretation of vigorous activities, leading to overestimation of walking periods and affecting the validity of clinical assessments and treatment decisions.
A motion analysis method and apparatus that utilizes an iterative optimization process to determine precise start and stop times of walking or running periods by analyzing acceleration data from a motion sensor, employing epoch division, autocorrelation functions, and a predefined optimization metric to refine initial estimates.
Improves the accuracy of step counting and walking duration measurement, ensuring compliance with clinical trial requirements and enhancing the reliability of health treatment decisions.
Smart Images

Figure 0007729843000005 
Figure 0007729843000006 
Figure 0007729843000007
Abstract
Description
[Technical Field]
[0001] The present invention relates to the field of measuring user movement. In particular, embodiments of the present invention relate to methods and devices for measuring user movement to detect when a user is walking or running and to determine how long the user has been walking or running. [Background technology]
[0002] Devices such as activity trackers and pedometers are used to measure a user's movement. These devices can be used to determine when a user is walking, thereby determining the number of steps the user is taking (step count). Accurately counting steps can be important in determining an accurate amount of activity for a user.
[0003] Current devices are generally aimed at the leisure market, where repeatability is emphasized over accuracy. These devices can be dedicated devices designed to monitor a user's steps, or they can take the form of a software application running on a user device such as a mobile phone or smartwatch. As anyone who has used these devices knows, different devices often produce significantly different step counts for the same distance walked.
[0004] Current devices can inaccurately count a user's steps and walking duration. Current activity measurement methods can count sufficiently vigorous activity as a walking period. For example, with wrist-worn devices, activities that require wrist movement, such as chopping vegetables, can cause misreadings. Existing activity measurement methods assume the start of sufficiently vigorous activity as the start of a walking episode. Similarly, the end of sufficiently vigorous activity is assumed as the end of a walking episode. If there is vigorous activity before walking begins or after walking ends that corresponds to non-walking activities but meets the criteria, this can lead to an overestimation of the duration of walking.
[0005] Accurate activity data can be important for a variety of purposes, including medical applications. Furthermore, certain clinically approved assessments require participants to walk for a specific, pre-defined period. Deviations from the required walking period can invalidate the assessment and affect the validity of the entire clinical trial. Therefore, for example, lack of accurate activity data can adversely affect treatment efficacy determinations when this data is needed for correlation with other sensors or for time-based measurements. In medical applications, the need for accuracy is particularly important because it can affect treatment decisions and / or drug trial results, thereby significantly impacting health. Summary of the Invention [Problem to be solved by the invention]
[0006] Aspects of the invention are set out in the independent claims, with preferred features set out in the dependent claims. [Means for solving the problem]
[0007] A motion analysis method and apparatus are disclosed. The apparatus and method receive acceleration data (or other motion data from a motion sensor) from an accelerometer carried by a user. The data is divided into a series of epochs, and a determination is made within each epoch whether the user is walking. Consecutive epochs in which the user is considered to be walking may be concatenated to determine at least one period in which the user is walking. Initial estimates of the time the user started and stopped walking are determined for each walking period based on the epoch times of the first and last epochs in the concatenated series of epochs. An iterative optimization process is performed to determine the precise start and stop times of each walking period.
[0008] According to one aspect, the present invention provides an apparatus for determining start and stop times of a user's walking or running periods. The apparatus includes at least one processor and a memory. The processor and memory are configured to: acquire motion data from a user device carried by the user while walking or running; divide the motion data into a series of epochs; process the motion data in each epoch to determine one or more epochs in which the user is walking or running; determine at least one walking or running period of the user from the one or more epochs; determine initial start and stop times for the determined walking or running periods; and perform an iterative optimization process to modify the initial start and / or stop times to identify optimized start and / or stop times for the walking or running periods that optimize a predefined optimization function. The motion sensor may be an accelerometer or a gyroscope.
[0009] The iterative process may include: i) incrementing or decrementing a current candidate start time; ii) determining a value of a metric based on the incremented or decremented current candidate start time and the current candidate stop time; and iii) determining whether the metric determined in ii) is better than the metric determined in ii) in the previous iteration, accepting the incremented or decremented start time as the current candidate start time, and then returning to i) if the metric determined in ii) is better than the metric determined in the previous iteration, or returning to the previous candidate start time if the metric determined in ii) in the previous iteration is better than the metric determined in the current iteration.
[0010] The iterative process may further include: i) incrementing or decrementing a current candidate stop time; ii) determining a value of a metric based on the incremented or decremented current candidate stop time and the current candidate start time; and iii) determining whether the metric determined in ii) is better than the metric determined in ii) in the previous iteration, accepting the incremented or decremented stop time as the current candidate stop time, and then returning to i) if the metric determined in ii) is better than the metric determined in the previous iteration, or returning to the previous candidate stop time if the metric determined in ii) in the previous iteration is better than the metric determined in the current iteration.
[0011] Typically, the optimization process is configured to maximize or minimize a predetermined metric for the walking or running period. If the duration of the walking or running period is extended (by changing either the start time or the stop time), the metric may be configured to increase if the added interval corresponds to walking or running, and decrease if the added interval does not correspond to walking or running. Also, if the duration of the walking or running period is shortened (by changing either the start time or the stop time), the metric may be configured to increase if the removed interval does not correspond to walking or running, and decrease if the added interval corresponds to walking or running. In one embodiment, the metric depends on the time difference between the start time and the end time. The at least one processor and memory may be configured to determine an autocorrelation function of the acceleration data, and the metric includes one or more parameters obtained from the autocorrelation function. The parameter may be one or more of a peak value of the autocorrelation function after a zero-lag peak and an autocorrelation delay corresponding to the peak value.
[0012] Epochs are predetermined durations and typically overlap. In some embodiments, the at least one processor and memory are configured to determine an autocorrelation function of the accelerometer data within each epoch and determine whether the user is walking or running within the epoch depending on the autocorrelation function determined for the epoch. The at least one processor and memory may be further configured to determine one or more of a stride period, a stride correlation value, and a root-mean-square amplitude to determine whether the user is walking or running within the epoch. The at least one processor and memory may be configured to determine whether the user is walking or running within the epoch by determining one or more of: the stride period is above a first threshold and below a second threshold; the stride correlation value is above a third threshold; and the root-mean-square amplitude is above a fourth threshold.
[0013] The at least one processor and memory may concatenate adjacent epochs in the series of epochs in which the user has been determined to be walking or running to determine a walking or running period of the user, and may use the concatenated epochs to determine an initial start time and an initial stop time for the determined walking or running period.
[0014] The at least one processor and memory may determine an initial start time from an epoch time of a first epoch in a series of concatenated epochs corresponding to a walking or running period, and may determine an initial stop time from an epoch time of a last epoch in a series of concatenated epochs corresponding to a walking or running period.
[0015] The at least one processor and memory may be further configured to acquire motion data from multiple motion sensors carried by the user while walking or running, and a start time and a stop time of the at least one walking or running period may be determined using the motion data from the multiple motion sensors. The processor and memory may use the motion data from each motion sensor to determine a start time and a stop time for each of the at least one walking or running period, and may either i) average the determined start time and stop time for the at least one walking or running period, or ii) use the motion data to verify the determined start time and stop time from data obtained from the motion data from one sensor or from motion data acquired from other motion sensors. The motion sensors may be part of the same user device carried by the user, or may be mounted on different user devices carried by the user. If the motion sensors are mounted on different user devices, they are typically carried at different wearing positions.
[0016] The present invention also provides an apparatus for determining start and stop times for a user's walking or running periods, the apparatus comprising a processor and a memory configured to acquire acceleration data from a user device of the user, process the acceleration data to determine a walking or running period for the user, determine initial start and stop times for the determined walking or running period, and perform an iterative optimization process that modifies the initial start and stop times to identify start and stop times for the walking or running period that optimize a predefined optimization function to determine optimized start and stop times for the walking or running period.
[0017] According to another aspect, the present invention provides a method for determining start and stop times for a user's walking or running periods, the method including: acquiring motion data from a user device carried by the user while walking or running, dividing the motion data into a series of epochs, processing the motion data in each epoch to determine one or more epochs during which the user is walking or running, determining at least one walking or running period of the user from the one or more epochs, determining an initial start time and an initial stop time for the determined walking or running period, and performing an iterative optimization process to modify the initial start time and / or initial stop time to identify an optimized start time and / or optimized stop time for the walking or running period that optimizes a predefined optimization function.
[0018] The present invention also provides a tangible computer readable medium containing computer implementable instructions that cause a programmable computing device to be configured as an apparatus as outlined above.
[0019] The present invention also provides a clinical trial system including a central computer in communication with a plurality of user devices, each configured to collect acceleration data relating to the movements of a user associated with the user device, wherein the central computer or at least one of the user devices comprises an apparatus as outlined above. [Brief explanation of the drawings]
[0020] Exemplary embodiments of the present invention will now be described with reference to the accompanying drawings, in which: FIG. [Figure 1A] FIG. 1 is a schematic diagram illustrating a clinical trial in which the physical activity of users participating in the clinical trial is determined by user devices worn or carried by the users and reported to a central server for collection and analysis. [Figure 1B] FIG. 1B is a block diagram showing the major electronic components of the system shown in FIG. 1A. [Figure 2]FIG. 1C is a block diagram illustrating the main components of the user device shown in FIG. 1B. [Figure 3] FIG. 1 is a flow diagram illustrating a prior art technique for determining start and stop times for a user's walking period. [Figure 4] 1 is a graph showing a Hamming window applied to four consecutive epochs, illustrating the overlapping nature of the epochs analyzed. [Figure 5] FIG. 1 is a flow diagram illustrating a preferred technique for determining whether an epoch corresponds to a walk. [Figure 6] 1 is a plot showing an autocorrelation function calculated from accelerometer data acquired while a user is walking. [Figure 7] 1 is a graph plotting the magnitude of acceleration over a period of time while a user is moving. [Figure 8] FIG. 10 shows a contour plot of a calculated metric used to determine start and stop times for a user walking. [Figure 9] FIG. 1 is a flow diagram for determining the exact start and stop times of a walking session using an iterative procedure.
[0021] In the drawings, like reference numbers are used to indicate like elements. DETAILED DESCRIPTION OF THE INVENTION
[0022] overview As outlined above, the present invention provides an alternative method for analyzing a user's exercise. The method and apparatus provided by the present invention may be used in a variety of applications, such as fitness trackers and performance management. However, the present invention may also be used in a medical setting, as described below.
[0023] 1A and 1B show how the present invention may be used in a clinical trial system 10 in which several patients (hereinafter also referred to as users) 30a-30e use respective user devices 100a-100e to monitor the corresponding patient's ambulatory movements. Information gathered by the user devices 100 is transmitted via a communications network 120 (represented in FIG. 1A by dashed lines 40a-40e) to a central server 140, with results that may be displayed within the clinic 20.
[0024] Clinic 20 may be a medical center such as a hospital or a doctor's operating room. Clinic 20 may consist of a single center or may consist of several centers located in several different geographic locations. Patients 30a-30e are patients of clinic 20 and are participating in a clinical trial organized by clinic 20. Patients in the trial are divided into groups each with the same medical condition.
[0025] Each patient 30a-30e is provided with a user device 100 that is dedicated to the clinic and can be returned to the clinic after the trial is completed. Alternatively, the clinic may provide the patient with a software application that can run on the patient's own user device, such as a mobile phone or smartwatch. In either case, each patient is asked to wear or carry their own user device so that an accelerometer associated with the user device can capture the user's movements during the clinical trial. As shown in FIG. 1B , some user devices 100 have a built-in accelerometer 102, while some user devices 100 (in this example, user device 100a) do not. Alternatively, if the user device 100 does not have an accelerometer, a separate actigraphy-measuring device 101a is provided that has an accelerometer 102-a that captures the patient's movements. The user device or actigraphy measurement device 101 is worn or carried by the patient, for example, around the patient's wrist, around the ankle, in a pocket, on a belt, held in the hand, in a bag worn by the patient, or worn as a pendant, for example, around the patient's neck.
[0026] The accelerometer typically provides acceleration information in three orthogonal directions depending on the orientation of the accelerometer. By analyzing the accelerometer data, the user device 100 can determine motion information about the patient that is transmitted (wirelessly or via a wired connection) as patient data to a central server 140 for further analysis as part of a clinical trial.
[0027] In one embodiment, the patient data provided to the central server 140 includes gait data and identification data identifying the patient associated with the gait data. The gait data may include one or more of step counts, walking or activity periods, walking distance, and calories burned for a period specified by the clinical trial, such as a day, a week, a month, or a year. The patient data may be acquired from the user device 100 when the patient visits the clinic, or the patient data may be transmitted to the clinic via a mobile phone, landline phone, or computer network (wireless or wired). The patient data collected at the clinic may be supplemented by physical observations and tests that are only performed at the clinic 20 and cannot be monitored remotely. The accuracy of the data provided to the clinic 20 regarding the patient's activities outside the clinic 20 or at home is important to ensure that the clinical trial captures a true picture of the patient's activities during the monitoring period. This may help determine the effectiveness of the clinical trial's treatments.
[0028] In another embodiment, the patient data provided to the central server 140 includes patient identification data along with accelerometer data, such that the central server 140 processes each patient's accelerometer data, from which the central server 140 calculates each patient's gait data itself. Although not shown in FIG. 1B , in this case the central server 140 further includes a user interface with a user input device, such as a keyboard, and / or software for processing data collected from the system's user devices.
[0029] Patient data indicating patient activity, such as gait data, can be a good indicator of a patient's health and fitness level. For example, because step count is an indicator of overall health, that patient data can be used as an indicator of recovery. An increase in step count may indicate increased mobility and indicate patient improvement, while a decrease or plateau in step count may indicate that the patient is not responding to treatment, is not improving, or is becoming more ill. In some cases, step counts may indicate the need for the patient to be referred to a clinic or that the patient needs to be hospitalized for a short period of time. An increase in step count during periods of maximal treatment benefit compared to periods of diminishing benefit can provide an indicator of treatment effectiveness. In some instances, collected patient data can be used by clinics to help schedule patient appointments with doctors or clinicians as needed.
[0030] The gait data provided by the user device may also be used to provide one or more of the multiple patients 30a-30e with a personalized exercise plan tailored to their individual needs and / or abilities as indicated by the data. For clinical trials, the gait data may be used to measure compliance with the study protocol, capture necessary data, and identify non-compliant assessments. Prompts may be sent to the patient requesting a repeat assessment if necessary, encouraging activity if walking duration is insufficient or step counts are too low, or identifying broader health-related behavior change recommendations.
[0031] Gait data is particularly useful in studying patients with one or more medical conditions known to affect walking ability. Temporary gait and balance complications may be caused by injury, trauma, inflammation, or pain. Certain conditions may also cause gait, balance, and coordination problems. Conditions for which measuring gait activity may be particularly important include, but are not limited to, arthritis, multiple sclerosis (MS), Meniere's disease, brain injury (e.g., from hemorrhage or tumor), Parkinson's disease, orthopedic surgery of the lower back or lower body, cancer and related treatments, cerebral palsy, obesity, gout, muscular dystrophy, stroke, spinal cord injury, and deformity.
[0032] Gait data can also be used for physical therapy measurement and performance management. Detailed analysis of gait data during targeted time assessments of supervised or unsupervised therapy session activities can be provided to patients or their therapists or physicians. The data can then be used to inform treatments to improve recovery programs.
[0033] User Device 2 is a block diagram of a typical user device 100 for use in the above-described system. As shown, in this case, the user device 100 includes an accelerometer 102 that provides accelerometer data to at least one central processing unit (CPU) 108. The operation of the CPU 108 is controlled by software instructions stored in memory 106. As shown, the software instructions include an operating system 106-1 and a motion analysis application 106-2. The accelerometer data from the accelerometer 102 is processed by the motion analysis application 106-2 to calculate gait data for the patient.
[0034] The user device 100 further comprises a communication interface 110 that communicates patient data determined by the motion analysis application 106-2 to the central server 140, and a user interface 112 that includes a keypad 112-1 and a display 112-2 and enables the patient to interact with the user device 100. The display 112-2 may display one or more icons configured to provide information to the user, and / or one or more of the time, date, step count, activity specific icons (walking, running, cycling, etc.), duration of the activity, reminder messages and / or instructions regarding the activity, network connection status, remaining battery power, and any other useful information to be displayed to the user.
[0035] Motion Analysis Applications - Overview FIG. 3 shows an overview of the processing performed by motion analysis application 106-2 on accelerometer data to determine the start and stop times of periods when the user is walking.
[0036] In step 310, data from the accelerometer 102 is received by the motion analysis application 106-2. The accelerometer data includes a series of data points indexed by time. A data point (reading) from the accelerometer at time t represents acceleration measurements (A) in three orthogonal directions Ax, Ay, and Az. Ax (t), A Ay (t), A Az (t)). Ax, Ay, and Az are aligned with (defined by) the orientation of the accelerometer 102, not the orientation of the person carrying the accelerometer or any other geographic coordinate system. Typically, readings from the accelerometer 102 are provided in units of g, where g is the acceleration due to gravity at the Earth's surface (9.8 m / s 2 ). The sampling rate (the rate at which accelerometer 102 provides acceleration readings) varies from accelerometer to accelerometer and is often configurable, but to be useful for gait analysis, the sampling rate should be at least 20 Hz, and preferably higher (e.g., 30 Hz or 100 Hz).
[0037] Optionally, the raw accelerometer data received in step 310 may be filtered by an optional low-pass filter 106-2-1 to remove high frequency fluctuations in the accelerometer measurements that are not associated with the user's walking movements. The cutoff frequency of such a low-pass filter is typically between 8 Hz and 20 Hz, preferably about 10 Hz.
[0038] In step 320, the vector accelerometer data received in step 310 (or after low-pass filtering, if performed) is divided into a series of epochs by the epoch division unit 106-2-2. An epoch is a predetermined division of time. In its simplest form, the data may be divided into several non-overlapping epochs, for example, if the epoch length is 5 seconds, the first epoch may cover the first 5 seconds, the second epoch may cover the next 5 seconds, and so on. However, this has the disadvantage that it is sensitive to the location of the epoch boundaries. An event that straddles two epochs may be detected less reliably than the same event that is completely contained within one epoch.
[0039] Therefore, in a preferred embodiment, longer epochs are defined (typically between 5 and 20 seconds in duration) that overlap adjacent epochs. For example, if the overlap is 50%, the first half of each epoch overlaps the previous epoch and the second half overlaps the next epoch. The data within each epoch is weighted so that data in the middle of the epoch is given the most weight and data at the beginning and end of each epoch is given less weight. A Hamming window may be used to achieve this, although other window functions may also be used, such as Bartlett, Hanning, or tapered cosine. Figure 5 is a graph of Hamming windows for four consecutive epochs. The graph shows overlapping Hamming windows that may be used to partition and weight the data. Each of the four epochs is 10 seconds long and begins 5 seconds after the start of the previous epoch (i.e., Epoch 1 starts at 0 seconds and ends at 10 seconds, Epoch 2 starts at 5 seconds and ends at 15 seconds, etc.). There is a 50% overlap between adjacent epochs, resulting in epochs starting 5 seconds apart. Each epoch has an associated time (hereafter referred to as the epoch time), which corresponds, for example, to the epoch start time, the epoch end time, or the epoch midpoint. As described in more detail below, this epoch time is used to identify the approximate start and stop times of a walking period.
[0040] The length of each epoch should be approximately equal to or shorter than the required gait detection granularity. For example, if one wishes to detect short walking periods of about 10 seconds, an epoch length of about 10 seconds should be used. However, the epoch length should be at least twice the expected stride period, i.e., at least about 2 seconds. It should also be noted that shorter epoch lengths (e.g., 2 or 3 seconds) tend to result in a lower signal-to-noise ratio than longer epoch lengths (e.g., 10 seconds). However, the longer the epoch, the greater the risk that the user's gait parameters (especially the stride period) will be inconsistent over the epoch duration, resulting in other inaccurate information. In practice, the inventors have found that epoch lengths of about 10 or 20 seconds work well for patients with various physical conditions, meeting or exceeding clinical accuracy standards.
[0041] In step 330, the gait determination unit 106-2-3 analyzes the weighted acceleration data for each epoch to determine whether the data indicates that the user is walking within that epoch. In step 340, the start / stop determination unit 106-2-4 integrates consecutive epochs determined to correspond to the user's walking, and in step 350, determines a start time and a stop time for the integrated epoch. The start time corresponds to the epoch time of the first epoch of the integrated epoch (the first epoch is the first of the series of integrated epochs whose epoch data is determined to correspond to walking, as determined in step 330), and the stop time corresponds to the last epoch time of the integrated epoch (the last epoch is the last of the series of integrated epochs whose epoch data is determined to correspond to walking). If the walking period corresponds to one epoch, the gait determination unit 106-2-3 may use the start time of the epoch as the start time and the end time of the epoch as the end time. However, because the Hamming window function reduces the effect of the first and last quarters of the epoch, the start time may instead be defined as the start of the second quarter of the epoch, and the end time as the end of the third quarter of the epoch.
[0042] Motion analysis application - Gait determination part Next, the processing executed by the walking determination unit 106-2-3 will be described in more detail with reference to FIGS.
[0043] In step 415, the gait determination unit 106-2-3 receives the data of the current epoch extracted from the accelerometer data by the epoch division unit 106-2-2. In step 420, the gait determination unit 106-2-3 determines the magnitude of the accelerometer data within the epoch using the following equation: A mag (t)=sqrt(A Ax (t) 2 +A Ay (t) 2 +A Az (t) 2 ) The magnitude of the acceleration is calculated because it does not depend on the orientation of the accelerometer. In step 420, the walking determination unit 106-2-3 further subtracts the average value of these magnitudes from these magnitudes. JPEG0007729843000001.jpg2991In formula, A mag (n) is the accelerometer data point at time n within the epoch, where N is defined by the accelerometer sample rate and the length of the epoch over which the average is calculated. Since gravity is the largest static component of acceleration measured by the accelerometer 102, the average value of the magnitude signal is expected to be close to 1 g (g is the acceleration due to gravity at the Earth's surface).
[0044] Next, in step 425, the walking determination unit 106-2-3 determines the obtained data (A mag (t)-A epoch mean ) and applies the aforementioned Hamming window to the epoch data. In step 430, the gait determination unit 106-2-3 calculates an autocorrelation function for the windowed data acquired in step 425 to detect periodic patterns in the epoch data. Specifically, the gait determination unit 106-2-3 calculates the following autocorrelation function of the epoch data: JPEG0007729843000002.jpg3096where AC(k) is the autocorrelation at lag k, and A * mag (n) is the Hamming windowed data at time n, i.e., JPEG0007729843000003.jpg25107Where W(n) is (A mag (n)-A epoch mean ) is a Hamming window function multiplied by k. In step 435, the gait determiner 106-2-3 processes the autocorrelation values to determine the delay at which the highest peak in the autocorrelation function is found after the zero-lag peak (the zero-lag peak is defined as the portion of the autocorrelation function between zero lag and the first point where the autocorrelation function is less than zero). The calculated delay corresponds to either the user's stride period or the user's step period. To illustrate this calculation, FIG. 6 is a plot representing the autocorrelation function determined in step 430 for one epoch. The autocorrelation function is symmetric about zero lag (k=0), and only the portion corresponding to non-negative lags is shown on the plot. Peaks corresponding to the stride period and step period are indicated by circles and squares, respectively. A typical stride period is between 1.0 and 1.2 seconds (100-120 steps per minute), and a typical step period is half this value.
[0045] In the example autocorrelation function shown in FIG. 6, the peak of the autocorrelation function at a 0.5 second delay is approximately the same height as the peak of the autocorrelation function at a 1.0 second delay; slight variations in the accelerometer data can change which peak is tallest and therefore which peak is identified as the highest peak in step 435.
[0046] Because the autocorrelation function is calculated at a defined number of delays, the calculated autocorrelation value may not include the autocorrelation value at the exact peak. A more accurate estimate of the delay corresponding to the peak of the autocorrelation function can be determined using interpolation. For example, by fitting a second-order polynomial to the calculated peak value and its neighbors on either side, and taking the peak of the polynomial function as the peak of the autocorrelation function, a more accurate calculation of the delay value corresponding to the highest peak can be achieved.
[0047] The identified peaks may correspond to either a step period or a stride period, depending on the symmetry of the user's gait and the location of the accelerometer. For example, assuming a subject's gait is symmetrical, if the device is worn / held at the center of the body (e.g., a cell phone held in front of the chest or a device attached to the small of the subject's waist), a left-foot step and a right-foot step will produce acceleration data of very similar magnitude on the device, and the calculated period may correspond to a step period. On the other hand, if the device is worn on the ankle or wrist, left and right steps will produce significantly different acceleration data, and the calculated period may correspond to a stride period.
[0048] There are various ways to resolve this ambiguity. For example, thresholding techniques can be used to determine whether an identified peak corresponds to the user's stride period or step period, based on an expected stride period, an expected step period being half the stride period, etc. However, these techniques are not essential to the present invention and will not be described further.
[0049] In step 440, having determined whether the highest peak corresponds to the user's step period or the user's stride period, the walking determiner 106-2-3 determines whether the user's stride period (corresponding to the delay of the highest peak if the peak corresponds to the stride period, or corresponding to twice the delay of the highest peak if the peak corresponds to the step period) is within a predetermined range typical for walking (e.g., between 0.8 seconds and 1.25 seconds). If the user's stride period is within the predetermined range, the process proceeds to step 445. If the user's stride period is outside the predetermined range, the walking determiner 106-2-3 determines in step 460 that the user is not walking in the current epoch. Of course, a similar determination can be made instead of (or in addition to) using the step period.
[0050] In step 445, the gait determiner 106-2-3 calculates a stride correlation value for the epoch. This is defined as the ratio of the value of the autocorrelation function at the calculated stride period to the value of the autocorrelation function at zero lag (k=0). If the stride correlation value is greater than the threshold, processing proceeds to step 450. If the stride correlation value is below the threshold, the gait determiner 106-2-3 determines in step 460 that the user is not walking in the current epoch. The threshold used may be determined by processing training data that indicates whether the user is walking or not. Typical values for this threshold are between 0.2 and 0.8, and the inventors have found a threshold of 0.4 to be effective.
[0051] In step 450, the gait determination unit 106-2-3 determines the signal used as the input of the autocorrelation function (i.e., the signal A obtained from step 425). * magThe first step determines whether the root-mean-square (RMS) amplitude (or some other amplitude function) of (n)) is greater than a threshold. If the RMS amplitude is greater than the threshold, processing proceeds to step 455, where the walking determiner 106-2-3 determines that the current epoch corresponds to walking. If the value of the RMS amplitude is below the threshold, then in step 460 the walking determiner 106-2-3 determines that the user is not walking in the current epoch. The threshold used in step 450 is typically between 0.01 g and 0.1 g, with the inventors finding a value of 0.04 g effective.
[0052] Motion Analysis Application - Start / Stop Decision Unit The above process identifies which epochs correspond to walking and which do not. Each walking epoch may then be analyzed independently to extract scores for relevant features, such as step count, speed, and distance traveled. Alternatively, adjacent or consecutive walking epochs may be combined to form a longer walking period. If walking epochs are combined, a limit may be placed on the maximum duration of the walking period. For example, if a subject walks for 10 minutes, it is expected that the walking feature scores will not be constant during that time. Therefore, it may be desirable to divide the 10 minutes into 30-second intervals and calculate feature scores for each 30-second interval.
[0053] From the epoch times of the first and last epochs of each concatenated series of epochs, the approximate start and stop times of each walking period can be determined (by the start / stop determiner 106-2-4). For a 10-second epoch length with 50% overlap, the granularity / precision of the walking start and stop times is approximately 5 or 10 seconds. This level of precision will be sufficient for many applications of current technology. However, if improved precision of the start and stop times is desired, epochs of shorter duration (e.g., 1 or 2 seconds) can be used to analyze the start and stop times and further refine the precision. However, as mentioned above, short epochs are susceptible to noise, and there is a minimum epoch duration required to capture gait features (each epoch must span at least two stride periods).
[0054] To improve the accuracy of start / stop time determination without having to significantly reduce the duration of the epoch, we have devised an iterative routine aimed at identifying start and stop times that maximize a predefined metric. Different metrics can be used, but the metric should have the following properties: The metric for time intervals corresponding to walking is higher than the metric for non-walking time intervals. If the duration of a walking period is extended (by changing either the start or stop time), the metric increases if the added interval corresponds to walking and decreases if the added interval does not correspond to walking. Conversely, if the duration of a walking period is shortened, the metric decreases if the deleted interval corresponds to walking, and increases if the deleted interval does not correspond to walking.
[0055] Using the processing techniques described above with reference to FIG. 4, a pair of candidate start times and candidate stop times (t start , t stop ) metric may be determined as follows: Acceleration data between the candidate start times and candidate stop times is extracted. The magnitude of the extracted data is calculated. From these magnitudes the mean value of these magnitudes is subtracted. A Hamming window is applied. The autocorrelation function is calculated. The value of the highest peak of the autocorrelation function is determined for delays ranging from 0.5 seconds to 2 seconds (0.5 seconds to 2 seconds is the expected range of stride periods). The delay of this highest peak is identified. Metric (t start ,t stop )=peak_value / sqrt(t stop -t start -lag) is calculated.
[0056] Next, how this metric can be used in an iterative procedure will be described using acceleration data having two periods of walking and non-walking motion as an example, as shown in FIG. 7. Specifically, FIG. 7 plots the magnitude of acceleration versus time, representing a user's motion. The periods of high acceleration correspond to the user's motion. There are two periods of motion corresponding to walking, depicted in the graph, from 15 to 37 seconds and from 54 to 74 seconds. There are also periods of high acceleration that do not correspond to walking. These periods are between 0 and 2 seconds, 85 seconds, and 95 to 98 seconds. From the graph alone, it is difficult to distinguish which accelerations correspond to walking and which do not. However, by using the walking determination technique and the metric described above, it is possible to more accurately identify which periods correspond to walking and when they start and stop.
[0057] Specifically, when the aforementioned metrics are calculated for all possible start and stop times and plotted on a contour, periods corresponding to walking appear as multiple peaks on the contour plot, which can be used to identify the start and stop times of the walking periods. This is shown in the contour plot of FIG. 8, calculated for the example acceleration data shown in FIG. 7. As shown in FIG. 8, the contour plot has three peaks, which allow identification of the start / stop times of periods that may correspond to walking: 15 seconds / 37 seconds, 55 seconds / 73 seconds, and 15 seconds / 73 seconds. The first two peaks on the contour plot represent the two walking periods in FIG. 7, and the third peak (start time 15 seconds, stop time 73 seconds) represents the merging of the two walking periods. (The triangle in the lower right of FIG. 8 represents the case where the start time is later than the stop time, so no contour is drawn.) Therefore, by combining the aforementioned walking determination with the information in this contour plot, it is possible to identify which periods correspond to walking and determine the exact start and stop times of those periods.
[0058] In fact, it is not necessary to calculate metrics corresponding to every possible start and stop time pair. The process described above with reference to FIG. 4 can be used to identify a period corresponding to walking and the approximate start and stop times of that period. The metrics are then calculated for this initial candidate start and stop time pair, and an iterative routine is performed to find the start and stop times that maximize the metrics in the vicinity of the initial candidate (i.e., find the peak in the contour plot shown in FIG. 8 that is closest to the initial candidate start / stop time pair). Various iterative techniques can be used to perform this optimization process. An example technique is described below with reference to FIG. 9. This optimization process is performed by start / stop determination unit 106-2-4.
[0059] In step 910, initial estimates of start time / stop time are determined from the epoch times of the first and last epochs of a connected series of epochs at which the walking determination unit 106-2-3 determines that the user is walking. As mentioned above, for an epoch length of 10 seconds with 50% overlap, the granularity / precision of the walking start and stop times determined using the above process is approximately 5 or 10 seconds. In step 915, the above-mentioned metrics are calculated for the initial estimates of start time and stop time. In step 920, the start time is incremented by 1 second and the metrics are recalculated.
[0060] In step 925, it is determined whether the recalculated metric has increased. If the metric has increased, the process returns to step 920, where the start time is incremented by another 1 second and the metric is recalculated. If the metric stops increasing and begins to decrease (or if the metric has decreased since the initial increment of the start time), the process returns to the previous start time in step 930. Similar processing is then performed in steps 935 and 940 to determine whether decreasing the start time would result in an improvement in the metric. If step 940 finds that the metric has not increased (decreased), the process returns to the previous start time in step 945. This start time means that the start time of the walking period of interest is accurately determined. The process then proceeds to steps 950, 955, 960, 965, 970, and 975, where similar processing is performed for the stop time. This results in the accurate stop time being determined in step 975, and the process ends.
[0061] Each time a metric is calculated during the iterative process, acceleration data between a new start time and stop time is extracted, the magnitude of the extracted acceleration data is determined, its average value is determined and subtracted from the magnitude, a Hamming window is applied, an autocorrelation function is determined, the highest peak after the zero delay peak is found, and then the metric is calculated.
[0062] As an example of this iterative process, consider the acceleration data shown in Figure 7 and the contour plot shown in Figure 8. Initial estimates for the start and stop times of a walking period between 15 and 37 seconds are determined from the epoch data to be 20 and 40 seconds, respectively. While keeping the stop time fixed at 40 seconds, the start time is decreased from 20 seconds to 19 seconds, 18 seconds, etc., and the metric is calculated for each decrease in the start time. It is found that the metric stops increasing and begins to decrease at 14 seconds. The optimal start time is thus determined to be 15 seconds. The same process is then applied to the end of the walking period, and the metric is found to be greatest when the stop time is 37 seconds.
[0063] Once the start / stop determination unit 106-2-4 determines the exact start and stop times, this information may then be output to the user on the display 112-2 and / or transmitted to the central server 140 for use in the clinical trial, along with other relevant gait data and an identifier identifying the user associated with the data.
[0064] Variations and Alternatives The detailed embodiment has been described above. Note that various modifications and changes are possible to the above embodiment. Some of these alternative examples will be described below.
[0065] In the above embodiment, one example of a method for accurately determining the start and stop times of a walking period has been described. Of course, various modifications to this iterative process are possible. For example, the exact stop time may be determined before the exact start time is determined, and the iterative process may decrement the time before incrementing it, if necessary. Similarly, the increment or decrement does not have to be in units of one second. Increments and decrements can be in other units.
[0066] The found maximum may simply be a local maximum of the metric function, not necessarily a global maximum near the initial estimate. After finding the local maximum, a search for a larger maximum in that vicinity may be performed. For example, when incrementing the stop time, rather than stopping the search as soon as the metric begins to decrease, the process of incrementing the stop time may continue to see if a higher metric is found. If a higher metric is found, it is accepted as the current optimal solution, and processing continues. This process continues until some stopping condition is met, at which point the start and stop times corresponding to the highest metric found so far are accepted as the optimal solution. Examples of stopping conditions may include the current candidate stop time being more than a specified number of seconds later than the stop time corresponding to the highest metric, or the metric of the current candidate stop time being below a threshold relative to the best metric.
[0067] As an example, consider the peaks corresponding to a start time of 17 seconds and a stop time of 37 seconds in Figure 7. As the stop time is incremented, the metric decreases. If the stopping criterion is that candidate stop times can be extended by no more than 20 seconds from the stop time of the highest metric found so far, the candidate stop time will be incremented until it is 57 seconds, at which point the metric corresponding to the stop time of 37 seconds will be the highest found and processing will stop. On the other hand, if the candidate stop time can be extended by 30 seconds, a higher peak corresponding to a start / stop time of 15 seconds / 73 seconds will be found and selected as the optimal solution, and the two walking periods (corresponding to start / stop times of 15 seconds / 37 seconds and 55 seconds / 73 seconds) will be merged into a single walking period with a start / stop time of 15 seconds / 73 seconds.
[0068] The metric defined above is only an example. Other definitions of this metric are possible and may be advantageous in different scenarios. For example, the metric above is a special case of the following more general form: JPEG0007729843000004.jpg27137Here, 0≦n≦1. (In the above embodiment, n=1 / 2.)
[0069] Values of n close to 1 result in many short walking periods. Walking periods are only merged into a single longer period if their gait characteristics are very similar. Similarly, walking periods are only extended if the characteristics of the proposed extension are very similar to those of the original walking period. Values of n close to 0 result in several walking periods that each have a relatively long duration, even if the characteristics of the merged walking periods are not particularly similar. In practice, we have found that a value of n=½ is a good compromise between these two extremes.
[0070] As a further alternative, the above metric may be inverted, so that instead of finding the start and stop times that maximize the metric, the start and stop times that minimize the metric may be found.
[0071] In the above-described embodiment, precise start and stop times were calculated and used to provide data for a clinical trial. As will be appreciated by those skilled in the art, the above-described techniques can also be used in other applications. For example, the above-described techniques can be used to provide more accurate information about a user's walking duration, such as in a fitness tracker.
[0072] In the aforementioned embodiment, the device was configured to determine a user's walking periods. By adjusting the thresholds and other parameters used (e.g., using a higher threshold for acceleration magnitude and a shorter expected step / stride period), the device could be configured to detect running periods. Such a device would be of interest to athletes who want to track accurate information about their training. Specifically, the start and stop times of running could be used to measure and monitor athletic performance. Detailed analysis of start and stop times in target assessments of athletic activity could be provided to athletes or their trainers and coaches. The data could be used to inform training methods to improve athletic performance.
[0073] In the above embodiment, the walking determiner 106-2-3 applied three metrics (in steps 440, 445, and 450) to determine whether the user is walking in an epoch. As will be appreciated by those skilled in the art, other techniques may be used to determine whether the user is walking (or running) within an epoch. For example, a determination may be made using only one or two of the metrics used in steps 440, 445, and 450.
[0074] In the above-described embodiment, the accelerometer data obtained from the accelerometer was analyzed by looking at the autocorrelation function of the data. Autocorrelation analysis is suitable for highlighting periodic changes in acceleration data caused by repetitive movements such as walking or running. Other types of analysis can be performed to identify such periodic changes (and their duration). For example, a Fourier transform (or other frequency analysis such as a discrete cosine transform) can be determined and analyzed to identify peaks in the frequency domain that represent step or stride periods.
[0075] In the above-described embodiment, the autocorrelation is recalculated from scratch each time the start time or stop time is incremented or decremented. Because the start time and stop time are incremented or decremented by relatively small amounts (one second in the above example), the data used to determine the autocorrelation function in the current iteration shares most of the calculations from the previous iteration. Only a few data values need to be added to the autocorrelation value at a particular delay (if the start time is decremented or the stop time is incremented) or subtracted from it (if the start time is incremented or the stop time is decremented). Therefore, all calculations do not need to be redone. Further computational burden can be reduced by assuming that the delay of the highest peak after the zero-delay peak does not change significantly from iteration to iteration. Therefore, autocorrelation values may be determined only for delay values around the delay value identified for the highest peak (after the zero-delay peak) in the previous iteration.
[0076] In the above-described embodiment, calculations were made based on data from an accelerometer. Other motion sensors that provide sensor signals that vary with the movement of a walking or running user could also be used. For example, signals from a gyroscope could be processed in a similar manner to calculate the start and stop times of a walking or running period.
[0077] Additionally, if a user device has multiple sensors, data from each sensor may be analyzed and the results combined (e.g., averaged) to calculate more accurate or less noisy start and stop times. Similarly, if a user carries multiple devices (e.g., a mobile phone) and an actigraph device, and both devices have motion sensors (e.g., accelerometers and gyroscopes), the system can use data from both devices to determine the start and stop times. The measurements from the two devices may then be re-averaged to improve the signal-to-noise ratio, or measurements from one device may be used to verify or validate the start and stop times determined from motion data obtained from the other device.
[0078] In the above-described embodiment, a software application for processing accelerometer data was provided on the user device. The same or similar software may be provided on a central server computer so that the central server performs the above-described step / stride analysis. This software application may be provided as computer-implementable instructions on a carrier signal or on a tangible computer-readable medium. Alternatively, the functionality of the software application may be defined in hardware circuitry such as an FPGA or ASIC device.
[0079] It will be understood from the above description that many features of the different embodiments are interchangeable and combinable. The present disclosure extends to additional embodiments that include features from different embodiments combined together in a manner not specifically mentioned. Indeed, it will be apparent to those skilled in the art that there are many features presented in the above embodiments that can be advantageously combined with each other.
[0080] This application also includes the following numbered paragraphs:
[0081] Item 1 1. An apparatus for determining start and stop times of a walking or running period of a user, the apparatus comprising at least one processor and memory: The processor and memory Acquiring motion data from a user device carried by the user while walking or running; The motion data is divided into a series of epochs. processing the motion data in each of the epochs to determine one or more epochs in which the user is walking or running; determining at least one walking or running period of the user from one or more epochs; determining an initial start time and an initial stop time for the determined walking or running period; performing an iterative optimization process that modifies an initial start time and / or an initial stop time to identify an optimized start time and / or an optimized stop time for the walking or running period that optimizes a predefined optimization function; An apparatus configured to:
[0082] Section 2 The iterative optimization process is i) incrementing or decrementing the current candidate start time; ii) determining a value of the metric based on the incremented or decremented current candidate start time and current candidate stop time; and iii) determining whether the metric determined in ii) is better than the metric determined in ii) in the previous iteration, accepting the incremented or decremented start time as the current candidate start time, then returning to i) if the metric determined in ii) is better than the metric determined in the previous iteration, or returning to the previous candidate start time if the metric determined in ii) in the previous iteration is better than the metric determined in the current iteration; Item 1. The device according to item 1, comprising:
[0083] Section 3 The iterative optimization process is i) incrementing or decrementing the current candidate stop time; ii) determining a value of the metric based on the incremented or decremented current candidate stop time and current candidate start time; and iii) determining whether the metric determined in ii) is better than the metric determined in ii) in the previous iteration, accepting the incremented or decremented stop time as the current candidate stop time, then returning to i) if the metric determined in ii) is better than the metric determined in the previous iteration, or returning to the previous candidate stop time if the metric determined in ii) in the previous iteration is better than the metric determined in the current iteration; Item 1 or 2. The device according to item 1 or 2.
[0084] Section 4 The iterative optimization process is configured to maximize or minimize a predetermined metric for the walking or running period. Item 1. The device according to any one of items 1 to 3.
[0085] Section 5 If the duration of a walking or running period is extended (by changing either the start time or the stop time), the metric is configured to increase if the added interval corresponds to walking or running, and to decrease if the added interval does not correspond to walking or running; Item 4. The device according to item 4.
[0086] Section 6 If the duration of a walking or running period is shortened (by changing either the start time or the stop time), the metric is configured to increase if the removed interval does not correspond to a walking or running period, and to decrease if the added interval corresponds to a walking or running period. Item 4 or 5. The device according to item 4 or 5.
[0087] Section 7 The metric depends on the time difference between the start and end times. Item 7. The device according to any one of items 1 to 6.
[0088] Section 8 8. The apparatus of any one of clauses 1 to 7, wherein at least one processor and memory are configured to determine an autocorrelation function of the motion data, and the metric includes one or more parameters obtained from the autocorrelation function.
[0089] Section 9 the at least one processor and the memory are configured to determine a peak value of the autocorrelation function after the zero-lag peak, and the metric is dependent on the determined peak value. Item 8. The device according to item 8.
[0090] Section 10 the at least one processor and the memory are configured to determine an autocorrelation delay corresponding to the peak value, and the metric is dependent on the determined autocorrelation delay. Item 9. The device according to item 9.
[0091] Section 11 An epoch is a predetermined duration, Item 11. The device according to any one of items 1 to 10.
[0092] Section 12 Adjacent epochs overlap, Item 12. The device according to any one of items 1 to 11.
[0093] Section 13 the at least one processor and memory are configured to determine an autocorrelation function of the accelerometer data within each of the epochs and determine whether the user is walking or running within the epoch depending on the autocorrelation function determined for the epoch; Item 13. The device according to any one of items 1 to 12.
[0094] Section 14 the at least one processor and memory are configured to determine one or more of a stride period, a stride correlation value, and an amplitude measurement to determine whether the user is walking or running within an epoch; Item 14. The device according to any one of items 1 to 13.
[0095] Section 15 The at least one processor and the memory determining that the stride period is above a first threshold and below a second threshold; determining that the stride length correlation value is greater than a third threshold; and determining that the amplitude measurement exceeds a fourth threshold; and and determining whether the user is walking or running within the epoch by determining one or more of: Item 15. The device according to item 14.
[0096] Section 16 the at least one processor and memory are configured to concatenate adjacent epochs in the series of epochs during which the user has been determined to be walking or running to determine a walking or running period of the user, and to determine an initial start time and an initial stop time for the determined walking or running period using the concatenated epochs; Item 16. The device according to any one of items 1 to 15.
[0097] Section 17 the at least one processor and memory are configured to determine an initial start time from an epoch time of a first epoch of a concatenated series of epochs corresponding to the walking or running period; Item 17. The device according to any one of items 1 to 16.
[0098] Section 18 the at least one processor and memory are configured to determine an initial stopping time from an epoch time of a last epoch of a concatenated series of epochs corresponding to the walking or running period; Item 18. The device according to any one of items 1 to 17.
[0099] Section 19 The motion sensor is an accelerometer or a gyroscope. Item 19. The device according to any one of items 1 to 18.
[0100] Section 20 the at least one processor and the memory are configured to acquire motion data from a plurality of motion sensors carried by the user while walking or running, and a start time and a stop time of the at least one walking or running period are determined using the motion data from the plurality of motion sensors; Item 20. The device according to any one of items 1 to 19.
[0101] Section 21 the at least one processor and memory are configured to use the motion data from each of the motion sensors to determine a start time and a stop time for each of the at least one walking or running period, and i) average the start time and stop time for the at least one walking or running period, or ii) use the motion data to verify the start time and stop time determined from data obtained from the motion data from one motion sensor or from motion data obtained from other motion sensors; Item 21. The device according to item 20.
[0102] Section 22 The motion sensors may be mounted on the same user device carried by the user, or the motion sensors may be mounted on different user devices carried by the user, typically at different wearing positions; Item 20 or 21, the device according to item 20 or 21.
[0103] Section 23 The motion sensors are mounted on different user devices carried by the user at different wearing positions; Item 23. The device according to item 22.
[0104] Section 24 1. An apparatus for determining start and stop times of a walking or running period of a user, comprising: A processor and a memory are provided, The processor and memory Obtaining operational data from the user's user device; Processing the motion data to determine a period of time during which the user is walking or running; determining an initial start time and an initial stop time for the determined walking or running period; and performing an iterative optimization process that modifies an initial start time and / or an initial stop time to identify start and stop times for the walking or running period that optimize a predefined optimization function.
[0105] Section 25 1. An apparatus for determining start and stop times of a walking or running period of a user, comprising: means for acquiring motion data from a user device carried by a user while walking or running; means for dividing the motion data into a series of epochs; means for processing the motion data in each of the epochs to determine one or more epochs in which the user is walking or running; means for determining at least one walking or running period of the user from one or more of said epochs; means for determining an initial start time and an initial stop time for the determined walking or running period; means for performing an iterative optimization process that modifies an initial start time and / or an initial stop time to identify an optimized start time and / or an optimized stop time for the walking or running period that optimizes a predefined optimization function; An apparatus comprising:
[0106] Section 26 1. A method for determining start and stop times of a walking or running period of a user, comprising: acquiring motion data from a user device carried by a user while walking or running; Dividing the motion data into a series of epochs; processing the motion data in each of the epochs to determine one or more epochs in which the user is walking or running; determining at least one walking or running period of the user from one or more epochs; determining an initial start time and an initial stop time for the determined walking or running period; running an iterative optimization process that modifies an initial start time and / or an initial stop time to identify an optimized start time and / or an optimized stop time for the walking or running period that optimizes a predefined optimization function; Contains A method characterized by:
[0107] Section 27 computer-implementable instructions that cause a programmable computing device to be configured as the apparatus of any one of clauses 1 to 25; 1. A tangible computer readable medium comprising:
[0108] Section 28 1. A clinical trial system including a central computer in communication with a plurality of user devices, Each of the user devices is configured to collect acceleration data relating to movement of a user associated with the user device; the central computer or at least one user device analyzes the acceleration data; The device is provided with the device described in any one of items 1 to 25.
Claims
1. 1. An apparatus for determining start and stop times of a walking or running period of a user, comprising: comprising at least one processor and a memory; The processor and the memory Acquiring motion data from a user device carried by the user while walking or running; Dividing the motion data into a series of epochs; processing the motion data in each of the epochs to determine one or more of the epochs in which the user is walking or running; determining at least one walking or running period for the user from one or more of the epochs; determining an initial start time and an initial stop time of the determined walking or running period; determining a peak value of an autocorrelation function or a peak value in a frequency domain determined by frequency analysis for the motion data between the candidate start time and candidate stop time of the walking or running period based on the determined initial start time and the determined initial stop time; determining a metric for the pair of candidate start times and candidate stop times that depends on the determined peak value; performing an iterative optimization process that modifies the initial start time and / or the initial stop time to identify an optimized start time and / or an optimized stop time for the walking or running period that optimizes a predefined optimization function; It is configured as follows: The iterative optimization process comprises: i) incrementing or decrementing the current candidate start time; ii) determining a value of the metric based on the incremented or decremented current candidate start time and the current candidate stop time; Including, the metric depends on the time difference between the start time and the stop time. An apparatus characterized in that
2. The iterative optimization process comprises: iii) determining whether the metric determined in ii) is better than the metric determined in ii) in the previous iteration, accepting the incremented or decremented start time as the current candidate start time, then returning to i) if the metric determined in ii) is better than the metric determined in the previous iteration, or returning to the previous candidate start time if the metric determined in ii) in the previous iteration is better than the metric determined in the current iteration; Including, 10. The apparatus of claim 1.
3. The iterative optimization process comprises: iv) determining whether the metric determined in ii) is better than the metric determined in ii) in the previous iteration, accepting the incremented or decremented stop time as the current candidate stop time, then returning to i) if the metric determined in ii) is better than the metric determined in the previous iteration, or returning to the previous candidate stop time if the metric determined in ii) in the previous iteration is better than the metric determined in the current iteration; Including, 3. The device according to claim 1 or 2.
4. the iterative optimization process is configured to maximize or minimize a predetermined metric for the walking or running session; 4. An apparatus according to any one of claims 1 to 3.
5. If the duration of the walking or running period is extended (by changing either the start time or the stop time), the metric is configured to increase if the added interval corresponds to walking or running, and to decrease if the added interval does not correspond to walking or running.
5. The apparatus of claim 4.
6. If the duration of the walking or running period is shortened (by changing either the start time or the stop time), the metric is configured to increase if the removed interval does not correspond to walking or running, and to decrease if the added interval corresponds to walking or running.
6. The device according to claim 4 or 5.
7. At least one of the processor and the memory is configured to determine the autocorrelation function of the motion data; The metric is: one or more parameters obtained from the autocorrelation function; Including, 7. An apparatus according to any one of claims 1 to 6.
8. At least one of the processor and the memory are configured to determine the peak value of the autocorrelation function after a zero-lag peak; The metric depends on the determined peak value.
8. The apparatus of claim 7.
9. At least one of the processor and the memory are configured to determine an autocorrelation delay corresponding to the peak value; The metric depends on the determined autocorrelation delay.
9. The apparatus of claim 8.
10. the at least one processor and the memory are configured to determine the autocorrelation function of the accelerometer data within each of the epochs and determine whether the user is walking or running within the epoch depending on the autocorrelation function determined for the epoch.
10. An apparatus according to any one of claims 1 to 9.
11. the at least one processor and the memory are configured to determine one or more of a stride period, a stride correlation value, and an amplitude measurement to determine whether the user is walking or running within the epoch.
11. Apparatus according to any one of claims 1 to 10.
12. The at least one processor and the memory determining that the stride period is above a first threshold and below a second threshold; determining that the stride length correlation value is greater than a third threshold; determining that the amplitude measurement exceeds a fourth threshold; and determining whether the user is walking or running within the epoch by determining one or more of:
12. The device of claim 11.
13. the at least one processor and the memory are configured to concatenate adjacent epochs in the series of epochs during which the user has been determined to be walking or running to determine the walking or running period of the user, and to use the concatenated epochs to determine the initial start time and the initial stop time of the determined walking or running period.
13. Apparatus according to any one of claims 1 to 12.
14. The motion sensor carried by the user when walking or running is an accelerometer or a gyroscope.
14. Apparatus according to any one of claims 1 to 13.
15. the at least one processor and the memory are configured to acquire the motion data from a plurality of motion sensors carried by the user while walking or running, and the start time and the stop time of at least one of the walking or running periods are determined using the motion data from the plurality of motion sensors.
15. Apparatus according to any one of claims 1 to 14.
16. the at least one processor and the memory are configured to use the motion data from each of the motion sensors to determine the start time and the stop time of each of at least one of the walking or running periods, and i) average the start time and the stop time of at least one of the walking or running periods, or ii) use the motion data to verify the start time and the stop time determined from data obtained from the motion data from one of the motion sensors or the motion data obtained from the other of the motion sensors; 16. The apparatus of claim 15.
17. the motion sensors are mounted on the same user device carried by the user, or the motion sensors are mounted on different user devices carried by the user, typically at different wearing positions; 17. Apparatus according to claim 15 or 16.
18. An apparatus constituting part of a clinical trial system, a central computer in communication with a plurality of said user devices; and each of the user devices configured to collect the motion data relating to the movement of the user associated with the user device; the central computer or at least one of the user devices; 18. The apparatus of any one of claims 1 to 17, wherein the apparatus determines the start time and the stop time of the walking or running period of the user. Equipped with 18. Apparatus according to any one of claims 1 to 17.
19. 1. A method for determining start and stop times of a walking or running period of a user, comprising: acquiring motion data from a user device carried by the user while walking or running; dividing the motion data into a series of epochs; processing the motion data in each of the epochs to determine one or more of the epochs in which the user is walking or running; determining at least one walking or running period of the user from one or more of the epochs; determining an initial start time and an initial stop time for the determined walking or running period; determining a peak value of an autocorrelation function or a peak value in a frequency domain determined by frequency analysis for the motion data between the candidate start time and candidate stop time of the walking or running period based on the determined initial start time and initial stop time; determining a metric for the pair of candidate start times and candidate stop times that is dependent on the determined peak value; running an iterative optimization process that modifies the initial start time and / or the initial stop time to identify an optimized start time and / or an optimized stop time for the walking or running session that optimizes a predefined optimization function; Including, The iterative optimization process comprises: i) incrementing or decrementing the current candidate start time; ii) determining a value of the metric based on the incremented or decremented current candidate start time and the current candidate stop time; Including, the metric depends on the time difference between the start time and the stop time. A method characterized by:
20. Computer implementable instructions for configuring a programmable computing device as an apparatus according to any one of claims 1 to 18. Including, 1. A tangible computer-readable medium comprising:
Citation Information
Patent Citations
Improved Gait Detection in User Movement Measurements
JP2017504440A
Wearable activity monitoring device and related method
US20160007888A1
Information processing device, information processing method, and information processing program
WO2017199305A1
Analysis of the stride of a walking pedestrian
WO2019243609A1