Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About the joints used in the data #2

Closed
MING410 opened this issue May 25, 2022 · 6 comments
Closed

About the joints used in the data #2

MING410 opened this issue May 25, 2022 · 6 comments

Comments

@MING410
Copy link

MING410 commented May 25, 2022

For the Vicon one, there are 117 dimensions(30 joints) used, and for the Kinect one there are 88 dimensions(22 joints) used, can you tell me which joints are selected here? I could only find this kind of pic from the Internet, but seems like have different joints number from your research.
image

@avakanski
Copy link
Owner

avakanski commented May 25, 2022

The joints and their order are listed in Table 2 in the attached article. There are 39 joints for Vicon (39x3 = 117 dimensions) and 22 joints for Kinect. (22x3 = 66 dimensions). For each joint the measurements included 3 positions (x,y,z) and 3 angles (Euler angles). In this work, we used only the joint angles (3 per joint).
Please let le me know if you have other questions.
Vakanski et al (2018) - A data set of human body movements for physical rehabilitation exercises.pdf

@MING410
Copy link
Author

MING410 commented May 25, 2022

Table 2 list 22 Kinect joints but from the code seq_input_trunk = Lambda(lambda x: x[:, :, 0:16])(seq_input) like you divide the joints into 5 parts(trunk, left arm, right arm, left leg , right leg) ,each part got 4 joints 16 lines, totally 80 dimensions? For the trunk part there are 6 joints so you didn't use number 5 and 6 is that right? and I am confused if you only used the joint angles , why is x[:, :, 0:16] but not x[:, :, 0:12] ? And also for the Vicon one, there are 12/12/18/18/21 lines for each part, so I guess there are 4/4/6/6/7 joints are used? Are there any pic like Table 2 could make me clear what are they?

@avakanski
Copy link
Owner

avakanski commented May 25, 2022

Now I realized that there was a confusion. The experiments for the Kinect sensor are based on the KIMORE dataset. They used different code for data capturing, so you need to check their paper for the exact description of the joints. They are different from the joints listed in Table 2 for Kinect.

For Vicon there are 12/18/18/21/21 dimensions for each body part, which means that there are 4/6/6/7/7 joints used, that is in total there are 30 joints used out of the 39 joints in total. We didn't use the data for joints of the head, left head, right head, etc, and we also didn't use some of the joints which have absolute measurements in the table. E.g, for the trunk we used X_trunk = np.concatenate((x[:,:,15:18], x[:,:,18:21], x[:,:,24:27], x[:,:,27:30]), axis = 2), which corresponds to the 6, 8, 9 and 10 joints in Table 2, that is left and right clavicle, left and right torax.
We don't have a figure to explain it.
Please also check our attached paper which describes the experiments.

Liao et al (2020) - A Deep Learning Framework for Assessing Physical Rehabilitation Exercises.pdf

@avakanski
Copy link
Owner

Here is some additional information about the KIMORE dataset. The joint angles are represented as quaternions, that is, for each joint there are 4 values. This means that the trunk contains the information for 4 joints, seq_input_trunk = Lambda(lambda x: x[:, :, 0:16])(seq_input). The data for 22 joints (88 dimensions) was considered, although the full dataset includes the measurements for 25 joints.

@MING410
Copy link
Author

MING410 commented Jun 5, 2022

thanks for that information. Can you tell me why just use the angle but not the angle + position? I noticed that the 39 joints of vicon angle and icon position don't have a correspondence, what is this for?

@avakanski
Copy link
Owner

Joint positions are tricky to deal with because we all have different lengths of arms, legs, body. This affect the joint positions of different movements. Joint angles are consistent for all subjects. We can use joint positions if we normalize the data, for instance, we can make the lengths of each body part to 1, or something similar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants