Repository files navigation

P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

main figure

Introduction

This is an official release of Position-Guided Point Cloud Panoptic Segmentation Transformer.

Abstract

DEtection TRansformer (DETR) started a trend that uses a group of learnable queries for unified visual perception. This work begins by applying this appealing paradigm to LiDAR-based point cloud segmentation and obtains a simple yet effective baseline. Although the naive adaptation obtains fair results, the instance segmentation performance is noticeably inferior to previous works. By diving into the details, we observe that instances in the sparse point clouds are relatively small to the whole scene and often have similar geometry but lack distinctive appearance for segmentation, which are rare in the image domain. Considering instances in 3D are more featured by their positional information, we emphasize their roles during the modeling and design a robust Mixed-parameterized Positional Embedding (MPE) to guide the segmentation process. It is embedded into backbone features and later guides the mask prediction and query update processes iteratively, leading to Position-Aware Segmentation (PA-Seg) and Masked Focal Attention (MFA). All these designs impel the queries to attend to specific regions and identify various instances. The method, named Position-guided Point cloud Panoptic segmentation transFormer (P3Former), outperforms previous state-of-the-art methods by 3.4% and 1.2% PQ on SemanticKITTI and nuScenes benchmark, respectively. The source code and models are available at https://github.com/SmartBot-PJLab/P3Former.

Results

SemanticKITTI test

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
65.367.874.986.667.463.7modelconfig

SemanticKITTI validation

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
62.666.272.476.269.457.7modelconfig
  • Pretraining a backbone is helpful to stablize the the training process and get slightly better results. You can pretrain a model with config.

Installation

conda create -n p3former python==3.8 -y
conda activate p3former
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/
whl/cu111/torch_stable.html
pip install openmim
mim install mmengine==0.7.4
mim install mmcv==2.0.0rc4
mim install mmdet==3.0.0
mim install mmdet3d==1.1.0
wget https://data.pyg.org/whl/torch-1.10.0%2Bcu113/torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl
pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl

Usage

Data preparation

Semantickitti

data/
├── semantickitti
│ ├── sequences
│ │ ├── 00
│ │ | ├── labels
│ │ | ├── velodyne
│ │ ├── 01
│ │ ├── ...
│ ├── semantickitti_infos_train.pkl
│ ├── semantickitti_infos_val.pkl
│ ├── semantickitti_infos_test.pkl

You can generate *.pkl by excuting

python tools/create_data.py semantickitti --root-path data/semantickitti --out-dir data/semantickitti --extra-tag semantickitti

Training and testing

# train
sh dist_train.sh $CONFIG$GPUS# val
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS# test
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS

Citation

@article{xiao2023p3former,
title={Position-Guided Point Cloud Panoptic Segmentation Transformer},
author={Xiao, Zeqi and Zhang, Wenwei and Wang, Tai and Chen Change Loy and Lin, Dahua and Pang, Jiangmiao},
journal={arXiv preprint},
year={2023}
}

Acknowledgements

We thank the contributors of MMDetection3D and the authors of Cylinder3D and K-Net for their great work.

About

[IJCV 2024] P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

Topics

Resources

Stars

90 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

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

P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

main figure

Introduction

This is an official release of Position-Guided Point Cloud Panoptic Segmentation Transformer.

Abstract

DEtection TRansformer (DETR) started a trend that uses a group of learnable queries for unified visual perception. This work begins by applying this appealing paradigm to LiDAR-based point cloud segmentation and obtains a simple yet effective baseline. Although the naive adaptation obtains fair results, the instance segmentation performance is noticeably inferior to previous works. By diving into the details, we observe that instances in the sparse point clouds are relatively small to the whole scene and often have similar geometry but lack distinctive appearance for segmentation, which are rare in the image domain. Considering instances in 3D are more featured by their positional information, we emphasize their roles during the modeling and design a robust Mixed-parameterized Positional Embedding (MPE) to guide the segmentation process. It is embedded into backbone features and later guides the mask prediction and query update processes iteratively, leading to Position-Aware Segmentation (PA-Seg) and Masked Focal Attention (MFA). All these designs impel the queries to attend to specific regions and identify various instances. The method, named Position-guided Point cloud Panoptic segmentation transFormer (P3Former), outperforms previous state-of-the-art methods by 3.4% and 1.2% PQ on SemanticKITTI and nuScenes benchmark, respectively. The source code and models are available at https://github.com/SmartBot-PJLab/P3Former.

