{"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/risurconv-rotation-invariant-surface","title":"RISurConv: Rotation Invariant Surface Attention-Augmented Convolutions for 3D Point Cloud Classification and Segmentation","arxiv_id":"2408.06110","date":"2024-08-12","proceeding":null,"authors":["Zhiyuan Zhang","Licheng Yang","Zhiyu Xiang"],"abstract":"Despite the progress on 3D point cloud deep learning, most prior works focus on learning features that are invariant to translation and point permutation, and very limited efforts have been devoted for rotation invariant property. Several recent studies achieve rotation invariance at the cost of lower accuracies. In this work, we close this gap by proposing a novel yet effective rotation invariant architecture for 3D point cloud classification and segmentation. Instead of traditional pointwise operations, we construct local triangle surfaces to capture more detailed surface structure, based on which we can extract highly expressive rotation invariant surface properties which are then integrated into an attention-augmented convolution operator named RISurConv to generate refined attention features via self-attention layers. Based on RISurConv we build an effective neural network for 3D point cloud analysis that is invariant to arbitrary rotations while maintaining high accuracy. We verify the performance on various benchmarks with supreme results obtained surpassing the previous state-of-the-art by a large margin. We achieve an overall accuracy of 96.0% (+4.7%) on ModelNet40, 93.1% (+12.8%) on ScanObjectNN, and class accuracies of 91.5% (+3.6%), 82.7% (+5.1%), and 78.5% (+9.2%) on the three categories of the FG3D dataset for the fine-grained classification task. Additionally, we achieve 81.5% (+1.0%) mIoU on ShapeNet for the segmentation task. Code is available here: https://github.com/cszyzhang/RISurConv","url_abs":"https://arxiv.org/abs/2408.06110v1","url_pdf":"https://arxiv.org/pdf/2408.06110v1.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":"risurconv-rotation-invariant-surface","repo_url":"https://github.com/cszyzhang/RISurConv","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"3d-point-cloud-classification","task_name":"3D Point Cloud Classification"},{"task_slug":"point-cloud-classification","task_name":"Point Cloud Classification"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-augmented-convolution","method_name":"Attention-augmented Convolution"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"focus","method_name":"Focus"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2408.06110","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2408.06110"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cszyzhang/RISurConv","reach":null}],"summary":{"ran_fixture":6,"ran":2,"ran_draft_wrong":3,"unverified":5},"by_repo_kind":{"official":{"samples":16,"ran":11,"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":"43cf46f25fd17bf8","entry":"RISP_features","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"43cf46f25fd17bf8"}},{"code_sha256_prefix":"df1d41f48a849dc1","entry":"SA_Layer","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"df1d41f48a849dc1"}},{"code_sha256_prefix":"1094b06a1786c824","entry":"SA_Layer_2d","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1094b06a1786c824"}},{"code_sha256_prefix":"1f0459a13258d8d5","entry":"calculate_new_surface_feature","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1f0459a13258d8d5"}},{"code_sha256_prefix":"8f64768fc45382ea","entry":"calculate_surface_norm","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8f64768fc45382ea"}},{"code_sha256_prefix":"8feced39236919ff","entry":"calculate_two_surface_feature","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8feced39236919ff"}},{"code_sha256_prefix":"3c5cec821dd98f4a","entry":"calculate_unit","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3c5cec821dd98f4a"}},{"code_sha256_prefix":"23d2fbe28c8f69fd","entry":"compute_LRA_one","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"23d2fbe28c8f69fd"}},{"code_sha256_prefix":"d95836fa7aed2ad6","entry":"group_index","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d95836fa7aed2ad6"}},{"code_sha256_prefix":"004f60206cdb3858","entry":"knn_point","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"004f60206cdb3858"}},{"code_sha256_prefix":"bba5dc7caf857cd2","entry":"square_distance","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bba5dc7caf857cd2"}},{"code_sha256_prefix":"2307abca234405a4","entry":"RISurConvSetAbstraction","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2307abca234405a4"}},{"code_sha256_prefix":"48ba9ee2d2d9ee39","entry":"order_index","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"48ba9ee2d2d9ee39"}},{"code_sha256_prefix":"349f491c52f4f205","entry":"sample","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"349f491c52f4f205"}},{"code_sha256_prefix":"78296b62cc2e5ef7","entry":"sample_and_group","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"78296b62cc2e5ef7"}},{"code_sha256_prefix":"5ff6e719b0d1ec24","entry":"sample_and_group_all","repo":"cszyzhang/RISurConv","repo_kind":"official","path":"models/risurconv_utils.py","file_url":"https://github.com/cszyzhang/RISurConv/blob/HEAD/models/risurconv_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5ff6e719b0d1ec24"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}