CPC A63B 24/0075 (2013.01) [A61B 5/0022 (2013.01); A61B 5/0024 (2013.01); A61B 5/1114 (2013.01); A61B 5/1123 (2013.01); A61B 5/6805 (2013.01); A61B 5/6806 (2013.01); A61B 5/6895 (2013.01); A61B 5/742 (2013.01); A63B 24/0003 (2013.01); G16H 20/30 (2018.01); G16H 40/67 (2018.01); G16H 50/20 (2018.01); A61B 2562/0219 (2013.01); A63B 2102/32 (2015.10)] | 9 Claims |
1. A method for processing and training a dynamic body motion, comprising:
receiving, by a central processing unit (CPU), sensor data for a dynamic body motion for an exercise from one or more sensors worn by a user that are configured to communicate the sensor data;
analyzing, by the CPU, the received sensor data to form motion data related to one or more components of the dynamic body motion;
comparing, by the CPU, the motion data with stored motion parameters for a motion template T stored in a motion database;
computing, by the CPU, a similarity score between the motion data and the stored motion parameters for the motion template T;
generating, by the CPU, in real time a first biofeedback signal when the similarity score is outside a predetermined acceptable range, and in real time a second biofeedback signal that is different than the first biofeedback signal when the similarity score is within the predetermined acceptable range; and
automatically prescribing, by the CPU, an exercise regime stored in the motion database based upon the computed similarity score for use in a biofeedback training exercise,
wherein the similarity score is computed by:
creating the motion template T having an M×N matrix, wherein each of the M rows represents a motion parameter time series of length N,
creating a motion template S having an M×K matrix from the received sensor data consisting of K samples, where K≥N, such that each of the M rows represents the same motion parameters included in the motion template T,
aligning the motion template S with the motion template T using cross-correlation and truncate non-overlapping columns as follows:
i. selecting a motion parameter row to use for alignment,
ii. calculating a lag τ between Ti,* and
iii. If 0≤τ≤K−N, then truncate the first τ columns and last (K−N−τ) columns of S to yield M×N matrix
and if τ<0 or τ>K−N, then stop and raise an error indicating that the received sensor data does not contain data matching the entire motion template T, and
computing the similarity score as a weighted sum of normalized root mean square error (NRMSE) values between corresponding rows of Ŝ and T wherein each value wi is a scalar weight applied to the NRMSE for row i
wherein Ti is a time series of a single motion parameter from the motion template T for a row i of the M×N matrix, Si is a time series of a single motion parameter from the motion template S for a row i of the M×K matrix, and n refers to an index of each time series Ti and Si.
|