Results

SemanticKITTI test

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
65.367.874.986.667.463.7modelconfig

SemanticKITTI validation

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
62.666.272.476.269.457.7modelconfig
  • Pretraining a backbone is helpful to stablize the the training process and get slightly better results. You can pretrain a model with config.

Installation

conda create -n p3former python==3.8 -y
conda activate p3former
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/
whl/cu111/torch_stable.html
pip install openmim
mim install mmengine==0.7.4
mim install mmcv==2.0.0rc4
mim install mmdet==3.0.0
mim install mmdet3d==1.1.0
wget https://data.pyg.org/whl/torch-1.10.0%2Bcu113/torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl
pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl

Usage

Data preparation

Semantickitti

data/
├── semantickitti
│ ├── sequences
│ │ ├── 00
│ │ | ├── labels
│ │ | ├── velodyne
│ │ ├── 01
│ │ ├── ...
│ ├── semantickitti_infos_train.pkl
│ ├── semantickitti_infos_val.pkl
│ ├── semantickitti_infos_test.pkl

You can generate *.pkl by excuting

python tools/create_data.py semantickitti --root-path data/semantickitti --out-dir data/semantickitti --extra-tag semantickitti

Training and testing

# train
sh dist_train.sh $CONFIG$GPUS# val
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS# test
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS

Citation

@article{xiao2023p3former,
title={Position-Guided Point Cloud Panoptic Segmentation Transformer},
author={Xiao, Zeqi and Zhang, Wenwei and Wang, Tai and Chen Change Loy and Lin, Dahua and Pang, Jiangmiao},
journal={arXiv preprint},
year={2023}
}

Acknowledgements

We thank the contributors of MMDetection3D and the authors of Cylinder3D and K-Net for their great work.

About

[IJCV 2024] P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

Topics

Resources

Stars

90 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

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

P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

main figure

Introduction

This is an official release of Position-Guided Point Cloud Panoptic Segmentation Transformer.

Abstract

DEtection TRansformer (DETR) started a trend that uses a group of learnable queries for unified visual perception. This work begins by applying this appealing paradigm to LiDAR-based point cloud segmentation and obtains a simple yet effective baseline. Although the naive adaptation obtains fair results, the instance segmentation performance is noticeably inferior to previous works. By diving into the details, we observe that instances in the sparse point clouds are relatively small to the whole scene and often have similar geometry but lack distinctive appearance for segmentation, which are rare in the image domain. Considering instances in 3D are more featured by their positional information, we emphasize their roles during the modeling and design a robust Mixed-parameterized Positional Embedding (MPE) to guide the segmentation process. It is embedded into backbone features and later guides the mask prediction and query update processes iteratively, leading to Position-Aware Segmentation (PA-Seg) and Masked Focal Attention (MFA). All these designs impel the queries to attend to specific regions and identify various instances. The method, named Position-guided Point cloud Panoptic segmentation transFormer (P3Former), outperforms previous state-of-the-art methods by 3.4% and 1.2% PQ on SemanticKITTI and nuScenes benchmark, respectively. The source code and models are available at https://github.com/SmartBot-PJLab/P3Former.

Results

SemanticKITTI test

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
65.367.874.986.667.463.7modelconfig

SemanticKITTI validation

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
62.666.272.476.269.457.7modelconfig
  • Pretraining a backbone is helpful to stablize the the training process and get slightly better results. You can pretrain a model with config.

Installation

conda create -n p3former python==3.8 -y
conda activate p3former
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/
whl/cu111/torch_stable.html
pip install openmim
mim install mmengine==0.7.4
mim install mmcv==2.0.0rc4
mim install mmdet==3.0.0
mim install mmdet3d==1.1.0
wget https://data.pyg.org/whl/torch-1.10.0%2Bcu113/torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl
pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl

Usage

Data preparation

Semantickitti

data/
├── semantickitti
│ ├── sequences
│ │ ├── 00
│ │ | ├── labels
│ │ | ├── velodyne
│ │ ├── 01
│ │ ├── ...
│ ├── semantickitti_infos_train.pkl
│ ├── semantickitti_infos_val.pkl
│ ├── semantickitti_infos_test.pkl

