{"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/sca3d-enhancing-cross-modal-3d-retrieval-via","title":"SCA3D: Enhancing Cross-modal 3D Retrieval via 3D Shape and Caption Paired Data Augmentation","arxiv_id":"2502.19128","date":"2025-02-26","proceeding":null,"authors":["Junlong Ren","Hao Wu","Hui Xiong","Hao Wang"],"abstract":"The cross-modal 3D retrieval task aims to achieve mutual matching between text descriptions and 3D shapes. This has the potential to enhance the interaction between natural language and the 3D environment, especially within the realms of robotics and embodied artificial intelligence (AI) applications. However, the scarcity and expensiveness of 3D data constrain the performance of existing cross-modal 3D retrieval methods. These methods heavily rely on features derived from the limited number of 3D shapes, resulting in poor generalization ability across diverse scenarios. To address this challenge, we introduce SCA3D, a novel 3D shape and caption online data augmentation method for cross-modal 3D retrieval. Our approach uses the LLaVA model to create a component library, captioning each segmented part of every 3D shape within the dataset. Notably, it facilitates the generation of extensive new 3D-text pairs containing new semantic features. We employ both inter and intra distances to align various components into a new 3D shape, ensuring that the components do not overlap and are closely fitted. Further, text templates are utilized to process the captions of each component and generate new text descriptions. Besides, we use unimodal encoders to extract embeddings for 3D shapes and texts based on the enriched dataset. We then calculate fine-grained cross-modal similarity using Earth Mover's Distance (EMD) and enhance cross-modal matching with contrastive learning, enabling bidirectional retrieval between texts and 3D shapes. Extensive experiments show our SCA3D outperforms previous works on the Text2Shape dataset, raising the Shape-to-Text RR@1 score from 20.03 to 27.22 and the Text-to-Shape RR@1 score from 13.12 to 16.67. Codes can be found in https://github.com/3DAgentWorld/SCA3D.","url_abs":"https://arxiv.org/abs/2502.19128v1","url_pdf":"https://arxiv.org/pdf/2502.19128v1.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":"sca3d-enhancing-cross-modal-3d-retrieval-via","repo_url":"https://github.com/3dagentworld/sca3d","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[{"method_slug":"align","method_name":"ALIGN"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2502.19128","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2502.19128"}},"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/3dagentworld/sca3d","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"ran":0,"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":"eb503fa05caab93e","entry":"collate_fn","repo":"3dagentworld/sca3d","repo_kind":"official","path":"SCA3D/dataloaders/data.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/SCA3D/dataloaders/data.py","link_basis":"harvester_set","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":"eb503fa05caab93e"}},{"code_sha256_prefix":"2e059b3e849cc9d3","entry":"emd_inference_opencv","repo":"3dagentworld/sca3d","repo_kind":"official","path":"SCA3D/models/model_utils/emd_util.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/SCA3D/models/model_utils/emd_util.py","link_basis":"harvester_set","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":"2e059b3e849cc9d3"}},{"code_sha256_prefix":"667b2d862e57062f","entry":"emd_inference_opencv_test","repo":"3dagentworld/sca3d","repo_kind":"official","path":"SCA3D/models/model_utils/emd_util.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/SCA3D/models/model_utils/emd_util.py","link_basis":"harvester_set","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":"667b2d862e57062f"}},{"code_sha256_prefix":"2dded4a28caa3f96","entry":"get_parser","repo":"3dagentworld/sca3d","repo_kind":"official","path":"utils/config.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/utils/config.py","link_basis":"harvester_set","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":"2dded4a28caa3f96"}},{"code_sha256_prefix":"9a65548557b55500","entry":"get_precomp_loader","repo":"3dagentworld/sca3d","repo_kind":"official","path":"SCA3D/dataloaders/data.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/SCA3D/dataloaders/data.py","link_basis":"harvester_set","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":"9a65548557b55500"}},{"code_sha256_prefix":"a1e099b0f700be6a","entry":"l1norm","repo":"3dagentworld/sca3d","repo_kind":"official","path":"SCA3D/models/model.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/SCA3D/models/model.py","link_basis":"harvester_set","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":"a1e099b0f700be6a"}},{"code_sha256_prefix":"756af0f529e8efd8","entry":"lambda_softmax_func","repo":"3dagentworld/sca3d","repo_kind":"official","path":"SCA3D/models/model.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/SCA3D/models/model.py","link_basis":"harvester_set","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":"756af0f529e8efd8"}},{"code_sha256_prefix":"a3311d58663005ac","entry":"multi_index_list","repo":"3dagentworld/sca3d","repo_kind":"official","path":"utils/common_tools.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/utils/common_tools.py","link_basis":"harvester_set","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":"a3311d58663005ac"}},{"code_sha256_prefix":"4bd367b04bee9a29","entry":"rotate_point","repo":"3dagentworld/sca3d","repo_kind":"official","path":"SCA3D/dataloaders/data.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/SCA3D/dataloaders/data.py","link_basis":"harvester_set","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":"4bd367b04bee9a29"}},{"code_sha256_prefix":"b522db937a918b5a","entry":"timer","repo":"3dagentworld/sca3d","repo_kind":"official","path":"utils/common_tools.py","file_url":"https://github.com/3dagentworld/sca3d/blob/HEAD/utils/common_tools.py","link_basis":"harvester_set","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":"b522db937a918b5a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}