princeton-vl / DROID-SLAM

BSD 3-Clause "New" or "Revised" License
1.65k stars 272 forks source link

Random output of trajectories(ATE) on multiple runs of DROID-SLAM algorithm #113

Open surajiitd opened 9 months ago

surajiitd commented 9 months ago

Dear Authors, Thanks for the code! On running on a particular sequence of images multiple times, the output of DROID-SLAM varies a bit. On debugging, I found out that the randomness of the output was due to the DBA code written in c++ (the flow updates(at first time) were same across multiple runs but after DBA the output become different accross multiple runs). Could you please tell which particular part of the DBA code is the origin of this randomness of trajectories? @zachteed @lahavlipson @xiesc @jiadeng Thanks in advance.

surajiitd commented 5 months ago

The same inputs go to this function droid_backends.ba() across multiple runs on same video, but the results of poses and depths after that were not same across different runs. So this droid_backends.ba() function is the source of randomness. I believe it is calling this function ba_cuda(). So could you tell which operation inside this cuda function is making the result unreproducible across different runs?? And is there some way to make that reproducible? @lahavlipson @zachteed ??