GithubHelp home page GithubHelp logo

cszyzhang / riconv2 Goto Github PK

View Code? Open in Web Editor NEW
26.0 2.0 4.0 37.87 MB

The official source codes for the riconv++ (IJCV2022) paper

License: MIT License

Python 85.20% C++ 4.30% Cuda 9.38% C 1.12%
deep-learning point-cloud rotation-invariant cnn classification segmentation

riconv2's Introduction

RIConv++: Effective Rotation Invariant Convolutions for 3D Point Clouds Deep Learning

International Journal of Computer Vision, 2022

Zhiyuan Zhang, Binh-Son Hua, Sai-Kit Yeung.

Project Page | arXiv

If you found this paper useful in your research, please cite:


@article{zhang2022riconv2,
  title={RIConv++: Effective Rotation Invariant Convolutions for 3D Point Clouds Deep Learning},
  author={Zhang, Zhiyuan and Hua, Binh-Son and Yeung, Sai-Kit},
  journal={International Journal of Computer Vision},
  volume={130},
  number={5},
  pages={1228--1243},
  year={2022},
  publisher={Springer}
}

@inproceedings{zhang2020global,
  title={Global Context Aware Convolutions for 3D Point Cloud Understanding},
  author={Zhang, Zhiyuan and Hua, Binh-Son and Chen, Wei and Tian, Yibin and Yeung, Sai-Kit},
  booktitle={2020 International Conference on 3D Vision (3DV)},
  pages={210--219},
  year={2020}
}

@inproceedings{zhang2019rotation,
  title={Rotation Invariant Convolutions for 3D Point Clouds Deep Learning},
  author={Zhang, Zhiyuan and Hua, Binh-Son and Rosen, David W and Yeung, Sai-Kit},
  booktitle={2019 International Conference on 3D Vision (3DV)},
  pages={204--213},
  year={2019}
}

Installation

This repo provides the RIConv++ source codes, which had been tested with Python 3.9.7, PyTorch 1.9.0, CUDA 11.1 on Ubuntu 20.04. Our codes are implemented based on Xu Yan's Pytorch implementation of PointNet++(Pytorch) and ShaoShuai Shi's PointNet++ cuda operations.

Install the pointnet++ cuda operation library by running the following command:

cd models/pointnet2/
python setup.py install
cd ../../

Usage

Classification

We perform classification on ModelNet40 and ScanObjectNN respectively.

ModelNet40

Download alignment ModelNet here and save in ../data/modelnet40_normal_resampled/. Follow the instructions of PointNet++(Pytorch) to prepare the data. Specifically, please use --process_data to preprocess the data, and move the processed data to ../data/modelnet40_preprocessed/. Alternatively, you can also download the pre-processd data here and save it in ../data/modelnet40_preprocessed/. (Note: the data/ folder is outside the project folder)

To train a RIConv++ model to classify shapes in the ModelNet40 dataset:

python3 train_classification_modelnet40.py

For testing, you can use your trained model by specifying --log_dir or use our pretrained model 4.9MB directly:

python3 test_classification_modelnet40.py

ScanObjectNN

Download the ScanObjectNN here and save the main_split and main_split_nobg subfolders that inlcude the h5 files into the ../data/scanobjectnn/ (Note: the data/ folder is outside the project folder)

Training on the OBJ_ONLY variant:

python3 train_classification_scanobj.py --data_type 'OBJ_NOBG'

For testing, you can use your trained model by specifying --log_dir or use our pretrained model 4.9MB directly:

python3 test_classification_scanobj.py --data_type 'OBJ_NOBG'

Training on the OBJ_BG variant:

python3 train_classification_scanobj.py --data_type 'OBJ_BG'

For testing, you can use your trained model by specifying --log_dir or use our pretrained model 4.9MB directly:

python3 test_classification_scanobj.py --data_type 'OBJ_BG'

Training on the hardest variant PB_T50_RS:

python3 train_classification_scanobj.py --data_type 'hardest'

For testing, you can use your trained model by specifying --log_dir or use our pretrained model 4.9MB directly:

python3 test_classification_scanobj.py --data_type 'hardest'

Segmentation

We perform part segmentation and semantic segmentation on ShapeNet and S3DIS respectively.

ShapeNet

Download alignment ShapeNet here and save in ../data/shapenetcore_partanno_segmentation_benchmark_v0_normal/. (Note: the data/ folder is outside the project folder)

Training:

python3 train_partseg.py

For testing, you can use your trained model by specifying --log_dir or use our pretrained model 18.2MB directly:

python3 test_partseg.py

S3DIS

Please download the S3DIS dataset here, and run the following scripts to preprocess the data:

cd data_utils
python collect_indoor3d_data.py

Processed data will save in ../data/s3dis/stanford_indoor3d/. (Note: the data/ folder is outside the project folder)

Training:

python3 train_semseg.py

For testing, you can use your trained model by specifying --log_dir or use our pretrained model 18.2MB directly:

python3 test_semseg.py

License

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

riconv2's People

Contributors

cszyzhang avatar

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

Watchers

 avatar  avatar

riconv2's Issues

Question about ModelNet40 experiment

