All Projects → yanx27 → Pointasnl

yanx27 / Pointasnl

Licence: mit
PointASNL: Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling (CVPR 2020)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pointasnl

Grid Gcn
Grid-GCN for Fast and Scalable Point Cloud Learning
Stars: ✭ 143 (-10.06%)
Mutual labels:  classification, point-cloud, segmentation
Pointclouddatasets
3D point cloud datasets in HDF5 format, containing uniformly sampled 2048 points per shape.
Stars: ✭ 80 (-49.69%)
Mutual labels:  classification, point-cloud, segmentation
Pointcnn
PointCNN: Convolution On X-Transformed Points (NeurIPS 2018)
Stars: ✭ 1,120 (+604.4%)
Mutual labels:  classification, point-cloud, segmentation
3d Pointcloud
Papers and Datasets about Point Cloud.
Stars: ✭ 179 (+12.58%)
Mutual labels:  classification, point-cloud, segmentation
Pointnet
PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
Stars: ✭ 3,517 (+2111.95%)
Mutual labels:  classification, point-cloud, segmentation
Point2Sequence
Point2Sequence: Learning the Shape Representation of 3D Point Clouds with an Attention-based Sequence to Sequence Network
Stars: ✭ 34 (-78.62%)
Mutual labels:  point-cloud, classification, segmentation
Pointnet2
PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
Stars: ✭ 2,197 (+1281.76%)
Mutual labels:  classification, point-cloud, segmentation
Pointnet Keras
Keras implementation for Pointnet
Stars: ✭ 110 (-30.82%)
Mutual labels:  classification, point-cloud, segmentation
Dgcnn.pytorch
A PyTorch implementation of Dynamic Graph CNN for Learning on Point Clouds (DGCNN)
Stars: ✭ 153 (-3.77%)
Mutual labels:  classification, point-cloud, segmentation
Torch Points3d
Pytorch framework for doing deep learning on point clouds.
Stars: ✭ 1,135 (+613.84%)
Mutual labels:  point-cloud, segmentation
Dlcv for beginners
《深度学习与计算机视觉》配套代码
Stars: ✭ 1,244 (+682.39%)
Mutual labels:  classification, segmentation
Caffe Model
Caffe models (including classification, detection and segmentation) and deploy files for famouse networks
Stars: ✭ 1,258 (+691.19%)
Mutual labels:  classification, segmentation
Gd Uap
Generalized Data-free Universal Adversarial Perturbations
Stars: ✭ 50 (-68.55%)
Mutual labels:  classification, segmentation
Depth clustering
🚕 Fast and robust clustering of point clouds generated with a Velodyne sensor.
Stars: ✭ 657 (+313.21%)
Mutual labels:  point-cloud, segmentation
Gacnet
Pytorch implementation of 'Graph Attention Convolution for Point Cloud Segmentation'
Stars: ✭ 103 (-35.22%)
Mutual labels:  point-cloud, segmentation
Segmentation
Tensorflow implementation : U-net and FCN with global convolution
Stars: ✭ 101 (-36.48%)
Mutual labels:  classification, segmentation
All About The Gan
All About the GANs(Generative Adversarial Networks) - Summarized lists for GAN
Stars: ✭ 630 (+296.23%)
Mutual labels:  classification, segmentation
Dataset
Crop/Weed Field Image Dataset
Stars: ✭ 98 (-38.36%)
Mutual labels:  classification, segmentation
Edafa
Test Time Augmentation (TTA) wrapper for computer vision tasks: segmentation, classification, super-resolution, ... etc.
Stars: ✭ 107 (-32.7%)
Mutual labels:  classification, segmentation
Vision4j Collection
Collection of computer vision models, ready to be included in a JVM project
Stars: ✭ 132 (-16.98%)
Mutual labels:  classification, segmentation

PointASNL

This repository is for PointASNL introduced in the following paper

Xu Yan, Chaoda Zheng, Zhen Li*, Sheng Wang and Shuguang Cui, "PointASNL: Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling", CVPR 2020 [arxiv].

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

