Sign In to Follow Application
View All Documents & Correspondence

Method And System For Correcting Data Captured Using A Motion Sensor

Abstract: A method and system for correcting the data captured using a motion sensor such as Kinect is described. The invention provides an algorithm based on Kalman filter with dynamic adaptation of measurement noise depending on joints movement profile. The data is captured using the Kinect motion sensor and the IMU sensor. Then a specially weighing function is designed whose parameters are optimally chosen using differential evolutionary optimization algorithm. The invention also takes into consideration of the minimization of the variation of bone length of the body segment. The difference between the computed bone length and actual bone length is also minimized using the differential evolutionary algorithm.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
22 December 2016
Publication Number
26/2018
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2023-09-13
Renewal Date

Applicants

Tata Consultancy Services Limited
Nirmal Building, 9th Floor, Nariman Point, Mumbai-400021, Maharashtra, India

Inventors

1. DAS, Pratyusha
Tata Consultancy Services Limited, Building-1B Ecospace Plot-IIF/12 Newtown, Rajarhat, Kolkata- 700160, West Bengal, India
2. CHAKRAVARTY, Kingshuk
Tata Consultancy Services Limited, Building-1B Ecospace Plot-IIF/12 Newtown, Rajarhat, Kolkata- 700160, West Bengal, India
3. SINHA, Aniruddha
Tata Consultancy Services Limited, Building-1B Ecospace Plot-IIF/12 Newtown, Rajarhat, Kolkata- 700160, West Bengal, India
4. CHATTERJEE, Debatri
Tata Consultancy Services Limited, Building-1B Ecospace Plot-IIF/12 Newtown, Rajarhat, Kolkata- 700160, West Bengal, India
5. CHOWDHURY, Arijit
Tata Consultancy Services Limited, Building-1B Ecospace Plot-IIF/12 Newtown, Rajarhat, Kolkata- 700160, West Bengal, India
6. SAHA, Sanjoy Kumar
Flat-1A, 42 Central road, Kolkata - 700042, West Bengal, India

Specification

Claims:1. A method for correcting data captured using a motion sensor, the method comprising a processor implemented steps of:

capturing the data comprising variation of a plurality of joints of a person’s body using the motion sensor, wherein the person is performing a set of exercises, wherein the plurality of joints comprising one or more static joints and one or more dynamic joints;
capturing inertial measurement unit (IMU) data of the person at the plurality of joints using IMU sensors, wherein the person is performing the set of exercises;
computing a variance of the difference between the position of the plurality of joints, captured from the IMU sensors and the same obtained from the motion sensor;
initializing a state estimate covariance matrix of a Kalman filter using the variance of the difference;
computing a measurement noise for the static joint using the variance of the position of the joint captured from the motion sensor;
computing the measurement noise for the dynamic joint as the variance of difference between position of the joint obtained from motion sensor and the IMU sensors;
designing a parameterized weight function using the measurement noise of the static joint and the dynamic joint, wherein the parameters of the weight function are chosen using an optimization algorithm;
updating the measurement noise of the Kalman filter in real time using the parameterized weight function;
applying the updated measurement noise in Kalman filter to reduce the noise from the data captured from the motion sensor;
computing a bone length using the position of the plurality of joints obtained from the Kalman filtered data;
getting an actual bone length of the person;
minimizing the difference between the computed bone length and the actual bone length using a differential evolutionary algorithm to obtain a minimized variation in bone length; and
generating the corrected captured data using the minimized variation in bone length.

2. The method of claim 1 further comprises a training phase and a testing phase, wherein the IMU data captured during the training phase.

3. The method of claim 1 further comprising taking the weighted average of the measurement noise captured through the static joint and the dynamic joint using the velocity of the static joint and the dynamic joint.

4. The method of claim 1, wherein the motion sensor is the Kinect sensor capturing 3D co-ordinates of 20 joints of a skeleton data as a time series information.

5. The method of claim 1, further comprising applying a low pass filter on the IMU data to reduce the variation in the joint center position.

6. The method of claim 1, wherein the optimization algorithm is a meta-heuristic algorithm.

7. The method of claim 1, wherein the IMU sensor comprises at least one of an accelerometer, a gyro-meter, or a magnetometer.

8. The method of claim 1, wherein the set of exercise are performed after the static state.

9. The method of claim 1, wherein the Kalman filter is a second order Kalman filter.

10. The method of claim 1, wherein the Kinect sensor and the IMU sensor are time synchronized.

11. The method of claim 1 further comprising transforming the IMU data and the Kinect data into a same coordinate system.

12. The method of claim 1, wherein each joint could be either static or dynamic joint depending on its velocity as negligible (close to zero) or non-zero respectively.
13. A system for correcting data captured using a motion sensor, the system comprising:

