Git Product home page Git Product logo

ldgcnn's Introduction

Linked Dynamic Graph CNN: Learning through Point Cloud by Linking Hierarchical Features

We propose a linked dynamic graph CNN (LDGCNN) to classify and segment point cloud directly. We remove the transformation network, link hierarchical features from dynamic graphs, freeze feature extractor, and retrain the classifier to increase the performance of LDGCNN.

We have also uploaded the code and data to the codeocean and prepared the environment to run the code. You can run the code online and reproduce the experiments easily without installing any packages. You can view and run the code on: https://codeocean.com/capsule/0220918/tree/v1

Contact

For more related works and codes, please view my homepage: https://sites.google.com/view/kuangenzhang

Further information please contact Kuangen Zhang ([email protected]).

Citation

If you find our work useful in your research, please consider citing:

@article{zhang_linked_2019,
	title = {Linked dynamic graph cnn: learning on point cloud via linking hierarchical features},
	shorttitle = {Linked {Dynamic} {Graph} {CNN}},
	urldate = {2019-04-24},
	journal = {arXiv:1904.10014 [cs]},
	author = {Zhang, Kuangen and Hao, Ming and Wang, Jing and de Silva, Clarence W. and Fu, Chenglong},
	month = apr,
	year = {2019}
}

K. Zhang, M. Hao, J. Wang, C. W. de Silva, and C. Fu, “Linked dynamic graph cnn: learning on point cloud via linking hierarchical features,” arXiv:1904.10014 [cs], Apr. 2019.

Overview

LDGCNN is the improved version of Dynamic Graph CNN. We have evaluated our network on the point cloud classification dataset (ModelNet40) and segementation dataset (ShapeNet):

  • Classification accuracy on the ModelNet40: 92.9%.
  • Mean IoU on the ShapeNet: 85.1%

Requirements

sudo apt-get install libhdf5-dev
sudo pip install h5py

Point cloud classification

Dataset

  • ModelNet40 dataset is downloaded automatically through the provider.py.

  • We upload our pretrained model, you can evaluate the performance of our network directly by running the evaluation script:

python evaluate.py
  • Run the training script:
python train.py

Point cloud segmentation

Enter the "part_seg" file folder.

Dataset

Load the data for part segmentation.

sh +x download_data.sh

Evaluation

We upload our trained model. You can evaluate the trained model by running:

python test.py

Train

Train the model on 2 GPUs, each with 12 GB memeory.

python train_multi_gpu.py

Model parameters with the highest validation accuracy are saved in "log/ldgcnn_seg.ckpt*".

License

MIT License

Acknowledgement

We acknowledge that we borrow the code from PointNet and DGCNN heavily. We have marked our own parts in the code, otherwise the code is borrowed from PointNet and DGCNN.

Reference

  • C. R. Qi, H. Su, K. Mo, and L. J. Guibas, “PointNet:Deep Learning on Point Sets for 3d Classification andSegmentation,” in2017 IEEE Conference on ComputerVision and Pattern Recognition (CVPR), Jul. 2017, pp.77–85, read.
  • Y. Wang, Y. Sun, Z. Liu, S. E. Sarma, M. M. Bronstein,and J. M. Solomon, “Dynamic Graph CNN for Learningon Point Clouds,”arXiv:1801.07829 [cs], Jan. 2018,arXiv: 1801.07829.

ldgcnn's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ldgcnn's Issues

how to set the value of K with different points for other datasets

Hi,thanks for your great work, For each sampling point, search the nearest K points to build a local region. The question is how to set the value of K with different points for other datasets. Is there any standard for the value of K. looking forward to your reply.

[Solved] no module named FileIO

image

As you can see at the figure, I got error message "no module named FileIO"

Do you know why?

Sorry for my poor English Skills

Visualization Results Segmentation

hello sir, please do you have a solution how to view segmentation results for example or export to .ply or .txt files, please share with us

I have a problem

Hello,thans for your work. I have a problem why do you deep the the convolution layer number by shortcut,do you try to deep deep the convolution layer number?

Difference between the graph feature extraction module and EdgeConv in DGCNN?

Hi Kuangen,

Your paper is really an enlightening work and thanks for sharing your code. But I wonder is there any difference between the graph feature extraction module and EdgeConv in DGCNN. After reading your code, I believe the graph feature extraction function is the same as EdgeConv in DGCNN.

You strengthened that the graph feature extraction module in your work is rotation invariant. And you gave a mathematical explanation through the conversion between (10) and (12) in your paper. This part confuses me a lot, however, would you mind give a detailed explanation about the conversion?
image
image

what should I do for open .obj files?

what should I do for open .obj files?

I succeed by run visulize_data.py.

However I want to open .obj file using other software.

When I tried some 3D viewers (such as 3dviewer.net or Windows basic 3D Viewer), they cannot open .obj files from test.py... They show error message "something wrong with your files"..

Do I have to preprocess these obj files?

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.