All Projects → XuyangBai → D3Feat.pytorch

XuyangBai / D3Feat.pytorch

Licence: other
[PyTorch] Official Implementation of CVPR'20 oral paper - D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features https://arxiv.org/abs/2003.03164

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to D3Feat.pytorch

CovGT-3DRegistration-matlab
A 3D Scene Registration Method via Covariance Descriptors and an Evolutionary Stable Strategy Game Theory Solver
Stars: ✭ 20 (-79.8%)
Mutual labels:  descriptor, registration, pointcloud
SpinNet
[CVPR 2021] SpinNet: Learning a General Surface Descriptor for 3D Point Cloud Registration
Stars: ✭ 181 (+82.83%)
Mutual labels:  descriptor, registration, pointcloud
Open3d
Open3D: A Modern Library for 3D Data Processing
Stars: ✭ 5,860 (+5819.19%)
Mutual labels:  registration, pointcloud
Cpd
C++ implementation of the Coherent Point Drift point set registration algorithm.
Stars: ✭ 260 (+162.63%)
Mutual labels:  registration, pointcloud
D3feat
[TensorFlow] Implementation of CVPR'20 oral paper - D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features https://arxiv.org/abs/2003.03164
Stars: ✭ 143 (+44.44%)
Mutual labels:  registration, pointcloud
Deepglobalregistration
[CVPR 2020 Oral] A differentiable framework for 3D registration
Stars: ✭ 222 (+124.24%)
Mutual labels:  registration, pointcloud
python-pyfields
Define fields in python classes. Easily.
Stars: ✭ 39 (-60.61%)
Mutual labels:  descriptor
django-slack-oauth
Handles OAuth and stores slack token
Stars: ✭ 51 (-48.48%)
Mutual labels:  registration
ECCV-2020-point-cloud-analysis
ECCV 2020 papers focusing on point cloud analysis
Stars: ✭ 22 (-77.78%)
Mutual labels:  pointcloud
From-Voxel-to-Point
"From Voxel to Point: IoU-guided 3D Object Detection for Point Cloud with Voxel-to-Point Decoder" and "Anchor-free 3D Single Stage Detector with Mask-Guided Attention for Point Cloud" in ACM MM 2021.
Stars: ✭ 29 (-70.71%)
Mutual labels:  pointcloud
Registrations-for-WooCommerce
Add a registration product type to your WooCommerce installation.
Stars: ✭ 38 (-61.62%)
Mutual labels:  registration
cellfinder
Automated 3D cell detection and registration of whole-brain images
Stars: ✭ 122 (+23.23%)
Mutual labels:  registration
HipHop 2D3Dregistration
2D/3D registration between CT/MRI or STL models and X-ray images (November 2018)
Stars: ✭ 91 (-8.08%)
Mutual labels:  registration
continuous-fusion
(ROS) Sensor fusion algorithm for camera+lidar.
Stars: ✭ 26 (-73.74%)
Mutual labels:  pointcloud
Tools Merge Image PointCloud
Project the PointCloud to the image & Generate the LiDAR PointCloud with color.
Stars: ✭ 39 (-60.61%)
Mutual labels:  pointcloud
SURF
SURF - Speeded Up Robust Features - source code
Stars: ✭ 117 (+18.18%)
Mutual labels:  descriptor
ANTsR
Advanced Normalization Tools in R
Stars: ✭ 101 (+2.02%)
Mutual labels:  registration
adaptive-surface-reconstruction
Adaptive Surface Reconstruction for 3D Data Processing
Stars: ✭ 39 (-60.61%)
Mutual labels:  pointcloud
users-service
A small microservice for managing user registrations, password changes and issue access tokens
Stars: ✭ 16 (-83.84%)
Mutual labels:  registration
GenerateDynamicCustomForm
You can generate a dynamic form view in a few minutes for a signup, add a record. Creating a form is very easy.
Stars: ✭ 18 (-81.82%)
Mutual labels:  registration

D3Feat repository

PyTorch implementation of D3Feat for CVPR'2020 Oral paper "D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features", by Xuyang Bai, Zixin Luo, Lei Zhou, Hongbo Fu, Long Quan and Chiew-Lan Tai. D3Feat is also available in Tensorflow.

This paper focus on dense feature detection and description for 3D point clouds in a joint manner. If you find this project useful, please cite:

@article{bai2020d3feat,
  title={D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features},
  author={Xuyang Bai, Zixin Luo, Lei Zhou, Hongbo Fu, Long Quan and Chiew-Lan Tai},
  journal={arXiv:2003.03164 [cs.CV]},
  year={2020}
}

The TensorFlow implementation can be found here.

Check our new paper on outlier rejection for more robust registration here !

Introduction

A successful point cloud registration often lies on robust establishment of sparse matches through discriminative 3D local features. Despite the fast evolution of learning-based 3D feature descriptors, little attention has been drawn to the learning of 3D feature detectors, even less for a joint learning of the two tasks. In this paper, we leverage a 3D fully convolutional network for 3D point clouds, and propose a novel and practical learning mechanism that densely predicts both a detection score and a description feature for each 3D point. In particular, we propose a keypoint selection strategy that overcomes the inherent density variations of 3D point clouds, and further propose a self-supervised detector loss guided by the on-the-fly feature matching results during training. Finally, our method achieves state-of-the-art results in both indoor and outdoor scenarios, evaluated on 3DMatch and KITTI datasets, and shows its strong generalization ability on the ETH dataset. Towards practical use, we show that by adopting a reliable feature detector, sampling a smaller number of features is sufficient to achieve accurate and fast point cloud alignment.

fig1

Installation

  • Create the environment and install the required libaries:

         conda env create -f environment.yml
    
  • Compile the C++ extension module for python located in cpp_wrappers. Open a terminal in this folder, and run:

        sh compile_wrappers.sh
    

Experiments

We only support 3DMatch dataset currently. Please look for the detailed instructions to download 3DMatch dataset in Original D3Feat Repo. To train the network, please run

python train.py

The configuration can be changed in config.py. The snapshot and tensorboard file be saved in snapshot/ and tensorboard/. The testing can be done by runnning

python test.py --chosen_snapshot [timestr of the model]

Then the geometric registration result will be saved in geometric_registration/.

Pretrained weights: Google Drive

Acknowledgment

We would like to thank the open-source code of KPConv.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].