You can generate *.pkl by excuting

python tools/create_data.py semantickitti --root-path data/semantickitti --out-dir data/semantickitti --extra-tag semantickitti

Training and testing

# train
sh dist_train.sh $CONFIG$GPUS# val
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS# test
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS

Citation

@article{xiao2023p3former,
title={Position-Guided Point Cloud Panoptic Segmentation Transformer},
author={Xiao, Zeqi and Zhang, Wenwei and Wang, Tai and Chen Change Loy and Lin, Dahua and Pang, Jiangmiao},
journal={arXiv preprint},
year={2023}
}

Acknowledgements

We thank the contributors of MMDetection3D and the authors of Cylinder3D and K-Net for their great work.

About

[IJCV 2024] P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

Topics

Resources

Stars

90 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

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

P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

main figure

Introduction

This is an official release of Position-Guided Point Cloud Panoptic Segmentation Transformer.

Abstract

DEtection TRansformer (DETR) started a trend that uses a group of learnable queries for unified visual perception. This work begins by applying this appealing paradigm to LiDAR-based point cloud segmentation and obtains a simple yet effective baseline. Although the naive adaptation obtains fair results, the instance segmentation performance is noticeably inferior to previous works. By diving into the details, we observe that instances in the sparse point clouds are relatively small to the whole scene and often have similar geometry but lack distinctive appearance for segmentation, which are rare in the image domain. Considering instances in 3D are more featured by their positional information, we emphasize their roles during the modeling and design a robust Mixed-parameterized Positional Embedding (MPE) to guide the segmentation process. It is embedded into backbone features and later guides the mask prediction and query update processes iteratively, leading to Position-Aware Segmentation (PA-Seg) and Masked Focal Attention (MFA). All these designs impel the queries to attend to specific regions and identify various instances. The method, named Position-guided Point cloud Panoptic segmentation transFormer (P3Former), outperforms previous state-of-the-art methods by 3.4% and 1.2% PQ on SemanticKITTI and nuScenes benchmark, respectively. The source code and models are available at https://github.com/SmartBot-PJLab/P3Former.

Results

SemanticKITTI test

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
65.367.874.986.667.463.7modelconfig

SemanticKITTI validation

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
62.666.272.476.269.457.7modelconfig
  • Pretraining a backbone is helpful to stablize the the training process and get slightly better results. You can pretrain a model with config.

Installation

conda create -n p3former python==3.8 -y
conda activate p3former
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/
whl/cu111/torch_stable.html
pip install openmim
mim install mmengine==0.7.4
mim install mmcv==2.0.0rc4
mim install mmdet==3.0.0
mim install mmdet3d==1.1.0
wget https://data.pyg.org/whl/torch-1.10.0%2Bcu113/torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl
pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl

Usage

Data preparation

Semantickitti

data/
├── semantickitti
│ ├── sequences
│ │ ├── 00
│ │ | ├── labels
│ │ | ├── velodyne
│ │ ├── 01
│ │ ├── ...
│ ├── semantickitti_infos_train.pkl
│ ├── semantickitti_infos_val.pkl
│ ├── semantickitti_infos_test.pkl

You can generate *.pkl by excuting

python tools/create_data.py semantickitti --root-path data/semantickitti --out-dir data/semantickitti --extra-tag semantickitti

Training and testing

# train
sh dist_train.sh $CONFIG$GPUS# val
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS# test
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS

Citation

@article{xiao2023p3former,
title={Position-Guided Point Cloud Panoptic Segmentation Transformer},
author={Xiao, Zeqi and Zhang, Wenwei and Wang, Tai and Chen Change Loy and Lin, Dahua and Pang, Jiangmiao},
journal={arXiv preprint},
year={2023}
}

Acknowledgements

We thank the contributors of MMDetection3D and the authors of Cylinder3D and K-Net for their great work.

About

[IJCV 2024] P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

Topics

Resources

Stars

90 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

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

P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

main figure

Introduction

This is an official release of Position-Guided Point Cloud Panoptic Segmentation Transformer.

Abstract

