{"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/camp-cross-modal-adaptive-message-passing-for","title":"CAMP: Cross-Modal Adaptive Message Passing for Text-Image Retrieval","arxiv_id":"1909.05506","date":"2019-09-12","proceeding":"ICCV 2019 10","authors":["Zihao Wang","Xihui Liu","Hongsheng Li","Lu Sheng","Junjie Yan","Xiaogang Wang","Jing Shao"],"abstract":"Text-image cross-modal retrieval is a challenging task in the field of language and vision. Most previous approaches independently embed images and sentences into a joint embedding space and compare their similarities. However, previous approaches rarely explore the interactions between images and sentences before calculating similarities in the joint space. Intuitively, when matching between images and sentences, human beings would alternatively attend to regions in images and words in sentences, and select the most salient information considering the interaction between both modalities. In this paper, we propose Cross-modal Adaptive Message Passing (CAMP), which adaptively controls the information flow for message passing across modalities. Our approach not only takes comprehensive and fine-grained cross-modal interactions into account, but also properly handles negative pairs and irrelevant information with an adaptive gating scheme. Moreover, instead of conventional joint embedding approaches for text-image matching, we infer the matching score based on the fused features, and propose a hardest negative binary cross-entropy loss for training. Results on COCO and Flickr30k significantly surpass state-of-the-art methods, demonstrating the effectiveness of our approach.","url_abs":"https://arxiv.org/abs/1909.05506v1","url_pdf":"https://arxiv.org/pdf/1909.05506v1.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":"camp-cross-modal-adaptive-message-passing-for","repo_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"cross-modal-retrieval","task_name":"Cross-Modal Retrieval"},{"task_slug":"image-retrieval","task_name":"Image Retrieval"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-retrieval-on-flickr30k-1k-test","task":"Image Retrieval","dataset":"Flickr30K 1K test","model":"CAMP","rank_in_archive_order":9,"of":18,"metrics":{"R@1":"51.5","R@10":"85.3","R@5":"77.1"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1909.05506","atlas_url":"https://app.syntology.ai/?focus=1909.05506","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1909.05506"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/ZihaoWang-CV/CAMP_iccv19","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"unverified":8},"by_repo_kind":{"official":{"samples":9,"ran":1,"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":"9b0a787b92a87023","entry":"cosine_sim","repo":"ZihaoWang-CV/CAMP_iccv19","repo_kind":"official","path":"model.py","file_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19/blob/HEAD/model.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9b0a787b92a87023"}},{"code_sha256_prefix":"2773ab044520c27b","entry":"EncoderImage","repo":"ZihaoWang-CV/CAMP_iccv19","repo_kind":"official","path":"model.py","file_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2773ab044520c27b"}},{"code_sha256_prefix":"3519b7d198507efd","entry":"collate_fn","repo":"ZihaoWang-CV/CAMP_iccv19","repo_kind":"official","path":"data.py","file_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19/blob/HEAD/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3519b7d198507efd"}},{"code_sha256_prefix":"d5bbbfb834787fc3","entry":"from_CUHK_json","repo":"ZihaoWang-CV/CAMP_iccv19","repo_kind":"official","path":"vocab.py","file_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19/blob/HEAD/vocab.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d5bbbfb834787fc3"}},{"code_sha256_prefix":"4d60d6b4f58a577f","entry":"from_flickr_json","repo":"ZihaoWang-CV/CAMP_iccv19","repo_kind":"official","path":"vocab.py","file_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19/blob/HEAD/vocab.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4d60d6b4f58a577f"}},{"code_sha256_prefix":"99e6f6b6e105a9a8","entry":"get_paths","repo":"ZihaoWang-CV/CAMP_iccv19","repo_kind":"official","path":"data.py","file_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19/blob/HEAD/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"99e6f6b6e105a9a8"}},{"code_sha256_prefix":"68fa66add9257783","entry":"l2norm","repo":"ZihaoWang-CV/CAMP_iccv19","repo_kind":"official","path":"fusion_module.py","file_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19/blob/HEAD/fusion_module.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"68fa66add9257783"}},{"code_sha256_prefix":"0cceed012da71d39","entry":"qkv_attention","repo":"ZihaoWang-CV/CAMP_iccv19","repo_kind":"official","path":"fusion_module.py","file_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19/blob/HEAD/fusion_module.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0cceed012da71d39"}},{"code_sha256_prefix":"c1ec456001cd6c03","entry":"sum_attention","repo":"ZihaoWang-CV/CAMP_iccv19","repo_kind":"official","path":"fusion_module.py","file_url":"https://github.com/ZihaoWang-CV/CAMP_iccv19/blob/HEAD/fusion_module.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c1ec456001cd6c03"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}