HyHuang1995 / gmmloc

Implementation for IROS2020: "GMMLoc: Structure Consistent Visual Localization with Gaussian Mixture Model"
https://sites.google.com/view/gmmloc/
GNU General Public License v3.0
132 stars 14 forks source link

How to generate or save a new gmm map #1

Closed XanxusCrypto closed 3 years ago

XanxusCrypto commented 3 years ago

Hey! Thanks for sharing the localization work! By now I have read your paper and downloaded the code, meanwhile trying to compile it. I saw the running exampe of Euroc Vicon Rooms and found there were v1.gmm and v2.gmm local maps located in the data folder. So I wondered that how to generate a brand new map and saved as a gmm? Should I ran a pipeline like Orb-slam2 or Vins-Fusion to generate map points in the world coordinate and saved all map points in the glocal map of keyframes in the end? And then I found there were interface functions such as loadGMMModel and saveGMMModel, so how to import the map points to generate the GMMModel, in order to utilize the GMM Map in the second run? Thanks for sharing the localization project again, which was just located in the region I'm researching for recently!

HyHuang1995 commented 3 years ago

Hi, thank you for your interest in our work. Regard to the gmm map, we generate it from dense geometric structure with off-the-shelf clustering methods in sklearn. Specifically, for Vicon Room sequences, we use dense point cloud from Leica scanner as input for gmm generation, which is provided by the dataset. To avoid memory overhead, we divide the pointcloud into several segments, and then perform clustering on each segment and merge them together.

I am sorry that currently we don't have a systematic pipeline for scalable gmm generation in this project. So if you would like to try this code out in other scenarios, you might need to generate a gmm map and convert it into the format same as in this repo with the api you mentioned.

Hope this helps!

XanxusCrypto commented 3 years ago

Thanks for the replying! Maybe I could dig into the code and find some ways to utilize the semi-dense map points generated by the SLAM pipeline .