robotology / assistive-rehab

Assistive and Rehabilitative Robotics
https://robotology.github.io/assistive-rehab/doc/mkdocs/site
BSD 3-Clause "New" or "Revised" License
21 stars 11 forks source link

[actionRecognizer] updated model for accounting rotations #163

Closed vvasco closed 5 years ago

vvasco commented 5 years ago

The current model for action recognition is not robust to rotations, as no rotation is present in the training set: the transformation matrix is computed once at the beginning of the dataset, when typically the skeleton is frontal to the camera.
However, during a real interaction, there's no guarantee that the skeleton is frontal to the camera when the interaction starts (i.e. when the transformation matrix is computed) and there might be variations to the transformation matrix to which the network has to be robust.

Therefore, the network was re-trained with a wider training set, comprising synthetic rotations applied to real data around each axis, with variation of 10 degrees in a range [-20,20]. A variability on the speed was also required, probably because the network has to learn more complex correlations between the data (3 speeds were considered: normal, double and half speed).

To validate the new model, a testing dataset was used, comprising the 6 classes and synthetic rotations applied to each class. The following plots compare the accuracy given by each model for different rotations and show that new model extends the robustness of the prediction to a wider range.

Rotation around x
Original model

New model

Rotation around y
Original model

New model

Rotation around z
Original model

New model