a motion sensor for capturing the data comprising variation of a plurality of joints of a person’s body, wherein the person is performing a set of exercises, wherein the plurality of joints comprising one or more static joints and one or more dynamic joints;
inertial measurement unit (IMU) sensors for capturing inertial measurement unit (IMU) data of the person at the plurality of joints, wherein the person is performing the set of exercises;
a memory; and
a processor in communication with the memory, the processor further comprising the step of:
computing a variance of the difference between the position of the plurality of joints, captured from the IMU sensors and the same obtained from the motion sensor;
initializing a state estimate covariance matrix of a Kalman filter using the variance of the difference;
computing a measurement noise for the static joint using the variance of the position of the joint captured from the motion sensor;
computing the measurement noise for the dynamic joint as the variance of difference between position of the joint obtained from motion sensor and the IMU sensors;
designing a parameterized weight function using the measurement noise of the static joint and the dynamic joint, wherein the parameters of the weight function are chosen using an optimization algorithm;
updating the measurement noise of the Kalman filter in real time using the parameterized weight function;
applying the updated measurement noise in Kalman filter to reduce the noise from the data captured from the motion sensor;
computing a bone length using the position of the plurality of joints obtained from the Kalman filtered data;
getting an actual bone length of the person;
minimizing the difference between the computed bone length and the actual bone length using a differential evolutionary algorithm to obtain a minimized variation in bone length; and
generating the corrected captured data using the minimized variation in bone length.
, Description:FORM 2

THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENT RULES, 2003

COMPLETE SPECIFICATION
(See Section 10 and Rule 13)

Title of invention:
METHOD AND SYSTEM FOR CORRECTING DATA CAPTURED USING A MOTION SENSOR

Applicant:
Tata Consultancy Services Limited
A company Incorporated in India under the Companies Act, 1956
Having address:
Nirmal Building, 9th floor,
Nariman point, Mumbai 400021,
Maharashtra, India

The following specification particularly describes the invention and the manner in which it is to be performed.

FIELD OF THE INVENTION
[0001] The present application generally relates to the field of rehabilitation of stroke patient by assessing body joint kinematics. More particularly, but not specifically, the invention provides a system and method for correcting a positional data captured from a motion sensor such as KinectTM.

BACKGROUND OF THE INVENTION
[0002] Kinematic analysis of the 3-dimensional (3D) body joints is essential for health monitoring of elderly, stroke patients and individuals with neurological disorders. There are various disabilities caused by stroke like loss of vision, speech, partial or full paralysis, cognitive dysfunction etc. In some cases, stroke patients experience minor to severe upper extremity motor deficits like abnormal coupling of shoulder adductors with elbow extensors, shoulder abductors with elbow flexors and reduction in joint range of motion (ROM).

[0003] Continuous monitoring of such individuals and effective rehabilitation are absolutely essential to regain and relearn the skills of everyday living for a healthy life. Personal care givers for 24x7 monitoring are expensive and hence not an affordable solution. Thus, there is a significant need for affordable motion capture module with acceptable accuracy for home-based rehabilitation solution. There are various solution available in the prior art.

[0004] A marker-based solution, primarily meant for clinical setup, is not feasible due to their cost and need for specialized training. Marker-less motion sensors such as Microsoft Kinetic™ are very popular due to its affordability, portability and unobtrusiveness. However, skeleton data obtained from such devices are usually noisy which affects accuracy of estimation of 3-Dimensional (3D) joint locations. The noise profile varies for both stationary and dynamic postures and it affects anthropometric measurements of the body segments connecting any two joints. This may not be particularly suitable for applications in the health and rehabilitation industry. These devices use an RGB and an infrared (IR) camera for providing 3D positions of various body parts, enabling possible analysis of 3D body joint kinematics. However, it is associated with measurement errors in the estimation of the joint positions due to variations in external lighting conditions and IR interference. It is observed that there are two types of noise present in the skeleton data obtained from Kinect. One is due to a high frequency fluctuation in joint position estimation for static postures and the other due to the error in tracking during dynamic condition. This is due to the non-anthropometric skeleton model, resulting in increased error (6-8 cm) in physical structure related information like body segment or bone length, height of an individual etc.

[0005] Researchers have adopted various other approaches such as using joint bilateral filters or fitting a stick skeleton model to human body for removing the noise. These approaches do not use the tracking to preserve the length of the body parts. Kalman filtering have also been used for data fusion of multiple Kinect sensor for noise correction, but still require further improvements to increase the accuracy of the Kinect data.

SUMMARY OF THE INVENTION
[0006] The following presents a simplified summary of some embodiments of the disclosure in order to provide a basic understanding of the embodiments. This summary is not an extensive overview of the embodiments. It is not intended to identify key/critical elements of the embodiments or to delineate the scope of the embodiments. Its sole purpose is to present some embodiments in a simplified form as a prelude to the more detailed description that is presented below.

