Manual Feature Engineering with 3D Motion Capture Data

First Experiment: Recording of Steps

Task Description

Several straight walks in a row have been recorded using the Xsens MVN system for motion data and a digital video camera for a visual analysis of single steps. The goal was to produce several annotated records of a walking human. The focus in this experiment was the step size on a planar ground.

Materials and Methods

As already described the Xsens MVN system was used to record the 3D motion data. Furthermore a digital video camera was be used to make a video record of the corridor walk.

These figures show the setup for the experiment (1); how straws are used to enhance the accuracy of the reading (2); and how the person wearing the Xsens MVN system is walking over the setup (3).

For video/image analysis folding rules have been fixed to the floor as measuring leash. Additionally one straw has been fixed on the walking persons soles. Pointing towards the measuring leash between the persons legs the straws should make the video analysis of the step size more accurate.

Several approaches to gain video/image data have been tried. First the video camera was fixed on a flat little cart and slided after the person wearing the Xsens MVN system while it recorded the persons steps as it is shown in the video of Walk03 below.

Video of Walk03 using a little cart.

As an alternative the person wearing the Xsens MVN system could hold the video camera as shown in the video of Walk05 further below.

In an other alternative approach images could be taken with a digital camera for every step as shown in the video of Walk07 further below.

The internal time of the electronic recording systems must be synchronised!

Results

The data from the following tables could be found in the file experiment1-walking.ods.

The video data as shown in the video of Walk03 was nearly impossible to read. Accordingly the video data from Walk05 was still very unsatisfying. The analysis of the images as presented in Walk06 and Walk07 was better, but the gear of the person wearing the Xsens MVN system was quite unnatural.

Declarations

Step Number
starting point, both feed side by side.
Side
left or right foot earlier
Time
time of reading
Time [s]
relative time of reading
Position Straw (Front)
Position of straw (front of straw) on the measuring leash
Bar
Bar the straw is pointed on (Bar 1 = first bar after starting point), 2r means the step was measured on the reverse direction on the second bar.
Position relative
The measuring leashes were fixed next to one another with the scale in reverse order: Bar 1 - 2m…0m, Bar 2 - 2m…0m, The corrected position equals a 4m measuring leash starting with 0 on the rear foot in the starting position.
Step Length (right/left)
See step length definition considering both left and right foot
Step Length (side)
See side specific step length definition
Accuracy on Photo
Quality of image regarding the accuracy of the measurement point.

Walk05

The step length in this walk was read from a video file generated by the person wearing the Xsens MVN system as shown in the video below.

Video of Walk05 showing a person taking a video of a walk without cart.

Visualised Movement Data

Original call: ./calcStepLength --inputfile="../experiments/experiment1/walk05.mvnx" --outputdir="online/images/diagrams/walk05/" --segments="LeftFoot, RightFoot" --format="png" --title="walk05" --min="0" --max="15500" --colors="blue, red, green, cyan, orange, darkblue, darkred"

Measured Step Lengths

Step Number Side Time[s] Time Position Straw (Front) Bar Position relative Step Length (right/left) Step Length (side) Accuracy on Photo
0 right 00:00:00 15:19:53 158 1 0 good
0 left 00:00:00 15:19:53 158 1 0 0 good
1 left 00:00:08 15:20:01 132 1 26 26 26 good
2 right 00:00:09 15:20:02 103 1 55 29 55 bad
3 left 00:00:10 15:20:03 73 1 85 30 59 extrapolated
4 right 00:00:11 15:20:04 43 1 115 30 60 extrapolated
5 left 00:00:13 15:20:06 3 1 155 40 70 good
6 right 00:00:14 15:20:07 170 2 188 33 73 good
7 left 00:00:16 15:20:09 136 2 222 34 67 good
8 right 00:00:17 15:20:10 105 2 253 31 65 bad
9 left 00:00:18 15:20:11 75 2 283 30 61 average
10 right 00:00:20 15:20:13 37 2 321 38 68 average
11 left 00:00:21 15:20:14 4 2 354 33 71 average
Experimental data for Walk05.

Computed Step Lengths

