Giter VIP home page Giter VIP logo

pcccp's Introduction

PCCCP Evaluation Pipeline

Can run compression and decompression on the given .ply datasets.

Can evaluate the performance of the given codecs on the evaluation metrics given in the report.

Codecs currently supported:

  • Google's Draco
  • MPEG's GPCC
  • MPEG's VPCC

Datasets currently supported:

  • i8VFB-V2
  • Robot@Home (subset)

How to setup:

Codecs

Dataset

  • Edit config.ini. It contains the storage paths and the datasets you want to compress/decompress

    • dataset=/absolute/path/to/dataset/folder/
    • compressed=/absolute/path/to/compressed/point/clouds/folder/
    • decompressed=/absolute/path/to/decompressed/point/clouds/folder/
  • Download the following datasets to the dataset folder given in config.ini

How to run:


Compression and decompression

python3 run.py --codec [draco, gpcc, vpcc] --quality [lowest, low, medium, best, all]

[optional]
--saveVideo saves a video to output/codec/quality/.mp4 it is quite slow to run
--debug (python3 run.py --codec CODEC_HERE --quality QUALITY --debug)

Output compression time and decompression time in "output/CODEC_HERE/QUALITY/*.txt" as well as the active quality config file (codec.ini) Outputs compressed and decompressed files as given in the config.ini file.


Performance evaluation

python3 analysis.py --codec [draco, gpcc, vpcc] --quality [lowest, low, medium, best, all] 
[optional]
--debug (python3 analysis.py --codec CODEC_HERE --quality QUALITY --debug)

Has been setup in similar style as run.py with arguments for the different compression methods. The analysis file contains an object of the Metric class, which keeps track of the independent metrics for the different datasets. Updated once each iteration. Calculates PSNR for Geometry, Y, Cb, Cr, Bitrates, BPP, compression and decompression time. Metrics can be saved to a 'metric' folder after the full iterations or retrieved while iterating through the different datasets. Log files are currently saved after each quality loop.


Visualize Point Cloud Sequence

python3 visualize.py --input pointCloudFolder --out [OPTIONAL] saveTo.mp4 --subsampleFactor [OPTIONAL] int

WARNING, this is quite slow

Takes a folder with a point cloud sequence in .ply format as input Can save it as an mp4 file. Can chose to only visualize every N'th frame


To do:

  • Add more datasets
  • Create a script that downloads the datasets
  • Finish the evaluation pipeline

How to add a dataset?

Each dataset needs a .ini file in the "cfg/datasets/" folder. This .ini file contains the name of the base directory within the "dataset" folder given in "config.ini". Then it contains a list of point cloud sequence to be processed. Each point cloud sequence must be in their own directory with nothing else in it, should be in .PLY format. Supports x (float), y (float), z (float), R (uchar), G (uchar), B (uchar). x, y and z must be voxelzied integers.

See "cfg/datasets/i8vfbv2.ini" for a documented example.

Add the dataset to the "config.ini" file under the [DATASETS] section.

Folder structure:

├── datasetFolder # Folder specified in config.ini
         ├──── baseDir # Folder specified in "cfg/datasets/datasetToBeAdded.ini"
                       ├───── pointcloudSequenceFolder1 # contains only .PLY files
                       ├───── pointcloudSequenceFolder2 # contains only .PLY files
                       ├───── pointcloudSequenceFolder3 # contains only .PLY files

How to configure compression codec?

Each codec has a .ini file located in "cfg/codecs/codecName", their performance can be adjusted by changing the parameters in the [QUALITY] section.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.