NNCTX
key words:point cloud, lossless geometry compression, deeplearning, multi resolution compression
NNCTX, is a kind of point cloud lossless compression method. Based on downsampling, the method build a multi-resolution point cloud sets, and compresses/decompresses from the lowest resolution to original point cloud. The bpp is better than GPCC octree, but worse than OctAttention.
Paper Citation: arXiv:2106.06482 [cs.CV]
https://doi.org/10.48550/arXiv.2106.06482
our contributions
1.transplant from tensorflow to pytorch
2.benchmark test on both tensorflow and pytorch, and compare the performance
file structure
root
└── pytorch: pytorch code, models included
└── tensorflow source code: please go to: https://github.com/marmus12/NNCTX
└── Neural Network Modeling of Probabilities for Coding the Octree Representation of Point Clouds.pdf: origional paper
└── datasets: see the datasets.zip in dataset part
environment
- pytorch
- ubuntu 18.04
- cuda V10.2.89
- python 3.6.9
- refer to requirements-pytorch.txt
command
cd pytorch
training:
python train_torch.py
encode && decode:
python main_enc_dec.py --input "/userhome/PCGCv1/pytorch_eval/28_airplane_0270.ply" --ckpt_dir 'train_logs/20220401-155532/epoch_72.pth'
You can get some test files from here
performance
- benchmark test on tensorflow and pytorch below. From the result, we can see that for dense PCs, the method can achieve good compression rate, while for sparse PCs, the performance is not so good.
- Compared the performance of tensorflow and pytorch, the bpp of pytorch is closed to tensorflow.
Table 1. Test on TensorFlow
file |
dense or sparse |
ori_level |
enc_time |
dec_time |
bpv |
sarah_vox10_0023.ply |
dense |
10 |
106.212 |
111.231 |
0.965 |
sarah_vox9_0023.ply |
dense |
9 |
24.928 |
25.871 |
0.929 |
phil_vox10_0139.ply |
dense |
10 |
128.019 |
136.108 |
1.021 |
phil_vox9_0139.ply |
dense |
9 |
29.077 |
30.929 |
0.997 |
redandblack_vox10_1550.ply |
dense |
10 |
71.721 |
74.898 |
0.885 |
queen_vox10_0200.ply |
dense |
10 |
80.169 |
85.792 |
0.919 |
soldier_vox10_0690.ply |
dense |
10 |
101.22 |
108.956 |
0.8 |
longdress_vox10_1300.ply |
dense |
10 |
77.13 |
83.583 |
0.778 |
basketball_player_vox11_00000200.ply |
dense |
11 |
264.752 |
283.019 |
0.691 |
loot_vox10_1200.ply |
dense |
10 |
73.748 |
79.241 |
0.761 |
dancer_vox11_00000001.ply |
dense |
11 |
234.587 |
249.559 |
0.691 |
vox10_002719.ply |
sparse |
10 |
8.688 |
9.453 |
4.868 |
vox10_000001.ply |
sparse |
10 |
11.549 |
12.512 |
5.441 |
vox10_002215.ply |
sparse |
10 |
8.782 |
9.555 |
6.27 |
vox10_001406.ply |
sparse |
10 |
9.298 |
10.348 |
5.374 |
vox10_000832.ply |
sparse |
10 |
11.278 |
12.009 |
6.243 |
vox10_000355.ply |
sparse |
10 |
9.058 |
9.23 |
5.48 |
Table 2. Test on PyTorch
file |
dense or sparse |
ori_level |
enc_time |
dec_time |
bpv |
sarah_vox10_0023.ply |
dense |
10 |
168.12 |
169.809 |
0.982 |
sarah_vox9_0023.ply |
dense |
9 |
49.754 |
51.095 |
0.944 |
phil_vox10_0139.ply |
dense |
10 |
194.698 |
212.601 |
1.034 |
phil_vox9_0139.ply |
dense |
9 |
62.802 |
64.654 |
1.005 |
redandblack_vox10_1550.ply |
dense |
10 |
194.372 |
214.579 |
0.895 |
queen_vox10_0200.ply |
dense |
10 |
139.459 |
140.515 |
0.936 |
soldier_vox10_0690.ply |
dense |
10 |
249.87 |
229.195 |
0.813 |
longdress_vox10_1300.ply |
dense |
10 |
202.623 |
233.049 |
0.788 |
basketball_player_vox11_00000200.ply |
dense |
11 |
480.024 |
497.199 |
0.697 |
loot_vox10_1200.ply |
dense |
10 |
201.843 |
199.929 |
0.772 |
dancer_vox11_00000001.ply |
dense |
11 |
474.928 |
447.583 |
0.697 |
vox10_002719.ply |
sparse |
10 |
29.227 |
29.637 |
4.926 |
vox10_000001.ply |
sparse |
10 |
42.099 |
44.3 |
5.498 |
vox10_002215.ply |
sparse |
10 |
25.084 |
25.329 |
6.358 |
vox10_001406.ply |
sparse |
10 |
27.075 |
27.182 |
5.454 |
vox10_000832.ply |
sparse |
10 |
32.687 |
33.469 |
6.343 |
vox10_000355.ply |
sparse |
10 |
25.294 |
24.922 |
5.561 |
contributors
name: Ye Hua
email: yeh@pcl.ac.cn