zhouruqin / SCANet

SCANet: A Spatial and Channel Attention based Network for Partial-to-Partial Point Cloud Registration
15 stars 2 forks source link

Usage

Data preparation

Create the 'car' dataset (ModelNet40 data will automatically be downloaded to data/modelnet40_ply_hdf5_2048 if needed) and log directories:

mkdir log
mkdir log/baseline
python data/create_dataset_torch.py

Point clouds of ModelNet40 models in HDF5 files (provided by Qi et al.) will be automatically downloaded (416MB) to the data folder. Each point cloud contains 2048 points uniformly sampled from a shape surface. Each cloud is zero-mean and normalized into an unit sphere. There are also text files in data/modelnet40_ply_hdf5_2048 specifying the ids of shapes in h5 files.

Train

To train a PCRNet model to register point clouds, use:

CUDA_VISIBLE_DEVICES=1  python main.py -o log/baseline/SSACCR1 --sampler fps  --train-pcrnet   --epochs 250  --noise_type crop -in 1024

Test

To test a PCRNet model to register point clouds, use:

CUDA_VISIBLE_DEVICES=1 python main.py -o log/SAMPLENET64 --pretrained   log/baseline/SSACCR_model_best.pth   --sampler fps -in 1024  --test   --noise_type crop

Additional options for training and evaluating can be found using python main.py --help.

Acknowledgment

This code builds upon the code provided in samplenet, PointNetLK, Pointnet2_PyTorch and KNN_CUDA. We thank the authors for sharing their code.

SCANet