[0007] In view of the foregoing, an embodiment herein provides a system for correcting data captured using a motion sensor such as Kinect. The system comprises a motion sensor, inertial measurement unit sensors, a memory and a processor. The motion sensor captures the data comprising variation of a plurality of joints of a person’s body, wherein the person is performing a set of exercises. The plurality of joints comprises one or more static joints and one or more dynamic joints. The inertial measurement unit (IMU) sensors captures inertial measurement unit (IMU) data of the person at the plurality of joints, wherein the person is performing the set of exercises; The process can be performed in training phase or testing phase. The IMU data is captured only during the training phase. The processor further configured to perform the steps of: computing a variance of the difference between the position of the plurality of joints, captured from the IMU sensors and the same obtained from the motion sensor; initializing a state estimate covariance matrix of a Kalman filter using the variance of the difference; computing a measurement noise for the static joint using the variance of the position of the joint captured from the motion sensor; computing the measurement noise for the dynamic joint as the variance of difference between position of the joint obtained from motion sensor and the IMU sensors; designing a parameterized weight function using the measurement noise of the static joint and the dynamic joint depending on the velocity present in that joint, wherein the parameters of the weight function are chosen using an optimization algorithm; updating the measurement noise of the Kalman filter in real time using the parameterized weight function; applying the updated measurement noise in Kalman filter to reduce the noise from the data captured from the motion sensor; computing a bone length using the position of the plurality of joints obtained from the Kalman filtered data; getting an actual bone length of the person; minimizing the difference between the computed bone length and the actual bone length using a differential evolutionary algorithm to obtain a minimized variation in bone length. And, generating the corrected captured data using the minimized variation in bone length.

[0008] Another embodiment provides a method for correcting data captured using a motion sensor. Initially, the data comprising variation of a plurality of joints of a person’s body is captured using the motion sensor, wherein the person is performing a set of exercises. At the next step, the inertial measurement unit (IMU) data of the person is captured at the plurality of joints using IMU sensors, wherein the person is performing the set of exercises. The process can be performed in training phase or testing phase. The IMU data is captured only during the training phase. In the next step, a variance of the difference between the positions of the plurality of joints is computed, using the data captured from the IMU sensors and the motion sensor. In the next step, a state estimate covariance matrix of a Kalman filter is initialized using the variance of the difference. In the next step a measurement noise is computed for the static joint using the variance of the position of the joint captured from the motion sensor. Followed by the computation of the measurement noise for the dynamic joint as the variance of difference between position of the joint obtained from motion sensor and the IMU sensors. A weighted average of the measurement noise captured through the static joint and the dynamic joint is taken using the velocity of the static joint and the dynamic joint. In the next step, a parameterized weight function is designed using the measurement noise of the static joint and the dynamic joint. The parameters of the weight function are chosen using an optimization algorithm. In the next step, the measurement noise of the Kalman filter is updated in real time using the parameterized weight function. In the next step, the Kalman filter with updated measurement noise is applied to reduce the noise from the data captured from the motion sensor. In the next step a bone length is computed using the position of the plurality of joints obtained from the Kalman filtered data. Further an actual bone length of the person is received. In the next step, the difference between the computed bone length and the actual bone length is minimized using a differential evolutionary algorithm to obtain a minimized variation in bone length. And finally, the corrected captured data is generated using the minimized variation in bone length.

BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The embodiments herein will be better understood from the following detailed description with reference to the drawings, in which:

[0010] Fig. 1 illustrates a block diagram of a system for correcting the data captured using a motion sensor, in accordance with an embodiment of the disclosure;

[0011] Fig. 2 shows a skeleton data obtained from the joints and body segments using the motion sensor, in accordance with an embodiment of the present disclosure;

[0012] Fig. 3 is a flowchart illustrating the steps involved for correcting the data captured using a motion sensor, in accordance with an embodiment of the disclosure

[0013] Fig. 4 shows the graphical representation of change in standard deviation in bone length for left shoulder flexion, in accordance with an embodiment of the disclosure; and

[0014] Fig. 5 shows the graphical representation of performance of Kalman filter with constant measurement noise in comparison with raw data, in accordance with an embodiment of the disclosure; and

[0015] Fig. 6 shows the graphical representation of the Kalman filter with differential evolutionary during right and left SLS, in accordance with an embodiment of the disclosure.

DETAILED DESCRIPTION OF THE INVENTION
[0016] The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein may be practiced and to further enable those of skill in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.

[0017] The words "comprising," "having," "containing," and "including," and other forms thereof, are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items.

[0018] It must also be noted that as used herein and in the appended claims, the singular forms "a," "an," and "the" include plural references unless the context clearly dictates otherwise. Although any systems and methods similar or equivalent to those described herein can be used in the practice or testing of embodiments of the present disclosure, the preferred, systems and methods are now described.

[0019] Some embodiments of this disclosure, illustrating all its features, will now be discussed in detail. The disclosed embodiments are merely exemplary of the disclosure, which may be embodied in various forms.

[0020] Before setting forth the detailed explanation, it is noted that all of the discussion below, regardless of the particular implementation being described, is exemplary in nature, rather than limiting.

[0021] Referring now to the drawings, and more particularly to FIG. 1, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments and these embodiments are described in the context of the following exemplary system and/or method.

