mks0601/Hand4Whole_RELEASE

Hand pose weird results

Opened this issue · 5 comments

I'm running a real-time application to detect hands and drive a standard smplx model (default flat hand pose) to act, but got some weird stretch for both hands. Like, all fingers move to the wrong side. Any idea?

I set flat_hand_mean=True here,

self.layer = {'right': smplx.create(cfg.human_model_path, 'mano', is_rhand=True, use_pca=False, flat_hand_mean=False, **self.layer_arg), 'left': smplx.create(cfg.human_model_path, 'mano', is_rhand=False, use_pca=False, flat_hand_mean=False, **self.layer_arg)}

and tried mano.layer['left'] here,

self.mano_layer = copy.deepcopy(mano.layer['right']).cuda()

1
2

You should set flat_hand_mean=False

Actually nothing changes when changing this parameter. The rotation keeps the same

That option adds some constant rotation to the input hand joint rotations in SMPLX layer. Although the estimated rotation is the same, SMPLX applies different rotations by adding a constant rotation.

I mean, after using the default flat_hand_mean=False, the displayed pose keeps almost the same as above pictures.

Also, you should use right hand mano model. Hand4Whold is trained to output right hand 3D pose. The left hand images are flipped to the right hand images.