项目作者: mauriceqch

项目描述 :
A deep perceptual metric for 3D point clouds
高级语言: Jupyter Notebook
项目地址: git://github.com/mauriceqch/2021_pc_perceptual_loss.git
创建时间: 2021-02-03T21:55:32Z
项目社区:https://github.com/mauriceqch/2021_pc_perceptual_loss

开源协议:MIT License

下载


A deep perceptual metric for 3D point clouds


Paper illustration

Prerequisites

  • Python 3.6.9
  • Tensorflow 1.15.0 with CUDA 10.0.130 and cuDNN 7.4.2
  • packages in requirements.txt

Note: using a Linux distribution such as Ubuntu is highly recommended

Overview

The ICIP2020 subjective dataset is available as a repack at this URL.
The training dataset is available in the Git repository as ModelNet40_200_pc512_oct3_4k.zip and pretrained models are available in src/data/model and src/data/model_tdf.

The src/analysis_icip2020_perry_quality.ipynb notebook includes all the necessary code to reproduce the results of the paper.

Below is an overview of the repository:

  1. ├── ModelNet40_200_pc512_oct3_4k.zip Training dataset
  2. ├── requirements.txt Package requirements
  3. └── src
  4. ├── analysis_icip2020_perry_quality.ipynb [Experiments] Main notebook
  5. ├── data
  6. ├── icip2020_deg_metrics.json [Data] Cache for computed metrics
  7. ├── icip2020_degraded_pcs_features.csv [Data] Experimental data
  8. ├── icip2020_degraded_pcs_features_preds.csv [Data] Full experimental data with MOS predictions
  9. ├── model [Data] Trained model for binary representation
  10. └── model_tdf [Data] Trained model for TDF representation
  11. ├── ds_mesh_to_pc.py [Training Dataset] Convert mesh to point cloud
  12. ├── ds_pc_octree_blocks.py [Training Dataset] Divide a point cloud into octree blocks
  13. ├── ds_select_largest.py [Training Dataset] Select the N largest files from a folder
  14. ├── figs [Data] Generated figures
  15. ├── repack_icip20_perry_quality.py [Subjective Dataset] Script to repack ICIP2020 for reference (requires manual steps detailed in comments)
  16. ├── repack_icip20_perry_quality.sh [Subjective Dataset] Script to repack ICIP2020 with preset parameters
  17. ├── train_perceptual.ipynb [Training] Notebook to train the neural networks
  18. └── utils
  19. ├── cc_utils.py CloudCompare utils
  20. ├── color_space.py Color space conversions
  21. ├── confidence_intervals.py Confidence intervals
  22. ├── distance_grid.py Distance grids (TDF)
  23. ├── features.py Point Cloud features/metrics
  24. ├── focal_loss.py Focal loss
  25. ├── icip20_perry_quality.py ICIP2020 subjective dataset utils
  26. ├── log_reg.py Logistic regression
  27. ├── matplotlib_utils.py Matplotlib utils
  28. ├── na_bce.py NaBCE implementation
  29. ├── octree_coding.py Octree partitioning
  30. ├── parallel_process.py Parallel processing utils
  31. ├── pc_io.py Point Cloud IO utils
  32. └── perceptual_model.py Perceptual loss neural network model

Details

ICIP2020 subjective dataset

The repack_icip20_perry_quality.sh file provides an example of how to repack this dataset.
Note that a number of manuel steps are necessary to repack the dataset; these steps are specified in the code as comments (see src/utils/icip20_perry_quality.py).
For ease of use, the repack can be downloaded following the instructions above.

Training Dataset

To reproduce the dataset, download the ModelNet40 manually aligned dataset: http://modelnet.cs.princeton.edu.
Then, we generate the training dataset specified in our paper (block size 64) with the following commands:

  1. python ds_select_largest.py ~/data/datasets/ModelNet40 ~/data/datasets/pcc_geo_cnn_v2/ModelNet40_200 200
  2. python ds_mesh_to_pc.py ~/data/datasets/pcc_geo_cnn_v2/ModelNet40_200 ~/data/datasets/pcc_geo_cnn_v2/ModelNet40_200_pc512 --vg_size 512
  3. python ds_pc_octree_blocks.py ~/data/datasets/pcc_geo_cnn_v2/ModelNet40_200_pc512 ~/data/datasets/pcc_geo_cnn_v2/ModelNet40_200_pc512_oct3 --vg_size 512 --level 3
  4. python ds_select_largest.py ~/data/datasets/pcc_geo_cnn_v2/ModelNet40_200_pc512_oct3 ~/data/datasets/pcc_geo_cnn_v2/ModelNet40_200_pc512_oct3_4k 4000

Note that this is only for reference as the training dataset is already included in the repository.

Training

The notebook in src/train_perceptual.ipynb performs the training of the models described in the paper.
The parameters can be changed to perform training with binary or TDF representation.
Note that pretrained models are available in the repository.

Citation

  1. @inproceedings{quach_deep_perceptual,
  2. TITLE = {{A deep perceptual metric for 3D point clouds}},
  3. AUTHOR = {Quach, Maurice and Chetouani, Aladine and Valenzise, Giuseppe and Dufaux, Fr{\'e}d{\'e}ric},
  4. BOOKTITLE = {{Image Quality and System Performance, IS\&T International Symposium on Electronic Imaging (EI 2021)}},
  5. YEAR = {2021},
  6. MONTH = Jan,
  7. }