[0022] In the context of the present disclosure, the expression “ranges of motion” refers to any kind of movement of a body during dynamic postures involving joints in the body. Although the present disclosure may be explained with reference to skeleton data received particularly from Microsoft Kinetic™, it may be understood that skeleton data may be received from any motion sensing device. The expressions Kinect™, Kinect™ version1, Kinect™ version2, Kinect may be used interchangeably in the description hereunder to represent the motion sensing device used in an exemplary embodiment; Kinect™ version1 and Kinect™ version2 represent two versions of the Microsoft™ product.

[0023] According to an embodiment of the disclosure, a system 100 for correcting data captured using a motion sensor is shown in Fig. 1. The disclosure provides a correction method and system using Kalman filter with dynamic adaptation of measurement noise depending on joints movement profile. This is realized by a specially designed weighing function whose parameters are optimally chosen using differential evolutionary algorithm. The system and method also takes consideration of optimized variation of the bone length for correcting the data.

[0024] According to an embodiment of the disclosure, a block diagram of the system 100 is shown in Fig. 1. The system 100 includes an input/output interface 102, a memory 104, a processor 106 in communication with the memory 104, a motion sensor 108 and inertial measurement unit (IMU) sensors 110. The memory 104 is configured to store a plurality of algorithms. The processor 106 further includes a plurality of modules for performing various functions. The plurality of modules access the plurality of algorithms stored in the memory 104 to perform various functions.

[0025] The I/O interface 102 can include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like and can facilitate multiple communications within a wide variety of networks N/W and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite. In an embodiment, the I/O interface device(s) can include one or more ports for connecting a number of devices to one another or to another server.

[0026] According to an embodiment of the disclosure, the person is asked to perform a set of exercises. The set of exercises may include static limb support (SLS), range of motion or any other set of exercises. The skeleton data of the person is captured when the person is performing the set of exercises using the motion sensor 108. In an example, Kinect has already been used for analyzing ROM which is a key indicator for evaluation of upper extremity activities. Fig. 2 shows the skeleton data (joint coordinate in X, Y, Z direction) of a frame captured at sampling frequency (fs) of 30fps from Kinect Xbox 360 sensor. The motion sensor 108 is capturing 3D co-ordinates of 20 joints of a skeleton data as a time series information. In order to capture variation of body segment (bone) length, person is asked to perform shoulder flexion/extension and shoulder abduction/adduction standing at a 2.1m - 2.4m distance from the Kinect, which is placed 1m above the ground. The data was collected for these exercises for both left and right hands. Moreover, to capture static and dynamic noise characteristics, subjects are initially requested to remain in stationary pose for 30 seconds and then perform the exercises. Subjects performed each exercise twice, where one set is used for training and another for testing. In addition to that the person is also tested in Single limb support exercise.

[0027] In addition to the motion sensor 108 data, the time synchronized inertial measurement unit (IMU) data is also captured using IMU sensor 110. In an example Shimmer IMU sensor 110 is used for capturing the IMU data of the person. The IMU sensor 110 has been placed at each joint and the data recording is done at 51.2 Hz, which is resampled to match motion sensor 108 sampling rate. The system 100 can be used in training phase or testing phase. The IMU data is captured only during the training phase. Training phase uses data from the motion sensor 108 and the IMU sensor 110. While for testing purpose, the data is collected only using the motion sensor 108. It should be appreciated that the processor 106 can further apply a low pass filter on the IMU data captured from the IMU sensor 110 to reduce the noise in the joint motion data. In an embodiment of the disclosure, the IMU sensor 110 comprises at least one of an accelerometer, a gyro-meter or a magnetometer.

[0028] According to an embodiment of the disclosure, a 2nd order Kalman filter is used to reduce the variation in the joint center position. A state space model is defined to track the motion of each skeleton joint in X, Y, Z direction over time. Given joint center position (sx, sy, sz) obtained from Kinect, state vectors at time k are expressed as , and along X, Y, Z direction respectively. Here, represent velocity and represent acceleration of the particular joint in X, Y, Z direction respectively. A linear stochastic difference is used to describe the discrete state space model for joint Ji; (for every i = 1…. 20) at time k in X direction as given by equation 1. In similar ways, state space models are also defined in Y and Z direction for Ji.

[0029] Here, is observation at time instance k in X direction. F represents (3X3) state transition matrix and H is noiseless connection between the state vector and measurement vector . Here, the input control vector at time instance k is assumed to be as nothing is applied externally to control the dynamic system. In equation 1, random variables and represent the process and measurement noise with normal probability distribution as N(0;Q) and N(0;R) respectively. Here, Q and R are the respective co-variance matrices modeled using equation 2. Here, E denotes the expectation of the covariance matrix.


Given equation 1, the posterior estimate of joint state at time instance k is computed as follows where Kk is Kalman gain matrix at time instance k and is expressed as equation 3

[0030] Here and are the prior and posterior estimate error co-variance. For training set, is initialized by computing the variance of the difference between the true estimation of joint position, velocity and acceleration computed from IMU sensor 110 and the same obtained from the motion sensor 108. The velocity and acceleration of Ji is calculated by taking finite differences between position data obtained from the motion sensor 108. Similarly, the velocity and the position from the IMU data is computed and considered that as true initial estimate. It is to be noted that the IMU sensor 110 and the motion sensor 108 are mapped into single coordinate system. The process noise Qk is initialized using fs.

