vchoutas / smplify-x

Expressive Body Capture: 3D Hands, Face, and Body from a Single Image
https://smpl-x.is.tue.mpg.de/
Other
1.69k stars 330 forks source link

RuntimeError: The size of tensor a (25) must match the size of tensor b (26) at non-singleton dimension 1 #220

Closed nguyenha1910 closed 1 month ago

nguyenha1910 commented 1 month ago

I've got this error:

smplify-x/smplifyx/optimizers/lbfgsls.py:238: UserWarning: This overload of add is deprecated:
add(Number alpha, Tensor other)
Consider using one of the following signatures instead:
add
(Tensor other, *, Number alpha) (Triggered internally at ../torch/csrc/utils/python_argparser.cpp:1578.)
p.data.add
(step_size, update[offset:offset + numel].view_as(p.data))
Camera initialization done after 1.4860
Camera initialization final loss 8721.4102
Orientation: 0%|
| 0/1 [00:00<?, ?it/s joint_weights: torch.Size([1, 25])
0/5 [00:00<?, ?it/s] joints_conf: torch.Size([1, 26])
Stage: 0%|
| 0/5 [00:00<?, ?it/s] Orientation: 0%|
| 0/1 [00:00<?, ?it/s] Traceback (most recent call last):
File "/mnt/c/Users/nguye/OneDrive - UW/Project/3D Reconstruction/Code/smplify-x/smplifyx/main.py", line 272, in main(args) File "/mnt/c/Users/nguye/OneDrive - UW/Project/3D Reconstruction/Code/smplify-x/smplifyx/main.py", line 245, in main fit_single_frame(img, keypoints[[person_id]], File "/mnt/c/Users/nguye/OneDrive - UW/Project/3D Reconstruction/Code/smplify-x/smplifyx/fit_single_frame.py", line 442, in fit_single_frame final_loss_val = monitor.run_fitting( File "/mnt/c/Users/nguye/OneDrive - UW/Project/3D Reconstruction/Code/smplify-x/smplifyx/fitting.py", line 177, in run_fitting loss = optimizer.step(closure) File "/home/nguyen/.local/lib/python3.10/site-packages/torch/optim/optimizer.py", line 391, in wrapper out = func(*args, *kwargs) File "/mnt/c/Users/nguye/OneDrive - UW/Project/3D Reconstruction/Code/smplify-x/smplifyx/optimizers/lbfgs_ls.py", line 280, in step orig_loss = closure() File "/mnt/c/Users/nguye/OneDrive - UW/Project/3D Reconstruction/Code/smplify-x/smplifyx/fitting.py", line 253, in fitting_func total_loss = loss(body_model_output, camera=camera, File "/home/nguyen/.local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl return self._call_impl(args, kwargs) File "/home/nguyen/.local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1541, in _call_impl return forward_call(*args, *kwargs) File "/mnt/c/Users/nguye/OneDrive - UW/Project/3D Reconstruction/Code/smplify-x/smplifyx/fitting.py", line 380, in forward weights = (joint_weights joints_conf RuntimeError: The size of tensor a (25) must match the size of tensor b (26) at non-singleton dimension 1

In my fit_smplx.yaml file, I have changed these values to not use hand and face

use_hands: False use_face: False interpenetration: False

I think it's supposed to have 25 key points; why is it asking for 26 here?

nguyenha1910 commented 1 month ago

Oh, I see the 26 keypoints are from my keypoints. Sorry about that.