Giter Club home page Giter Club logo

ogmm's Introduction

Overlap-guided Gaussian Mixture Models for Point Cloud Registration

Introduction

Probabilistic 3D point cloud registration methods have shown competitive performance in overcoming noise, outliers, and density variations. However, registering point cloud pairs in the case of partial overlap is still a challenge. This paper proposes a novel overlap-guided probabilistic registration approach that computes the optimal transformation from matched Gaussian Mixture Model (GMM) parameters. We reformulate the registration problem as the problem of aligning two Gaussian mixtures such that a statistical discrepancy measure between the two corresponding mixtures is minimized. We introduce a Transformer-based detection module to detect overlapping regions, and represent the input point clouds using GMMs by guiding their alignment through overlap scores computed by this detection module. Experiments show that our method achieves superior registration accuracy and efficiency than state-of-the-art methods when handling point clouds with partial overlap and different densities on synthetic and real-world datasets. Now it is a draft version, we will update it as soon as possible.

Usage

Training

To train the model, run the following command:

python train --root dataset_path --dataset dataset --model model

Data preparation

  • ICL-NUIM dataset, which is provided by DeepGMR, can be downloaded from DeepGMR.
  • ModelNet40 dataset can be downloaded from ModelNet40.

Requirements

Our model is trained with the following environment:

  • Python 3.8.8
  • PyTorch 1.9.1 with torchvision 0.10.1 (Cuda 11.1)
  • coloredlogs
  • easydict
  • h5py
  • GitPython
  • nibabel
  • numpy
  • scipy
  • open3d
  • tensorboard

Acknowledgements

Our code is built upon various repositories including FMR, DeepGMR, and probreg.

Citation

If you find our work useful, please consider citing our paper:

@inproceedings{mei2022overlap,
  title={Overlap-guided Gaussian Mixture Models for Point Cloud Registration},
  author={Mei, Guofeng and Poiesi, Fabio and Saltori, Cristiano and Zhang, Jian and Ricci, Elisa and Sebe, Nicu},
  booktitle={IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)},
  year={2023},
}

ogmm's People

Contributors

gfmei avatar hectorpiteau avatar

Stargazers

Shunyu avatar  avatar  avatar WangBinBing avatar Guillen00 avatar 张钰轩 avatar  avatar lhhhhhhhhhhhhhhhhy avatar  avatar Sergio Povoli avatar Nicola Dall'Asen avatar BinRen avatar hiyyg avatar  avatar  avatar Ling Dai avatar Yinqiang Zhang avatar  avatar LIUZHANYI avatar Zirconium avatar  avatar  avatar  avatar  avatar  avatar Cristiano Saltori avatar  avatar  avatar  avatar  avatar swu ye avatar  avatar

Watchers

 avatar Kostas Georgiou avatar LeiZHang avatar

ogmm's Issues

模型训练结果

感谢您在这个工作上的贡献!
我训练过程中,并没有改动任何模型参数,仅仅将cfgs.py文件中的--model改为GMMReg,在ModelNet40的数据集上的训练过程在经过前两个epoch之后并不会提高了,验证时的recall保持在0.2370,且后续并没有任何改善。我的GPU是3090,batch_size设置为48。能否提供训练好的模型以便测试和学习?谢谢

about average inference time

感谢您杰出的工作。
我在实验时发现聚类算法耗时也挺多的,在我的Nvidia TiTan x(Pascal)显卡上达到了0.22s
请问您论文中的average inference time包含数据梳理,如降采样,聚类等步骤的时间么

About 7Scene dataset

How do I download the 7scene dataset in ply format? It's been bothering me for a long time. Looking forward to your reply :)

关于代码运行问题

您好,感谢您对这篇论文和代码的贡献,最近在运行您的代码的时候遇到了一些问题想向您请教下。首先是配置参数问题,我将cfgs.py中的model改为GMMReg才可以运行的,那么源代码中的CluReg是什么含义呢?第二个为代码运行到gmmreg.py中的GMMReg后依然有问题,提示在76行(但我看第76行是被注释掉了),报错内容为:

File "/media/ogmm-main/ogmm-main/models/gmmreg.py", line 76, in forward
src_clu_loss = self.cluloss(src, src_xyz_mu, src_feats, src_gamma)[1]
IndexError: index 1 is out of bounds for dimension 0 with size 0

我尝试过Debug,但点云经过DGCNN提取特征后的一些代码就会出问题,我实在是不清楚问题出在哪里了........

如果您看到了,可以解答我的疑惑嘛,再次谢谢您。

About Overlap score prediction

Thanks for your great work !
I'm interested in the overlap score prediction block in your paper, I notice that the score is calculated by combining softmax, instance regularization and sigmoid before linear layer. Have you tried just passing the features through a linear layer to get the final score?Is there a noticeable gap between the two? Or have you tried other ways to calculate the overlap score?
Thanks a lot !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.