Step Number Segment Begin[ms] End[ms] Step Length (side)
0 RightFoot 390 605 0
1 LeftFoot 1854 2300 0
2 RightFoot 3225 3531 48.7
3 LeftFoot 4507 4846 54.12
4 RightFoot 5740 6038 60.98
5 LeftFoot 6905 7292 60.99
6 RightFoot 8358 8663 60.49
7 LeftFoot 9646 10165 60.09
8 RightFoot 10941 11313 57.8
9 LeftFoot 12395 12733 55.38
10 RightFoot 13673 14003 59.97
11 LeftFoot 15001 15348 63.4
Computed data for Walk05.

Original call: ./calcStepLength --inputfile="../experiments/experiment1/walk05.mvnx" --outputdir="online/images/diagrams/walk05/" --format="png" --title="walk05" --colors="blue, red, green, cyan, orange, darkblue, darkred" --min="0" --max="15500"

Comparison of Measured and Computed Step Lengths

Step Number Exp Step Number Comp Side Step Length Exp[cm] Step Length Comp[cm] Difference[cm] Accuracy on Photo
2 2 right 55 48.7 6.3 bad
3 3 left 59 54.12 4.88 extrapolated
4 4 right 60 60.98 0.98 extrapolated
5 5 left 70 60.99 9.01 good
6 6 right 73 60.49 12.51 good
7 7 left 67 60.09 6.91 good
8 8 right 65 57.8 7.2 bad
9 9 left 61 55.38 5.62 average
10 10 right 68 59.97 8.03 average
11 11 left 71 63.4 7.6 average
Compared steplengths from Walk05.

Original call: ./compareStepLength --inputcomp="online/images/diagrams/walk05/steplengths.csv" --inputexp="online/tables/experiment1/experiment1-walking-walk05.csv" --outputdir="online/images/diagrams/walk05/" --format="png" --title="walk05" --stepscomp="2-11" --stepsexp="2-11" --colors="blue, red, green, cyan, orange, darkblue, darkred"

Walk06

The step length in this walk was read from image files taken by a second person.

Visualised Movement Data

Original call: ./calcStepLength --inputfile="../experiments/experiment1/walk06.mvnx" --outputdir="online/images/diagrams/walk06/" --segments="LeftFoot, RightFoot" --format="png" --title="walk06" --min="1500" --max="15500" --colors="blue, red, green, cyan, orange, darkblue, darkred"

Measured Step Lengths

Step Number Side Time[s] Time Position Straw (Front) Bar Position relative Step Length (right/left) Step Length (side) Accuracy on Photo
0 right 00:00:00 15:22:35 162.5 1 0 good
0 left 00:00:00 15:22:35 160 1 2.5 2.5 good
1 left 00:00:03 15:22:38 127.5 1 35 32.5 32.5 good
2 right 00:00:04 15:22:39 95.5 1 67 32 67 good
3 left 00:00:06 15:22:41 59 1 103.5 36.5 68.5 bad
4 right 00:00:07 15:22:42 20 1 142.5 39 75.5 average
5 left 00:00:08 15:22:43 178 2 184.5 42 81 average
6 right 00:00:10 15:22:45 139 2 223.5 39 81 good
7 left 00:00:11 15:22:46 98 2 264.5 41 80 bad
8 right 00:00:12 15:22:47 58 2 304.5 40 81 bad
9 left 00:00:13 15:22:48 19 2 343.5 39 79 average
10 right 00:00:15 15:22:50 -3 2 365.5 22 61 average
Experimental data for Walk06.

Computed Step Lengths

Step Number Segment Begin[ms] End[ms] Step Length (side)
0 RightFoot 2135 2325 0
1 LeftFoot 3631 4061 0
2 RightFoot 4971 5310 59.35
3 LeftFoot 6078 6434 61.28
4 RightFoot 7318 7665 67.73
5 LeftFoot 8581 8969 72.24
6 RightFoot 9894 10233 71.75
7 LeftFoot 11145 11451 71.07
8 RightFoot 12370 12651 71.83
9 LeftFoot 13620 14000 71.22
10 RightFoot 15235 15458 56.23
Computed data for Walk06.