DEtection TRansformer (DETR) started a trend that uses a group of learnable queries for unified visual perception. This work begins by applying this appealing paradigm to LiDAR-based point cloud segmentation and obtains a simple yet effective baseline. Although the naive adaptation obtains fair results, the instance segmentation performance is noticeably inferior to previous works. By diving into the details, we observe that instances in the sparse point clouds are relatively small to the whole scene and often have similar geometry but lack distinctive appearance for segmentation, which are rare in the image domain. Considering instances in 3D are more featured by their positional information, we emphasize their roles during the modeling and design a robust Mixed-parameterized Positional Embedding (MPE) to guide the segmentation process. It is embedded into backbone features and later guides the mask prediction and query update processes iteratively, leading to Position-Aware Segmentation (PA-Seg) and Masked Focal Attention (MFA). All these designs impel the queries to attend to specific regions and identify various instances. The method, named Position-guided Point cloud Panoptic segmentation transFormer (P3Former), outperforms previous state-of-the-art methods by 3.4% and 1.2% PQ on SemanticKITTI and nuScenes benchmark, respectively. The source code and models are available at https://github.com/SmartBot-PJLab/P3Former.

Results

SemanticKITTI test

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
65.367.874.986.667.463.7modelconfig

SemanticKITTI validation

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
62.666.272.476.269.457.7modelconfig
  • Pretraining a backbone is helpful to stablize the the training process and get slightly better results. You can pretrain a model with config.

Installation

conda create -n p3former python==3.8 -y
conda activate p3former
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/
whl/cu111/torch_stable.html
pip install openmim
mim install mmengine==0.7.4
mim install mmcv==2.0.0rc4
mim install mmdet==3.0.0
mim install mmdet3d==1.1.0
wget https://data.pyg.org/whl/torch-1.10.0%2Bcu113/torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl
pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl

Usage

Data preparation

Semantickitti

data/
├── semantickitti
│ ├── sequences
│ │ ├── 00
│ │ | ├── labels
│ │ | ├── velodyne
│ │ ├── 01
│ │ ├── ...
│ ├── semantickitti_infos_train.pkl
│ ├── semantickitti_infos_val.pkl
│ ├── semantickitti_infos_test.pkl

You can generate *.pkl by excuting

python tools/create_data.py semantickitti --root-path data/semantickitti --out-dir data/semantickitti --extra-tag semantickitti

Training and testing

# train
sh dist_train.sh $CONFIG$GPUS# val
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS# test
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS

Citation

@article{xiao2023p3former,
title={Position-Guided Point Cloud Panoptic Segmentation Transformer},
author={Xiao, Zeqi and Zhang, Wenwei and Wang, Tai and Chen Change Loy and Lin, Dahua and Pang, Jiangmiao},
journal={arXiv preprint},
year={2023}
}

Acknowledgements

We thank the contributors of MMDetection3D and the authors of Cylinder3D and K-Net for their great work.

About

[IJCV 2024] P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

Topics

Resources

Stars

90 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

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

P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

main figure

Introduction

This is an official release of Position-Guided Point Cloud Panoptic Segmentation Transformer.

Abstract

DEtection TRansformer (DETR) started a trend that uses a group of learnable queries for unified visual perception. This work begins by applying this appealing paradigm to LiDAR-based point cloud segmentation and obtains a simple yet effective baseline. Although the naive adaptation obtains fair results, the instance segmentation performance is noticeably inferior to previous works. By diving into the details, we observe that instances in the sparse point clouds are relatively small to the whole scene and often have similar geometry but lack distinctive appearance for segmentation, which are rare in the image domain. Considering instances in 3D are more featured by their positional information, we emphasize their roles during the modeling and design a robust Mixed-parameterized Positional Embedding (MPE) to guide the segmentation process. It is embedded into backbone features and later guides the mask prediction and query update processes iteratively, leading to Position-Aware Segmentation (PA-Seg) and Masked Focal Attention (MFA). All these designs impel the queries to attend to specific regions and identify various instances. The method, named Position-guided Point cloud Panoptic segmentation transFormer (P3Former), outperforms previous state-of-the-art methods by 3.4% and 1.2% PQ on SemanticKITTI and nuScenes benchmark, respectively. The source code and models are available at https://github.com/SmartBot-PJLab/P3Former.

Results

SemanticKITTI test

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
65.367.874.986.667.463.7modelconfig

