{"id":29613697,"url":"https://github.com/interdigitalinc/rnf-pcac","last_synced_at":"2025-07-20T22:10:41.759Z","repository":{"id":305194836,"uuid":"851650908","full_name":"InterDigitalInc/rnf-pcac","owner":"InterDigitalInc","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-03T14:31:40.000Z","size":1012,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-18T21:37:07.399Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InterDigitalInc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-03T13:35:21.000Z","updated_at":"2024-12-06T00:53:11.000Z","dependencies_parsed_at":"2025-07-18T21:37:09.182Z","dependency_job_id":"f08da2e0-665a-4912-a534-c975e87ae858","html_url":"https://github.com/InterDigitalInc/rnf-pcac","commit_stats":null,"previous_names":["interdigitalinc/rnf-pcac"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/InterDigitalInc/rnf-pcac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InterDigitalInc%2Frnf-pcac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InterDigitalInc%2Frnf-pcac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InterDigitalInc%2Frnf-pcac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InterDigitalInc%2Frnf-pcac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InterDigitalInc","download_url":"https://codeload.github.com/InterDigitalInc/rnf-pcac/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InterDigitalInc%2Frnf-pcac/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266206281,"owners_count":23892617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-20T22:10:37.587Z","updated_at":"2025-07-20T22:10:41.753Z","avatar_url":"https://github.com/InterDigitalInc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reducing the Complexity of Normalizing Flow Architectures for Point Cloud Attribute Compression\n\n## Project Information\n\n - Authors: [Rodrigo Borba Pinheiro\u003csup\u003e1,2\u003c/sup\u003e](https://scholar.google.com/citations?user=fwzu_toAAAAJ\u0026hl=fr\u0026oi=ao), [Jean-Eudes Marvie\u003csup\u003e1\u003c/sup\u003e](https://scholar.google.com/citations?hl=fr\u0026user=eGbpfCYAAAAJ), [Giuseppe Valenzise\u003csup\u003e2\u003c/sup\u003e](https://scholar.google.com/citations?user=7ftDv4gAAAAJ), [Frederic Dufaux\u003csup\u003e2\u003c/sup\u003e](https://scholar.google.com/citations?user=ziqjbTIAAAAJ)\n - Affiliations: [\u003csup\u003e1\u003c/sup\u003eInterDigital, Inc](https://www.interdigital.com),[\u003csup\u003e2\u003c/sup\u003eUniversité Paris-Saclay, CNRS, CentraleSupélec, L2S 91190 Gif-sur-Yvette, France](https://l2s.centralesupelec.fr/)\n\n## Introduction\n\nThis repository contains the implementation of [RNF-PCAC](https://ieeexplore.ieee.org/document/10446754), an improved NF architecture with reduced complexity. It is composed of two operating modes specialized for low and high bitrates, combined in a rate-distortion optimized fashion. Our approach reduces the number of parameters of the existing NF architectures by over 6×. At the same time, it achieves state-of-the-art coding gains compared to previous learning-based methods and, for some point clouds, it matches the performance of G-PCC (v.21).\n\nImplemented architectures:\n\n* RNF-PCAC: BP Mode\n\n\u003cimg src=\"imgs/bp_mode.jpg\" alt=\"drawing\" width=\"800\"/\u003e\n\n\n* RNF-PCAC: NA Mode\n\n\u003cimg src=\"imgs/na_mode.jpg\" alt=\"drawing\" width=\"800\"/\u003e\n\n\n## Requirements\n\nPlease refer to the requirements.txt file on the project for the necessary python packages.\n\n* MPEG G-PCC codec [mpeg-pcc-tmc13](https://github.com/MPEGGroup/mpeg-pcc-tmc13): necessary to compare results with G-PCC and to obtain the metric config files.\n\n* MPEG metric software [mpeg-pcc-dmetric](https://git.mpeg.expert/MPEG/3dgh/v-pcc/software/mpeg-pcc-dmetric), available on the [MPEG Gitlab](https://git.mpeg.expert), you need to register and request the permissions for `MPEG/PCC`: necessary to obtain PSNR values. (Can be replaced by other metric calculation)\n\n\n## How to use\n\nTo get the help for the arguments of each file, simply use (replace \"file\" by the desired file to get help): \n\n```\npython file.py --help\n```\n\n### Training\n\nTo train new models edit the config file to reflect the architecture you want.\nThe train_config file lets you customize the type of architecture according to their availability, choose the training dataset path and the testing dataset path. Besides you can control the number of filters of intermediate layers for the architecture.\n\nTo train all the models in the train_config file, simply run:\n\n```\npython train_all.py --config train_config.yaml\n```\n\n### Evaluating on models\n\nEdit the eval_config.yaml file to reflect your paths:\n* `MODEL_PATH`: Folder where the weights of the trained models were saved\n* `MPEG_TMC13_DIR`: G-PCC folder (`mpeg-pcc-tmc13`)\n* `PCERROR`: `mpeg-pcc-dmetric` folder\n* `MPEG_DATASET_DIR`: MPEG PCC dataset folder\n* `EXPERIMENT_DIR`: Experiment folder, all results are saved in this folder\n\n```\npython eval_all_.py --config eval_config.yaml\n```\nThis will run the models in the config file through all the point clouds specified in the \"Data\" part of the .yaml\n\n### Simple Inference for a single model\n\nAn example of command to run to perform inference in a single point cloud with the wanted model.\nMake sure the model configuration reflects the checkpoint path to be loaded.\n\nTo encode:\n```\npython main.py --command encode --input_file input_pointcloud.ply --output_file input_pointcloud.bin --model_name model_name --arch_type RNF --color_space RGB --squeeze_type avg --N_levels 3 --M 128 --enh_channels 64 --attention_channels 128 --model_path ../checkpoint.pth.tar\n```\n\n```\npython main.py --command decode --input_file input_pointcloud.bin --output_file reconstructed.ply --model_name model_name --arch_type RNF --color_space RGB --squeeze_type avg --N_levels 3 --M 128 --enh_channels 64 --attention_channels 128 --model_path ../checkpoint.pth.tar --geo input_pointcloud.ply\n```\n\n## References\n\n[1] R. B. Pinheiro, J. -E. Marvie, G. Valenzise and F. Dufaux, \"Reducing the Complexity of Normalizing Flow Architectures for Point Cloud Attribute Compression,\" ICASSP 2024 - 2024 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Seoul, Korea, Republic of, 2024, pp. 8170-8174, doi: 10.1109/ICASSP48485.2024.10446754.\n\n[2] R. B. Pinheiro, J. -E. Marvie, G. Valenzise and F. Dufaux, \"NF-PCAC: Normalizing Flow Based Point Cloud Attribute Compression,\" ICASSP 2023 - 2023 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Rhodes Island, Greece, 2023, pp. 1-5, doi: 10.1109/ICASSP49357.2023.10096294.\n\nA special thanks to [@mauriceqch](https://github.com/mauriceqch) for providing a base for our code in [pcc_geo_cnn_v2](https://github.com/mauriceqch/pcc_geo_cnn_v2).\n\n[3] M. Quach, G. Valenzise and F. Dufaux, \"Improved Deep Point Cloud Geometry Compression,\" 2020 IEEE 22nd International Workshop on Multimedia Signal Processing (MMSP), Tampere, Finland, 2020, pp. 1-6, doi: 10.1109/MMSP48831.2020.9287077.\n\n## Cite This Work\n\nPlease cite our work if you find it useful for your research:\n```\n@INPROCEEDINGS{pinheiro2023rnf,\n  author={Pinheiro, Rodrigo B. and Marvie, Jean-Eudes and Valenzise, Giuseppe and Dufaux, Frédéric},\n  booktitle={ICASSP 2024 - 2024 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, \n  title={Reducing the Complexity of Normalizing Flow Architectures for Point Cloud Attribute Compression}, \n  year={2024},\n  volume={},\n  number={},\n  pages={8170-8174},\n  keywords={Learning systems;Point cloud compression;Bit rate;Rate-distortion;Signal processing;Encoding;Complexity theory;Point clouds;Learning-Based;Compression;Attributes;Normalizing Flow},\n  doi={10.1109/ICASSP48485.2024.10446754}}\n\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finterdigitalinc%2Frnf-pcac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finterdigitalinc%2Frnf-pcac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finterdigitalinc%2Frnf-pcac/lists"}