Original call: ./calcStepLength --inputfile="../experiments/experiment1/walk06.mvnx" --outputdir="online/images/diagrams/walk06/" --format="png" --title="walk06" --colors="blue, red, green, cyan, orange, darkblue, darkred" --min="1500" --max="15500"

Comparison of Measured and Computed Step Lengths

Step Number Exp Step Number Comp Side Step Length Exp[cm] Step Length Comp[cm] Difference[cm] Accuracy on Photo
2 2 right 67 59.35 7.65 good
3 3 left 68.5 61.28 7.22 bad
4 4 right 75.5 67.73 7.77 average
5 5 left 81 72.24 8.76 average
6 6 right 81 71.75 9.25 good
7 7 left 80 71.07 8.93 bad
8 8 right 81 71.83 9.17 bad
9 9 left 79 71.22 7.78 average
10 10 right 61 56.23 4.77 average
Compared steplengths from Walk06.

Original call: ./compareStepLength --inputcomp="online/images/diagrams/walk06/steplengths.csv" --inputexp="online/tables/experiment1/experiment1-walking-walk06.csv" --outputdir="online/images/diagrams/walk06/" --format="png" --title="walk06" --stepscomp="2-10" --stepsexp="2-10" --colors="blue, red, green, cyan, orange, darkblue, darkred"

Walk07

The step length in this walk was read from image files taken by the person wearing the Xsens MVN system as shown in the video below.

Video of Walk07 showing a person taking photos while walking.

Visualised Movement Data

Original call: ./calcStepLength --inputfile="../experiments/experiment1/walk07.mvnx" --outputdir="online/images/diagrams/walk07/" --segments="LeftFoot, RightFoot" --format="png" --title="walk07" --min="8000" --max="72000" --colors="blue, red, green, cyan, orange, darkblue, darkred"

Measured Step Lengths

Step Number Side Time[s] Time Position Straw (Front) Bar Position relative Step Length (right/left) Step Length (side) Accuracy on Photo
0 right 00:00:00 15:27:00 194 1 0 good
0 left 00:00:00 15:27:00 192.5 1 1.5 1.5 good
1 left 00:00:09 15:27:09 155.5 1 38.5 37 37 good
2 right 00:00:18 15:27:18 126.5 1 67.5 29 67.5 good
3 left 00:00:24 15:27:24 86.5 1 107.5 40 69 good
4 right 00:00:31 15:27:31 52.5 1 141.5 34 74 good
5 left 00:00:36 15:27:36 13.5 1 180.5 39 73 good
6 right 00:00:42 15:27:42 183.5 2 210.5 30 69 good
7 left 00:00:47 15:27:47 140.5 2 253.5 43 73 good
8 right 00:00:52 15:27:52 113 2 281 27.5 70.5 good
9 left 00:00:58 15:27:58 77 2 317 36 63.5 good
10 right 00:01:02 15:28:02 46 2 348 31 67 good
11 left 00:01:07 15:28:07 10.5 2 383.5 35.5 66.5 good
Experimental data for Walk07.

Computed Step Lengths

Step Number Segment Begin[ms] End[ms] Step Length (side)
0 RightFoot 9559 9833 0
1 LeftFoot 15173 15626 0
2 RightFoot 22926 23405 60.8
3 LeftFoot 28818 29165 61.63
4 RightFoot 35223 35794 64.99
5 LeftFoot 40531 41094 64.06
6 RightFoot 46523 47053 60.91
7 LeftFoot 51660 52362 63.76
8 RightFoot 55933 56421 62.66
9 LeftFoot 61570 62092 57
10 RightFoot 66827 67406 58.34
11 LeftFoot 71359 71855 57.57
Computed data for Walk07.

Original call: ./calcStepLength --inputfile="../experiments/experiment1/walk07.mvnx" --outputdir="online/images/diagrams/walk07/" --format="png" --title="walk07" --colors="blue, red, green, cyan, orange, darkblue, darkred" --min="8000" --max="72000"

