This repository is implementation of AR-GCN(https://arxiv.org/abs/1908.02111) from "Point Cloud Super Resolution with Adversarial Residual Graph Networks" in Pytorch. You can find official Tensorflow implementation here.
The model implementations are in src/model
The code is tested under Pytorch 1.9.0 and Python 3.8 on Ubuntu 18.04 LTS.
We used pytorch3d operation & loss functions for k-nn & cd_loss calculation.
Note that to enable non-symmetric chamfer distance calculation (only forward is used),
we modified pytorch3d/loss/chamfer.py
like below.
cham_dist = cham_x + cham_y
cham_normals = cham_norm_x + cham_norm_y if return_normals else None
forward = cham_x
backward = cham_y
return forward, backward, cham_normals
You can download training patches in HDF5 format in here. (Note that the link is not maintained by me. Please refere PU-Net official repository for the dataset.)
cd src
# ResGCN (80 epoch pre training. Train only generator)
python train.py config/train_config_res_gcn.yaml
# AR GCN (40 epoch GAN training. Must specify saved pre-trained weight from above)
python train.py config/train_config_ar_gcn.yaml
You can download evaluation data from author's official repository.
cd src
python test.py # refer 'src/config/test_config.yaml' for test settings
CD | F-Score | |
---|---|---|
Res-GCN | 0.0092 | 0.6349 |
AR-GCN | 0.0090 | 0.6470 |
- (fixed) ~~Training GAN takes too much time(~7s/it) compare to the author's implementation(~1s/it)~~
- (partially fixed) Performance is relatively low compared to the author's implementation. Especially during GAN training phase, discriminator does not trained well compare to the author's implementation.