@InProceedings{yan2020pointasnl,
  title={PointASNL: Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling},
  author={Yan, Xu and Zheng, Chaoda and Li, Zhen and Wang, Sheng and Cui, Shuguang},
  journal={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
  year={2020}
}

Getting Started

(1) Set up

Clone the repository:

git clone https://github.com/yanx27/PointASNL.git

Installation instructions for Ubuntu 16.04 (available at CUDA10):

  • Make sure CUDA and cuDNN are installed. Only this configurations has been tested:

    • Python 3.6.9, TensorFlow 1.13.1, CUDA 10.1
  • Follow Tensorflow installation procedure.

  • Compile the customized Tensorflow operators by sh complile_op.sh. N.B. If you installed Tensorflow in a virtual environment, it needs to be activated when running these scripts

(2) ModelNet40 Classification

Aligned ModelNet40 dataset can be found here. Since the randomness of data augmentation, the result of this code maybe slightly different from the result in paper, but it should be around 93%.

Data without Noise

It will cost relatively long time in first epoch for cache construction.

# Training 
$ python train.py --data [MODELNET40 PATH] --exp_dir PointASNL_without_noise

# Evaluation 
$ python test.py --data [MODELNET40 PATH] --model_path log/PointASNL_without_noise/best_model.ckpt

Data with Noise

Model with AS module is extremely robust for noisy data. You can use adaptive sampling by setting --AS .

# Training 
$ python train.py --data [MODELNET40 PATH] --exp_dir PointASNL_with_noise --AS

# Evaluation on noisy data 
$ python test.py --data [MODELNET40 PATH]  --model_path log/PointASNL_with_noise/best_model.ckpt --AS --noise

(3) ScanNet Segmentation

We provide two options for training on ScanNet dataset (with or without pre/post processing). With grid sampling processing, more input points and deeper network structure, our PointASNL can achieve 66.6% on ScanNet benchmark.

Data Preparation

Official ScanNet dataset can be downloaded here. If you choose training without grid sampling, you need firstly run ScanNet/prepare_scannet.py, otherwise you can skip to training step.

Data without Processing

This method converges relatively slower, and will achieve result around 63%.

# Training 
$ cd ScanNet/
$ python train_scannet.py --data [SCANNET PATH] --log_dir PointASNL

# Evaluation 
$ cd ScanNet/
$ python test_scannet.py --data [SCANNET PATH]  --model_path log/PointASNL/latest_model.ckpt 

Data with Grid Sampling

We highly recommend training with this method, although it takes a long time to process the raw data, it can achieve results around 66% and will be faster to converge. Grid sampling pre-processing will be automatically conducted before training.

# Training 
$ cd ScanNet/
$ python train_scannet_grid.py --data [SCANNET PATH] --log_dir PointASNL_grid --num_point 10240 --model pointasnl_sem_seg_res --in_radius 2

# Evaluation 
$ cd ScanNet/
$ python test_scannet_grid.py --data [SCANNET PATH]  --model_path log/PointASNL_grid/latest_model.ckpt 

(4) SemanticKITTI Segmentation

  • SemanticKITTI dataset can be found here. Download the files related to semantic segmentation and extract everything into the same folder.
  • We add codes with grid sampling processing, which can achieve better result of around 52% (using --prepare_data just in the first running).
  • Please using official semantic_kitti_api for evaluation.
# Training 
$ cd SemanticKITTI/
$ python train_semantic_kitti.py --data [SemanticKITTI PATH] --log_dir PointASNL --with_remission
# or
$ python train_semantic_kitti_grid.py --data [SemanticKITTI PATH] --log_dir PointASNL_grid --prepare_data 

# Evaluation 
$ cd SemanticKITTI/
$ python test_semantic_kitti.py --data [SemanticKITTI PATH]  --model_path log/PointASNL/latest_model.ckpt  --with_remission
# or
$ python test_semantic_kitti_grid.py --data [SemanticKITTI PATH] --model_path log/PointASNL_grid/best_model.ckpt --test_area [e.g., 08]

Acknowledgement

License

This repository is released under MIT License (see LICENSE file for details).

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].