Hi @cszyzhang ,

Thank you for sharing the code.

I want to train and test RIConv++ on ModelNet40 dataset for z/SO(3) case.
I checked in riconv2/data_utils/ModelNetDataLoader.py, but did not find any code that applies random rotation to point clouds.
Could you please tell me where in the code do you apply random z and SO(3) rotation to ModelNet40 point cloud?

Thank you,
Supriya

Can't predict on single batch

Hello!
First of all, congrats to the team for the approach and sharing the code!

After playing around with it and trying to test the part segmentation model on my augmented shapenet dataset I found that I cannot predict just one sample.

Steps done so far:

  • Installed/setup everything and test_partseg.py runs without any issue.
  • Recreating you script to test in custom data set (similar to shapenet):
    • Loaded the model structure (similar to your get_model class in riconv2_part_seg.py)
    • Successfully loaded the pretained model weights (thanks to sharing that too)
    • Loaded my test sample, sampled it (2048 pts by default), and since it was an Airplane, assigned label to 0
    • After applying the same preprocessing steps and unsqueeze it to add the batch dimension I thought everything was ready to go

On prediction I get:

RuntimeError                              Traceback (most recent call last)
Input In [341], in <cell line: 1>()
----> 1 seg_pred, _ = model(X, to_categorical(cat, num_classes))

File ~\Anaconda3\envs\riconv\lib\site-packages\torch\nn\modules\module.py:1051, in Module._call_impl(self, *input, **kwargs)
   1047 # If we don't have any hooks, we want to skip the rest of the logic in
   1048 # this function, and just call forward.
   1049 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1050         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1051     return forward_call(*input, **kwargs)
   1052 # Do not call functions when jit is used
   1053 full_backward_hooks, non_full_backward_hooks = [], []

Input In [296], in RIConv2.forward(self, xyz, cls_label)
     35     xyz = xyz[:, :, :3]
     37 l0_xyz, l0_norm, l0_points = self.sa0(xyz, norm, None)
---> 38 l1_xyz, l1_norm, l1_points = self.sa1(l0_xyz, l0_norm, l0_points)
     39 l2_xyz, l2_norm, l2_points = self.sa2(l1_xyz, l1_norm, l1_points)
     40 l3_xyz, l3_norm, l3_points = self.sa3(l2_xyz, l2_norm, l2_points)

File ~\Anaconda3\envs\riconv\lib\site-packages\torch\nn\modules\module.py:1051, in Module._call_impl(self, *input, **kwargs)
   1047 # If we don't have any hooks, we want to skip the rest of the logic in
   1048 # this function, and just call forward.
   1049 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1050         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1051     return forward_call(*input, **kwargs)
   1052 # Do not call functions when jit is used
   1053 full_backward_hooks, non_full_backward_hooks = [], []

File C:\workspace\projects\research\pcl\pcl.segmentation\riconv2\models\riconv2_utils.py:401, in RIConv2SetAbstraction.forward(self, xyz, norm, points)
    399     new_xyz, ri_feat, new_norm, idx_ordered = sample_and_group_all(xyz, norm)
    400 else:
--> 401     new_xyz, ri_feat, new_norm, idx_ordered = sample_and_group(self.npoint, self.radius, self.nsample, xyz,
    402                                                                norm)
    404 # lift
    405 ri_feat = ri_feat.permute(0, 3, 2, 1)

File C:\workspace\projects\research\pcl\pcl.segmentation\riconv2\models\riconv2_utils.py:321, in sample_and_group(npoint, radius, nsample, xyz, norm)
    318 xyz = xyz.contiguous()
    319 norm = norm.contiguous()
--> 321 new_xyz, new_norm = sample(npoint, xyz, norm=norm, sampling='fps')
    322 idx = group_index(nsample, radius, xyz, new_xyz, group='knn')
    324 ri_feat, idx_ordered = RI_features(xyz, norm, new_xyz, new_norm, idx)

File C:\workspace\projects\research\pcl\pcl.segmentation\riconv2\models\riconv2_utils.py:196, in sample(npoint, xyz, norm, sampling)
    194     new_xyz = index_points(xyz, fps_idx)
    195     if norm is not None:
--> 196         new_norm = index_points(norm, fps_idx)
    197 elif sampling == 'random':
    198     shuffle = np.arange(xyz.shape[1])

File C:\workspace\projects\research\pcl\pcl.segmentation\riconv2\models\riconv2_utils.py:70, in index_points(points, idx)
     68 repeat_shape = list(idx.shape)
     69 repeat_shape[0] = 1
---> 70 batch_indices = torch.arange(B, dtype=torch.long).to(device).view(view_shape).repeat(repeat_shape)
     72 new_points = points[batch_indices, idx, :]
     73 return new_points

RuntimeError: shape '[1, 1]' is invalid for input of size 512

If I load the test dataset as you do in test_partseg.py into a test dataLoader it works perfectly until... I set the batch size to 1 and try it (I then get the same RuntimeError as above).

With batchsize > 1:
image
Now setting batchsize = 1:
image

I hope you can help me with this.
Thanks in advance.

Best regards,
Raphael Espanha

