ytrock / THuman2.0-Dataset

304 stars 10 forks source link

Misalignment between scan and its SMPL-X fit on THuman2.1 #23

Open PawtingDev opened 5 months ago

PawtingDev commented 5 months ago

Great work on extending the dataset to over 2k scans! But I encountered a problem while processing the updated THuman2.1. I imported a same set of data(0001) to blender. Above/selected smplx fit is from THuman2.1, and the below one is from THuman2.0. Scans from both dataset seem to be aligned, such misalignment between scan and its smpl-x fit do not exist in THuman2.0. image And see also in meshlab. image

ytrock commented 5 months ago

Got it. I will check this problem.

zhanghebuaa commented 5 months ago

We have noticed the issue of inconsistent parameter representations between the two batches of data before and after 526, and are working on it. Currently, the following code will solve your problem: params_ori = np.load('THuman2.1/smplx/0000/smplx_param.pkl' ,allow_pickle=True) m_smplx = smplx.SMPLX('E:/bodyModels/smplx', gender='male', use_pca=True, num_pca_comps=12) smpl_out = m_smplx.forward( transl=torch.tensor(params_ori['translation']).reshape([-1, 3]) / params_ori['scale'], global_orient=torch.tensor(params_ori['global_orient']), body_pose=torch.tensor(params_ori['body_pose']), betas=torch.tensor(params_ori['betas']), left_hand_pose=torch.tensor(params_ori['left_hand_pose']), right_hand_pose=torch.tensor(params_ori['right_hand_pose']), expression=torch.tensor(params_ori['expression']), jaw_pose=torch.tensor(params_ori['jaw_pose']), leye_pose=torch.tensor(params_ori['leye_pose']), reye_pose=torch.tensor(params_ori['reye_pose']) ) vertices = smpl_out.vertices.detach().cpu().numpy()[0] * params_ori['scale'] m_model = trimesh.Trimesh(vertices=vertices, faces=m_smplx.faces, process=False) m_model.export('debug/smplx_0000.obj' )

jinnan-chen commented 4 months ago

It seems the tranlstion is wrong, is there any update on this?

ytrock commented 4 months ago

We've just updated the SMPL-X fittings and also provided the code for converting SMPL-X paras to meshes. Please checkout the readme for the newest download link.

wenj commented 4 months ago

Thanks for updating the parameters! It seems like "scale" is missing in the new released data. When I ran the the provided converting code, I got:

Traceback (most recent call last):
  File "Thuman_released.py", line 30, in <module>
    vertices = smpl_out.vertices.detach().cpu().numpy()[0] * params['scale']
KeyError: 'scale'

Is there somewhere to find the scale?

Thanks!

ytrock commented 4 months ago

Just fixed, please download using the updated link on the webpage.

kkaytekin commented 1 month ago

Maybe related issue: The 3D scans axes are different in new samples: image

And their scale is also inconsistent: image

Is this also updated on the last version? Then maybe I have an older download link :/

zhanghebuaa commented 4 weeks ago

Maybe related issue: The 3D scans axes are different in new samples: image

And their scale is also inconsistent: image

Is this also updated on the last version? Then maybe I have an older download link :/

The scale of the meshs in different frames may be different, but the scale of the mesh and smplx in the same frame is the same.