Open cloudcjf opened 1 year ago
Hi CloudCJF. The main challenge in forwarding LoGG3D as implemented in the official repository is in applying the point-based loss, as a) the overlap between clouds is significantly smaller for the Oxford and In-House datasets than for MulRan and KITTI and b) the ground truth poses for Oxford and In-House are only the XY positions of each cloud, which is not sufficient to align the clouds for a point-based loss.
In order to implement LoGG3D in our paper we make the following changes:
We use the following hyperparameters:
Hopefully this helps, please let us know if there's any other questions you have!
Hi CloudCJF. The main challenge in forwarding LoGG3D as implemented in the official repository is in applying the point-based loss, as a) the overlap between clouds is significantly smaller for the Oxford and In-House datasets than for MulRan and KITTI and b) the ground truth poses for Oxford and In-House are only the XY positions of each cloud, which is not sufficient to align the clouds for a point-based loss.
In order to implement LoGG3D in our paper we make the following changes:
- We disable the point-based loss, as it is not possible to align the clouds in the Oxford and In-House datasets accurately enough with available GT to do so
- We deploy the backbone and SoP into the training pipeline used for MinkLoc3D (i.e. using the same data pre-processing, hard negative mining in-batch ,etc.)
We use the following hyperparameters:
- Incremental loss weight: 100
- Batch Size Limit: 200
Hopefully this helps, please let us know if there's any other questions you have!
Hi, @JBKnights . Thanks for your explanation. Actually, I have already disabled the point-based loss and used the sparcify_and_collate_list function in dataset_utils.py to transfer the point clouds into the sparse tensor batch. Then the logg3d model is called just like minkloc3d and PointNetVLAD in the main loop of trainer.py. This will return a batch of embedding vectors(size:[batch, 256]). Regarding the hyperparameters, I have followed the default you give. hyperparameters of incremental learning are not used yet since I'd like to train logg3d from scratch first. After 60 epochs of training, the recall@1 on Oxford and In-house is less than 10%. There must be something important I missed. Do you have any idea about what leads to the wrong result?
@kavisha725 you may able to help @cloudcjf here. Thank you.
For the general guidelines on how to use LoGG3D-Net please go through the readme page at: https://github.com/csiro-robotics/LoGG3D-Net and/or create an issue in that repo.
Unfortunately I'm not familiar with how LoGG3D-Net was used in the InCloud project. The only suggestions I can make are the general ml debugging steps of observing the loss and validation curves during training. For more specific information on how LoGG3D-Net was used in InCloud, it's best to wait till @JBKnights replies.
For the general guidelines on how to use LoGG3D-Net please go through the readme page at: https://github.com/csiro-robotics/LoGG3D-Net and/or create an issue in that repo.
Unfortunately I'm not familiar with how LoGG3D-Net was used in the InCloud project. The only suggestions I can make are the general ml debugging steps of observing the loss and validation curves during training. For more specific information on how LoGG3D-Net was used in InCloud, it's best to wait till @JBKnights replies.
Thank you for your kind reply.@kavisha725 Actually, I have tried to replace SOP with max-pooling or NetVLAD to implement LoGG3D-Net in the InCloud and both are working. This may suggest that the original SOP is not suitable for the datasets in the InCloud project. Hope @JBKnights can help me find the solution. Thanks in advance.
@cloudcjf is there anything we can help you with?
Dear authors,
Thanks for your exciting work. I am reproducing your results and have noticed that logg3d is not yet implemented. So I take the official code of logg3d to forward the global embeddings(256-dim vectors) and use the default config as the code you open source. Everything seems just fine since the code is successfully running. However, the recall@1 and recall@1% on Oxford and In-house datasets are too low to believe. Do you have any ideas on this issue? You have mentioned in your paper that oxford and In-house lack insufficient overlap between adjacent point clouds. Any influence on the training of logg3d? Hope you can help me solve this issue at your convenience.