About shape retrieval

After reading your article, I am reproducing your method. I would like to ask when the source code of the shape retrieval part will be open-sourced?Thank you.

PyTorch 1.11 above build pointnet2 error THC not found

There might be several errors triggered by the depreciated THC library.

Emitting ninja build file /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/build.ninja...
Compiling objects...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
[1/9] c++ -MMD -MF /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/ball_query.o.d -pthread -B /home/ran/miniconda3/envs/icra_gpr_s3e/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/ball_query.cpp -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/ball_query.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
FAILED: /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/ball_query.o 
c++ -MMD -MF /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/ball_query.o.d -pthread -B /home/ran/miniconda3/envs/icra_gpr_s3e/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/ball_query.cpp -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/ball_query.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/home/ran/PycharmProjects/riconv2/models/pointnet2/src/ball_query.cpp:3:10: fatal error: THC/THC.h: No such file or directory
 #include <THC/THC.h>
          ^~~~~~~~~~~
compilation terminated.
[2/9] c++ -MMD -MF /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/group_points.o.d -pthread -B /home/ran/miniconda3/envs/icra_gpr_s3e/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/group_points.cpp -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/group_points.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
FAILED: /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/group_points.o 
c++ -MMD -MF /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/group_points.o.d -pthread -B /home/ran/miniconda3/envs/icra_gpr_s3e/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/group_points.cpp -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/group_points.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/home/ran/PycharmProjects/riconv2/models/pointnet2/src/group_points.cpp:5:10: fatal error: THC/THC.h: No such file or directory
 #include <THC/THC.h>
          ^~~~~~~~~~~
compilation terminated.
[3/9] c++ -MMD -MF /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/interpolate.o.d -pthread -B /home/ran/miniconda3/envs/icra_gpr_s3e/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/interpolate.cpp -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/interpolate.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
FAILED: /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/interpolate.o 
c++ -MMD -MF /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/interpolate.o.d -pthread -B /home/ran/miniconda3/envs/icra_gpr_s3e/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/interpolate.cpp -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/interpolate.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/home/ran/PycharmProjects/riconv2/models/pointnet2/src/interpolate.cpp:3:10: fatal error: THC/THC.h: No such file or directory
 #include <THC/THC.h>
          ^~~~~~~~~~~
compilation terminated.
[4/9] c++ -MMD -MF /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/sampling.o.d -pthread -B /home/ran/miniconda3/envs/icra_gpr_s3e/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/sampling.cpp -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/sampling.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
FAILED: /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/sampling.o 
c++ -MMD -MF /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/sampling.o.d -pthread -B /home/ran/miniconda3/envs/icra_gpr_s3e/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/sampling.cpp -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/sampling.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/home/ran/PycharmProjects/riconv2/models/pointnet2/src/sampling.cpp:4:10: fatal error: THC/THC.h: No such file or directory
 #include <THC/THC.h>
          ^~~~~~~~~~~
compilation terminated.
[5/9] c++ -MMD -MF /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/pointnet2_api.o.d -pthread -B /home/ran/miniconda3/envs/icra_gpr_s3e/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/pointnet2_api.cpp -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/pointnet2_api.o -g -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
[6/9] /usr/local/cuda/bin/nvcc  -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/interpolate_gpu.cu -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/interpolate_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O2 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
[7/9] /usr/local/cuda/bin/nvcc  -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/ball_query_gpu.cu -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/ball_query_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O2 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
[8/9] /usr/local/cuda/bin/nvcc  -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/group_points_gpu.cu -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/group_points_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O2 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
[9/9] /usr/local/cuda/bin/nvcc  -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/TH -I/home/ran/miniconda3/envs/icra_gpr_s3e/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ran/miniconda3/envs/icra_gpr_s3e/include/python3.8 -c -c /home/ran/PycharmProjects/riconv2/models/pointnet2/src/sampling_gpu.cu -o /home/ran/PycharmProjects/riconv2/models/pointnet2/build/temp.linux-x86_64-3.8/src/sampling_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O2 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=pointnet2_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
ninja: build stopped: subcommand failed.
error: ‘getCurrentCUDAStream’ is not a member of ‘at::cuda’ cudaStream_t stream = at::cuda::getCurrentCUDAStream();

About the normal channel

In your paper, you provided the result when not using the normal channel. However, it leads to an error when testing the data without normal.
image
It seems that LRA is not computed when normal is None.
image

xyz

How to train using only xyz?

Question on Experiments

I am a student and recently I was learning about rotation invariance of point clouds. After reading your article, I benefited a lot, but I have a few questions about the experiments. Why doesn't any rotation transformations exist on dataset class, and what kind of rotation augmentation used on training for the pretrained models. Thanks a lot.

No module named 'pointnet2_cuda'

Hi, thanks for your open source code firstly, but I met a problem that "No module named 'pointnet2_cuda'" even though I had run the setup.py without any errors. I 'll appreciate it if you can solve my problem.

About LRA calculation

Thank you for sharing the code.

I have a question about the LRA calculation.
Why didn't you remove the sign ambiguity of the eigen vectors like SHOT feature?
Is there any reason?

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.