Code Monkey home page Code Monkey logo

rskdd-net's Introduction

RSKDD-Net: Random Sample-based Keypoint Detector and Descriptor

Introduction

The repository contains the source code and pre-trained models of our paper (published on NeurIPS 2020): RSKDD-Net: Random Sample-based Keypoint Detector and Descriptor.

Environment

Our code is developed and tested on the following environment:

  • Python 3.6
  • PyTorch 1.3.0 (also tested on 1.5.0)
  • Cuda 10.1
  • Numpy 1.18

wandb is required to record the training procedure.

Network

The network model is defined in models/models.py.

Demo

We provides a pair of point clouds in KITTI dataset and Ford dataset in demo/pc, the pretrain model is stored in pretrain

Generates keypoints and descriptors of the sample data by run python demo.py

The keypoints and descriptors will be save in demo/results/keypoints and demo/results/desc. This step will cover the provided keypoints and descriptors.

demo/demo_reg/demo_reg.m is a matlab code to visualize registration of the sample pairs.

Data preprocessing

We utilize PCL to pre-process the input point clouds. The point cloud should be first downsampled using VoxelGrid filter and then extract normal and curvature using NormalEstimation. For kitti dataset, The pre-processed point cloud should be stored in velodyne_txt under each sequence, the data should be organized in the following format.

DATA_DIR
├── poses
│   ├── 00.txt
│   ├── 01.txt
├── sequences
│   ├── 00
│   │   │── velodyne
│   │   │── velodyne_txt
│   │   │── calib.txt
│   │   │── times.txt
│   ├── 01

Training

The network should be trained in two stages,

  • Firstly, train detector network using sh train_detector.sh, please change DATA_DIR to your own data.
  • Secondly, train descriptor network using sh train_descriptor.sh, please change DATA_DIR to your own data and PRETRAIN_DETECTOR_MODEL to the correct path (based on the first step).

Testing

The network can be tested using the pre-trained model using sh test.sh, please change DATA_DIR to your own data and modify SAVE_DIR and TEST_SEQ for your own preference.

Citation

If you use the code in your research, please cite as

Fan Lu, Guang Chen, Yinlong Liu, Zhongnan Qu, Alois Knoll. RSKDD-Net: Random Sample-based Keypoint Detector and Descriptor. In the 34th Conference on Neural Information Processing Systems (NeurIPS 2020), Vancouver, Canada.

@InProceedings{Lu_2020_NeurIPS,
    author = {Lu, Fan and Chen, Guang and Liu, Yinlong and Qu, Zhongnan and Knoll, Alois},
    title = {RSKDD-Net: Random Sample-based Keypoint Detector and Descriptor},
    booktitle = {The 34th Conference on Neural Information Processing Systems (NeurIPS)},
    month = {December},
    year = {2020}
}

rskdd-net's People

Contributors

fanlu97 avatar zqu1992 avatar

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.