zju3dv / EasyMocap

Make human motion capture easier.
Other
3.67k stars 454 forks source link

Index Error #44

Closed vinayakagarwal12 closed 3 years ago

vinayakagarwal12 commented 3 years ago

I was running the code for smpl-x reconstruction on my own videos using the code -> data='/content/0_input/data' !python3 apps/demo/mv1p.py $data --out $data/output/smplx --vis_det --vis_repro --undis --sub_vis 1 2 --body bodyhandface --model smplx --gender male --write_smpl_full But I got the following index error. If anyone can help me solving this issue. Thanks. Screenshot from 2021-07-04 16-26-25

chingswy commented 3 years ago

It seems that the index out of bounds. You can add a flag --end 200 to check if the error still occurs.

mhudnell commented 3 years ago

I've received a similar error, when trying to run smpl reconstruction on my custom data:

❯ python3 apps/demo/mv1p.py ${data} --out ${data}/output/smpl --vis_det --vis_repro --undis --sub_vis 0 1 2 3 --vis_smpl

  Demo code for multiple views and one person:

    - Input : /mnt/d/mhudnell/data/volumetric_recordings/4-29_still/easymocap_format => 0, 1, 2, 3
    - Output: /mnt/d/mhudnell/data/volumetric_recordings/4-29_still/easymocap_format/output/smpl
    - Body  : smpl=>neutral, body25

triangulation: 100%|████████████████████████████████████████████████████████████████████████████████████████████████| 575/575 [15:44<00:00,  1.64s/it]
dump: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████| 575/575 [00:14<00:00, 38.62it/s]
loading: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████| 575/575 [01:00<00:00,  9.44it/s]
-> [Optimize global RT  ]: 432.9ms
Traceback (most recent call last):
  File "apps/demo/mv1p.py", line 117, in <module>
    mv1pmf_smpl(dataset, args)
  File "apps/demo/mv1p.py", line 71, in mv1pmf_smpl
    weight_shape=weight_shape, weight_pose=weight_pose)
  File "/home/max/repos/EasyMocap/easymocap/pipeline/basic.py", line 77, in smpl_from_keypoints3d2d
    params = multi_stage_optimize(body_model, params, kp3ds, kp2ds, bboxes, Pall, weight_pose, cfg)
  File "/home/max/repos/EasyMocap/easymocap/pipeline/basic.py", line 18, in multi_stage_optimize
    params = optimizePose3D(body_model, params, kp3ds, weight=weight, cfg=cfg)
  File "/home/max/repos/EasyMocap/easymocap/pyfitting/optimize_simple.py", line 301, in optimizePose3D
    params = _optimizeSMPL(body_model, params, prepare_funcs, postprocess_funcs, loss_funcs, weight_loss=weight, cfg=cfg)
  File "/home/max/repos/EasyMocap/easymocap/pyfitting/optimize_simple.py", line 246, in _optimizeSMPL
    final_loss = fitting.run_fitting(optimizer, closure, opt_params)
  File "/home/max/repos/EasyMocap/easymocap/pyfitting/optimize.py", line 38, in run_fitting
    loss = optimizer.step(closure)
  File "/home/max/repos/EasyMocap/easymocap/pyfitting/lbfgs.py", line 307, in step
    orig_loss = closure()
  File "/home/max/repos/EasyMocap/easymocap/pyfitting/optimize_simple.py", line 227, in closure
    new_params = func(new_params)
  File "/home/max/repos/EasyMocap/easymocap/pyfitting/optimize_simple.py", line 121, in interp_func
    params[key][nf] = interp(params[key][left], params[key][right], 1-weight, key=key)
IndexError: index 575 is out of bounds for dimension 0 with size 575

I tried to fix by appending --end 570 to the command, but that still resulted in the error: IndexError: index 570 is out of bounds for dimension 0 with size 570

note: there are a total of 575 frames in my custom data

chingswy commented 3 years ago

Can you share me the data? I can't reproduce this error by our own data.

carlosedubarreto commented 3 years ago

@vinayakagarwal12 and @mhudnell You could also try to look at the images creates on the folders detect and keypoint3d i think (i'm not sure wich folders has the rendered images)

over ther you can see that probably at some point you might have a failures at the bodypoints recognition.

Thats wha tususally happened with me.

So, for example, if you notice something odd on frame 352, you could use the command --end 350

mhudnell commented 3 years ago

@carlosedubarreto ah, that is likely the problem, then. I noticed there are quite a lot of failures in my body pose estimations. I will try to fix that, thanks.