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

TotalCapture: trajectory in original VS trajectory in AMASS #4

Closed
glisca opened this issue Dec 16, 2019 · 3 comments
Closed

TotalCapture: trajectory in original VS trajectory in AMASS #4

glisca opened this issue Dec 16, 2019 · 3 comments

Comments

@glisca
Copy link

glisca commented Dec 16, 2019

Hi there,

please help me understand which "scale factor" or something else am I missing. Here is my experiment:

  1. load the ./amass/TotalCapture/s1/acting1_poses.npz

  2. iterate trough the first 250 frames

    • put the SMPL model at the global location and orientation in the configuration specified by the current frame.
    • take the 3D coordinates of SMPL's 1962 vertex V_{amass}^{1962} (approx. on the left wrist) multiply them with the transformation matrix T_{total2amass} and save them into into V_{total}^{1962}
      • V_{total}^{1962} = T_{total2amass} V_{amass}^{1962}
      • T_{total2amass} = \begin{bmatrix} 0.0 & 1.0 & 0.0 & 0.0\ 1.0 & 0.0 & 0.0 & 0.0\ 0.0 & 0.0 & -1.0 & 0.0\ 0.0 & 0.0 & 0.0 & 1.0 \end{bmatrix}
    • collect all V_{total}^{1962} into left_wrist_amass_trj
  3. load the acting1_BlenderZXY_YmZ.bvh ground truth data from the TotalCapture

    • while loading, convert the values from centimeters into meters
  4. iterate trough the first 250 frames

    • save the 3D coordinates of the LeftHand joint into left_wrist_total_trj.
  5. plot left_wrist_amass_trj with blue and left_wrist_total_trj with orange in the coordinates systems of the total capture and obtain this plot:
    Screenshot from 2019-12-16 21-32-51

The two trajectories describe the first 250 points trough which the left wrist passes relative to the global coordinates system of total capture. They seem to have the same curvature. The orange trajectory (loaded from the *.bvh file) seems to be downscale with respect to the blue trajectory (transformed loaded from amass).

I overlooked the fact that the ground truth from the *.bvh files is in inches. After converting it into centimeters then into meters the plots of the left_wrist_amass_trj and left_wrist_total_trj look more similar, though still don't overlap.

Screenshot from 2019-12-19 11-19-38

Could you please help me figure out why they don't overlap closely? I think the offset between them is still to big.

Many thanks in advance!

@YujiaoHao
Copy link

hi, I'm facing a similar problem to yours. Do you have any updates?
Thank you in advance!

@glisca
Copy link
Author

glisca commented Feb 22, 2021

Hi there, unfortunately I have no updates. I had to focus on other topics and this one remained hanging.
Kind regards,

@nghorbani
Copy link
Owner

lets set up a debugging scenario.
forget about the bvh and only get a smpl in pose_body = 0, trans=0, root_orient=0.
now transform the vertices (or a subset) it to a location you desire using your transformation technique. now pose the smpl body using trans and root orient.
If the two bodies overlap then your transformation code is correct. if not then debug is needed.
Please note that the root joint might not be at zero location. That means in a zero tpose smpl body (i.e. pose_body = 0, trans=0, root_orient=0) if you do bm.Jtr.view(1, -1, 3)[:,0]) then the value is slightly above zero. This would change the center of all transformations.
let me know if you need more help on this.

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