{"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/local-consistent-transformation-learning-for","title":"Local-consistent Transformation Learning for Rotation-invariant Point Cloud Analysis","arxiv_id":"2403.11113","date":"2024-03-17","proceeding":"CVPR 2024 1","authors":["Yiyang Chen","Lunhao Duan","Shanshan Zhao","Changxing Ding","DaCheng Tao"],"abstract":"Rotation invariance is an important requirement for point shape analysis. To achieve this, current state-of-the-art methods attempt to construct the local rotation-invariant representation through learning or defining the local reference frame (LRF). Although efficient, these LRF-based methods suffer from perturbation of local geometric relations, resulting in suboptimal local rotation invariance. To alleviate this issue, we propose a Local-consistent Transformation (LocoTrans) learning strategy. Specifically, we first construct the local-consistent reference frame (LCRF) by considering the symmetry of the two axes in LRF. In comparison with previous LRFs, our LCRF is able to preserve local geometric relationships better through performing local-consistent transformation. However, as the consistency only exists in local regions, the relative pose information is still lost in the intermediate layers of the network. We mitigate such a relative pose issue by developing a relative pose recovery (RPR) module. RPR aims to restore the relative pose between adjacent transformed patches. Equipped with LCRF and RPR, our LocoTrans is capable of learning local-consistent transformation and preserving local geometry, which benefits rotation invariance learning. Competitive performance under arbitrary rotations on both shape classification and part segmentation tasks and ablations can demonstrate the effectiveness of our method. Code will be available publicly at https://github.com/wdttt/LocoTrans.","url_abs":"https://arxiv.org/abs/2403.11113v1","url_pdf":"https://arxiv.org/pdf/2403.11113v1.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":"local-consistent-transformation-learning-for","repo_url":"https://github.com/wdttt/locotrans","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.11113","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.11113"}},"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/wdttt/LocoTrans","reach":null}],"summary":{"ran":5,"ran_draft_wrong":3,"unverified":2},"by_repo_kind":{"official":{"samples":10,"ran":8,"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":10,"samples":[{"code_sha256_prefix":"85362e6e4d9de174","entry":"PaRIConv","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"85362e6e4d9de174"}},{"code_sha256_prefix":"7ff93c8024c7f2fe","entry":"VNBatchNorm","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7ff93c8024c7f2fe"}},{"code_sha256_prefix":"f80f8a84d4d3caba","entry":"VNLinearLeakyReLU","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f80f8a84d4d3caba"}},{"code_sha256_prefix":"5e3ec5774775b501","entry":"VNMaxPool","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5e3ec5774775b501"}},{"code_sha256_prefix":"56e5ce98ea1f0809","entry":"VNStdFeature","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"56e5ce98ea1f0809"}},{"code_sha256_prefix":"dfed6fb62c6b3637","entry":"feat_select","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dfed6fb62c6b3637"}},{"code_sha256_prefix":"6dd0e9aa123fafcb","entry":"get_graph_feature","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6dd0e9aa123fafcb"}},{"code_sha256_prefix":"19b639ea820e6dbc","entry":"mean_pool","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"19b639ea820e6dbc"}},{"code_sha256_prefix":"e9e5362039a2f9c3","entry":"IECNN_cls","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e9e5362039a2f9c3"}},{"code_sha256_prefix":"af99e223cdd0d933","entry":"get_graph_feature_","repo":"wdttt/LocoTrans","repo_kind":"official","path":"model_equi.py","file_url":"https://github.com/wdttt/LocoTrans/blob/HEAD/model_equi.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"af99e223cdd0d933"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}