An Offline Python SLAM using COLMAP





Abstract


TL;DR: We present an offline python SLAM by leveraging the advantages of both COLMAP and ORB-SLAM.

Simultaneous localization and mapping (SLAM) and Structure from Motion (SfM) are two highly overlapping tasks for building a 3d mapping and getting a trajectory of cameras, with the difference that SLAM processes sequential images very efficiently in real-time and focuses mainly on the trajectory, while SfM processes unordered images and focuses on the 3d mapping, but is significantly slower. Despite their differences, they have both found positions in an enormous range of applications. However, if one wants to build a large-scale reconstruction like for cities, SLAM is fast but does not provide good enough 3d mapping because it focuses mainly on the trajectory. SfM has a good 3d mapping but is too slow and takes too long to reconstruct a large-scale scene. The appropriate trade-off between these two methods should be an offline but not too slow system that can build a sufficiently good reconstruction for video sequences.



Our slam pipeline has following properties:
  • Faster speed than COLMAP;
  • Same level of trajectory accuracy as ORB-SLAM2;
  • Better reconstruction quality than ORB-SLAM2;
  • High extensibility, 100% python, and support customized features and matching methods thanks to hloc toolbox.



  • Overview


    Our SLAM pipeline is composed of four modules: initialization, tracking, local mapping, and loop closure. After initialization, we perform tracking for each frame and pass each selected keyframe to local mapping, loop detection, and loop closure.



    For detailed information, please refer to poster and report.


    Results


    Trajectory visualization on TUM-RGBD


    3D structure visualization on TUM-RGBD fr2/desk (Left: COLMAP, middle: ORB-SLAM2, right: OUrs)


    Trajectory visualization on KITTI


    3D structure visualization on KITTI07 (Left: COLMAP, middle: ORB-SLAM2, right: Ours)



    Demos



    Kitti 05 demo


    TUM-RGBD demo



    Team



    Kudos to my great team!