The present teachings relate to systems and methods for frequency-based stride length correction in a pedometer device using post-session calibration, and more particularly, to platforms and techniques to generate values for distance traveled when using a pedometer device.
In personal sports, health, and other applications, a variety of pedometer devices have been marketed which record the number and/or frequency of stride steps being taken by the user. That data is then converted into an estimated value for the distance that has been traveled by the user in a given walking, running, or other session.
In known pedometer platforms, the stride frequency data is supplied by an integral stride detector and used as input to a set of distance calculations. Those calculations assume or estimate the distance of each stride taken by the user, after strides are detected. An overall average stride length based on human biomechanical models and/or empirical averages can be used for those calculations. The degree of deviation in actual stride length from user to user can, however, be significant, and the use of “one size fits all” stride length models can result in total distance results whose accuracy can be less than satisfactory for a wide range of users.
In some cases, commercial pedometer products have attempted to incorporate refinements to stride length models to enhance the accuracy of total distance readings. Some pedometer products have, for instance, provided users an ability to enter their gender, height, weight, age, and/or other physical characteristics and used lookup tables to match the user's physical profile with empirical data or models tailored to those demographic categories. In cases, the estimated distance may be multiplied by some type of correction or scaling factor to produce an adjusted distance output which more closely approximates the actual distance traveled by the user, given his or her particular physical traits.
Although some pedometer products work well for some users, pedometer and other measurement devices would benefit from more accurate distance estimates for wider classes of users.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate implementations of the present teachings and, together with the description, serve to explain the principles of the present teachings. In the figures:
Implementations of the present teachings relate to systems and methods for frequency-based stride length correction in a pedometer device with optional post-session calibration. More particularly, implementations relate to platforms and techniques for generating estimated distance readings from pedometer and other devices which incorporate corrected or adjusted stride length values using frequency-based correction factors. The distance contributions from strides made at different frequencies are corrected or adjusted in proportion to their statistical distribution to traveled distance in a given user's history. The corrected value for a given user can accordingly achieve a higher degree of accuracy when compared against derivations that fail to take stride frequency distributions into account.
In a given session, it will typically be true that users spend different amounts of time walking or running at different stride frequencies, and the strides made at those frequencies may be of different lengths. Thus the contributions to total distance made by the strides taken at each stride frequency will be different as well. For instance, many users may exhibit a stride pattern where initial strides during a session will occur with lower frequency and entail a shorter stride length, followed by a gradual buildup to higher-frequency strides that cover a greater stride length. Various implementations of the disclosed systems and methods seek to adjust for these frequency-based differences in stride length to develop a more accurate distance calculation for a user's pedometer.
Reference will now be made in detail to exemplary implementations of the present teachings, which are illustrated in the accompanying drawings. Where possible the same reference numbers will be used throughout the drawings to refer to the same or like parts.
As shown, for each stride frequency captured for the user, a pedometer can store a count of the number of strides recorded at that frequency. The frequency count table 102 can record that data on a cumulative basis, recording and updating the individual counts for the various frequencies after successive walking, running, or other sessions. The frequency count table 102 can be built into a user profile or history for a specific user and, in general, the frequency count table 102 will reflect a probability distribution of the stride frequencies registered for the user during the user's walking, running, or other activities.
For a number of users, the probability distribution encoded in the frequency count table 102 will reflect a distribution where there are relatively few stride events recorded at some stride frequencies (e.g., at frequency extremes such as very slow walking and very fast running) and a significant number of stride events recorded at a characteristic stride frequency or group of stride frequencies (e.g., at a natural walking stride frequency and a target jogging stride frequency).
The device 204 can be configured to conduct various operations, both during a current activity session and after that session is concluded. According to aspects, the device 204 can operate in two phases, one during a running or other workout or session, and another after the session is complete and a measured or “corrected” distance can be entered based on sources or measurements other than the pedometer itself.
In implementations as shown in
The user profile 210 can be or include a local data store recording information related to the user, such as the user's gender, age, height, weight, estimated stride length, and/or other physical or other characteristics of the user. For instance, for first-run purposes or at other times, the user profile 210 can include an estimated, calibrated, and/or default stride length to apply to each stride taken by the user at a given frequency, before other data is gathered about the user's particular stride or activity behavior.
The user profile 210 can indicate for instance, that for a current walking, running, or other session by a female user, a stride length of 0.75 meter will be assigned or recorded for each detected stride at all stride frequencies. This would be a very simple stride-length model perhaps based on a crude estimate of a statistically “average” woman's stride length while walking. Other, more complicated stride length values, including a distribution of different stride lengths according to stride frequency, can be encoded in the user profile 210. These differing stride length values may be developed using empirical data or a physiological model. When the stride frequency measurements 212 during a session are received, the dynamic stride length estimator 214 can retrieve or calculate the stride lengths for each stride event detected at a particular stride frequency from the user profile 210 and produce a set of estimated stride lengths 216 (shown as Iestimated).
The dynamic stride length estimator 214 can then transmit or enter the set of estimated stride lengths 216 to a correction value table 208, which can include a row of entries indexed by stride frequencies of the user. See
Thus, for instance, for the first stride frequency value, the correction may be a factor of 1.1, while for the fourth stride frequency value, the correction may be a factor of 1.5. The estimated stride lengths 216 at each stride frequency can then be multiplied by the corresponding correction factors (1.1., 1.2, etc.) to derive an adjusted or corrected stride length 220 at each frequency (shown as Icorrected). Each corrected stride length 220 can then be passed into an accumulator 224 where it is added to an accumulated total traveled distance which can be displayed to the user of the device 204 on a display (not shown). The output of the accumulator is the reported distance 218 (shown as destimated) which represents an estimated distance which the user has traveled in a given session, based on the total number of strides taken so far, a given stride length per stride at a particular frequency, and frequency-based correction factors reflected in the correction value table 208 for the user. The value for the reported distance 218 can be calculated according to the following equation.
where k is an index ranging from 1 to n, n is the number of measurements taken during the user's activity, fk is the stride frequency measured during the kth measurement, DSLE(fk) is the estimated stride length corresponding to stride frequency fk, and c(fk) is the correction factor for stride frequency fk.
It may be noted that for the first use of the device 204 for a particular user, the values of the correction factor for each stride frequency contained in the correction value table 208 can be set to a default value of 1. In this phase of operation, the device 204 will display or report the estimated distance 218 to be that distance directly predicted by the initial model of the user profile 210. Subsequent sessions will begin to build successively refined or adjusted values in the correction value table 208. The reported distance 218 in the first and subsequent sessions may or may not, however, always reflect an accurate total distance value for the user, prior to the processing and adjustments described herein.
More specifically and as for instance illustrated in
In implementations or operations as shown in
In operations shown in
where c(fi) is the correction value for each fi in the correction value table 208, 308, fi is the ith stride frequency in both the correction value table 308 and the frequency count table 202, dcorrected is the corrected distance 322, destimated is the reported distance 318, and p(fi) 328 is the probability that frequency fi will be measured during a user's activity. The multiplicative term (¼) represents an optional correction limit factor, to constrain or limit the amount by which a particular stride length may be corrected based on the corrected distance 322 produced in any single session. While a term of (¼) is shown for the correction limit factor, it will be appreciated that other values less than 1, such as (⅕), (⅓), or others, can be used. It will likewise be appreciated that the correction limit factor can itself be updated or adjusted at different times.
In the foregoing Equation 2, the p(fi) term represents a probability distribution function which indicates the marginal probability distribution of stride frequencies for the last running or other session. According to implementations, p(fi) can be calculated for every frequency fi by dividing the count for frequency fi in the frequency count table 202 by the total count over all frequencies in the frequency count table 202, i.e., normalizing the histogram embodied in frequency count table 202 to generate the marginal probability distribution.
It may be noted that in the correction factors entered in the correction value table 308, the weighting or scaling of those factors in proportion to the relative frequency of each stride frequency value incorporates the fact that the strides taken at different stride frequencies contribute different amounts to the total reported distance. The frequency-adjusted correction factors reflected in the correction value table 308 can therefore weight the most common stride frequencies by the greatest cumulative amount, resulting in a total distance calculation in the reported distance 318 having enhanced accuracy.
For example, in a simplified case, a user runs a mile in 2000 steps with 1500 steps at a first frequency and 500 steps at a second frequency. If the reported estimated distance is 1.25 miles, the corrected distance is 1.00 mile, and the correction limit factor is 0.25, then the correction values can be computed as follows.
Given:
p(f1)=1500/2000=0.75
p(f2)=500/2000=0.25
d
estimated=1.25 miles, and
d
corrected=1.00 mile.
The corrected distance is −20% percent of the estimated distance, i.e. the relative correction factor is:
Dividing this by 4 simply reduces the amount of the relative correction factor to −5%. Applying the probabilities of each frequency to the relative correction factor results in 75% of the −5% relative correction factor, or −3.75% [i.e., (0.75)(−0.05)=−0.0375], being applied to the previous correction value for frequency f1 and the remaining 25% of the −5% relative correction factor, or −1.25% [i.e., (0.25)(−0.05)=−0.0125], being applied to the previous correction value for frequency f2.
The last step of adding the 1 in Equation 2 converts the relative correction factor into an absolute correction factor that can be used in the correction value table as a multiplier for the estimated stride lengths. In this example, we assume that the previous correction value at all stride frequencies is 1. Then:
Thus, the previous correction factors c(f1) and c(f2) can be multiplied by 0.9625 and 0.9875 based on the feedback from the corrected distance 322.
To summarize, a relative correction factor of −20% was determined (equal to an 80% absolute correction factor), which was reduced to a −5% relative correction factor that was then divided between stride frequencies f1 and f2 such that 75% of the relative correction factor was applied to f1 and 25% of the relative correction factor was applied to f2. The last step converted the relative correction factors into absolute correction factors suitable for the correction value table. So instead of applying a flat 80% (1.0-0.2=0.8) absolute correction factor irrespective of stride frequency, a 96.25% (0.9625) correction factor update was applied to frequency f1 and a 98.75% (0.9875) correction factor update was applied to frequency f2. Over multiple sessions, as the reported distance 318 converges with the corrected distance 322, any update to a correction factor will tend to converge to a multiplier of 1, which means that the correction factor will settle on a particular value. Of course, in reality, the correction factor may continue to adjust by slight amounts due to differing stride patterns and environments.
It may be noted that the adjustment to the correction factors in the correction value table 308 may be repeated after any session where the distance traveled is known independently of the device 304, which can result in values that develop or converge to an accurate long-term typical value for a user. In implementations, the adjustment process shown in
In 404, the detector 206 can detect the occurrence of a step by the user, which can likewise be used to produce a stride frequency value. In 408, the stride frequency count table 202 is updated with the stride event at the detected stride frequency. In 406, the dynamic stride length estimator 214 can access the user profile 210 and/or a statistical model or engine to estimate the length of a stride based on the detected stride frequency. It may be noted that in implementations, the user profile 210 for more than one user can be stored in a device 204, 304. It may also be noted that in implementations, the user profile 210 can be stored in electronic or other storage in the device 204, 304, but can also or instead be accessed via networked data stores.
In 412, the stride length for the current detected stride can be adjusted based on the correction factor for the associated stride frequency in the correction value table 208, 308. In 414, the speed and distance traveled during the current session can be estimated in the accumulator 224 based on the corrected stride lengths and elapsed time since the beginning of the current session. In 416, the user can end their current workout or session.
In optional 418, the reported distance 218, 318 can be generated by the device 204, 304. In implementations, the reported distance 218, 318 can be displayed to the user. In 420, the corrected distance can be received into the device 304, for instance by the user entering the distance displayed on the display screen of a treadmill, or other type of exercise equipment. In 422, correction factors are calculated in correction calculator 326 according to Equation 2. In implementations, and as for example reflected in Equation 2, the correction value can be weighted or scaled by an adjustment limit factor, such as 0.25, 0.33, or other values, to constrain the amount by which adjustments are made for each session cycle.
In 424, the correction value table 308 can be updated based on the calculated correction factors and the marginal probability distribution derived from the frequency count table 202, thereby creating a set of correction values that are frequency-dependent based on the user's history and stride frequency probability distribution. In 426, processing can repeat, return to a prior processing point, jump to a further processing point, or end.
In implementations, the device 204, 304, and/or other hardware or platforms incorporating systems and methods described herein can comprise a platform including a processor communicating with memory, such as electronic random access memory, operating under control of or in conjunction with an operating system. The processor can be incorporated in one or more processor or multiprocessors, field programmable arrays, digital signal processors, and/or other computers, circuits, or hardware resources. The operating system when used can be, for example, a distribution of the Linux™ operating system, the Unix™ operating system, or other open-source or proprietary operating system or platform. The device can incorporate a data store, such as a database stored on a local hard drive or drive array, to access or store stride-related information, and/or subsets of selections thereof, along with other content, media, or other data. When equipped for networked communication, the device 204, 304, and/or other device can include a network interface, such as an Ethernet or wireless data connection, which in turn communicates with the one or more external networks, such as the Internet or other public or private networks. Other configurations of the device 204, device 304, associated network connections, and other hardware, software, and service resources are possible.
The foregoing description is illustrative, and variations in configuration and implementation may occur to persons skilled in the art. For example, while implementations have been described in which the device 204, 304 includes one dynamic stride length estimator 214, in implementations that estimator or similar or related logic can be implemented in multiple processors, software, or logic. Furthermore, the frequency count table 202 and the correction value table 208, 308 can be implemented as part of user profile 210 to enable multiple users of device 204, 304 to maintain separate sets of personalized tables. Other resources described as singular or integrated can in implementations be plural or distributed, and resources described as multiple or distributed can in implementations be combined. The scope of the present teachings is accordingly intended to be limited only by the following claims.