[0031] According to an embodiment of the disclosure, the processor further configured to initialize and update the measurement noise as follows. The measurement noise Rk with the variance of the position data of a joint contains the static noise profile and is termed as R1. However, this does not work well in the presence of motion. Hence, for the dynamic condition, the measurement noise can be taken as the variance of difference between joint position obtained from the motion sensor 108 and the IMU sensor 110, termed as R2. In the current work, Rk is initialized as R1 because the subject is in stationary phase in the beginning of the exercise.

[0032] Once initialization is done, then Rk needs to be updated based on joint’s velocity profile. From equation 3 it is obvious that lower the value of Rk, higher is the weight to the residual . The residual is used to update the posterior measurement by applying a Kalman gain. For the static joints the residual is primarily due to the noise in the measurement, hence a higher value of Rk (R1) is desired. Whereas, for the dynamic joints, a lower value of Rk (R2) is required to provide more importance to the residual in order to capture the true motion of the joints.

[0033] The challenge lies in dynamically computing a normalized weight to update the measurement noise between R1 and R2 using a continuous monotonically non-decreasing positive real valued function varying between 0 to 1. The slope of the function should be dependent on the joint’s velocity profile, while doing an exercise, hence needs to be parameterized such that it initially increase slowly followed by a sharp increase and finally reduce to zero. tanh is one such function which closely resembles the required nature having a parameter k for controlling the slope. However, additional parameters have been introduced namely (i) a bias and a scale of 0.5 to limit the function within 0 and 1, (ii) shifted with a parameter ß to limit the velocity range between 0 and 2*ß. The weight update is done using the function ?k as given by equation 4.

[0034] Here, k is considered within the range of (0, 10] which covers 99% of the variation in the slope. Considering the realistic motion of upper limbs and limiting the peak value of the instantaneous velocity as 14 meter/sec (heuristically found), the ß is tuned within the range of [0, 7] for all exercises and for all joints. A meta-heuristic based optimization algorithm called differential evolutionary (DE) optimization have been used, where the objective function is to minimize the standard deviation of each body segment length to zero for static as well as dynamic phase of an exercise. Once k and ß are computed for an exercise, Rk is updated using equation 5.

[0035] According to an embodiment of the disclosure, Kalman filter is applied on the data using the updated measurement noise as mentioned above. The processor 106 is further configured to use the Kalman filtered data to compute the bone length of the body segment using the position of the plurality of joints obtained from the Kalman filtered data. The computed bone length is then compared with actual bone length of the person. The difference between the computed bone length and the actual bone length is then optimized using a differential evolutionary algorithm to obtain a minimized variation in bone length. Based on the differential evolutionary algorithm a corrected captured data is generated using the minimized variation in bone-length. The corrected data is the joint coordinate data.

[0036] To update the joint coordinate data at any time instance k, two approaches have been adopted i) by using 2nd order Kalman filter and ii) by using 2nd order Kalman along with an optimization technique. If a particular joint is in completely stationary state at a time instant k then only 2nd order Kalman is used, but if the joint is in motion then optimization is performed on Kalman output. The motivation behind using the optimization is to minimize the bone length i.e. the length obtained by physically connecting two joints over time. In order to formulate the objective function C(k), the skeleton was considered as a connected graph G(vr, ed), where each joint is considered as vertex (vr) and the body segment between 2 physically connected joints is treated as an edge (ed). Here it was attempted to minimize the temporal variation of the graph (G) structure in terms of two factors namely - i) relative change of position of (vr) as well as ii) variation of length of (ed). For doing this, initially the length of the physically connected joints are measured for each subject and considered as true bone length measurement Bm, = 1…. 19, where m represents number of the bones. Given Bm, C(k) is defined in equation 6:


where, is bone length computed using joint center locations corrected by a meta heuristic Differential Evolutionary (DE) algorithm followed by 2nd order Kalman filter based tracking. DE is used for the optimization as follows.

[0037] In order to minimize C(k), the search is conducted considering that body segment (bone) length measured from joint center position estimated by 2nd order Kalman filter should remain invariant during movement of the corresponding joints. The search space ?(k) in X direction (to find candidate jth joint center location qxk) is bounded between if and between otherwise. Here, is the standard deviation (STD) of . This is done using DE algorithm.

[0038] The Differential Evolutionary (DE) Algorithm is a population based stochastic search method. It is a powerful, efficient, fast and effective global optimizer in continuous search domain. It involves four steps as follows.

[0039] Initialization Operation: DE is a parallel direct search method which aims at NP -D-dimensional parameter vectors, so-called individuals, which encode the candidate solutions, i.e. . Here, candidate solutions are the corrected skeleton 3D joint locations for a particular instance of time. For efficient performance of DE, the initial population should ideally cover the entire parameter search space as much as possible by uniformly randomizing the initial individuals within the search space constrained by the prescribed minimum and maximum parameter bounds, and . For example, and and between and otherwise, as mentioned earlier. Here g = 1, 2 …. D and D = 3Xnumber of joints. The initial solution of the gth parameter of the ith individual at generation G = 0 is generated by equation 7.

