All Projects โ†’ raoyongming โ†’ Pointglr

raoyongming / Pointglr

Licence: mit
Global-Local Bidirectional Reasoning for Unsupervised Representation Learning of 3D Point Clouds (CVPR 2020)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pointglr

disent
๐Ÿงถ Modular VAE disentanglement framework for python built with PyTorch Lightning โ–ธ Including metrics and datasets โ–ธ With strongly supervised, weakly supervised and unsupervised methods โ–ธ Easily configured and run with Hydra config โ–ธ Inspired by disentanglement_lib
Stars: โœญ 41 (-52.33%)
Mutual labels:  metric-learning, representation-learning
Disentangling Vae
Experiments for understanding disentanglement in VAE latent representations
Stars: โœญ 398 (+362.79%)
Mutual labels:  unsupervised-learning, representation-learning
srVAE
VAE with RealNVP prior and Super-Resolution VAE in PyTorch. Code release for https://arxiv.org/abs/2006.05218.
Stars: โœญ 56 (-34.88%)
Mutual labels:  representation-learning, unsupervised-learning
SimCLR
Pytorch implementation of "A Simple Framework for Contrastive Learning of Visual Representations"
Stars: โœญ 65 (-24.42%)
Mutual labels:  representation-learning, unsupervised-learning
Self Supervised Learning Overview
๐Ÿ“œ Self-Supervised Learning from Images: Up-to-date reading list.
Stars: โœญ 73 (-15.12%)
Mutual labels:  unsupervised-learning, representation-learning
awesome-contrastive-self-supervised-learning
A comprehensive list of awesome contrastive self-supervised learning papers.
Stars: โœญ 748 (+769.77%)
Mutual labels:  representation-learning, unsupervised-learning
Contrastive Predictive Coding
Keras implementation of Representation Learning with Contrastive Predictive Coding
Stars: โœญ 369 (+329.07%)
Mutual labels:  unsupervised-learning, representation-learning
amr
Official adversarial mixup resynthesis repository
Stars: โœญ 31 (-63.95%)
Mutual labels:  representation-learning, unsupervised-learning
Unsupervised Classification
SCAN: Learning to Classify Images without Labels (ECCV 2020), incl. SimCLR.
Stars: โœญ 605 (+603.49%)
Mutual labels:  unsupervised-learning, representation-learning
Lemniscate.pytorch
Unsupervised Feature Learning via Non-parametric Instance Discrimination
Stars: โœญ 532 (+518.6%)
Mutual labels:  unsupervised-learning, representation-learning
proto
Proto-RL: Reinforcement Learning with Prototypical Representations
Stars: โœญ 67 (-22.09%)
Mutual labels:  representation-learning, unsupervised-learning
Bagofconcepts
Python implementation of bag-of-concepts
Stars: โœญ 18 (-79.07%)
Mutual labels:  unsupervised-learning, representation-learning
State-Representation-Learning-An-Overview
Simplified version of "State Representation Learning for Control: An Overview" bibliography
Stars: โœญ 32 (-62.79%)
Mutual labels:  representation-learning, unsupervised-learning
ladder-vae-pytorch
Ladder Variational Autoencoders (LVAE) in PyTorch
Stars: โœญ 59 (-31.4%)
Mutual labels:  representation-learning, unsupervised-learning
rl singing voice
Unsupervised Representation Learning for Singing Voice Separation
Stars: โœญ 18 (-79.07%)
Mutual labels:  representation-learning, unsupervised-learning
Simclr
PyTorch implementation of SimCLR: A Simple Framework for Contrastive Learning of Visual Representations by T. Chen et al.
Stars: โœญ 293 (+240.7%)
Mutual labels:  unsupervised-learning, representation-learning
awesome-graph-self-supervised-learning
Awesome Graph Self-Supervised Learning
Stars: โœญ 805 (+836.05%)
Mutual labels:  representation-learning, unsupervised-learning
TCE
This repository contains the code implementation used in the paper Temporally Coherent Embeddings for Self-Supervised Video Representation Learning (TCE).
Stars: โœญ 51 (-40.7%)
Mutual labels:  metric-learning, representation-learning
Awesome Vaes
A curated list of awesome work on VAEs, disentanglement, representation learning, and generative models.
Stars: โœญ 418 (+386.05%)
Mutual labels:  unsupervised-learning, representation-learning
Simclr
PyTorch implementation of SimCLR: A Simple Framework for Contrastive Learning of Visual Representations
Stars: โœญ 750 (+772.09%)
Mutual labels:  unsupervised-learning, representation-learning

PointGLR

This repository contains the PyTorch implementation for paper Global-Local Bidirectional Reasoning for Unsupervised Representation Learning of 3D Point Clouds (CVPR 2020) [arXiv]

overview

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

@inproceedings{rao2020global,
  title={Global-Local Bidirectional Reasoning for Unsupervised Representation Learning of 3D Point Clouds},
  author={Rao, Yongming and Lu, Jiwen and Zhou, Jie},
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  year={2020}
}

Usage

Requirement

  • Python 3
  • Pytorch 0.4
  • CMake > 2.8

Note: The code is not not compatible with Pytorch >= 1.0 due to the C++/CUDA extensions.

Building C++/CUDA Extensions for PointNet++

mkdir build && cd build
cmake .. && make

Dataset Preparation

ModelNet

  • Download ModelNet point clouds (XYZ and normal):
mkdir dataset && cd dataset
wget https://shapenet.cs.stanford.edu/media/modelnet40_normal_resampled.zip
unzip modelnet40_normal_resampled.zip
  • Preprocess dataset:
CUDA_VISIBLE_DEVICES=0 python tools/prepare_modelnet.py

ScanNet

You can download our prepared ScanNet dataset for object classification from Google Drive and move the uncompressed data folder to dataset/scannet. The data structure should be:

dataset/scannet
โ”œโ”€โ”€ train_files.txt
โ”œโ”€โ”€ test_files.txt
โ”œโ”€โ”€ train_0.h5
...
โ”œโ”€โ”€ test_0.h5
...

ScanObjectNN

The ScanObjectNN dataset can be found here. You can download the h5_files.zipped and move the uncompressed data folder to dataset/ScanObjectNN. The data sturcture should be:

dataset/ScanObjectNN
โ”œโ”€โ”€ main_split
|  โ””โ”€โ”€ training_objectdataset.h5
|  ...
โ”œโ”€โ”€ main_split_nobg
|  โ””โ”€โ”€ training_objectdataset.h5
|  ...
...

Training & Evaluation

To train an SSG PointNet++ model on ModelNet:

bash train.sh exp_name pointnet2 modelnet

To train an SSG RSCNN model on ModelNet:

bash train.sh exp_name pointnet2 modelnet

You can modify multiplier in cfgs/config.yaml to train larger models. As a reference, the unsupervisedly trained 1x SSG PointNet++ and 1x SSG RSCNN models should have around 92.2% accuracy on ModelNet40. By increasing channel width (4x~5x), our best PointNet++ and RSCNN models achieved around 93.0% accuracy. The results might vary by 0.2%~0.5% between identical runs due to different random seed.

To obtain the results on ScanNet:

bash train.sh exp_name pointnet2 scannet

To obtain the results on ScanObjectNN:

bash train.sh exp_name pointnet2 scanobjectnn

Note that for experiments on ScanNet and ScanObjectNN, the feature extraction network is still trained on ModelNet. We only train the Linear SVM classifier on the corresponding dataset to obtain the classification results.

Acknowledgement

The code is based on Relation-Shape CNN and Pointnet2_PyTorch.

Contact

If you have any questions about our work, please contact [email protected]

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