simonalexanderson / StyleGestures

Other
475 stars 65 forks source link

Questions about the Euler angles of the trinity dataset. #18

Open PKUFlyingPig opened 3 years ago

PKUFlyingPig commented 3 years ago

I print out the rightforehand rotation information of the trinity dataset bvh file, and found some really confused phenomenon. As the following image shows, when the X rotation reaches 90 degrees, the Z rotation and Y rotation will change suddenly from -180 or 180 to nearly 0. This looks quite like the so called "gimbal lock".

image

But will this kind of sudden change in data affect the performance of your model? I found my full-body model will output some samples will hands rotating unnaturally. But your full-body samples look quite well. Do you ever encounter this problem? If so, can you offer some advice?

ghenter commented 3 years ago

I am not very experienced with 3D, so my experience will not go far here. But what do the avatar poses look like for the corresponding frames? I'm thinking that, if the poses and motion look natural, it is likely a data parameterisation/representation issue; if they do not, it's likely an issue with the motion capture itself.

simonalexanderson commented 3 years ago

Euler angles are discontinuous by nature, so we convert them to exponential maps (in the preprocessing stage) and back (after synthesis). These should be continuous and reside in your 'data/GENEA/processed/features_20fps/joint_rot' folder. If you want to double-check, you can plot them by using the code in the last section of the following script:

https://github.com/simonalexanderson/PyMO/blob/master/demos/bvh2features.ipynb

PKUFlyingPig commented 3 years ago

Thank you for your insightful advice. I found another problem in the preprocessing.py file. When I want to extract the joint angles for the full body, it will call the RootTransformer's transform method and use the specified "pos_rot_deltas" method. But the supplied preprocessing.py doesn't support this method. As your paper said, the smoothing step for the root rotation angles is quite important, so could you please check if the preprocessing.py is an old version? Looking forward to your advice, thank you in advance.

simonalexanderson commented 3 years ago

Hi again, the 'pos_rot_deltas' are now included in the pymo scipts.