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

Error running demo.py: TypeError: 'NoneType' object is not subscriptable #33

Closed horanyinora closed 3 years ago

horanyinora commented 3 years ago

Hello,

I am trying to run the demo file on the teaser image. I followed the instructions of #4 because I had the same error as #1. I am a bit confused about the downloads. Particularly:

WARNING: You are using a SMPL model, with only 10 shape coefficients. WARNING: You are using a SMPL model, with only 10 shape coefficients. unexpected key in source state_dict: fc.weight, fc.bias missing keys in source state_dict: layer2.0.bn1.num_batches_tracked, layer2.1.bn3.num_batches_tracked, layer3.5.bn1.num_batches_tracked, layer2.3.bn3.num_batches_tracked, layer3.0.bn3.num_batches_tracked, layer3.4.bn2.num_batches_tracked, layer1.0.bn1.num_batches_tracked, layer4.1.bn2.num_batches_tracked, layer3.2.bn3.num_batches_tracked, layer4.0.bn3.num_batches_tracked, layer3.0.bn1.num_batches_tracked, layer1.1.bn3.num_batches_tracked, layer2.3.bn2.num_batches_tracked, layer1.2.bn1.num_batches_tracked, layer2.0.bn2.num_batches_tracked, layer1.2.bn2.num_batches_tracked, layer3.3.bn3.num_batches_tracked, layer2.2.bn3.num_batches_tracked, layer1.0.bn2.num_batches_tracked, layer1.0.downsample.1.num_batches_tracked, layer4.1.bn3.num_batches_tracked, layer3.1.bn3.num_batches_tracked, layer4.2.bn1.num_batches_tracked, layer3.3.bn2.num_batches_tracked, layer2.1.bn2.num_batches_tracked, layer3.2.bn2.num_batches_tracked, layer3.3.bn1.num_batches_tracked, layer4.1.bn1.num_batches_tracked, layer3.4.bn3.num_batches_tracked, layer4.2.bn2.num_batches_tracked, layer3.0.downsample.1.num_batches_tracked, layer3.5.bn3.num_batches_tracked, layer4.0.downsample.1.num_batches_tracked, layer3.2.bn1.num_batches_tracked, layer2.3.bn1.num_batches_tracked, layer1.1.bn1.num_batches_tracked, layer4.0.bn2.num_batches_tracked, layer4.2.bn3.num_batches_tracked, layer2.2.bn1.num_batches_tracked, layer3.1.bn2.num_batches_tracked, layer4.0.bn1.num_batches_tracked, layer2.0.bn3.num_batches_tracked, layer1.2.bn3.num_batches_tracked, layer3.0.bn2.num_batches_tracked, layer2.0.downsample.1.num_batches_tracked, layer2.1.bn1.num_batches_tracked, layer3.1.bn1.num_batches_tracked, layer1.0.bn3.num_batches_tracked, layer3.5.bn2.num_batches_tracked, bn1.num_batches_tracked, layer2.2.bn2.num_batches_tracked, layer3.4.bn1.num_batches_tracked, layer1.1.bn2.num_batches_tracked 2021-08-12 16:47:52,049 - INFO - load checkpoint from data/checkpoint.pt 2021-08-12 16:47:52,503 - WARNING - missing keys in source state_dict: smpl_head.loss.smpl.faces_tensor, smpl_head.loss.smpl.shapedirs, smpl_head.smpl.shapedirs, smpl_head.loss.smpl.vertex_joint_selector.extra_joints_idxs, smpl_head.smpl.posedirs, smpl_head.loss.smpl.J_regressor, smpl_head.smpl.v_template, smpl_head.smpl.faces_tensor, smpl_head.loss.smpl.v_template, smpl_head.smpl.J_regressor, smpl_head.loss.smpl.lbs_weights, smpl_head.smpl.lbs_weights, smpl_head.smpl.vertex_joint_selector.extra_joints_idxs, smpl_head.smpl.J_regressor_extra, smpl_head.smpl.parents, smpl_head.loss.smpl.J_regressor_extra, smpl_head.loss.smpl.parents, smpl_head.loss.smpl.posedirs 2021-08-12 16:47:52,535 - INFO - resumed epoch 27, iter 90901 WARNING: You are using a SMPL model, with only 10 shape coefficients. Traceback (most recent call last): File "/home/multiperson/mmdetection/tools/demo.py", line 190, in main() File "/home/multiperson/mmdetection/tools/demo.py", line 186, in main cv2.imwrite(f'{file_name.replace(folder_name, output_folder)}.output.jpg', img_viz[:, :, ::-1]) TypeError: 'NoneType' object is not subscriptable startswith first arg must be bytes or a tuple of bytes, not str

I commented the try-except part (demo.py line 89-94) to get a more detailed error message. The problem seems to occur in renderer.py line 88:

Traceback (most recent call last): File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/OpenGL/latebind.py", line 41, in call return self._finalCall( *args, *named ) TypeError: 'NoneType' object is not callable During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/nora/multiperson/mmdetection/tools/demo.py", line 185, in main img_viz = prepare_dump(pred_results, img, render, bbox_results, FOCAL_LENGTH) File "/home/nora/multiperson/mmdetection/tools/demo.py", line 90, in prepare_dump fv_rendered = render([img_th.clone()], [pred_verts], translation=[pred_trans])[0] File "/home/nora/multiperson/mmdetection/mmdet/models/utils/smpl/renderer.py", line 88, in call color, rend_depth = self.renderer.render(scene, flags=pyrender.RenderFlags.RGBA) File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/pyrender/offscreen.py", line 99, in render return self._renderer.render(scene, flags) File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/pyrender/renderer.py", line 121, in render self._update_context(scene, flags) File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/pyrender/renderer.py", line 709, in _update_context p._add_to_context() File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/pyrender/primitive.py", line 324, in _add_to_context self._vaid = glGenVertexArrays(1) File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/OpenGL/latebind.py", line 45, in call return self._finalCall( args, *named ) File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/OpenGL/wrapper.py", line 657, in wrapperCall result = wrappedOperation( cArguments ) File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 401, in call if self.load(): File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 390, in load error_checker = self.error_checker, File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 148, in constructFunction if (not is_core) and not self.checkExtension( extension ): File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 270, in checkExtension result = extensions.ExtensionQuerier.hasExtension( name ) File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/OpenGL/extensions.py", line 98, in hasExtension result = registered( specifier ) File "/home/nora/anaconda2/envs/multiperson/lib/python3.7/site-packages/OpenGL/extensions.py", line 105, in call if not specifier.startswith( self.prefix ): TypeError: startswith first arg must be bytes or a tuple of bytes, not str

with-twilight commented 3 years ago

Hi! I have the same problem. Have you solved this problem? If so, would you mind sharing the solution?