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

Recovered skeleton not aligned with the target pose #4

Open
aali26 opened this issue Oct 10, 2022 · 4 comments
Open

Recovered skeleton not aligned with the target pose #4

aali26 opened this issue Oct 10, 2022 · 4 comments

Comments

@aali26
Copy link

aali26 commented Oct 10, 2022

Hello @TemugeB ,
Thanks for the significant contribution. If I wanted to extend your work to add more joints and different joints tree, I would need to modify the joint hierarchy and the offset of the joints below are some of the modifications I made to make it work.
The basic kinematic tree
Screenshot from 2022-10-10 16-25-11
the offset modification:

offset_directions = {}
offset_directions['left_hip']       = np.array([1,-1,0])
offset_directions['left_knee']      = np.array([0,-1, 0])
offset_directions['left_ankle']     = np.array([0,-1, 0])
offset_directions['left_foot']      = np.array([0,-1,1])

offset_directions['right_hip']      = np.array([-1,-1,0])
offset_directions['right_knee']     = np.array([0,-1, 0])
offset_directions['right_ankle']    = np.array([0,-1, 0])
offset_directions['right_foot']     = np.array([0,-1,1])

offset_directions['head']           = np.array([1,1,1])
offset_directions['neck']           = np.array([0,1,0])
offset_directions['spine3']         = np.array([0,1,0])
offset_directions['spine2']         = np.array([0,1,0])
offset_directions['spine1']         = np.array([0,1,0])

offset_directions['left_collar']    = np.array([1,1,0])
offset_directions['left_shoulder']  = np.array([1,1,0])
offset_directions['left_elbow']     = np.array([1,0,0])
offset_directions['left_wrist']     = np.array([1,0,0])
offset_directions['left_hand']      = np.array([1,0,0])

offset_directions['right_collar']   = np.array([-1,1,0])
offset_directions['right_shoulder'] = np.array([-1,1,0])
offset_directions['right_elbow']    = np.array([-1,0,0])
offset_directions['right_wrist']    = np.array([-1,0,0])
offset_directions['right_hand']     = np.array([-1,0,0])

The main problem I'm encountering is the alignment of the original pose and the reconstructed one, as you can see below. Any suggestions?

Screenshot from 2022-10-10 16-18-01

@TemugeB
Copy link
Owner

TemugeB commented Oct 11, 2022

It looks like it could be an issue with normalization. You can see that the spine to collar length is longer than the original pose. So it suggests some bone length is longer than it should be. I would check the normalization part first and then also check if the obtained bone lengths make sense. The bone length is an average over all the frames, I believe. So you should also check that the bone lengths are consistent through all of your frames. A simple histogram might help here.

@AJDA1992
Copy link

@aali26 are you using the H36M skeleton here? Are you willing to share your modified code to include these aadditional joints?

@aali26
Copy link
Author

aali26 commented Oct 19, 2022

@aali26 are you using the H36M skeleton here? Are you willing to share your modified code to include these aadditional joints?

I'm working on Human3.6 and SMPL keypoints and I can share the code once I'm done and ensure it is working fine.

@AJDA1992
Copy link

AJDA1992 commented Oct 19, 2022

@aali26 are you willing to share how you are plotting two skeletons simultaneously aand what they represent?

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

3 participants