Giter VIP home page Giter VIP logo

variable-rate-compression-for-raw-3d-point-clouds's Introduction

Variable Rate Compression for Raw 3D Point Clouds

Overview

3D sensors generate enormous amounts of point cloud data at high frame rates. For example, a 3D point cloud with 0.7 million points per frame at 30 frames per second needs a bandwidth of approximately 500 MB/s for video. Working with uncompressed point cloud data can lead to congestion and delays in communication networks. Thus, efficient compression coding technologies are indispensable for ensuring the compact storage and transmission of such data.

overview

This repository provides source code for our 2022 ICRA paper titled "Varible Rate Compression for Raw 3D Point Cloud Data." Our model can compress raw point clouds, at a broad range of bitrates, without converting them into a voxelized representation. More specifically, there are two prominent benefits of our approach: (i) there is no loss of information due to voxelization; (ii) the compression and reconstruction performance is not affected by the underlying point cloud density. Additionally, our technique reduces the unnecessary computational burden induced by the processing of unoccupied voxels.

Citation

If you find this project useful, then please consider citing our work.

@inproceedings{muzaddid2022variable,
  title={Variable Rate Compression for Raw 3D Point Clouds},
  author={Al Muzaddid, Md Ahmed and Beksi, William J},
  booktitle={Proceedings of the IEEE International Conference on Robotics and Automation (ICRA)},
  pages={8748--8755},
  year={2022}
}

Model Architecture

model_architecture

Installation

This software was tested using Python 3.6, TensorFlow 1.14 and 1.15, and TensorFlow Compression 1.3. For the encoder, we utilize source code from the PointNet and PointNet++ GitHub repositories. Please follow the Compile Customized TF Operators section from PointNet++ to compile the custom tf_ops. In addition, we make use of the Fan et al. CUDA implementations of the chamfer and earth mover's distance.

First, install the required Python libraries listed in requirements.txt. Then,

    $ cd src/external

and modify the first three lines of the makefile to point to your nvcc, cudalib, and tensorflow library. Finally, to compile the code run

    $ make

Usage

Model Training

Before training, please modify the DATA_DIR path in train.py to point to your data directory location. Then, start training

    $ python train.py 

Compression Example

To compress a point cloud using a trained model, first modify the path variables at the beginning of compressor_decompressor.py. Then, run the following command

    $ python compressor_decompressor.py compress 

To change the compression rate, the embedding length can be specified as follows

    $ python compressor_decompressor.py compress 884

Decompression Example

Likewise, with a modified path to the compressed file location, you can decompress a point cloud using the following command

    $ python compressor_decompressor.py decompress 

License

license

variable-rate-compression-for-raw-3d-point-clouds's People

Contributors

aunikahmed80 avatar wjbeksi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

variable-rate-compression-for-raw-3d-point-clouds's Issues

dataset

Hi, I'm interested in your work.
Could you provide the pretrain model? And as below, the dataset is read from npz file, but I can not find the dataset format from shapenet website. Is the dataset preprocessed by yourself? could you provide the dastset download link?

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.