where rand(0, 1) represents a uniformly distributed random variable within the range [0, 1]. In this application, the value of C(k) is minimized and the range of C(k) is 0 to infinity. Therefore to keep the fitness of the candidate solution between [0, 1], a fitness function f for each candidate solution is computed by equation 8.

[0040] Further, After initialization, DE employs the mutation operation to produce a mutant vector Vi,G with respect to each individual Ei,G following equation 9.


where, F is a random number and are randomly selected genes and .

[0041] Once the mutation phase is over, the perturbed individual, , and the current population member, , are subject to the crossover operation, that finally generates the trial solutions, following equation 10.


where g = 1, 2, …. D

[0042] If the values of some parameters of a newly generated trial vector exceed the corresponding upper and lower bounds, randomly and uniformly reinitialize them within the pre-specified range. A selection operation is performed then depending on the objective function values using equation 11.


Here, is the objective function value of each trial vector and is the objective function value of the current population.

[0043] The above steps of DE are repeated generation after generation until a termination criterion is satisfied. Let, the fitness function of parent and offspring solution are fparent and foffspring respectively. The change is computed in the fitness ?f of the parent and offspring solution in each iteration using equation 12 and stop when ?f is less than e, here, e is set to a very small value.

[0044] Further, an interaction between DE and Kalman filter is also checked. A weighted average of the output state of the Kalman filter and the DE depending on the velocity of the joints is measured. A weight function is designed depending on the standard deviation of the static data and the velocity present at a joint j. If velocity is less than STD of static data, only Kalman output is chosen. As the variance of the static data represent the noise profile of the signal, so when velocity is equals to or less than the variance of the static data, weight is very high for Kalman filter output and small for the DE output. When the amplitude of the velocity is 10 times the variance of the static data, 50% weight is given to each output. When there is a substantial velocity present in the joint, at least 100 times of the variance of the static data, 90% weight is assigned to the DE output. The weight is computed using equation 13 which is derived by fitting a power function to the above mentioned variations in the weights based on the change in velocity.


Here, d1, d2, d3 are constant and chosen experimentally in each instance depending on the variance of the initial static data of current data set. So, the final output in direction for a joint j at kth instance is given by equation 14.


where, denote the output of DE. Similarly, (estimated) and (estimated) are computed in and direction respectively.

[0045] In operation, a flowchart 200 for correcting data captured using the motion sensor 108 is shown in Fig. 3 according to an embodiment of the disclosure. Initially at step 202, the data is captured using the motion sensor 108 during the person is performing a set of exercises. The data comprises variation of a plurality of joints of a person’s body. This data is further used to compute the bone length of the body segment. The plurality of joints comprising one or more static joints and one or more dynamic joints. The static joints remain immovable during the exercise, while the dynamic joints moves. At the same time at step 204, the inertial measurement unit (IMU) data of the person is also captured at the plurality of joints using the IMU sensor 110, wherein the person is performing the set of exercises.

[0046] At step 206, a variance of the difference between the position of the plurality of joints, captured from the IMU sensors and the motion sensor is computed by the processor. At step 208, a state estimate covariance matrix of a Kalman filter is initialized using the variance of the difference between the position of the plurality of joints, captured from the IMU sensors and the motion sensor. The IMU data is captured only during the training phase. At step 210, the measurement noise for the static joint is computed by the processor 106 using the variance of the position of the joint captured from the motion sensor 108. While in case of static joints at step 212, the measurement noise is computed as the variance of difference between position of the joint obtained from motion sensor 108 and the IMU sensor 110. A weighted average of the measurement noise captured through the static joint and the dynamic joint is taken using the velocity of the static joint and the dynamic joint. Because, for generalization, while preparing the model we do not know which joint will be under motion.

[0047] In the next step 214, a parameterized weight function is designed using the measurement noise of the static joint and the dynamic joint. The parameters of the weight function are chosen using an optimization algorithm. The optimization algorithm is a meta-heuristic algorithm. At step 216, the measurement noise of the Kalman filter is updated in real time using the parameterized weight function designed in the previous step. The updated Kalman filter is then applied on the data at step 218 to reduce the noise from the data captured from the motion sensor 108.

[0048] At the next step 220, a bone length of any particular body segment is calculated using the position of the plurality of joints obtained from the Kalman filtered data. At step 222, the actual bone length of the person is also received. At step 224, the computed bone length and the actual bone length is compared. Based on the comparison of the computed bone length and the actual bone length, the difference is minimized using a differential evolutionary algorithm to obtain a minimized variation in bone length. And finally at step 226, the corrected captured data is generated using the minimized variation in bone length.

[0049] According to an embodiment of the disclosure, the method of correcting the data using the motion sensor 108 can be validated with the help of following experimental findings. The experiments were performed on the twenty six participants (with age groups: 21-46 years). 17 male and 9 female healthy subjects were chosen (weight: 45kg - 100kg and height: 1:42m - 1:96m) with no pre-existing symptoms of neurological diseases, major orthopedic lesions or vestibular disorders, have been chosen for the experiments.

