Repository files navigation

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Abstract — This study develops a unified Point Cloud Geometry (PCG) compression method through the processing of multiscale sparse tensor-based voxelized PCG. We call this compression method SparsePCGC. The proposed SparsePCGC is a low complexity solution because it only performs the convolutions on sparsely-distributed Most-Probable Positively-Occupied Voxels (MP-POV). The multiscale representation also allows us to compress scale-wise MP-POVs by exploiting cross-scale and same-scale correlations extensively and flexibly. The overall compression efficiency highly depends on the accuracy of estimated occupancy probability for each MP-POV. Thus, we first design the Sparse Convolution-based Neural Network (SparseCNN) which stacks sparse convolutions and voxel sampling to best characterize and embed spatial correlations. We then develop the SparseCNN-based Occupancy Probability Approximation (SOPA) model to estimate the occupancy probability either in a single-stage manner only using the cross-scale correlation, or in a multi-stage manner by exploiting stage-wise correlation among same-scale neighbors. Besides, we also suggest the SparseCNN based Local Neighborhood Embedding (SLNE) to aggregate local variations as spatial priors in feature attribute to improve the SOPA. Our unified approach not only shows state-of-the-art performance in both lossless and lossy compression modes across a variety of datasets including the dense object PCGs (8iVFB, Owlii, MUVB) and sparse LiDAR PCGs (KITTI, Ford) when compared with standardized MPEG G-PCC and other prevalent learning-based schemes, but also has low complexity which is attractive to practical applications.

