{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/paconv-position-adaptive-convolution-with","title":"PAConv: Position Adaptive Convolution with Dynamic Kernel Assembling on Point Clouds","arxiv_id":"2103.14635","date":"2021-03-26","proceeding":"CVPR 2021 1","authors":["Mutian Xu","Runyu Ding","Hengshuang Zhao","Xiaojuan Qi"],"abstract":"We introduce Position Adaptive Convolution (PAConv), a generic convolution operation for 3D point cloud processing. The key of PAConv is to construct the convolution kernel by dynamically assembling basic weight matrices stored in Weight Bank, where the coefficients of these weight matrices are self-adaptively learned from point positions through ScoreNet. In this way, the kernel is built in a data-driven manner, endowing PAConv with more flexibility than 2D convolutions to better handle the irregular and unordered point cloud data. Besides, the complexity of the learning process is reduced by combining weight matrices instead of brutally predicting kernels from point positions. Furthermore, different from the existing point convolution operators whose network architectures are often heavily engineered, we integrate our PAConv into classical MLP-based point cloud pipelines without changing network configurations. Even built on simple networks, our method still approaches or even surpasses the state-of-the-art models, and significantly improves baseline performance on both classification and segmentation tasks, yet with decent efficiency. Thorough ablation studies and visualizations are provided to understand PAConv. Code is released on https://github.com/CVMI-Lab/PAConv.","url_abs":"https://arxiv.org/abs/2103.14635v2","url_pdf":"https://arxiv.org/pdf/2103.14635v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"paconv-position-adaptive-convolution-with","repo_url":"https://github.com/CVMI-Lab/PAConv","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"paconv-position-adaptive-convolution-with","repo_url":"https://github.com/PaddlePaddle/Paddle3D","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"3d-point-cloud-classification","task_name":"3D Point Cloud Classification"},{"task_slug":"point-cloud-classification","task_name":"Point Cloud Classification"},{"task_slug":"point-cloud-segmentation","task_name":"Point Cloud Segmentation"},{"task_slug":null,"task_name":"Position"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-point-cloud-classification-on-intra","task":"3D Point Cloud Classification","dataset":"IntrA","model":"PAConv","rank_in_archive_order":3,"of":12,"metrics":{"F1 score (5-fold)":"0.906"},"uses_additional_data":false},{"leaderboard":"/sota/3d-point-cloud-classification-on-modelnet40","task":"3D Point Cloud Classification","dataset":"ModelNet40","model":"PAConv","rank_in_archive_order":36,"of":111,"metrics":{"Overall Accuracy":"93.9"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-classification-on-pointcloud-c","task":"Point Cloud Classification","dataset":"PointCloud-C","model":"PAConv","rank_in_archive_order":21,"of":24,"metrics":{"mean Corruption Error (mCE)":"1.104"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-segmentation-on-pointcloud-c","task":"Point Cloud Segmentation","dataset":"PointCloud-C","model":"PAConv","rank_in_archive_order":3,"of":11,"metrics":{"mean Corruption Error (mCE)":"0.927"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.14635","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.14635"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/CVMI-Lab/PAConv","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PaddlePaddle/Paddle3D","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":2,"ran_fixture":1,"ran_honours":1,"unverified":1},"by_repo_kind":{"official":{"samples":5,"ran":4,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"cf5db9eee12d79af","entry":"PAConv","repo":"CVMI-Lab/PAConv","repo_kind":"official","path":"scene_seg/model/pointnet2/paconv.py","file_url":"https://github.com/CVMI-Lab/PAConv/blob/HEAD/scene_seg/model/pointnet2/paconv.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cf5db9eee12d79af"}},{"code_sha256_prefix":"6adc61d2501faab9","entry":"ScoreNet","repo":"CVMI-Lab/PAConv","repo_kind":"official","path":"scene_seg/model/pointnet2/paconv.py","file_url":"https://github.com/CVMI-Lab/PAConv/blob/HEAD/scene_seg/model/pointnet2/paconv.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6adc61d2501faab9"}},{"code_sha256_prefix":"5e25a5682fab958e","entry":"assign_score","repo":"CVMI-Lab/PAConv","repo_kind":"official","path":"scene_seg/model/pointnet2/paconv.py","file_url":"https://github.com/CVMI-Lab/PAConv/blob/HEAD/scene_seg/model/pointnet2/paconv.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5e25a5682fab958e"}},{"code_sha256_prefix":"c314435661b0abc1","entry":"get_ed","repo":"CVMI-Lab/PAConv","repo_kind":"official","path":"scene_seg/model/pointnet2/paconv.py","file_url":"https://github.com/CVMI-Lab/PAConv/blob/HEAD/scene_seg/model/pointnet2/paconv.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c314435661b0abc1"}},{"code_sha256_prefix":"0db082ffd68d9baa","entry":"weight_init","repo":"CVMI-Lab/PAConv","repo_kind":"official","path":"scene_seg/model/pointnet2/paconv.py","file_url":"https://github.com/CVMI-Lab/PAConv/blob/HEAD/scene_seg/model/pointnet2/paconv.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0db082ffd68d9baa"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}