{"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/mvtn-multi-view-transformation-network-for-3d","title":"MVTN: Multi-View Transformation Network for 3D Shape Recognition","arxiv_id":"2011.13244","date":"2020-11-26","proceeding":"ICCV 2021 10","authors":["Abdullah Hamdi","Silvio Giancola","Bernard Ghanem"],"abstract":"Multi-view projection methods have demonstrated their ability to reach state-of-the-art performance on 3D shape recognition. Those methods learn different ways to aggregate information from multiple views. However, the camera view-points for those views tend to be heuristically set and fixed for all shapes. To circumvent the lack of dynamism of current multi-view methods, we propose to learn those view-points. In particular, we introduce the Multi-View Transformation Network (MVTN) that regresses optimal view-points for 3D shape recognition, building upon advances in differentiable rendering. As a result, MVTN can be trained end-to-end along with any multi-view network for 3D shape classification. We integrate MVTN in a novel adaptive multi-view pipeline that can render either 3D meshes or point clouds. MVTN exhibits clear performance gains in the tasks of 3D shape classification and 3D shape retrieval without the need for extra training supervision. In these tasks, MVTN achieves state-of-the-art performance on ModelNet40, ShapeNet Core55, and the most recent and realistic ScanObjectNN dataset (up to 6% improvement). Interestingly, we also show that MVTN can provide network robustness against rotation and occlusion in the 3D domain. The code is available at https://github.com/ajhamdi/MVTN .","url_abs":"https://arxiv.org/abs/2011.13244v3","url_pdf":"https://arxiv.org/pdf/2011.13244v3.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":"mvtn-multi-view-transformation-network-for-3d","repo_url":"https://github.com/ajhamdi/MVTN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"mvtn-multi-view-transformation-network-for-3d","repo_url":"https://github.com/ajhamdi/mvtorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"3d-classification","task_name":"3D Classification"},{"task_slug":"3d-object-retrieval","task_name":"3D Object Retrieval"},{"task_slug":"3d-point-cloud-classification","task_name":"3D Point Cloud Classification"},{"task_slug":"3d-shape-retrieval","task_name":"3D Shape Classification"},{"task_slug":"3d-shape-recognition","task_name":"3D Shape Recognition"},{"task_slug":"3d-shape-retrieval-1","task_name":"3D Shape Retrieval"},{"task_slug":"multi-view-3d-shape-retrieval","task_name":"Multi-View 3D Shape Retrieval"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-object-retrieval-on-modelnet40","task":"3D Object Retrieval","dataset":"ModelNet40","model":"MVTN","rank_in_archive_order":1,"of":1,"metrics":{"Mean AP":"92.9"},"uses_additional_data":false},{"leaderboard":"/sota/3d-object-retrieval-on-shapenetcore-55","task":"3D Object Retrieval","dataset":"ShapeNetCore 55","model":"MVTN","rank_in_archive_order":1,"of":1,"metrics":{"Mean AP":"82.9"},"uses_additional_data":false},{"leaderboard":"/sota/3d-point-cloud-classification-on-modelnet40","task":"3D Point Cloud Classification","dataset":"ModelNet40","model":"MVTN","rank_in_archive_order":39,"of":111,"metrics":{"Mean Accuracy":"92.2","Overall Accuracy":"93.8"},"uses_additional_data":false},{"leaderboard":"/sota/3d-point-cloud-classification-on-scanobjectnn","task":"3D Point Cloud Classification","dataset":"ScanObjectNN","model":"MVTN","rank_in_archive_order":65,"of":77,"metrics":{"OBJ-BG (OA)":"92.6","OBJ-ONLY (OA)":"92.3","Overall Accuracy":"82.8"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2011.13244","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2011.13244"}},"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/ajhamdi/mvtorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ajhamdi/MVTN","reach":null}],"summary":{"ran_violates":1,"ran_honours":1,"ran_fixture":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":"9bed36cc8321ab37","entry":"collate_fn","repo":"ajhamdi/MVTN","repo_kind":"official","path":"custom_dataset.py","file_url":"https://github.com/ajhamdi/MVTN/blob/HEAD/custom_dataset.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9bed36cc8321ab37"}},{"code_sha256_prefix":"4783fbece52f500e","entry":"pc_normalize","repo":"ajhamdi/MVTN","repo_kind":"official","path":"custom_dataset.py","file_url":"https://github.com/ajhamdi/MVTN/blob/HEAD/custom_dataset.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4783fbece52f500e"}},{"code_sha256_prefix":"5d128b350b04c281","entry":"rotation_matrix","repo":"ajhamdi/MVTN","repo_kind":"official","path":"custom_dataset.py","file_url":"https://github.com/ajhamdi/MVTN/blob/HEAD/custom_dataset.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5d128b350b04c281"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}