Comparison of Measured and Computed Step Lengths

Step Number Exp Step Number Comp Side Step Length Exp[cm] Step Length Comp[cm] Difference[cm] Accuracy on Photo
2 2 right 67.5 60.8 6.7 good
3 3 left 69 61.63 7.37 good
4 4 right 74 64.99 9.01 good
5 5 left 73 64.06 8.94 good
6 6 right 69 60.91 8.09 good
7 7 left 73 63.76 9.24 good
8 8 right 70.5 62.66 7.84 good
9 9 left 63.5 57 6.5 good
10 10 right 67 58.34 8.66 good
11 11 left 66.5 57.57 8.93 good
Compared steplengths from Walk07.

Original call: ./compareStepLength --inputcomp="online/images/diagrams/walk07/steplengths.csv" --inputexp="online/tables/experiment1/experiment1-walking-walk07.csv" --outputdir="online/images/diagrams/walk07/" --format="png" --title="walk07" --stepscomp="2-11" --stepsexp="2-11" --colors="blue, red, green, cyan, orange, darkblue, darkred"

Free Walk

Video of Walk10 showing a person walking without further disturbance.

Visualised Movement Data

Original call: ./calcStepLength --inputfile="../experiments/experiment1/walk10.mvnx" --outputdir="online/images/diagrams/walk10/" --segments="LeftFoot, RightFoot" --format="png" --title="walk10" --min="2000" --max="8200" --colors="blue, red, green, cyan, orange, darkblue, darkred"

Computed Step Lengths

Step Number Segment Begin[ms] End[ms] Step Length (side)
0 RightFoot 2318 2517 0
1 LeftFoot 2972 3211 0
2 RightFoot 3699 3914 83.72
3 LeftFoot 4328 4559 92.7
4 RightFoot 5064 5238 98
5 LeftFoot 5635 5842 102.71
6 RightFoot 6306 6496 102.23
7 LeftFoot 6993 7200 107.78
8 RightFoot 7787 8126 105.48
Computed data for first steps of Walk10.

Original call: ./calcStepLength --inputfile="../experiments/experiment1/walk10.mvnx" --outputdir="online/images/diagrams/walk10/" --format="png" --title="walk10" --colors="blue, red, green, cyan, orange, darkblue, darkred" --min="2000" --max="8200" --velepsilon="0.5"

Discussion

Due to poor light conditions the video and image data was hard to read. Additionally the time used by the Xsens MVN system showed some differences from the time of the running OS that was used to synchronize with the video cameras. Therefore the annotation of the mvnx data files was not quite as simple and accurate was we would have expected.

As already described on the page about the definition of step lengths the computation of the step lengths depends on its definition. In this approach a combination of the velocity of both feet (one moving, one standing) and the distance between them was used to extract the timeframes of the steps. As shown in the 3D plots this works quite well.

However, the computed step lengths are on average about 7cm smaller than the measured ones. This could have several reasons, as listed below.

Possible sources of error

  • Time of electronic recording systems is not fully synchronised. (cm)
  • Different frame rates (50 fps for digital video camera, 120 fps for Xsens MVN system). (cm)
  • Folding rules are not straight aligned. (cm)
  • Distance is not read precisely in video/image analysis. (cm)
  • Distorting from video camera lens. (cm)
  • Electrical disturbances from WiFi, Handy, … for 3D motion data.
  • Gear is unnatural because of experiment design.
  • Gear is unnatural because of wearing the tight Xsens MVN system.
  • Gear is unnnatural because of stopping for taking photos.
  • Position shift during recording with the Xsens MVN system as described in the MVN User Manual on page 41 (MV0391P, Revision B, from May 26th 2010). (cm)
  • Step size is only measured in walking direction, ignoring deviations to the left and right (see figure below).
  • Wrong interpretation of Contact Points in Xsens MVN system as described in the MVN User Manual on page 51 (MV0391P, Revision B, from May 26th 2010). (cm)
  • Errors while calibrating Xsens MVN system.
Possible deviation based on experiment design
Possible deviation from measured values based on experiment design.

Error Resolution