SemanticKITTI validation

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
62.666.272.476.269.457.7modelconfig
  • Pretraining a backbone is helpful to stablize the the training process and get slightly better results. You can pretrain a model with config.

Installation

conda create -n p3former python==3.8 -y
conda activate p3former
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/
whl/cu111/torch_stable.html
pip install openmim
mim install mmengine==0.7.4
mim install mmcv==2.0.0rc4
mim install mmdet==3.0.0
mim install mmdet3d==1.1.0
wget https://data.pyg.org/whl/torch-1.10.0%2Bcu113/torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl
pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl

Usage

Data preparation

Semantickitti

data/
├── semantickitti
│ ├── sequences
│ │ ├── 00
│ │ | ├── labels
│ │ | ├── velodyne
│ │ ├── 01
│ │ ├── ...
│ ├── semantickitti_infos_train.pkl
│ ├── semantickitti_infos_val.pkl
│ ├── semantickitti_infos_test.pkl

You can generate *.pkl by excuting

python tools/create_data.py semantickitti --root-path data/semantickitti --out-dir data/semantickitti --extra-tag semantickitti

Training and testing

# train
sh dist_train.sh $CONFIG$GPUS# val
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS# test
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS

Citation

@article{xiao2023p3former,
title={Position-Guided Point Cloud Panoptic Segmentation Transformer},
author={Xiao, Zeqi and Zhang, Wenwei and Wang, Tai and Chen Change Loy and Lin, Dahua and Pang, Jiangmiao},
journal={arXiv preprint},
year={2023}
}

Acknowledgements

We thank the contributors of MMDetection3D and the authors of Cylinder3D and K-Net for their great work.

About

[IJCV 2024] P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

Topics

Resources

Stars

90 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

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

P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

main figure

Introduction

This is an official release of Position-Guided Point Cloud Panoptic Segmentation Transformer.

Abstract

DEtection TRansformer (DETR) started a trend that uses a group of learnable queries for unified visual perception. This work begins by applying this appealing paradigm to LiDAR-based point cloud segmentation and obtains a simple yet effective baseline. Although the naive adaptation obtains fair results, the instance segmentation performance is noticeably inferior to previous works. By diving into the details, we observe that instances in the sparse point clouds are relatively small to the whole scene and often have similar geometry but lack distinctive appearance for segmentation, which are rare in the image domain. Considering instances in 3D are more featured by their positional information, we emphasize their roles during the modeling and design a robust Mixed-parameterized Positional Embedding (MPE) to guide the segmentation process. It is embedded into backbone features and later guides the mask prediction and query update processes iteratively, leading to Position-Aware Segmentation (PA-Seg) and Masked Focal Attention (MFA). All these designs impel the queries to attend to specific regions and identify various instances. The method, named Position-guided Point cloud Panoptic segmentation transFormer (P3Former), outperforms previous state-of-the-art methods by 3.4% and 1.2% PQ on SemanticKITTI and nuScenes benchmark, respectively. The source code and models are available at https://github.com/SmartBot-PJLab/P3Former.

Results

SemanticKITTI test

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
65.367.874.986.667.463.7modelconfig

SemanticKITTI validation

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
62.666.272.476.269.457.7modelconfig
  • Pretraining a backbone is helpful to stablize the the training process and get slightly better results. You can pretrain a model with config.

Installation

conda create -n p3former python==3.8 -y
conda activate p3former
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/
whl/cu111/torch_stable.html
pip install openmim
mim install mmengine==0.7.4
mim install mmcv==2.0.0rc4
mim install mmdet==3.0.0
mim install mmdet3d==1.1.0
wget https://data.pyg.org/whl/torch-1.10.0%2Bcu113/torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl
pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl

Usage

Data preparation

Semantickitti

data/
├── semantickitti
│ ├── sequences
│ │ ├── 00
│ │ | ├── labels
│ │ | ├── velodyne
│ │ ├── 01
│ │ ├── ...
│ ├── semantickitti_infos_train.pkl
│ ├── semantickitti_infos_val.pkl
│ ├── semantickitti_infos_test.pkl

You can generate *.pkl by excuting

python tools/create_data.py semantickitti --root-path data/semantickitti --out-dir data/semantickitti --extra-tag semantickitti

