Home

Awesome

<h1 align="center"> <p>😍 YOHO</p></h1> <h3 align="center"> <a href="https://arxiv.org/abs/2109.00182" target="_blank">You Only Hypothesize Once: Point Cloud Registration with Rotation-equivariant Descriptors</a> </h3> <h3 align="center"> ACM Multimedia 2022 </h3> <p align="center"> <a href="https://hpwang-whu.github.io/" target="_blank">Haiping Wang</a><sup>1</sup>, <a href="https://liuyuan-pal.github.io/" target="_blank">Yuan Liu</a><sup>*,2</sup>, <a href="https://scholar.google.com/citations?hl=zh-CN&user=DZsF2oIAAAAJ" target="_blank">Zhen Dong</a><sup>&dagger;,1</sup>, <a href="https://www.cs.hku.hk/people/academic-staff/wenping" target="_blank">Wenping Wang</a><sup>3</sup> </p> <p align="center"> <sup>1</sup>Wuhan University &nbsp;&nbsp; <sup>2</sup>The University of Hong Kong &nbsp;&nbsp; <sup>3</sup>Texas A&M University &nbsp;&nbsp; <br> <sup>*</sup>The first two authors contribute equally. &nbsp;&nbsp; <sup>&dagger;</sup>Corresponding authors. &nbsp;&nbsp; </p>

In this paper, we propose a novel local descriptor-based framework, called You Only Hypothesize Once (YOHO), for the registration of two unaligned point clouds. In contrast to most existing local descriptors which rely on a fragile local reference frame to gain rotation invariance, the proposed descriptor achieves the rotation invariance by recent technologies of group equivariant feature learning, which brings more robustness to point density and noise. Meanwhile, the descriptor in YOHO also has a rotation equivariant part, which enables us to estimate the registration from just one correspondence hypothesis. Such property reduces the searching space for feasible transformations, thus greatly improves both the accuracy and the efficiency of YOHO. Extensive experiments show that YOHO achieves superior performances with much fewer needed RANSAC iterations on four widely-used datasets, the 3DMatch/3DLoMatch datasets, the ETH dataset and the WHU-TLS dataset.

🆕 News

✨ Teaser

<img src="others/teaser.jpg" alt="Network" style="zoom:50%;" />

💻 Requirements

Here we offer the FCGF backbone YOHO. Thus FCGF requirements need to be met:

Specifically, The code has been tested with:

🔧 Installation

💾 Dataset & Pretrained model

The datasets and pretrained weights have been uploaded to Google Cloud:

Also, all data above can be downloaded in BaiduDisk(Code:0di4).

Datasets above contain the point clouds (.ply) and keypoints (.txt, 5000 per point cloud) files. Please place the data to ./data/origin_data following the example data structure as:

data/
├── origin_data/
    ├── 3dmatch/
    	└── kitchen/
            ├── PointCloud/
            	├── cloud_bin_0.ply
            	├── gt.log
            	└── gt.info
            └── Keypoints/
            	└── cloud_bin_0Keypoints.txt
    ├── 3dmatch_train/
    ├── ETH/
    └── WHU-TLS/

Pretrained weights we offer include FCGF Backbone, Part I and Part II. Which have been added to the main branch and organized following the structure as:

model/
├── Backbone/
	└── best_bal_checkpoint.pth
├── PartI_train/
	└── model_best.pth
└── PartII_train/
	└── model_best.pth

🚅 Train

To train YOHO, the group input of train set should be prepared using the FCGF model we offer, which is trained with rotation argument in [0,50] deg, by command:

python YOHO_trainset.py

Warning: the process above needs 300G storage space.

The training of YOHO is two-stage, you can run which with the commands sequentially:

python Train.py --Part PartI
python Train.py --Part PartII

🔦 Demo

With the Pretrained/self-trained models, you can try YOHO with:

python YOHO_testset.py --dataset demo
python Demo.py

✏️ Test on the 3DMatch and 3DLoMatch

To evalute YOHO on 3DMatch and 3DLoMatch:

✒️ Generalize to the ETH dataset

The generalization results on the outdoor ETH dataset can be got as follows:

✒️ Generalize to the WHU-TLS dataset

The generalization results on the outdoor WHU-TLS dataset can be got as follows:

📏 You have a point cloud file(.ply/.pcd), and you want to extract FCGF or YOHO features.

I provide two quite simple scripts in simple_yoho but I have not fully checked.

📏 Customize YOHO according to your own needs

To test YOHO on other datasets, or to implement YOHO using other backbones according to your own needs, please refer to Here.

💡 Citation

Please consider citing YOHO if this program benefits your project

@inproceedings{wang2022you,
  title={You only hypothesize once: Point cloud registration with rotation-equivariant descriptors},
  author={Wang, Haiping and Liu, Yuan and Dong, Zhen and Wang, Wenping},
  booktitle={Proceedings of the 30th ACM International Conference on Multimedia},
  pages={1630--1641},
  year={2022}
}

🔗 Related Projects

Welcome to take a look at the homepage of our research group WHU-USI3DV !

We sincerely thank the excellent projects: