{"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/composed-image-retrieval-using-contrastive","title":"Composed Image Retrieval using Contrastive Learning and Task-oriented CLIP-based Features","arxiv_id":"2308.11485","date":"2023-08-22","proceeding":null,"authors":["Alberto Baldrati","Marco Bertini","Tiberio Uricchio","Alberto del Bimbo"],"abstract":"Given a query composed of a reference image and a relative caption, the Composed Image Retrieval goal is to retrieve images visually similar to the reference one that integrates the modifications expressed by the caption. Given that recent research has demonstrated the efficacy of large-scale vision and language pre-trained (VLP) models in various tasks, we rely on features from the OpenAI CLIP model to tackle the considered task. We initially perform a task-oriented fine-tuning of both CLIP encoders using the element-wise sum of visual and textual features. Then, in the second stage, we train a Combiner network that learns to combine the image-text features integrating the bimodal information and providing combined features used to perform the retrieval. We use contrastive learning in both stages of training. Starting from the bare CLIP features as a baseline, experimental results show that the task-oriented fine-tuning and the carefully crafted Combiner network are highly effective and outperform more complex state-of-the-art approaches on FashionIQ and CIRR, two popular and challenging datasets for composed image retrieval. Code and pre-trained models are available at https://github.com/ABaldrati/CLIP4Cir","url_abs":"https://arxiv.org/abs/2308.11485v1","url_pdf":"https://arxiv.org/pdf/2308.11485v1.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":"composed-image-retrieval-using-contrastive","repo_url":"https://github.com/ABaldrati/CLIP4Cir","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"composed-image-retrieval-using-contrastive","repo_url":"https://github.com/chiangsonw/cala","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"image-retrieval","task_name":"Image Retrieval"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[{"method_slug":"clip","method_name":"CLIP"},{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-retrieval-on-cirr","task":"Image Retrieval","dataset":"CIRR","model":"CLIP4Cir (v3)","rank_in_archive_order":12,"of":17,"metrics":{"(Recall@5+Recall_subset@1)/2":"75.10"},"uses_additional_data":false},{"leaderboard":"/sota/image-retrieval-on-fashion-iq","task":"Image Retrieval","dataset":"Fashion IQ","model":"CLIP4Cir (v3)","rank_in_archive_order":10,"of":22,"metrics":{"(Recall@10+Recall@50)/2":"55.36"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2308.11485","atlas_url":"https://app.syntology.ai/?focus=2308.11485","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.11485"}},"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/ABaldrati/CLIP4Cir","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chiangsonw/cala","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"unverified":1},"by_repo_kind":{"official":{"samples":4,"ran":4,"repositories":1},"listed":{"samples":1,"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":"c2601bfa66acc714","entry":"element_wise_sum","repo":"ABaldrati/CLIP4Cir","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/ABaldrati/CLIP4Cir/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c2601bfa66acc714"}},{"code_sha256_prefix":"17a33f0b1f407e2a","entry":"generate_randomized_fiq_caption","repo":"ABaldrati/CLIP4Cir","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/ABaldrati/CLIP4Cir/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"17a33f0b1f407e2a"}},{"code_sha256_prefix":"a1580dd1883758f6","entry":"squarepad_transform","repo":"ABaldrati/CLIP4Cir","repo_kind":"official","path":"src/data_utils.py","file_url":"https://github.com/ABaldrati/CLIP4Cir/blob/HEAD/src/data_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a1580dd1883758f6"}},{"code_sha256_prefix":"9e2b18431cf6776f","entry":"targetpad_transform","repo":"ABaldrati/CLIP4Cir","repo_kind":"official","path":"src/data_utils.py","file_url":"https://github.com/ABaldrati/CLIP4Cir/blob/HEAD/src/data_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9e2b18431cf6776f"}},{"code_sha256_prefix":"c7d305ae7ea0d9e0","entry":"extract_features_fusion_blip","repo":"chiangsonw/cala","repo_kind":"listed","path":"src/utils.py","file_url":"https://github.com/chiangsonw/cala/blob/HEAD/src/utils.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":"c7d305ae7ea0d9e0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}