JiangWenPL / multiperson

Code repository for the paper: "Coherent Reconstruction of Multiple Humans from a Single Image" in CVPR'20
https://jiangwenpl.github.io/multiperson/
376 stars 50 forks source link

How can use SMPL-X model #32

Closed taewhankim closed 2 years ago

taewhankim commented 3 years ago

Hi, thanks for wonderful project!

1. Currently, I have carried out the project with the SMPL(SMPL_NEUTRAL.pkl) model, and I plan to proceed with the SMPLX(SMPLX_NEUTRAL) model. An error occurs when using the model SMPLX. Is there a way to use the model?

image

unexpected key in source state_dict: fc.weight, fc.bias

missing keys in source state_dict: layer2.2.bn2.num_batches_tracked, layer3.4.bn2.num_batches_tracked, layer3.3.bn1.num_batches_tracked, layer4.0.bn3.num_batches_tracked, layer4.1.bn2.num_batches_tracked, layer1.1.bn2.num_batches_tracked, layer1.2.bn2.num_batches_tracked, layer2.1.bn1.num_batches_tracked, layer1.2.bn3.num_batches_tracked, layer4.0.downsample.1.num_batches_tracked, layer3.1.bn2.num_batches_tracked, layer3.4.bn3.num_batches_tracked, layer1.0.bn1.num_batches_tracked, layer3.3.bn3.num_batches_tracked, layer4.2.bn3.num_batches_tracked, layer1.1.bn1.num_batches_tracked, bn1.num_batches_tracked, layer2.1.bn2.num_batches_tracked, layer3.2.bn1.num_batches_tracked, layer3.0.bn3.num_batches_tracked, layer2.2.bn3.num_batches_tracked, layer3.5.bn3.num_batches_tracked, layer2.0.bn3.num_batches_tracked, layer4.0.bn2.num_batches_tracked, layer2.3.bn1.num_batches_tracked, layer3.1.bn1.num_batches_tracked, layer2.1.bn3.num_batches_tracked, layer1.0.downsample.1.num_batches_tracked, layer4.2.bn2.num_batches_tracked, layer3.5.bn1.num_batches_tracked, layer1.0.bn2.num_batches_tracked, layer4.1.bn3.num_batches_tracked, layer3.0.downsample.1.num_batches_tracked, layer4.0.bn1.num_batches_tracked, layer3.4.bn1.num_batches_tracked, layer2.3.bn3.num_batches_tracked, layer2.0.downsample.1.num_batches_tracked, layer2.0.bn2.num_batches_tracked, layer1.0.bn3.num_batches_tracked, layer3.2.bn3.num_batches_tracked, layer3.0.bn1.num_batches_tracked, layer3.3.bn2.num_batches_tracked, layer2.2.bn1.num_batches_tracked, layer4.1.bn1.num_batches_tracked, layer3.5.bn2.num_batches_tracked, layer2.0.bn1.num_batches_tracked, layer2.3.bn2.num_batches_tracked, layer3.0.bn2.num_batches_tracked, layer1.1.bn3.num_batches_tracked, layer4.2.bn1.num_batches_tracked, layer3.1.bn3.num_batches_tracked, layer1.2.bn1.num_batches_tracked, layer3.2.bn2.num_batches_tracked

2021-08-12 18:09:38,964 - INFO - load checkpoint from data/checkpoint.pt
Traceback (most recent call last):
  File "/home/neosungsin/anaconda3/envs/multi/lib/python3.7/site-packages/mmcv-0.2.10-py3.7-linux-x86_64.egg/mmcv/runner/checkpoint.py", line 87, in load_state_dict
    own_state[name].copy_(param)
RuntimeError: The size of tensor a (20908) must match the size of tensor b (13776) at non-singleton dimension 0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "tools/demo.py", line 190, in <module>
    main()
  File "tools/demo.py", line 149, in main
    runner.resume(cfg.resume_from)
  File "/home/neosungsin/anaconda3/envs/multi/lib/python3.7/site-packages/mmcv-0.2.10-py3.7-linux-x86_64.egg/mmcv/runner/runner.py", line 330, in resume
    map_location=lambda storage, loc: storage.cuda(device_id))
  File "/home/neosungsin/anaconda3/envs/multi/lib/python3.7/site-packages/mmcv-0.2.10-py3.7-linux-x86_64.egg/mmcv/runner/runner.py", line 239, in load_checkpoint
    self.logger)
  File "/home/neosungsin/anaconda3/envs/multi/lib/python3.7/site-packages/mmcv-0.2.10-py3.7-linux-x86_64.egg/mmcv/runner/checkpoint.py", line 180, in load_checkpoint
    load_state_dict(model.module, state_dict, strict, logger)
  File "/home/neosungsin/anaconda3/envs/multi/lib/python3.7/site-packages/mmcv-0.2.10-py3.7-linux-x86_64.egg/mmcv/runner/checkpoint.py", line 93, in load_state_dict
    name, own_state[name].size(), param.size()))
