cmr-human36m demo error
这个函数报错: vertex, align_state = registration(vertex, uv_point_pred[0], self.j_regressor, data['K'][0].cpu().numpy(), args.size, uv_conf=uv_pred_conf[0], poly=poly)
ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 6890 is different from 778)
self.j_regressor 长度是778, vertex长度是6890,这里是36m body的点数?要加个转换为778个hand的vertex吧? 还是argcs里我忽略了某些参数?
Hi,可以尝试把args.dataset设置为Human36M
Hi,可以尝试把args.dataset设置为Human36M
感谢回复
parser.set_defaults(phase='demo')
parser.set_defaults(exp_name='cmr_pg')
parser.set_defaults(backbone='ResNet18')
#parser.set_defaults(dataset='FreiHAND')
parser.set_defaults(dataset='Human36M')
parser.set_defaults(model='cmr_pg')
parser.set_defaults(device_idx = [0])
parser.set_defaults(resume= 'cmr_pg_res18_h36m.pt')
# parser.set_defaults(size=256)
# parser.set_defaults(att='yes')
# parser.set_defaults(ds_factors = [3.5, 3.5, 3.5, 3.5] )
这是我测试cmr-human36m demo的参数,应该是没错的,但报错 (size 6890 is different from 778)
抱歉,demo没有适配body数据。需要debug一下,确保j_regressor是从Human36M中拿到的。 https://github.com/SeanChenxy/HandMesh/blob/47e860cc046e4d36aad244fb8291e4ccf59a32a9/cmr/runer.py#L39 另外
bounds = ((None, None), (None, None), (1, 8))
poly_protect = [1.0, 0.5]
抱歉,demo没有适配body数据。需要debug一下,确保j_regressor是从Human36M中拿到的。
https://github.com/SeanChenxy/HandMesh/blob/47e860cc046e4d36aad244fb8291e4ccf59a32a9/cmr/runer.py#L39
另外
bounds = ((None, None), (None, None), (1, 8)) poly_protect = [1.0, 0.5]
human36m 的j_regressor及output都是17个关节点,demo中都是按照21个点处理的,换成human36m之后报错地方很多
同样是在跑human36m时出现报错,可以问一下这个问题怎么解决吗? File "/home/3DHandReconstruction2/HandMesh-main/cmr/datasets/Human36M/human36m.py", line 306, in getitem rot_aug_mat = np.array([[np.cos(np.deg2rad(-rot)), -np.sin(np.deg2rad(-rot)), 0], ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 2 dimensions. The detected shape was (3, 3) + inhomogeneous part.
再次抱歉这个repo对人体数据的适配并不是很好,我最近没有时间debug Human3.6M。请参见其他针对人体的工作的code。