akanazawa / hmr

Project page for End-to-end Recovery of Human Shape and Pose
Other
1.54k stars 395 forks source link

Which part of joints3d is the coordinate origin #111

Closed wallflower95 closed 5 years ago

wallflower95 commented 5 years ago

Hi @akanazawa, Firstly, I am very grateful to you for opening your research. And I think this can help us a lot.

However, I already know that hmr is object-centric. And the joints3d you got is also object-centric. But what is the coordinate origin? hip or other parts? and I want to know if I get the distance between the camera and the origin of the coordinate, Then can I find the distance between each joint and the camera?

Thanks!

akanazawa commented 5 years ago

Hi, Thank you. In SMPL the origin is at the root (between the hips), except the Human3.6M joints (joints3d) does not contain a root, so when I do this I make a center root by averaging the two hip locations. You can use a similar triangle trick, or equivalently fix a focal length to get an estimate of the global Z (divide the scale by a fixed focal length, see: https://github.com/akanazawa/hmr/blob/5534c9b5791c3f5c9a5d4d3f0063d38fad065d81/src/util/renderer.py#L247). You can set this Z to be the distance between the root and the camera, and then figure out the distance for all others.

Best,

A

wallflower95 commented 5 years ago

Thank you very much.

nnop commented 1 year ago

I found the origin of SMPL is the mean of vertices, not between hips. Could you confirm that?