Training and testing

# train
sh dist_train.sh $CONFIG$GPUS# val
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS# test
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS

Citation

@article{xiao2023p3former,
title={Position-Guided Point Cloud Panoptic Segmentation Transformer},
author={Xiao, Zeqi and Zhang, Wenwei and Wang, Tai and Chen Change Loy and Lin, Dahua and Pang, Jiangmiao},
journal={arXiv preprint},
year={2023}
}

Acknowledgements

We thank the contributors of MMDetection3D and the authors of Cylinder3D and K-Net for their great work.

About

[IJCV 2024] P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

Topics

Resources

Stars

90 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

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

P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

main figure

Introduction

This is an official release of Position-Guided Point Cloud Panoptic Segmentation Transformer.

Abstract

DEtection TRansformer (DETR) started a trend that uses a group of learnable queries for unified visual perception. This work begins by applying this appealing paradigm to LiDAR-based point cloud segmentation and obtains a simple yet effective baseline. Although the naive adaptation obtains fair results, the instance segmentation performance is noticeably inferior to previous works. By diving into the details, we observe that instances in the sparse point clouds are relatively small to the whole scene and often have similar geometry but lack distinctive appearance for segmentation, which are rare in the image domain. Considering instances in 3D are more featured by their positional information, we emphasize their roles during the modeling and design a robust Mixed-parameterized Positional Embedding (MPE) to guide the segmentation process. It is embedded into backbone features and later guides the mask prediction and query update processes iteratively, leading to Position-Aware Segmentation (PA-Seg) and Masked Focal Attention (MFA). All these designs impel the queries to attend to specific regions and identify various instances. The method, named Position-guided Point cloud Panoptic segmentation transFormer (P3Former), outperforms previous state-of-the-art methods by 3.4% and 1.2% PQ on SemanticKITTI and nuScenes benchmark, respectively. The source code and models are available at https://github.com/SmartBot-PJLab/P3Former.

Results

SemanticKITTI test

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
65.367.874.986.667.463.7modelconfig

SemanticKITTI validation

$\mathrm{PQ}$$\mathrm{PQ^{\dagger}}$$\mathrm{RQ}$$\mathrm{SQ}$$\mathrm{PQ}^{\mathrm{Th}}$$\mathrm{PQ}^{\mathrm{St}}$DownloadConfig
62.666.272.476.269.457.7modelconfig
  • Pretraining a backbone is helpful to stablize the the training process and get slightly better results. You can pretrain a model with config.

Installation

conda create -n p3former python==3.8 -y
conda activate p3former
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/
whl/cu111/torch_stable.html
pip install openmim
mim install mmengine==0.7.4
mim install mmcv==2.0.0rc4
mim install mmdet==3.0.0
mim install mmdet3d==1.1.0
wget https://data.pyg.org/whl/torch-1.10.0%2Bcu113/torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl
pip install torch_scatter-2.0.9-cp38-cp38-linux_x86_64.whl

Usage

Data preparation

Semantickitti

data/
├── semantickitti
│ ├── sequences
│ │ ├── 00
│ │ | ├── labels
│ │ | ├── velodyne
│ │ ├── 01
│ │ ├── ...
│ ├── semantickitti_infos_train.pkl
│ ├── semantickitti_infos_val.pkl
│ ├── semantickitti_infos_test.pkl

You can generate *.pkl by excuting

python tools/create_data.py semantickitti --root-path data/semantickitti --out-dir data/semantickitti --extra-tag semantickitti

Training and testing

# train
sh dist_train.sh $CONFIG$GPUS# val
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS# test
sh dist_test.sh $CONFIG$CHECKPOINT$GPUS

Citation

@article{xiao2023p3former,
title={Position-Guided Point Cloud Panoptic Segmentation Transformer},
author={Xiao, Zeqi and Zhang, Wenwei and Wang, Tai and Chen Change Loy and Lin, Dahua and Pang, Jiangmiao},
journal={arXiv preprint},
year={2023}
}

Acknowledgements

We thank the contributors of MMDetection3D and the authors of Cylinder3D and K-Net for their great work.

About

[IJCV 2024] P3Former: Position-Guided Point Cloud Panoptic Segmentation Transformer

Topics

Resources

Stars

90 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages