mihaibujanca / dynamicfusion

Implementation of Newcombe et al. CVPR 2015 DynamicFusion paper
BSD 3-Clause "New" or "Revised" License
394 stars 105 forks source link

short question about the optimization #74

Open cmatija opened 4 years ago

cmatija commented 4 years ago

hi @mihaibujanca

thanks for the great code!

if I may, I just quickly wanted to ask some things about your code to see if I understand it correctly (couldn't yet build it properly, some libraries are giving me headaches :) ):

  1. Do I see it correctly that you use the opt language for optimization, which automatically computes things like the jacobian etc. by means of automatic differentiation?

  2. Do you use twists anywhere in the optimization? From what I can tell, you set up the optimization problem and energies all using dual quaternions, and newcombe et al. describe that they use linearization of SE(3) using twists for the Gauss-Newton optimization. Is that also the case in your code? For instance, the from_twist method in the dual_quaternion.hpp does not seem to be used anywhere?

Cheers and thanks again :)

mihaibujanca commented 4 years ago

Hello!

Please bear with me with regards to the questions as I haven't touched the code in quite some time. As a heads up, my suggestion would be that rather than trying to use the code here, you might find some of the neural network based solutions more useful. If you are seeking dynamicfusion for a real-time implementation, last time I had tested this one it was going around 5fps - that was on a laptop GPU however.

I recommend you give https://github.com/weigao95/surfelwarp a shot

To answer the questions however:

  1. I am indeed using opt, but I expect it will be hard to build. I remember having trouble with it myself when testing my own code on different GPUs. Furthermore Opt itself doesn't seem to be updated regularly anymore, and putting the dependencies together may be hard.
  2. I don't quite remember this one but there were some bits I didn't get fully working or had bugs, so in some cases I've found workarounds or simplifications to get a working demo

Hope this is useful, though probably not as much as you might have hoped :)

cmatija commented 4 years ago

Thanks a lot for coming back to me!

As it so happens, I stumbled across surfelwarp just yesterday and am trying to wrap my head around the code as we speak :)

Regarding the deep learning based methods, would you perhaps care to give me some pointers? I'm quite new to this surface reconstruction thing so I'm trying to get a good overview.