As shown in the scatterplots of the comparison of measured and computed step lengths the error is rather proportional to the size of the step length. This suggests that there was an undetected failure while calibrating the system. As described in the MVN User Manual on page 97 (MV0391P, Revision B, from May 26th 2010) the position data is calculated based on the acceleration and a human body model created while calibrating.

To encourage this point the length of the whole walk was analysed based on timestamps. To put it another way the length between the starting point and the end point of the walks was computed based on timestamps extracted from the video and image analyses. As shown in the table below the distances in the virtual world are shorter than in reality.

Computed Length [m] Adjustment [m] Difference to 4m [m]
walk05 3.2 0.46 0.34
walk06 3.24 0.37 0.39
walk07 3.39 0.18 0.43
This table shows the computed virtual world distance from the starting point to the endpoint of each walk. An adjustment value is given in real world distance to align to the 4m measuring leash. In the last column the difference to the real world data is given: 4m - adjustment - virualWorldDistance is given.

Accordingly the computed step lengths have been extended: the median of all the ratios of the computed and the measured step lengths has been used, as shown in the table below. This was calculated separately for each side.

Step Number Exp Step Length Exp[cm] Step Length Comp[cm] Side Accuracy on Photo Ratio Comp/Exp Adjusted Comp[cm] Diff Exp – Adjusted[cm]
walk05 2 55 48.7 right bad 0.89 54.98 0.02
walk05 5 70 60.99 left good 0.87 68.3 1.7
walk05 6 73 60.49 right good 0.83 68.29 4.71
walk05 7 67 60.09 left good 0.9 67.29 -0.29
walk05 8 65 57.8 right bad 0.89 65.25 -0.25
walk05 9 61 55.38 left average 0.91 62.02 -1.02
walk05 10 68 59.97 right average 0.88 67.7 0.3
walk05 11 71 63.4 left average 0.89 71 0
walk06 2 67 59.35 right good 0.89 67 0
walk06 3 68.5 61.28 left bad 0.89 68.63 -0.13
walk06 4 75.5 67.73 right average 0.9 76.46 -0.96
walk06 5 81 72.24 left average 0.89 80.9 0.1
walk06 6 81 71.75 right good 0.89 81 0
walk06 7 80 71.07 left bad 0.89 79.59 0.41
walk06 8 81 71.83 right bad 0.89 81.09 -0.09
walk06 9 79 71.22 left average 0.9 79.76 -0.76
walk06 10 61 56.23 right average 0.92 63.48 -2.48
walk07 2 67.5 60.8 right good 0.9 68.64 -1.14
walk07 3 69 61.63 left good 0.89 69.02 -0.02
walk07 4 74 64.99 right good 0.88 73.37 0.63
walk07 5 73 64.06 left good 0.88 71.74 1.26
walk07 6 69 60.91 right good 0.88 68.76 0.24
walk07 7 73 63.76 left good 0.87 71.4 1.6
walk07 8 70.5 62.66 right good 0.89 70.74 -0.24
walk07 9 63.5 57 left good 0.9 63.83 -0.33
walk07 10 67 58.34 right good 0.87 65.86 1.14
walk07 11 66.5 57.57 left good 0.87 64.47 2.03
Median 0.89 0
Mean 0.89 0.24
Variance 0 1.7
Standard Deviation 0.02 1.3
This table shows the adjusted computed step lengths together with the data presented in the results part. Therefore the step lengths have been divided by the foot specific median of the ratio Step Length Comp[cm]/ Step Length Exp[cm]. As shown in the last column the difference between the computed and measured step length is (with exceptions) in the expected magnitude (smaller 3cm).

The difference between the computed and measured step lengths now is as expected small. Only one value is bigger than 3cm, but this probably is based on a wrong extrapolation in the video analysis from the step before that was removed from this table (the camera missed the relevant step when it hit the ground, so the position was extrapolated).

Conclusion

Based on the experience of this first experiment it would be recommended to start a second one, but with:

  1. Better Light Conditions.
  2. Confirmation of correct human body model after calibration.
  3. Additional digital time measurement to generate time markers for observed events.