{"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/learning-canonical-view-representation-for-3d","title":"Learning Canonical View Representation for 3D Shape Recognition with Arbitrary Views","arxiv_id":"2108.07084","date":"2021-08-16","proceeding":"ICCV 2021 10","authors":["Xin Wei","Yifei Gong","Fudong Wang","Xing Sun","Jian Sun"],"abstract":"In this paper, we focus on recognizing 3D shapes from arbitrary views, i.e., arbitrary numbers and positions of viewpoints. It is a challenging and realistic setting for view-based 3D shape recognition. We propose a canonical view representation to tackle this challenge. We first transform the original features of arbitrary views to a fixed number of view features, dubbed canonical view representation, by aligning the arbitrary view features to a set of learnable reference view features using optimal transport. In this way, each 3D shape with arbitrary views is represented by a fixed number of canonical view features, which are further aggregated to generate a rich and robust 3D shape representation for shape recognition. We also propose a canonical view feature separation constraint to enforce that the view features in canonical view representation can be embedded into scattered points in a Euclidean space. Experiments on the ModelNet40, ScanObjectNN, and RGBD datasets show that our method achieves competitive results under the fixed viewpoint settings, and significantly outperforms the applicable methods under the arbitrary view setting.","url_abs":"https://arxiv.org/abs/2108.07084v2","url_pdf":"https://arxiv.org/pdf/2108.07084v2.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":"learning-canonical-view-representation-for-3d","repo_url":"https://github.com/weixmath/cvr","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"3d-shape-recognition","task_name":"3D Shape Recognition"},{"task_slug":"3d-shape-representation","task_name":"3D Shape Representation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2108.07084","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2108.07084"}},"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/weixmath/cvr","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/weixmath/CVR","reach":{"status":"ok"}}],"summary":{"ran":2,"unverified":1},"by_repo_kind":{"official":{"samples":3,"ran":2,"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":3,"samples":[{"code_sha256_prefix":"46e93b05a334499a","entry":"TransformerDecoder","repo":"weixmath/CVR","repo_kind":"official","path":"models/Vit.py","file_url":"https://github.com/weixmath/CVR/blob/HEAD/models/Vit.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"46e93b05a334499a"}},{"code_sha256_prefix":"d1dcc3143bcaa503","entry":"TransformerEncoderLayer","repo":"weixmath/CVR","repo_kind":"official","path":"models/Vit.py","file_url":"https://github.com/weixmath/CVR/blob/HEAD/models/Vit.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d1dcc3143bcaa503"}},{"code_sha256_prefix":"c6f868ca7636897a","entry":"Transformer","repo":"weixmath/CVR","repo_kind":"official","path":"models/Vit.py","file_url":"https://github.com/weixmath/CVR/blob/HEAD/models/Vit.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":"c6f868ca7636897a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}