Thanks for sharing the wonderful code. I have some questions regarding the BPnP implementations and I would appreciate it if you could give me a hand:
(bpnp) qiyan@qiyan-qdlpc:~/Documents/BPnP$ python demoPoseEst.py
i: 0, loss:21164.001953125
i: 1, loss:21162.431640625
i: 2, loss:21160.376953125
i: 3, loss:21158.195312500
i: 4, loss:21156.015625000
i: 5, loss:21153.923828125
i: 6, loss:21151.771484375
i: 7, loss:21149.613281250
i: 8, loss:21147.451171875
i: 9, loss:21145.251953125
i: 10, loss:21143.001953125
Traceback (most recent call last):
File "demoPoseEst.py", line 67, in <module>
loss.backward()
File "/home/qiyan/anaconda3/envs/bpnp/lib/python3.7/site-packages/torch/tensor.py", line 195, in backward
torch.autograd.backward(self, gradient, retain_graph, create_graph)
File "/home/qiyan/anaconda3/envs/bpnp/lib/python3.7/site-packages/torch/autograd/__init__.py", line 99, in backward
allow_unreachable=True) # allow_unreachable flag
File "/home/qiyan/anaconda3/envs/bpnp/lib/python3.7/site-packages/torch/autograd/function.py", line 77, in apply
return self._forward_cls.backward(self, *args)
File "/home/qiyan/Documents/BPnP/BPnP.py", line 96, in backward
inv_J_fy = torch.inverse(J_fy)
RuntimeError: inverse_cuda: U(6,6) is zero, singular U.
Many thanks! Have a nice day & week-end.
Qi Yan