Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork56.4k
Pointcloud Compression Implementation in 3d module.#24197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:5.x
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
asmorkalov commentedSep 15, 2023
|
starga2er777 commentedSep 18, 2023
@asmorkalov@opencv-alalek Hi! In this pull request we have implemented PCC(point cloud compression) algorithms as well as tests. In the repo |
asmorkalov commentedSep 19, 2023
Github actions CI and BuildBot expects, that the PR author has OpenCV Extra branch with the same name to be tested together. Here we have an issue. PR Autor: broweigit. Source code location: starga2er777. CI looks for branch |
broweigit commentedFeb 2, 2024
Note that this is not the latest code. I think I have to revise this part and Update current stable code here. Also waiting for merging#23985 before moving on. |
broweigit commentedFeb 29, 2024
Now that the previous branch has been merged. So before working on this PR, I'd like to update our current code(or a previous stable version) and rebase on previous merged code, due to some API changes. I'll make a note after everything is ready. Thanks! |
broweigit commentedJul 25, 2024
Gosh that's quite a while. I'm sorry for that... Since I've done with my Undergraduate Thesis(and used this 3D compression branch btw), I think I shall soon work on this PR in my pace. |
Uh oh!
There was an error while loading.Please reload this page.
Part of schedule#23624
Merged withopencv/opencv_extra#1100
Merged after#23985
This pull request aims to implement whole point cloud compression process, including compression to encode pointcloud data to a compressed binary file, and decompression to recover original pointcloud from it.
Below is the flowchart illustrating the process of point cloud compression.
Below is the visualization of reconstructed pointcloud after decompression.
The point cloud compression and decompression processes can be executed by utilizing the interface of the top-level class
PointCloudCompression. User can specify two parameters:"Resolution" marks the leaf size(least voxel size)of octree. It's related to geometry precision.
"Qstep" is parameter in RAHT algorithm, relates to attribute(color) precision.
(Update): We now add zlib support for Entropy compression and decompression. Since it outperforms out old method, we set it as default algorithm. It can be swapped by changing "codingMethod" initial value in the front of modules/3d/src/pcc.cpp
During the algorithm evaluation, the compression rate was evaluated using
bpp(bits per point), while the reduction quality was measured by means ofPSNR(Peak Signal-to-Noise Ratio).Note that the calculation of
PSNRinvolves third-party tool(pc-error from MPEG), thus the function for computingPSNRhas not been included in the test file.The function
generateSphere()is used to generate a point cloud file for testing and then fill it with gradient colors. The test pointCloud is a sphere with origin (0,0,0), radius 10, and thickness 0.5. The test results are as follows.The popular open source point cloud dataset
dress_raw.plyis also used for testing. The test results are as followsPull Request Readiness Checklist
See details athttps://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.