NVlabs / dex-ycb-toolkit

A Python package that provides evaluation and visualization tools for the DexYCB dataset
https://dex-ycb.github.io
GNU General Public License v3.0
145 stars 24 forks source link

the form of hand pose annotations #23

Open YorkWang-Go opened 1 year ago

YorkWang-Go commented 1 year ago

Thanks for your great work!

I noticed that in label files, pose_m[:, 0:48] stored the MANO pose coefficients in PCA representation, and pose_m[0, 48:51] stored the translation. I wonder how can I transform them into axis-angle representation or quaternion representation? And are the poses represented in a root-relative system in the label files? Is it right that I can trasnform the pose to camera system by using the hand translation?

Thanks for your help!

ychao-nvidia commented 1 year ago
YorkWang-Go commented 1 year ago

Okay! Thanks for your early reply! These do help!

YorkWang-Go commented 1 year ago

I'm sorry that I have a further question.

What are this block used for? You said that an additional subtraction and addition of root_trans is required as wrist rotation is not directly applied on the root of the kinematic tree in MANO. Now I can visualize the hand pose with the raw parameters annotated in every label file in DexYCB dataset by using the pca mode in Manolayer, but the hand translation seemed to be wrong(the hand and object cannot be aligned). Inspired by your reply above, I think that may be the reason. However, I still can't get right results using pose_m and pose_y here with axis-angle mode in Manolayer(wrong hand pose and wrong translation) or just use the translation here and raw hand pose parameters in the dataset with pca mode in Manolayer(right hand pose and wrong translation). I think, now that I can get right hand poses using raw parameters, I only need to get the right hand_tsl parameters which can be directly applied to camera system to achieve my purpose. So I am confused that why this translation still doesn't work. How can I get the hand_tsl that I need? And is it right that hand_tsl has no relationship with mano?

Sorry to disturb you again and thanks for you kindness!

ychao-nvidia commented 1 year ago

A good exercise could be to transform MANO pose from one camera to another in DexYCB using the provided extrinsics. You can render the transformed pose and overlay it with the image recorded from the second camera as a sanity check.

YorkWang-Go commented 1 year ago

Okay! Thanks for your reply!

YorkWang-Go commented 1 year ago

I'm sorry that I'm still comfused about the representation form of the hand pose in label files. You said that hand poses were all represented in MANO format, does it mean root-relative? If so, pose_m[: , 0:48] stores the hand pose in stardard MANO formet, then is the global translation(pose_m[: , 48:51]) represented in camera coordinate system? And is pose_y also represented in camera coordinate system? Can I use pose_y and pose_m to transform the hand pose to the object's canonical coordinate system?

ychao-nvidia commented 1 year ago
YorkWang-Go commented 1 year ago

Okay! Thanks for your reply and patience!