[0050] In order to capture variation of body segment (bone) length, subjects are asked to perform shoulder flexion/extension and shoulder abduction/adduction standing at a 2.1m - 2.4m distance from the Kinect, which is placed 1m above the ground. The data collected for these exercises for both left and right hands. Moreover, to capture static and dynamic noise characteristics, subjects are initially requested to remain in stationary pose for 30 seconds and then perform the exercises. Subjects performed each exercise twice, where one set is used for training and another for testing. For training, time synchronized data is captured using Kinect and Shimmer IMU sensors. The IMU has been placed at each joint and the data recording is done at 50Hz, which is resampled to match Kinect sampling rate. For testing, the data is collected only using Kinect sensor.

[0051] The proposed algorithm is validated in two aspects namely (i) temporal fluctuations in joint positions in stationary pose and (ii) variations in body segment length. The proposed method was compared with window-wise low pass filtering (WLPF) with a cut off frequency of 5Hz, exponential (ESF) and double exponential smoothing filters (DESF). The control parameters like a (e [0,1]) in ESF and a and ? (e [0,1]) in DESF are tuned before doing the performance evaluation. It was found that ESF and DESF perform well when a = 0.05 and ? = 0.1. In order to do the performance evaluation, body segment lengths (bone lengths), B(i) for every i = 1…. 19, are computed using raw skeleton data obtained from Kinect as well as using the filtered output. Fig. 4 depicts that the three algorithms (i.e. WLPF, ESF, DESF) are performing well for the static body parts (e.g. for segments on right arm B(7), B(8), B(9)) but unable to reduce the noise present in B(3), B(4) and B(5) (marked in box) which actively take part during the left shoulder flexion exercise. Similar behavior is also seen for shoulder abduction exercise. It is observed from the Fig. 5 that the variation of the estimated arm length, obtained from 2nd order Kalman filter without any update of Rk, is less for static region, however it is quite high when there is a motion in the joints associated to the arm. On the other hand when the velocity adaptive measurement noise is used in Kalman filtering then both the static and dynamic regions have a reduced variation, indicating an improved performance. The evaluation is done in terms of percentage change in STD of B(i) as given in equation 15.

where, algoj e [WLPF, ESF, DESF] and sraw(B(i)), salgoj (B(i)) represent the standard deviation of B(i) computed from raw skeleton data and from filtered output respectively. The optimum values of k and ß of the weighing function are 0.16 and 5.12 respectively, as found using DE.

[0052] The performance of our proposed algorithm is compared with WLPF, ESF and DESF which is presented in Table 1. The proposed method, reduces the STD of dynamic body segments as well as the static segments as compared to the raw data obtained from Kinect. For lack of space, we have only showed one static and one dynamic joint for each exercise. The performance of ESF and DESFs are not satisfactory, particularly for the joints which are under motion, as they are unable to handle the dynamic noise and true motion together, even degrading the STD of dynamic body segments. Our algorithm outperforms others as the Kalman filter helps to track the motion present in each joint while DE helps in minimizing the variation of bone length keeping track of the direction of velocity of the joints.

[0053] Next we evaluate the performance of the proposed algorithm on stroke patient data obtained from the hospital. As balance and gait are majorly effected in the stroke patients, hence initially, we have only considered the SLS for the experiment. The Kinect data is captured while they are performing left and right single limb standing exercise. Fig. 6 clearly depicts the change in STD for all bones for a subject for both left and right SLS exercise. It is clear from the figure that, the proposed algorithms performs well both in static and dynamic pose. The rectangular box marked the bones in motion while doing a right SLS (left leg lift) and blue rectangular box marked the bones in motion while doing a left SLS (right leg lift) exercise.

[0054] The written description describes the subject matter herein to enable any person skilled in the art to make and use the embodiments. The scope of the subject matter embodiments is defined by the claims and may include other modifications that occur to those skilled in the art. Such other modifications are intended to be within the scope of the claims if they have similar elements that do not differ from the literal language of the claims or if they include equivalent elements with insubstantial differences from the literal language of the claims.

[0055] It is, however to be understood that the scope of the protection is extended to such a program and in addition to a computer-readable means having a message therein; such computer-readable storage means contain program-code means for implementation of one or more steps of the method, when the program runs on a server or mobile device or any suitable programmable device. The hardware device can be any kind of device which can be programmed including e.g. any kind of computer like a server or a personal computer, or the like, or any combination thereof. The device may also include means which could be e.g. hardware means like e.g. an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a combination of hardware and software means, e.g. an ASIC and an FPGA, or at least one microprocessor and at least one memory with software modules located therein. Thus, the means can include both hardware means and software means. The method embodiments described herein could be implemented in hardware and software. The device may also include software means. Alternatively, the embodiments may be implemented on different hardware devices, e.g. using a plurality of CPUs.

[0056] The embodiments herein can comprise hardware and software elements. The embodiments that are implemented in software include but are not limited to, firmware, resident software, microcode, etc. The functions performed by various modules described herein may be implemented in other modules or combinations of other modules. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can comprise, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

