GithubHelp home page GithubHelp logo

jdc08161063 / 3dlocalmultiviewdesc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from craigleili/3dlocalmultiviewdesc

0.0 1.0 0.0 2.86 MB

Repository for "End-to-End Learning Local Multi-view Descriptors for 3D Point Clouds"

License: MIT License

Python 83.84% Dockerfile 1.43% Shell 0.23% C++ 2.69% Cuda 11.81%

3dlocalmultiviewdesc's Introduction

End-to-End Learning Local Multi-view Descriptors for 3D Point Clouds

By Lei Li, Siyu Zhu, Hongbo Fu, Ping Tan, and Chiew-Lan Tai. (CVPR 2020)

In this work, we propose an end-to-end framework to learn local multi-view descriptors for 3D point clouds. To adopt a similar multi-view representation, existing studies use hand-crafted viewpoints for rendering in a preprocessing stage, which is detached from the subsequent descriptor learning stage. In our framework, we integrate the multi-view rendering into neural networks by using a differentiable renderer, which allows the viewpoints to be optimizable parameters for capturing more informative local context of interest points. To obtain discriminative descriptors, we also design a soft-view pooling module to attentively fuse convolutional features across views. Extensive experiments on existing 3D registration benchmarks show that our method outperforms existing local descriptors both quantitatively and qualitatively.

pipeline

Link

Paper

Citation

@InProceedings{Li_2020_CVPR,
    author = {Li, Lei and Zhu, Siyu and Fu, Hongbo and Tan, Ping and Tai, Chiew-Lan},
    title = {End-to-End Learning Local Multi-view Descriptors for 3D Point Clouds},
    booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    year = {2020}
}

Instructions

Dependencies

  • CUDA & CUDNN

  • Python >= 3.6

  • Install packages by

pip install -r requirements.txt

(Or if you are familiar with Docker, a Dockerfile is provided in folder docker for building a Docker image that includes a complete running environment.)

3DMatch Benchmark

Training

Download the 3DMatch RGB-D data from here.

Go to folder data/preprocess. Use the following scripts for preprocessing and generating training data.

  • fuse_fragments_3DMatch.py for generating point cloud fragments from the RGB-D data.
  • compute_radius.py for computing point radius. (May skip it to save time & space if to use fixed-radius point rendering)
  • compute_overlap.py for finding partially overlapped fragment pairs.
  • compute_kpt_pairs.py for selecting point pairs in overlapped regions for batch-hard training.

Go to folder scripts. Fill the paths in configs/ours_3dmatch.yaml and run

python main_mvdesc.py train configs/ours_3dmatch.yaml

A copy of the trained weights is located in scripts/ours_3dmatch.

Evaluation

Download the 3DMatch geometric registration benchmark from here. If you use these data in your work, please consider citing [1].

Go to folder scripts. Fill the paths in configs/ours_3dmatch.yaml and then extract the local multi-view descriptors by running

python main_mvdesc.py test configs/ours_3dmatch.yaml

(Or the extracted descriptors can be directly downloaded from here.)

Compute the recall metric by running evaluation/eval_geomreg_3dmatch.sh.

ETH Benchmark

Download the ETH benchmark from here. If you use these data in your work, please consider citing [2, 3].

Go to folder scripts. Fill the paths in configs/ours_eth.yaml and then extract the local multi-view descriptors by running

python main_mvdesc.py test configs/ours_eth.yaml

(Or the extracted descriptors can be directly downloaded from here.)

Compute the recall metric by running evaluation/eval_geomreg_eth.sh.

References

  1. Zeng et al. 3DMatch: Learning Local Geometric Descriptors from RGB-D Reconstructions. CVPR 2017.
  2. Pomerleau et al. Challenging data sets for point cloud registration algorithms. IJRR, 2012.
  3. Gojcic et al. The Perfect Match: 3D Point Cloud Matching with Smoothed Densities. CVPR 2019.
  4. Liu et al. Soft Rasterizer: A differentiable renderer for image-based 3d reasoning. ICCV 2019.

3dlocalmultiviewdesc's People

Contributors

craigleili avatar

Watchers

 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.