RuntimeError: While copying the parameter named smpl_head.loss.sdf_loss.faces, whose dimensions in the model are torch.Size([20908, 3]) and whose dimensions in the checkpoint are torch.Size([13776, 3]).
  1. Also, if the SMPL model is used, the above error occurs, but the output result is generated.

image

unexpected key in source state_dict: fc.weight, fc.bias

missing keys in source state_dict: layer3.2.bn2.num_batches_tracked, layer1.0.bn3.num_batches_tracked, layer3.4.bn3.num_batches_tracked, layer3.0.downsample.1.num_batches_tracked, layer3.5.bn3.num_batches_tracked, layer3.0.bn1.num_batches_tracked, layer3.2.bn3.num_batches_tracked, layer3.4.bn2.num_batches_tracked, layer3.1.bn2.num_batches_tracked, layer2.3.bn1.num_batches_tracked, layer3.3.bn3.num_batches_tracked, layer2.2.bn1.num_batches_tracked, layer3.5.bn2.num_batches_tracked, layer2.1.bn3.num_batches_tracked, layer3.4.bn1.num_batches_tracked, layer4.0.bn1.num_batches_tracked, bn1.num_batches_tracked, layer3.3.bn1.num_batches_tracked, layer2.1.bn1.num_batches_tracked, layer1.1.bn3.num_batches_tracked, layer4.2.bn2.num_batches_tracked, layer4.2.bn3.num_batches_tracked, layer3.2.bn1.num_batches_tracked, layer1.1.bn1.num_batches_tracked, layer3.3.bn2.num_batches_tracked, layer2.3.bn2.num_batches_tracked, layer2.3.bn3.num_batches_tracked, layer2.2.bn2.num_batches_tracked, layer4.1.bn3.num_batches_tracked, layer4.0.bn2.num_batches_tracked, layer4.2.bn1.num_batches_tracked, layer2.0.bn2.num_batches_tracked, layer4.1.bn2.num_batches_tracked, layer3.0.bn2.num_batches_tracked, layer2.1.bn2.num_batches_tracked, layer2.0.bn3.num_batches_tracked, layer2.0.bn1.num_batches_tracked, layer4.1.bn1.num_batches_tracked, layer4.0.downsample.1.num_batches_tracked, layer3.0.bn3.num_batches_tracked, layer1.0.downsample.1.num_batches_tracked, layer1.2.bn3.num_batches_tracked, layer1.2.bn2.num_batches_tracked, layer1.0.bn2.num_batches_tracked, layer2.0.downsample.1.num_batches_tracked, layer3.1.bn1.num_batches_tracked, layer1.2.bn1.num_batches_tracked, layer2.2.bn3.num_batches_tracked, layer1.1.bn2.num_batches_tracked, layer1.0.bn1.num_batches_tracked, layer3.1.bn3.num_batches_tracked, layer4.0.bn3.num_batches_tracked, layer3.5.bn1.num_batches_tracked

2021-08-12 17:54:32,318 - INFO - load checkpoint from data/checkpoint.pt
2021-08-12 17:54:32,574 - WARNING - missing keys in source state_dict: smpl_head.loss.smpl.shapedirs, smpl_head.loss.smpl.vertex_joint_selector.extra_joints_idxs, smpl_head.loss.smpl.parents, smpl_head.smpl.lbs_weights, smpl_head.smpl.faces_tensor, smpl_head.loss.smpl.faces_tensor, smpl_head.smpl.shapedirs, smpl_head.smpl.parents, smpl_head.smpl.J_regressor_extra, smpl_head.smpl.J_regressor, smpl_head.smpl.v_template, smpl_head.loss.smpl.posedirs, smpl_head.smpl.posedirs, smpl_head.loss.smpl.J_regressor_extra, smpl_head.loss.smpl.v_template, smpl_head.smpl.vertex_joint_selector.extra_joints_idxs, smpl_head.loss.smpl.J_regressor, smpl_head.loss.smpl.lbs_weights

2021-08-12 17:54:32,593 - INFO - resumed epoch 27, iter 90901
/home/multi/mmdetection/mmdet/core/bbox/transforms.py:56: UserWarning: This overload of addcmul is deprecated:
    addcmul(Tensor input, Number value, Tensor tensor1, Tensor tensor2, *, Tensor out)
Consider using one of the following signatures instead:
    addcmul(Tensor input, Tensor tensor1, Tensor tensor2, *, Number value, Tensor out) (Triggered internally at  /pytorch/torch/csrc/utils/python_arg_parser.cpp:882.)
  gx = torch.addcmul(px, 1, pw, dx)  # gx = px + pw * dx
Anirudh257 commented 3 years ago

@taewhankim Can you post the image that you want to run SMPLX on? It doesn't work well on occluded images and I suspect that you have a similar issue.

JiangWenPL commented 2 years ago

It should be resolved now.