News

  • 2024.12.06 We released the SparsePCGC source code, which also serves as a preview of Unicorn.
  • 2022.11.25 The paper was accpeted by TPAMI. (J. Wang, D. Ding, Z. Li, X. Feng, C. Cao and Z. Ma, "Sparse Tensor-Based Multiscale Representation for Point Cloud Geometry Compression," in IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, doi: 10.1109/TPAMI.2022.3225816.)
  • 2022.09.09 Upload supplementary material, which includes comparison details. see Supplementary_Material.pdf
  • 2022.06.16 Source codes will be released soon to the public after the approval from the funding agency. Now We make the testing results, testing conditions, pretrained models, and other relevant materials publicly accessible.
  • 2022.06.16 We simplify the implementation and reduce the computational complexity significantly. (e.g., almost 6∼8×). At the same time, we slightly adjust model parameters and achieve better performance on sparse LiDAR point clouds.
  • 2022.01.13 We participate in MPEG AI-3DGC.
  • 2021.11.23 We have posted the manuscript on arxiv (https://arxiv.org/abs/2111.10633).

Requirments

Usage

Testing

The following example commands are provided to illustrate the general testing process.

For dense point clouds:

# dense lossless
python test_ours_dense.py --mode='lossless' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--prefix='ours_8i'
# dense lossy
python test_ours_dense.py --mode='lossy' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--ckptdir_sr='../ckpts/dense_1stage/epoch_last.pth' \
--ckptdir_ae='../ckpts/dense_slne/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--psnr_resolution=1023 --prefix='ours_8i_lossy'

For sparse LiDAR point clouds:

# sparse lossless
python test_ours_sparse.py --mode='lossless' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_kitti_q1mm'
# sparse lossy
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti'
# sparse lossy w/ offset
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--ckptdir_offset='../ckpts/sparse_offset/epoch_last.pth' \
--offset --filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti_offset'

Please refer to ./test/README_test.md for other testing examples, including commands for testing other datasets such as Owlii and Ford. Detailed testing results are available in the ./results directory.

Training

We provide training script in the ./train directory. Please refer to ./train/README_train.md for training examples.

Authors

These files are provided by Nanjing University Vision Lab. Thanks for the help of Prof. Dandan Ding from Hangzhou Normal University, Prof. Zhu Li from University of Missouri at Kansas. Please contact us (wangjq@smail.nju.edu.cn and mazhan@nju.edu.cn) if you have any questions.

About

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Resources

Stars

100 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Abstract — This study develops a unified Point Cloud Geometry (PCG) compression method through the processing of multiscale sparse tensor-based voxelized PCG. We call this compression method SparsePCGC. The proposed SparsePCGC is a low complexity solution because it only performs the convolutions on sparsely-distributed Most-Probable Positively-Occupied Voxels (MP-POV). The multiscale representation also allows us to compress scale-wise MP-POVs by exploiting cross-scale and same-scale correlations extensively and flexibly. The overall compression efficiency highly depends on the accuracy of estimated occupancy probability for each MP-POV. Thus, we first design the Sparse Convolution-based Neural Network (SparseCNN) which stacks sparse convolutions and voxel sampling to best characterize and embed spatial correlations. We then develop the SparseCNN-based Occupancy Probability Approximation (SOPA) model to estimate the occupancy probability either in a single-stage manner only using the cross-scale correlation, or in a multi-stage manner by exploiting stage-wise correlation among same-scale neighbors. Besides, we also suggest the SparseCNN based Local Neighborhood Embedding (SLNE) to aggregate local variations as spatial priors in feature attribute to improve the SOPA. Our unified approach not only shows state-of-the-art performance in both lossless and lossy compression modes across a variety of datasets including the dense object PCGs (8iVFB, Owlii, MUVB) and sparse LiDAR PCGs (KITTI, Ford) when compared with standardized MPEG G-PCC and other prevalent learning-based schemes, but also has low complexity which is attractive to practical applications.

News

  • 2024.12.06 We released the SparsePCGC source code, which also serves as a preview of Unicorn.
  • 2022.11.25 The paper was accpeted by TPAMI. (J. Wang, D. Ding, Z. Li, X. Feng, C. Cao and Z. Ma, "Sparse Tensor-Based Multiscale Representation for Point Cloud Geometry Compression," in IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, doi: 10.1109/TPAMI.2022.3225816.)
  • 2022.09.09 Upload supplementary material, which includes comparison details. see Supplementary_Material.pdf
  • 2022.06.16 Source codes will be released soon to the public after the approval from the funding agency. Now We make the testing results, testing conditions, pretrained models, and other relevant materials publicly accessible.
  • 2022.06.16 We simplify the implementation and reduce the computational complexity significantly. (e.g., almost 6∼8×). At the same time, we slightly adjust model parameters and achieve better performance on sparse LiDAR point clouds.
  • 2022.01.13 We participate in MPEG AI-3DGC.
  • 2021.11.23 We have posted the manuscript on arxiv (https://arxiv.org/abs/2111.10633).

Requirments

Usage

Testing

The following example commands are provided to illustrate the general testing process.

For dense point clouds:

# dense lossless
python test_ours_dense.py --mode='lossless' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--prefix='ours_8i'
# dense lossy
python test_ours_dense.py --mode='lossy' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--ckptdir_sr='../ckpts/dense_1stage/epoch_last.pth' \
--ckptdir_ae='../ckpts/dense_slne/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--psnr_resolution=1023 --prefix='ours_8i_lossy'

For sparse LiDAR point clouds:

# sparse lossless
python test_ours_sparse.py --mode='lossless' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_kitti_q1mm'
# sparse lossy
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti'
# sparse lossy w/ offset
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--ckptdir_offset='../ckpts/sparse_offset/epoch_last.pth' \
--offset --filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti_offset'

Please refer to ./test/README_test.md for other testing examples, including commands for testing other datasets such as Owlii and Ford. Detailed testing results are available in the ./results directory.

Training

We provide training script in the ./train directory. Please refer to ./train/README_train.md for training examples.

Authors

These files are provided by Nanjing University Vision Lab. Thanks for the help of Prof. Dandan Ding from Hangzhou Normal University, Prof. Zhu Li from University of Missouri at Kansas. Please contact us (wangjq@smail.nju.edu.cn and mazhan@nju.edu.cn) if you have any questions.

About

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Resources

Stars

100 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Abstract — This study develops a unified Point Cloud Geometry (PCG) compression method through the processing of multiscale sparse tensor-based voxelized PCG. We call this compression method SparsePCGC. The proposed SparsePCGC is a low complexity solution because it only performs the convolutions on sparsely-distributed Most-Probable Positively-Occupied Voxels (MP-POV). The multiscale representation also allows us to compress scale-wise MP-POVs by exploiting cross-scale and same-scale correlations extensively and flexibly. The overall compression efficiency highly depends on the accuracy of estimated occupancy probability for each MP-POV. Thus, we first design the Sparse Convolution-based Neural Network (SparseCNN) which stacks sparse convolutions and voxel sampling to best characterize and embed spatial correlations. We then develop the SparseCNN-based Occupancy Probability Approximation (SOPA) model to estimate the occupancy probability either in a single-stage manner only using the cross-scale correlation, or in a multi-stage manner by exploiting stage-wise correlation among same-scale neighbors. Besides, we also suggest the SparseCNN based Local Neighborhood Embedding (SLNE) to aggregate local variations as spatial priors in feature attribute to improve the SOPA. Our unified approach not only shows state-of-the-art performance in both lossless and lossy compression modes across a variety of datasets including the dense object PCGs (8iVFB, Owlii, MUVB) and sparse LiDAR PCGs (KITTI, Ford) when compared with standardized MPEG G-PCC and other prevalent learning-based schemes, but also has low complexity which is attractive to practical applications.

News

  • 2024.12.06 We released the SparsePCGC source code, which also serves as a preview of Unicorn.
  • 2022.11.25 The paper was accpeted by TPAMI. (J. Wang, D. Ding, Z. Li, X. Feng, C. Cao and Z. Ma, "Sparse Tensor-Based Multiscale Representation for Point Cloud Geometry Compression," in IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, doi: 10.1109/TPAMI.2022.3225816.)
  • 2022.09.09 Upload supplementary material, which includes comparison details. see Supplementary_Material.pdf
  • 2022.06.16 Source codes will be released soon to the public after the approval from the funding agency. Now We make the testing results, testing conditions, pretrained models, and other relevant materials publicly accessible.
  • 2022.06.16 We simplify the implementation and reduce the computational complexity significantly. (e.g., almost 6∼8×). At the same time, we slightly adjust model parameters and achieve better performance on sparse LiDAR point clouds.
  • 2022.01.13 We participate in MPEG AI-3DGC.
  • 2021.11.23 We have posted the manuscript on arxiv (https://arxiv.org/abs/2111.10633).

Requirments

Usage

Testing

The following example commands are provided to illustrate the general testing process.

For dense point clouds:

# dense lossless
python test_ours_dense.py --mode='lossless' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--prefix='ours_8i'
# dense lossy
python test_ours_dense.py --mode='lossy' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--ckptdir_sr='../ckpts/dense_1stage/epoch_last.pth' \
--ckptdir_ae='../ckpts/dense_slne/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--psnr_resolution=1023 --prefix='ours_8i_lossy'

For sparse LiDAR point clouds:

# sparse lossless
python test_ours_sparse.py --mode='lossless' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_kitti_q1mm'
# sparse lossy
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti'
# sparse lossy w/ offset
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--ckptdir_offset='../ckpts/sparse_offset/epoch_last.pth' \
--offset --filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti_offset'

Please refer to ./test/README_test.md for other testing examples, including commands for testing other datasets such as Owlii and Ford. Detailed testing results are available in the ./results directory.

Training

We provide training script in the ./train directory. Please refer to ./train/README_train.md for training examples.

Authors

These files are provided by Nanjing University Vision Lab. Thanks for the help of Prof. Dandan Ding from Hangzhou Normal University, Prof. Zhu Li from University of Missouri at Kansas. Please contact us (wangjq@smail.nju.edu.cn and mazhan@nju.edu.cn) if you have any questions.

About

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Resources

Stars

100 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Abstract — This study develops a unified Point Cloud Geometry (PCG) compression method through the processing of multiscale sparse tensor-based voxelized PCG. We call this compression method SparsePCGC. The proposed SparsePCGC is a low complexity solution because it only performs the convolutions on sparsely-distributed Most-Probable Positively-Occupied Voxels (MP-POV). The multiscale representation also allows us to compress scale-wise MP-POVs by exploiting cross-scale and same-scale correlations extensively and flexibly. The overall compression efficiency highly depends on the accuracy of estimated occupancy probability for each MP-POV. Thus, we first design the Sparse Convolution-based Neural Network (SparseCNN) which stacks sparse convolutions and voxel sampling to best characterize and embed spatial correlations. We then develop the SparseCNN-based Occupancy Probability Approximation (SOPA) model to estimate the occupancy probability either in a single-stage manner only using the cross-scale correlation, or in a multi-stage manner by exploiting stage-wise correlation among same-scale neighbors. Besides, we also suggest the SparseCNN based Local Neighborhood Embedding (SLNE) to aggregate local variations as spatial priors in feature attribute to improve the SOPA. Our unified approach not only shows state-of-the-art performance in both lossless and lossy compression modes across a variety of datasets including the dense object PCGs (8iVFB, Owlii, MUVB) and sparse LiDAR PCGs (KITTI, Ford) when compared with standardized MPEG G-PCC and other prevalent learning-based schemes, but also has low complexity which is attractive to practical applications.

News

  • 2024.12.06 We released the SparsePCGC source code, which also serves as a preview of Unicorn.
  • 2022.11.25 The paper was accpeted by TPAMI. (J. Wang, D. Ding, Z. Li, X. Feng, C. Cao and Z. Ma, "Sparse Tensor-Based Multiscale Representation for Point Cloud Geometry Compression," in IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, doi: 10.1109/TPAMI.2022.3225816.)
  • 2022.09.09 Upload supplementary material, which includes comparison details. see Supplementary_Material.pdf
  • 2022.06.16 Source codes will be released soon to the public after the approval from the funding agency. Now We make the testing results, testing conditions, pretrained models, and other relevant materials publicly accessible.
  • 2022.06.16 We simplify the implementation and reduce the computational complexity significantly. (e.g., almost 6∼8×). At the same time, we slightly adjust model parameters and achieve better performance on sparse LiDAR point clouds.
  • 2022.01.13 We participate in MPEG AI-3DGC.
  • 2021.11.23 We have posted the manuscript on arxiv (https://arxiv.org/abs/2111.10633).

Requirments

Usage

Testing

The following example commands are provided to illustrate the general testing process.

For dense point clouds:

# dense lossless
python test_ours_dense.py --mode='lossless' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--prefix='ours_8i'
# dense lossy
python test_ours_dense.py --mode='lossy' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--ckptdir_sr='../ckpts/dense_1stage/epoch_last.pth' \
--ckptdir_ae='../ckpts/dense_slne/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--psnr_resolution=1023 --prefix='ours_8i_lossy'

For sparse LiDAR point clouds:

# sparse lossless
python test_ours_sparse.py --mode='lossless' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_kitti_q1mm'
# sparse lossy
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti'
# sparse lossy w/ offset
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--ckptdir_offset='../ckpts/sparse_offset/epoch_last.pth' \
--offset --filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti_offset'

Please refer to ./test/README_test.md for other testing examples, including commands for testing other datasets such as Owlii and Ford. Detailed testing results are available in the ./results directory.

Training

We provide training script in the ./train directory. Please refer to ./train/README_train.md for training examples.

Authors

These files are provided by Nanjing University Vision Lab. Thanks for the help of Prof. Dandan Ding from Hangzhou Normal University, Prof. Zhu Li from University of Missouri at Kansas. Please contact us (wangjq@smail.nju.edu.cn and mazhan@nju.edu.cn) if you have any questions.

About

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Resources

Stars

100 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Abstract — This study develops a unified Point Cloud Geometry (PCG) compression method through the processing of multiscale sparse tensor-based voxelized PCG. We call this compression method SparsePCGC. The proposed SparsePCGC is a low complexity solution because it only performs the convolutions on sparsely-distributed Most-Probable Positively-Occupied Voxels (MP-POV). The multiscale representation also allows us to compress scale-wise MP-POVs by exploiting cross-scale and same-scale correlations extensively and flexibly. The overall compression efficiency highly depends on the accuracy of estimated occupancy probability for each MP-POV. Thus, we first design the Sparse Convolution-based Neural Network (SparseCNN) which stacks sparse convolutions and voxel sampling to best characterize and embed spatial correlations. We then develop the SparseCNN-based Occupancy Probability Approximation (SOPA) model to estimate the occupancy probability either in a single-stage manner only using the cross-scale correlation, or in a multi-stage manner by exploiting stage-wise correlation among same-scale neighbors. Besides, we also suggest the SparseCNN based Local Neighborhood Embedding (SLNE) to aggregate local variations as spatial priors in feature attribute to improve the SOPA. Our unified approach not only shows state-of-the-art performance in both lossless and lossy compression modes across a variety of datasets including the dense object PCGs (8iVFB, Owlii, MUVB) and sparse LiDAR PCGs (KITTI, Ford) when compared with standardized MPEG G-PCC and other prevalent learning-based schemes, but also has low complexity which is attractive to practical applications.

News

  • 2024.12.06 We released the SparsePCGC source code, which also serves as a preview of Unicorn.
  • 2022.11.25 The paper was accpeted by TPAMI. (J. Wang, D. Ding, Z. Li, X. Feng, C. Cao and Z. Ma, "Sparse Tensor-Based Multiscale Representation for Point Cloud Geometry Compression," in IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, doi: 10.1109/TPAMI.2022.3225816.)
  • 2022.09.09 Upload supplementary material, which includes comparison details. see Supplementary_Material.pdf
  • 2022.06.16 Source codes will be released soon to the public after the approval from the funding agency. Now We make the testing results, testing conditions, pretrained models, and other relevant materials publicly accessible.
  • 2022.06.16 We simplify the implementation and reduce the computational complexity significantly. (e.g., almost 6∼8×). At the same time, we slightly adjust model parameters and achieve better performance on sparse LiDAR point clouds.
  • 2022.01.13 We participate in MPEG AI-3DGC.
  • 2021.11.23 We have posted the manuscript on arxiv (https://arxiv.org/abs/2111.10633).

Requirments

Usage

Testing

The following example commands are provided to illustrate the general testing process.

For dense point clouds:

# dense lossless
python test_ours_dense.py --mode='lossless' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--prefix='ours_8i'
# dense lossy
python test_ours_dense.py --mode='lossy' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--ckptdir_sr='../ckpts/dense_1stage/epoch_last.pth' \
--ckptdir_ae='../ckpts/dense_slne/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--psnr_resolution=1023 --prefix='ours_8i_lossy'

For sparse LiDAR point clouds:

# sparse lossless
python test_ours_sparse.py --mode='lossless' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_kitti_q1mm'
# sparse lossy
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti'
# sparse lossy w/ offset
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--ckptdir_offset='../ckpts/sparse_offset/epoch_last.pth' \
--offset --filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti_offset'

Please refer to ./test/README_test.md for other testing examples, including commands for testing other datasets such as Owlii and Ford. Detailed testing results are available in the ./results directory.

Training

We provide training script in the ./train directory. Please refer to ./train/README_train.md for training examples.

Authors

These files are provided by Nanjing University Vision Lab. Thanks for the help of Prof. Dandan Ding from Hangzhou Normal University, Prof. Zhu Li from University of Missouri at Kansas. Please contact us (wangjq@smail.nju.edu.cn and mazhan@nju.edu.cn) if you have any questions.

About

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Resources

Stars

100 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Abstract — This study develops a unified Point Cloud Geometry (PCG) compression method through the processing of multiscale sparse tensor-based voxelized PCG. We call this compression method SparsePCGC. The proposed SparsePCGC is a low complexity solution because it only performs the convolutions on sparsely-distributed Most-Probable Positively-Occupied Voxels (MP-POV). The multiscale representation also allows us to compress scale-wise MP-POVs by exploiting cross-scale and same-scale correlations extensively and flexibly. The overall compression efficiency highly depends on the accuracy of estimated occupancy probability for each MP-POV. Thus, we first design the Sparse Convolution-based Neural Network (SparseCNN) which stacks sparse convolutions and voxel sampling to best characterize and embed spatial correlations. We then develop the SparseCNN-based Occupancy Probability Approximation (SOPA) model to estimate the occupancy probability either in a single-stage manner only using the cross-scale correlation, or in a multi-stage manner by exploiting stage-wise correlation among same-scale neighbors. Besides, we also suggest the SparseCNN based Local Neighborhood Embedding (SLNE) to aggregate local variations as spatial priors in feature attribute to improve the SOPA. Our unified approach not only shows state-of-the-art performance in both lossless and lossy compression modes across a variety of datasets including the dense object PCGs (8iVFB, Owlii, MUVB) and sparse LiDAR PCGs (KITTI, Ford) when compared with standardized MPEG G-PCC and other prevalent learning-based schemes, but also has low complexity which is attractive to practical applications.

News

  • 2024.12.06 We released the SparsePCGC source code, which also serves as a preview of Unicorn.
  • 2022.11.25 The paper was accpeted by TPAMI. (J. Wang, D. Ding, Z. Li, X. Feng, C. Cao and Z. Ma, "Sparse Tensor-Based Multiscale Representation for Point Cloud Geometry Compression," in IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, doi: 10.1109/TPAMI.2022.3225816.)
  • 2022.09.09 Upload supplementary material, which includes comparison details. see Supplementary_Material.pdf
  • 2022.06.16 Source codes will be released soon to the public after the approval from the funding agency. Now We make the testing results, testing conditions, pretrained models, and other relevant materials publicly accessible.
  • 2022.06.16 We simplify the implementation and reduce the computational complexity significantly. (e.g., almost 6∼8×). At the same time, we slightly adjust model parameters and achieve better performance on sparse LiDAR point clouds.
  • 2022.01.13 We participate in MPEG AI-3DGC.
  • 2021.11.23 We have posted the manuscript on arxiv (https://arxiv.org/abs/2111.10633).

Requirments

Usage

Testing

The following example commands are provided to illustrate the general testing process.

For dense point clouds:

# dense lossless
python test_ours_dense.py --mode='lossless' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--prefix='ours_8i'
# dense lossy
python test_ours_dense.py --mode='lossy' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--ckptdir_sr='../ckpts/dense_1stage/epoch_last.pth' \
--ckptdir_ae='../ckpts/dense_slne/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--psnr_resolution=1023 --prefix='ours_8i_lossy'

For sparse LiDAR point clouds:

# sparse lossless
python test_ours_sparse.py --mode='lossless' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_kitti_q1mm'
# sparse lossy
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti'
# sparse lossy w/ offset
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--ckptdir_offset='../ckpts/sparse_offset/epoch_last.pth' \
--offset --filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti_offset'

Please refer to ./test/README_test.md for other testing examples, including commands for testing other datasets such as Owlii and Ford. Detailed testing results are available in the ./results directory.

Training

We provide training script in the ./train directory. Please refer to ./train/README_train.md for training examples.

Authors

These files are provided by Nanjing University Vision Lab. Thanks for the help of Prof. Dandan Ding from Hangzhou Normal University, Prof. Zhu Li from University of Missouri at Kansas. Please contact us (wangjq@smail.nju.edu.cn and mazhan@nju.edu.cn) if you have any questions.

About

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Resources

Stars

100 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Abstract — This study develops a unified Point Cloud Geometry (PCG) compression method through the processing of multiscale sparse tensor-based voxelized PCG. We call this compression method SparsePCGC. The proposed SparsePCGC is a low complexity solution because it only performs the convolutions on sparsely-distributed Most-Probable Positively-Occupied Voxels (MP-POV). The multiscale representation also allows us to compress scale-wise MP-POVs by exploiting cross-scale and same-scale correlations extensively and flexibly. The overall compression efficiency highly depends on the accuracy of estimated occupancy probability for each MP-POV. Thus, we first design the Sparse Convolution-based Neural Network (SparseCNN) which stacks sparse convolutions and voxel sampling to best characterize and embed spatial correlations. We then develop the SparseCNN-based Occupancy Probability Approximation (SOPA) model to estimate the occupancy probability either in a single-stage manner only using the cross-scale correlation, or in a multi-stage manner by exploiting stage-wise correlation among same-scale neighbors. Besides, we also suggest the SparseCNN based Local Neighborhood Embedding (SLNE) to aggregate local variations as spatial priors in feature attribute to improve the SOPA. Our unified approach not only shows state-of-the-art performance in both lossless and lossy compression modes across a variety of datasets including the dense object PCGs (8iVFB, Owlii, MUVB) and sparse LiDAR PCGs (KITTI, Ford) when compared with standardized MPEG G-PCC and other prevalent learning-based schemes, but also has low complexity which is attractive to practical applications.

News

  • 2024.12.06 We released the SparsePCGC source code, which also serves as a preview of Unicorn.
  • 2022.11.25 The paper was accpeted by TPAMI. (J. Wang, D. Ding, Z. Li, X. Feng, C. Cao and Z. Ma, "Sparse Tensor-Based Multiscale Representation for Point Cloud Geometry Compression," in IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, doi: 10.1109/TPAMI.2022.3225816.)
  • 2022.09.09 Upload supplementary material, which includes comparison details. see Supplementary_Material.pdf
  • 2022.06.16 Source codes will be released soon to the public after the approval from the funding agency. Now We make the testing results, testing conditions, pretrained models, and other relevant materials publicly accessible.
  • 2022.06.16 We simplify the implementation and reduce the computational complexity significantly. (e.g., almost 6∼8×). At the same time, we slightly adjust model parameters and achieve better performance on sparse LiDAR point clouds.
  • 2022.01.13 We participate in MPEG AI-3DGC.
  • 2021.11.23 We have posted the manuscript on arxiv (https://arxiv.org/abs/2111.10633).

Requirments

Usage

Testing

The following example commands are provided to illustrate the general testing process.

For dense point clouds:

# dense lossless
python test_ours_dense.py --mode='lossless' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--prefix='ours_8i'
# dense lossy
python test_ours_dense.py --mode='lossy' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--ckptdir_sr='../ckpts/dense_1stage/epoch_last.pth' \
--ckptdir_ae='../ckpts/dense_slne/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--psnr_resolution=1023 --prefix='ours_8i_lossy'

For sparse LiDAR point clouds:

# sparse lossless
python test_ours_sparse.py --mode='lossless' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_kitti_q1mm'
# sparse lossy
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti'
# sparse lossy w/ offset
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--ckptdir_offset='../ckpts/sparse_offset/epoch_last.pth' \
--offset --filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti_offset'

Please refer to ./test/README_test.md for other testing examples, including commands for testing other datasets such as Owlii and Ford. Detailed testing results are available in the ./results directory.

Training

We provide training script in the ./train directory. Please refer to ./train/README_train.md for training examples.

Authors

These files are provided by Nanjing University Vision Lab. Thanks for the help of Prof. Dandan Ding from Hangzhou Normal University, Prof. Zhu Li from University of Missouri at Kansas. Please contact us (wangjq@smail.nju.edu.cn and mazhan@nju.edu.cn) if you have any questions.

About

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Resources

Stars

100 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Abstract — This study develops a unified Point Cloud Geometry (PCG) compression method through the processing of multiscale sparse tensor-based voxelized PCG. We call this compression method SparsePCGC. The proposed SparsePCGC is a low complexity solution because it only performs the convolutions on sparsely-distributed Most-Probable Positively-Occupied Voxels (MP-POV). The multiscale representation also allows us to compress scale-wise MP-POVs by exploiting cross-scale and same-scale correlations extensively and flexibly. The overall compression efficiency highly depends on the accuracy of estimated occupancy probability for each MP-POV. Thus, we first design the Sparse Convolution-based Neural Network (SparseCNN) which stacks sparse convolutions and voxel sampling to best characterize and embed spatial correlations. We then develop the SparseCNN-based Occupancy Probability Approximation (SOPA) model to estimate the occupancy probability either in a single-stage manner only using the cross-scale correlation, or in a multi-stage manner by exploiting stage-wise correlation among same-scale neighbors. Besides, we also suggest the SparseCNN based Local Neighborhood Embedding (SLNE) to aggregate local variations as spatial priors in feature attribute to improve the SOPA. Our unified approach not only shows state-of-the-art performance in both lossless and lossy compression modes across a variety of datasets including the dense object PCGs (8iVFB, Owlii, MUVB) and sparse LiDAR PCGs (KITTI, Ford) when compared with standardized MPEG G-PCC and other prevalent learning-based schemes, but also has low complexity which is attractive to practical applications.

News

  • 2024.12.06 We released the SparsePCGC source code, which also serves as a preview of Unicorn.
  • 2022.11.25 The paper was accpeted by TPAMI. (J. Wang, D. Ding, Z. Li, X. Feng, C. Cao and Z. Ma, "Sparse Tensor-Based Multiscale Representation for Point Cloud Geometry Compression," in IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, doi: 10.1109/TPAMI.2022.3225816.)
  • 2022.09.09 Upload supplementary material, which includes comparison details. see Supplementary_Material.pdf
  • 2022.06.16 Source codes will be released soon to the public after the approval from the funding agency. Now We make the testing results, testing conditions, pretrained models, and other relevant materials publicly accessible.
  • 2022.06.16 We simplify the implementation and reduce the computational complexity significantly. (e.g., almost 6∼8×). At the same time, we slightly adjust model parameters and achieve better performance on sparse LiDAR point clouds.
  • 2022.01.13 We participate in MPEG AI-3DGC.
  • 2021.11.23 We have posted the manuscript on arxiv (https://arxiv.org/abs/2111.10633).

Requirments

Usage

Testing

The following example commands are provided to illustrate the general testing process.

For dense point clouds:

# dense lossless
python test_ours_dense.py --mode='lossless' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--prefix='ours_8i'
# dense lossy
python test_ours_dense.py --mode='lossy' \
--ckptdir='../ckpts/dense/epoch_last.pth' \
--ckptdir_sr='../ckpts/dense_1stage/epoch_last.pth' \
--ckptdir_ae='../ckpts/dense_slne/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/8iVFB/' \
--psnr_resolution=1023 --prefix='ours_8i_lossy'

For sparse LiDAR point clouds:

# sparse lossless
python test_ours_sparse.py --mode='lossless' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_kitti_q1mm'
# sparse lossy
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti'
# sparse lossy w/ offset
python test_ours_sparse.py --mode='lossy_gpcc' \
--ckptdir_low='../ckpts/sparse_low/epoch_last.pth' \
--ckptdir_high='../ckpts/sparse_high/epoch_last.pth' \
--ckptdir_offset='../ckpts/sparse_offset/epoch_last.pth' \
--offset --filedir='../../dataset/testdata/testdata_sparsepcgc/KITTI_q1mm/' \
--voxel_size=1 --prefix='ours_lossy_kitti_offset'

Please refer to ./test/README_test.md for other testing examples, including commands for testing other datasets such as Owlii and Ford. Detailed testing results are available in the ./results directory.

Training

We provide training script in the ./train directory. Please refer to ./train/README_train.md for training examples.

Authors

These files are provided by Nanjing University Vision Lab. Thanks for the help of Prof. Dandan Ding from Hangzhou Normal University, Prof. Zhu Li from University of Missouri at Kansas. Please contact us (wangjq@smail.nju.edu.cn and mazhan@nju.edu.cn) if you have any questions.

About

Sparse Tensor-based Multiscale Representation for Point Cloud Geometry Compression

Resources

Stars

100 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors

Languages