yjtang249 / MIPSFusion

[SIGGRAPH Asia 2023] MIPSFusion is a neural SLAM method based on multi-implicit-submap representation for scalable online RGB-D reconstruction.
GNU General Public License v3.0
38 stars 7 forks source link

Running on Apartment_2 from FastCaMo-synth-data(raw) #2

Closed ArchHazel closed 5 months ago

ArchHazel commented 9 months ago

Dear author,

I appreciate for making public the source code!

I encounter a few problems when trying to obtain the trajectory error of Apartment 2.

First, in tools/eval_ate.py the shape of poses_est and mask do not match in the case when poses_est has NaN. To bypass this mismatch, I set the flag gt to FALSE when converting estimated poses. Then, some NAN stay in the poses_est and hence harm the following pose estimation. I am wondering if the modification contradicts your default design.

Second, during running on the provided dataset Apartment 2, the 15th keyframe pose is updated to NAN in the process of local bundle adjustment. Besides, I notice that the parameter map_every in yaml is 3, meaning the local bundle adjustment is done every 3 frames. To attain the similar performance, should I change it to five in conformance with that mentioned in your paper?

yjtang249 commented 8 months ago

Hello,

  1. Usually if estimated trajectory contains NaN poses, it means the method fails in corresponding frames. To evaluate this kind of trajctory, I recommend use EVO(https://github.com/MichaelGrupp/evo). Use command "evo_ape tum [estimated_trajctory_file] [GT_trajectory_file]" to visualize the comparison of estimated trajectory and GT trajectory in 3D. It should be noticed that: (1) [estimated_trajctory_file] and [GT_trajectory_file] should be in TUM format. You can find estimated trajectory in TUM format in output_dir, named for example "traj_211.txt". (2) You need to mask out invalid poses in both [estimated_trajctory_file] and [GT_trajectory_file], by inserting "#" at the beginning of corresponding lines. (3) Based on my testing, the values computed by EVO_APE and tools/eval_ate.py are equal.

  2. I didn't meet this problem when running Apartment 2 in FastCaMo-synth dataset, it always runs successfully. I also asked some other people, and they didn't meet this problem neither. Since in this dataset camera motion is extremely fast, mapping frequency is preferably higher than regular speed sequences. I think you can make this frequency lower, but the corresponding results should be worse.

Gatsby23 commented 7 months ago

This is may caused by the version of mathutils. I used version 2.81.2

pip install mathutils==2.81.2