[0057] The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.

[0058] A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.

[0059] Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.

[0060] A representative hardware environment for practicing the embodiments may include a hardware configuration of an information handling/computer system in accordance with the embodiments herein. The system herein comprises at least one processor or central processing unit (CPU). The CPUs are interconnected via system bus to various devices such as a random access memory (RAM), read-only memory (ROM), and an input/output (I/O) adapter. The I/O adapter can connect to peripheral devices, such as disk units and tape drives, or other program storage devices that are readable by the system. The system can read the inventive instructions on the program storage devices and follow these instructions to execute the methodology of the embodiments herein.

[0061] The system further includes a user interface adapter that connects a keyboard, mouse, speaker, microphone, and/or other user interface devices such as a touch screen device (not shown) to the bus to gather user input. Additionally, a communication adapter connects the bus to a data processing network, and a display adapter connects the bus to a display device which may be embodied as an output device such as a monitor, printer, or transmitter, for example. The preceding description has been presented with reference to various embodiments. Persons having ordinary skill in the art and technology to which this application pertains will appreciate that alterations and changes in the described structures and methods of operation can be practiced without meaningfully departing from the principle, spirit and scope.

Documents

Application Documents

# Name Date
1 201621043944-IntimationOfGrant13-09-2023.pdf 2023-09-13
1 Form 3 [22-12-2016(online)].pdf 2016-12-22
2 201621043944-PatentCertificate13-09-2023.pdf 2023-09-13
2 Form 20 [22-12-2016(online)].jpg 2016-12-22
3 Form 18 [22-12-2016(online)].pdf_352.pdf 2016-12-22
3 201621043944-CLAIMS [05-12-2020(online)].pdf 2020-12-05
4 Form 18 [22-12-2016(online)].pdf 2016-12-22
4 201621043944-COMPLETE SPECIFICATION [05-12-2020(online)].pdf 2020-12-05
5 Drawing [22-12-2016(online)].pdf 2016-12-22
5 201621043944-FER_SER_REPLY [05-12-2020(online)].pdf 2020-12-05
6 Description(Complete) [22-12-2016(online)].pdf_353.pdf 2016-12-22
6 201621043944-OTHERS [05-12-2020(online)].pdf 2020-12-05
7 Description(Complete) [22-12-2016(online)].pdf 2016-12-22
7 201621043944-FER.pdf 2020-06-17
8 Other Patent Document [04-01-2017(online)].pdf 2017-01-04
8 201621043944-Original Under Rule 6 (1 A) OTHERS-100117.pdf 2018-08-11
9 201621043944-ORIGINAL UNDER RULE 6(1A) OTHERS-240117.pdf 2018-08-11
9 Form 26 [21-01-2017(online)].pdf 2017-01-21
10 ABSTRACT1.JPG 2018-08-11
11 201621043944-ORIGINAL UNDER RULE 6(1A) OTHERS-240117.pdf 2018-08-11
11 Form 26 [21-01-2017(online)].pdf 2017-01-21
12 201621043944-Original Under Rule 6 (1 A) OTHERS-100117.pdf 2018-08-11
12 Other Patent Document [04-01-2017(online)].pdf 2017-01-04
13 201621043944-FER.pdf 2020-06-17
13 Description(Complete) [22-12-2016(online)].pdf 2016-12-22
14 201621043944-OTHERS [05-12-2020(online)].pdf 2020-12-05
14 Description(Complete) [22-12-2016(online)].pdf_353.pdf 2016-12-22
15 201621043944-FER_SER_REPLY [05-12-2020(online)].pdf 2020-12-05
15 Drawing [22-12-2016(online)].pdf 2016-12-22
16 201621043944-COMPLETE SPECIFICATION [05-12-2020(online)].pdf 2020-12-05
16 Form 18 [22-12-2016(online)].pdf 2016-12-22
17 201621043944-CLAIMS [05-12-2020(online)].pdf 2020-12-05
17 Form 18 [22-12-2016(online)].pdf_352.pdf 2016-12-22
18 201621043944-PatentCertificate13-09-2023.pdf 2023-09-13
18 Form 20 [22-12-2016(online)].jpg 2016-12-22
19 Form 3 [22-12-2016(online)].pdf 2016-12-22
19 201621043944-IntimationOfGrant13-09-2023.pdf 2023-09-13

Search Strategy

1 searchE_16-06-2020.pdf

ERegister / Renewals

3rd: 13 Dec 2023

From 22/12/2018 - To 22/12/2019

4th: 13 Dec 2023

From 22/12/2019 - To 22/12/2020

5th: 13 Dec 2023

From 22/12/2020 - To 22/12/2021

6th: 13 Dec 2023

From 22/12/2021 - To 22/12/2022

7th: 13 Dec 2023

From 22/12/2022 - To 22/12/2023

8th: 13 Dec 2023

From 22/12/2023 - To 22/12/2024

9th: 20 Dec 2024

From 22/12/2024 - To 22/12/2025